summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2015-04-13 14:28:58 +0200
committerMorten Johan Sørvig <morten.sorvig@digia.com>2015-04-13 14:28:58 +0200
commit02ff2973ceeef00ced4468b6e15cfadd9f021b0d (patch)
treee5b51329fceb3d0134e533e41c0f3800549f1786
parentc5b743472fc36986cf34636dbcb73a0d0fa6b9e6 (diff)
parent16c32710bc8a5ecefc833352159361be564f3fe4 (diff)
Merge remote-tracking branch 'gerrit/dev' into dev-highdpi
Conflicts: src/plugins/platforms/xcb/qxcbbackingstore.cpp Change-Id: Ib7f277957636186d0abd58d8c710392ef7b02e13
-rwxr-xr-xconfigure23
-rw-r--r--dist/README4
-rw-r--r--doc/README2
-rw-r--r--doc/global/externalsites/external-resources.qdoc5
-rw-r--r--doc/global/externalsites/qt-webpages.qdoc16
-rw-r--r--doc/global/html-footer-online.qdocconf17
-rw-r--r--doc/global/html-header-online.qdocconf11
-rw-r--r--doc/global/template/scripts/extras.js5
-rw-r--r--doc/global/template/style/cookiebar-x.pngbin0 -> 3680 bytes
-rw-r--r--doc/global/template/style/list_arrow.pngbin1115 -> 236 bytes
-rw-r--r--doc/global/template/style/online.css89
-rw-r--r--doc/global/template/style/theqtcompany.pngbin0 -> 11748 bytes
-rw-r--r--examples/widgets/doc/images/regularexpression-example.pngbin0 -> 78860 bytes
-rw-r--r--examples/widgets/doc/src/regularexpression.qdoc48
-rw-r--r--examples/widgets/tools/regularexpression/images/copy.pngbin0 -> 1338 bytes
-rw-r--r--examples/widgets/tools/regularexpression/main.cpp51
-rw-r--r--examples/widgets/tools/regularexpression/regularexpression.pro11
-rw-r--r--examples/widgets/tools/regularexpression/regularexpression.qrc5
-rw-r--r--examples/widgets/tools/regularexpression/regularexpressiondialog.cpp349
-rw-r--r--examples/widgets/tools/regularexpression/regularexpressiondialog.h100
-rw-r--r--examples/widgets/tools/tools.pro1
-rw-r--r--mkspecs/android-g++/qmake.conf2
-rw-r--r--mkspecs/common/clang.conf2
-rw-r--r--mkspecs/common/msvc-desktop.conf3
-rw-r--r--mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf2
-rw-r--r--mkspecs/devices/linux-rasp-pi-g++/qmake.conf2
-rw-r--r--mkspecs/devices/linux-sh4-stmicro-ST7108-g++/qmake.conf2
-rw-r--r--mkspecs/devices/linux-sh4-stmicro-ST7540-g++/qmake.conf2
-rw-r--r--mkspecs/devices/linux-snowball-g++/qmake.conf2
-rw-r--r--mkspecs/features/qml_plugin.prf2
-rw-r--r--mkspecs/features/qt.prf6
-rw-r--r--mkspecs/features/qt_functions.prf16
-rw-r--r--mkspecs/features/qt_headersclean.prf2
-rw-r--r--mkspecs/features/qt_helper_lib.prf2
-rw-r--r--mkspecs/features/qt_module.prf2
-rw-r--r--mkspecs/features/qt_module_pris.prf8
-rw-r--r--mkspecs/features/qt_plugin.prf2
-rw-r--r--mkspecs/features/win32/dumpcpp.prf2
-rw-r--r--mkspecs/features/win32/idcidl.prf3
-rw-r--r--mkspecs/features/xctest.prf6
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf3
-rw-r--r--mkspecs/macx-ios-clang/features/qt.prf13
-rwxr-xr-xmkspecs/macx-ios-clang/rename_main.sh6
-rw-r--r--mkspecs/macx-xcode/QtTest.plist24
-rw-r--r--mkspecs/macx-xcode/default.xcscheme6
-rw-r--r--mkspecs/modules/README2
-rw-r--r--qmake/doc/src/qmake-manual.qdoc2
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp104
-rw-r--r--qmake/generators/unix/unixmake2.cpp11
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp4
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp4
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h1
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp65
-rw-r--r--qmake/generators/win32/msvc_vcproj.h1
-rw-r--r--src/3rdparty/forkfd/forkfd.c10
-rw-r--r--src/3rdparty/freetype.pri69
-rw-r--r--src/3rdparty/freetype/freetype.pro71
-rw-r--r--src/3rdparty/freetype_dependency.pri7
-rw-r--r--src/3rdparty/harfbuzz-ng/src/hb-private.hh9
-rw-r--r--src/3rdparty/pcre/patches/pcre-r1495.patch23
-rw-r--r--src/3rdparty/pcre/patches/pcre-r1498.patch45
-rw-r--r--src/3rdparty/pcre/patches/pcre-r1513.patch18
-rw-r--r--src/3rdparty/pcre/pcre.h6
-rw-r--r--src/3rdparty/pcre/pcre_compile.c221
-rw-r--r--src/3rdparty/pcre/pcre_dfa_exec.c2
-rw-r--r--src/3rdparty/pcre/pcre_exec.c239
-rw-r--r--src/3rdparty/pcre/pcre_internal.h3
-rw-r--r--src/3rdparty/pcre/pcre_jit_compile.c1624
-rw-r--r--src/3rdparty/pcre/pcre_study.c47
-rw-r--r--src/3rdparty/pcre/pcre_tables.c349
-rw-r--r--src/3rdparty/pcre/pcre_ucd.c5047
-rw-r--r--src/3rdparty/pcre/sljit/sljitConfig.h8
-rw-r--r--src/3rdparty/pcre/sljit/sljitConfigInternal.h365
-rw-r--r--src/3rdparty/pcre/sljit/sljitLir.c1177
-rw-r--r--src/3rdparty/pcre/sljit/sljitLir.h618
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeARM_32.c499
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeARM_64.c437
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeARM_T2_32.c361
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeMIPS_32.c54
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeMIPS_64.c50
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeMIPS_common.c631
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativePPC_common.c594
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeSPARC_32.c4
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeSPARC_common.c373
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeTILEGX_64.c32
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeX86_32.c207
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeX86_64.c345
-rw-r--r--src/3rdparty/pcre/sljit/sljitNativeX86_common.c444
-rw-r--r--src/3rdparty/pcre/sljit/sljitUtils.c18
-rw-r--r--src/3rdparty/pcre/ucp.h26
-rw-r--r--src/concurrent/doc/src/qtconcurrent-index.qdoc47
-rw-r--r--src/concurrent/qtconcurrentfilter.cpp20
-rw-r--r--src/concurrent/qtconcurrentmap.cpp24
-rw-r--r--src/concurrent/qtconcurrentrun.cpp4
-rw-r--r--src/corelib/codecs/qbig5codec.cpp1
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp2
-rw-r--r--src/corelib/doc/snippets/qdebug/qdebugsnippet.cpp7
-rw-r--r--src/corelib/doc/snippets/qloggingcategory/main.cpp7
-rw-r--r--src/corelib/global/qcompilerdetection.h3
-rw-r--r--src/corelib/global/qglobal.cpp9
-rw-r--r--src/corelib/global/qlibraryinfo.cpp2
-rw-r--r--src/corelib/global/qlogging.h4
-rw-r--r--src/corelib/global/qnamespace.h15
-rw-r--r--src/corelib/global/qnamespace.qdoc46
-rw-r--r--src/corelib/io/io.pri1
-rw-r--r--src/corelib/io/qdebug.h16
-rw-r--r--src/corelib/io/qdebug_p.h129
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp2
-rw-r--r--src/corelib/io/qiodevice.cpp23
-rw-r--r--src/corelib/io/qiodevice_p.h2
-rw-r--r--src/corelib/io/qprocess.cpp6
-rw-r--r--src/corelib/io/qprocess_unix.cpp34
-rw-r--r--src/corelib/io/qsavefile.cpp2
-rw-r--r--src/corelib/io/qstandardpaths.cpp3
-rw-r--r--src/corelib/io/qstorageinfo_unix.cpp9
-rw-r--r--src/corelib/io/qtemporaryfile.cpp13
-rw-r--r--src/corelib/io/qtemporaryfile_p.h10
-rw-r--r--src/corelib/io/qwinoverlappedionotifier.cpp9
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h8
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.h8
-rw-r--r--src/corelib/itemmodels/qitemselectionmodel.cpp5
-rw-r--r--src/corelib/itemmodels/qitemselectionmodel.h3
-rw-r--r--src/corelib/kernel/qfunctions_winrt.cpp4
-rw-r--r--src/corelib/kernel/qjni.cpp15
-rw-r--r--src/corelib/kernel/qmath.qdoc1
-rw-r--r--src/corelib/kernel/qmetatype.h6
-rw-r--r--src/corelib/kernel/qobjectdefs.h4
-rw-r--r--src/corelib/kernel/qobjectdefs_impl.h1
-rw-r--r--src/corelib/kernel/qpointer.h3
-rw-r--r--src/corelib/mimetypes/qmimemagicrule.cpp2
-rw-r--r--src/corelib/plugin/quuid.cpp53
-rw-r--r--src/corelib/plugin/quuid.h39
-rwxr-xr-x[-rw-r--r--]src/corelib/tools/qalgorithms.h125
-rwxr-xr-x[-rw-r--r--]src/corelib/tools/qalgorithms.qdoc70
-rw-r--r--src/corelib/tools/qarraydata.cpp10
-rw-r--r--src/corelib/tools/qbytearray.cpp34
-rw-r--r--src/corelib/tools/qchar.cpp83
-rw-r--r--src/corelib/tools/qchar.h297
-rw-r--r--src/corelib/tools/qcollator_icu.cpp43
-rw-r--r--src/corelib/tools/qdatetime.cpp216
-rw-r--r--src/corelib/tools/qdatetime.h1
-rw-r--r--src/corelib/tools/qdatetime_p.h3
-rw-r--r--src/corelib/tools/qelapsedtimer_win.cpp10
-rw-r--r--src/corelib/tools/qhash.h98
-rw-r--r--src/corelib/tools/qhashfunctions.h156
-rw-r--r--src/corelib/tools/qlist.cpp126
-rw-r--r--src/corelib/tools/qlist.h38
-rw-r--r--src/corelib/tools/qlocale.cpp12
-rw-r--r--src/corelib/tools/qlocale.h52
-rw-r--r--src/corelib/tools/qlocale.qdoc52
-rw-r--r--src/corelib/tools/qlocale_data_p.h9468
-rw-r--r--src/corelib/tools/qlocale_tools.cpp265
-rw-r--r--src/corelib/tools/qmargins.cpp21
-rw-r--r--src/corelib/tools/qpoint.cpp13
-rw-r--r--src/corelib/tools/qqueue.h5
-rw-r--r--src/corelib/tools/qrect.cpp15
-rw-r--r--src/corelib/tools/qringbuffer_p.h24
-rw-r--r--src/corelib/tools/qsize.cpp13
-rw-r--r--src/corelib/tools/qstring.cpp93
-rw-r--r--src/corelib/tools/qstring.h44
-rw-r--r--src/corelib/tools/qtimezoneprivate_data_p.h1930
-rw-r--r--src/corelib/tools/qunicodetables.cpp13597
-rw-r--r--src/corelib/tools/qunicodetables_p.h18
-rw-r--r--src/corelib/tools/qunicodetools.cpp6
-rw-r--r--src/corelib/tools/qvarlengtharray.h48
-rw-r--r--src/corelib/tools/qvarlengtharray.qdoc117
-rw-r--r--src/corelib/tools/qvector.cpp126
-rw-r--r--src/corelib/tools/qvector.h38
-rw-r--r--src/corelib/tools/tools.pri1
-rw-r--r--src/dbus/qdbus_symbols.cpp1
-rw-r--r--src/dbus/qdbusabstractinterface.cpp24
-rw-r--r--src/dbus/qdbusconnection.cpp8
-rw-r--r--src/dbus/qdbusconnectioninterface.cpp6
-rw-r--r--src/dbus/qdbuserror.cpp3
-rw-r--r--src/dbus/qdbusintegrator.cpp55
-rw-r--r--src/dbus/qdbusmessage.cpp3
-rw-r--r--src/dbus/qdbuspendingcall.cpp3
-rw-r--r--src/dbus/qdbusserver.cpp3
-rw-r--r--src/dbus/qdbusservicewatcher.cpp10
-rw-r--r--src/dbus/qdbusutil_p.h22
-rw-r--r--src/dbus/qdbusxmlgenerator.cpp7
-rw-r--r--src/gui/accessible/qaccessible.cpp16
-rw-r--r--src/gui/image/qbmphandler.cpp13
-rw-r--r--src/gui/image/qgifhandler.cpp2
-rw-r--r--src/gui/image/qimage.cpp4
-rw-r--r--src/gui/image/qimage_conversions.cpp8
-rw-r--r--src/gui/image/qjpeghandler.cpp21
-rw-r--r--src/gui/kernel/qcursor.cpp3
-rw-r--r--src/gui/kernel/qevent.cpp124
-rw-r--r--src/gui/kernel/qguiapplication.cpp26
-rw-r--r--src/gui/kernel/qguiapplication_p.h2
-rw-r--r--src/gui/kernel/qkeysequence.cpp3
-rw-r--r--src/gui/kernel/qopenglcontext.cpp49
-rw-r--r--src/gui/kernel/qopenglcontext.h2
-rw-r--r--src/gui/kernel/qopenglcontext_p.h3
-rw-r--r--src/gui/kernel/qpalette.cpp3
-rw-r--r--src/gui/kernel/qplatformintegration.cpp2
-rw-r--r--src/gui/kernel/qplatformintegration.h3
-rw-r--r--src/gui/kernel/qshortcutmap.cpp6
-rw-r--r--src/gui/kernel/qsurfaceformat.cpp3
-rw-r--r--src/gui/kernel/qwindow.cpp9
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp6
-rw-r--r--src/gui/math3d/qgenericmatrix.h3
-rw-r--r--src/gui/math3d/qmatrix4x4.cpp3
-rw-r--r--src/gui/math3d/qquaternion.cpp33
-rw-r--r--src/gui/math3d/qquaternion.h2
-rw-r--r--src/gui/math3d/qvector2d.cpp3
-rw-r--r--src/gui/math3d/qvector3d.cpp3
-rw-r--r--src/gui/math3d/qvector4d.cpp3
-rw-r--r--src/gui/opengl/qopengldebug.cpp20
-rw-r--r--src/gui/opengl/qopenglframebufferobject.cpp6
-rw-r--r--src/gui/opengl/qopenglgradientcache.cpp43
-rw-r--r--src/gui/opengl/qopenglgradientcache_p.h3
-rw-r--r--src/gui/opengl/qopengltexture.cpp2
-rw-r--r--src/gui/opengl/qopenglversionfunctions.cpp26
-rw-r--r--src/gui/opengl/qopenglversionfunctions.h13
-rw-r--r--src/gui/opengl/qopenglvertexarrayobject.cpp13
-rw-r--r--src/gui/painting/painting.pri1
-rw-r--r--src/gui/painting/qbrush.cpp3
-rw-r--r--src/gui/painting/qcolor.cpp3
-rw-r--r--src/gui/painting/qcosmeticstroker.cpp23
-rw-r--r--src/gui/painting/qdrawhelper.cpp909
-rw-r--r--src/gui/painting/qdrawhelper_neon.cpp5
-rw-r--r--src/gui/painting/qdrawhelper_neon_p.h2
-rw-r--r--src/gui/painting/qdrawhelper_p.h106
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp17
-rw-r--r--src/gui/painting/qdrawhelper_x86_p.h6
-rw-r--r--src/gui/painting/qmatrix.cpp3
-rw-r--r--src/gui/painting/qpagelayout.cpp3
-rw-r--r--src/gui/painting/qpagesize.cpp3
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp101
-rw-r--r--src/gui/painting/qpainter.cpp2
-rw-r--r--src/gui/painting/qpen.cpp3
-rw-r--r--src/gui/painting/qpolygon.cpp6
-rw-r--r--src/gui/painting/qrgba64.h9
-rw-r--r--src/gui/painting/qrgba64_p.h83
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp11
-rw-r--r--src/gui/painting/qtransform.cpp3
-rw-r--r--src/gui/text/qcssparser.cpp24
-rw-r--r--src/gui/text/qcssparser_p.h5
-rw-r--r--src/gui/text/qfontengine_ft.cpp253
-rw-r--r--src/gui/text/qfontengine_ft_p.h1
-rw-r--r--src/gui/text/qharfbuzzng.cpp41
-rw-r--r--src/gui/text/qplatformfontdatabase.cpp14
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp2
-rw-r--r--src/gui/text/qtextengine.cpp50
-rw-r--r--src/gui/text/qtextformat.cpp6
-rw-r--r--src/gui/text/qtexthtmlparser.cpp270
-rw-r--r--src/gui/util/qdesktopservices.cpp12
-rw-r--r--src/gui/util/qlayoutpolicy.cpp3
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp14
-rw-r--r--src/network/socket/qabstractsocket.cpp40
-rw-r--r--src/network/socket/qhttpsocketengine.cpp20
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp81
-rw-r--r--src/network/socket/qsocks5socketengine.cpp28
-rw-r--r--src/network/socket/qtcpserver.cpp29
-rw-r--r--src/network/socket/qtcpserver_p.h2
-rw-r--r--src/network/ssl/qsslsocket.cpp21
-rw-r--r--src/network/ssl/qsslsocket_mac.cpp26
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp2
-rw-r--r--src/opengl/qgl.cpp5
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenutypes.cpp37
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenutypes_p.h1
-rw-r--r--src/platformsupport/dbusmenu/qdbusplatformmenu.cpp12
-rw-r--r--src/platformsupport/dbusmenu/qdbusplatformmenu_p.h7
-rw-r--r--src/platformsupport/dbustray/qdbustrayicon.cpp16
-rw-r--r--src/platformsupport/dbustray/qdbustrayicon_p.h4
-rw-r--r--src/platformsupport/dbustray/qstatusnotifieritemadaptor.cpp15
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore_p.h4
-rw-r--r--src/platformsupport/fbconvenience/qfbscreen_p.h2
-rw-r--r--src/platformsupport/fontdatabases/basic/basic.pri7
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp25
-rw-r--r--src/platformsupport/input/libinput/qlibinputtouch.cpp26
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux.cpp66
-rw-r--r--src/plugins/bearer/linux_common/qofonoservice_linux.cpp28
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.h1
-rw-r--r--src/plugins/imageformats/ico/qicohandler.cpp2
-rw-r--r--src/plugins/platforminputcontexts/compose/compose.pro2
-rw-r--r--src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp235
-rw-r--r--src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h4
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp2
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp14
-rw-r--r--src/plugins/platforms/android/qandroideventdispatcher.cpp11
-rw-r--r--src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp25
-rw-r--r--src/plugins/platforms/android/qandroidplatformdialoghelpers.h3
-rw-r--r--src/plugins/platforms/android/qandroidplatformfontdatabase.cpp8
-rw-r--r--src/plugins/platforms/android/qandroidplatformforeignwindow.cpp1
-rw-r--r--src/plugins/platforms/android/qandroidplatformopenglwindow.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp2
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h1
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm5
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm4
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenubar.mm18
-rwxr-xr-xsrc/plugins/platforms/cocoa/qcocoasystemtrayicon.mm19
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm42
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm4
-rw-r--r--src/plugins/platforms/ios/qiosinputcontext.mm5
-rw-r--r--src/plugins/platforms/ios/qiosintegration.mm16
-rw-r--r--src/plugins/platforms/ios/qiosmenu.h2
-rw-r--r--src/plugins/platforms/ios/qiosmenu.mm68
-rw-r--r--src/plugins/platforms/ios/qiostextresponder.mm33
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.h1
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.mm30
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm3
-rw-r--r--src/plugins/platforms/windows/qtwindowsglobal.h6
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.h8
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp80
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp18
-rw-r--r--src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowsinputcontext.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowsinputcontext.h1
-rw-r--r--src/plugins/platforms/windows/qwindowskeymapper.cpp5
-rw-r--r--src/plugins/platforms/windows/qwindowsmime.cpp9
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.cpp73
-rw-r--r--src/plugins/platforms/windows/qwindowsmousehandler.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsopengltester.cpp19
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp13
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h2
-rw-r--r--src/plugins/platforms/windows/windows.pri2
-rw-r--r--src/plugins/platforms/winrt/qwinrtfiledialoghelper.cpp64
-rw-r--r--src/plugins/platforms/winrt/qwinrtfileengine.cpp36
-rw-r--r--src/plugins/platforms/winrt/qwinrtfileengine.h1
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.cpp69
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.h3
-rw-r--r--src/plugins/platforms/xcb/qxcbclipboard.cpp3
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp140
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h1
-rw-r--r--src/plugins/platforms/xcb/qxcbcursor.cpp12
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.cpp9
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp84
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.h2
-rw-r--r--src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h5
-rw-r--r--src/plugins/printsupport/cups/qppdprintdevice.h4
-rw-r--r--src/plugins/printsupport/windows/qwindowsprintdevice.cpp24
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog_win.cpp7
-rw-r--r--src/printsupport/kernel/qprintengine_win.cpp53
-rw-r--r--src/printsupport/kernel/qprintengine_win_p.h4
-rw-r--r--src/src.pro9
-rw-r--r--src/testlib/qtestblacklist.cpp9
-rw-r--r--src/testlib/qtestcase.cpp14
-rw-r--r--src/testlib/qtestlog.cpp9
-rw-r--r--src/testlib/qtestlog_p.h7
-rw-r--r--src/testlib/qxctestlogger.mm502
-rw-r--r--src/testlib/qxctestlogger_p.h95
-rw-r--r--src/testlib/testlib.pro19
-rw-r--r--src/tools/qdoc/atom.cpp20
-rw-r--r--src/tools/qdoc/atom.h24
-rw-r--r--src/tools/qdoc/codemarker.h2
-rw-r--r--src/tools/qdoc/codeparser.cpp8
-rw-r--r--src/tools/qdoc/cppcodemarker.cpp17
-rw-r--r--src/tools/qdoc/cppcodemarker.h2
-rw-r--r--src/tools/qdoc/cppcodeparser.cpp37
-rw-r--r--src/tools/qdoc/cppcodeparser.h10
-rw-r--r--src/tools/qdoc/doc.cpp41
-rw-r--r--src/tools/qdoc/doc/qdoc-manual-cmdindex.qdoc17
-rw-r--r--src/tools/qdoc/doc/qdoc-manual-contextcmds.qdoc34
-rw-r--r--src/tools/qdoc/doc/qdoc-manual-markupcmds.qdoc23
-rw-r--r--src/tools/qdoc/doc/qdoc-manual-topiccmds.qdoc22
-rw-r--r--src/tools/qdoc/generator.cpp94
-rw-r--r--src/tools/qdoc/generator.h6
-rw-r--r--src/tools/qdoc/helpprojectwriter.cpp38
-rw-r--r--src/tools/qdoc/helpprojectwriter.h2
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp115
-rw-r--r--src/tools/qdoc/htmlgenerator.h4
-rw-r--r--src/tools/qdoc/jscodemarker.cpp2
-rw-r--r--src/tools/qdoc/jscodemarker.h2
-rw-r--r--src/tools/qdoc/main.cpp8
-rw-r--r--src/tools/qdoc/node.cpp221
-rw-r--r--src/tools/qdoc/node.h268
-rw-r--r--src/tools/qdoc/plaincodemarker.cpp2
-rw-r--r--src/tools/qdoc/plaincodemarker.h2
-rw-r--r--src/tools/qdoc/qdocdatabase.cpp110
-rw-r--r--src/tools/qdoc/qdocdatabase.h48
-rw-r--r--src/tools/qdoc/qdocindexfiles.cpp33
-rw-r--r--src/tools/qdoc/qdoctagfiles.cpp2
-rw-r--r--src/tools/qdoc/qmlcodemarker.cpp2
-rw-r--r--src/tools/qdoc/qmlcodemarker.h2
-rw-r--r--src/tools/qdoc/text.cpp4
-rw-r--r--src/tools/qdoc/text.h4
-rw-r--r--src/tools/qdoc/tree.cpp25
-rw-r--r--src/tools/qdoc/tree.h16
-rw-r--r--src/widgets/dialogs/qerrormessage.cpp81
-rw-r--r--src/widgets/dialogs/qfiledialog.cpp10
-rw-r--r--src/widgets/doc/src/modelview.qdoc2
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp53
-rw-r--r--src/widgets/kernel/qapplication.cpp5
-rw-r--r--src/widgets/kernel/qlayout.cpp3
-rw-r--r--src/widgets/kernel/qlayoutitem.cpp3
-rw-r--r--src/widgets/kernel/qopenglwidget.cpp27
-rw-r--r--src/widgets/kernel/qwidget.cpp26
-rw-r--r--src/widgets/kernel/qwidgetwindow.cpp7
-rw-r--r--src/widgets/styles/qandroidstyle.cpp4
-rw-r--r--src/widgets/styles/qfusionstyle.cpp10
-rw-r--r--src/widgets/styles/qproxystyle.cpp4
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp7
-rw-r--r--src/widgets/widgets/qcombobox.cpp183
-rw-r--r--src/widgets/widgets/qcombobox_p.h11
-rw-r--r--src/widgets/widgets/qdockarealayout.cpp21
-rw-r--r--src/widgets/widgets/qdockarealayout_p.h3
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp12
-rw-r--r--src/widgets/widgets/qmainwindowlayout_p.h1
-rw-r--r--src/widgets/widgets/qmdisubwindow.cpp3
-rw-r--r--src/widgets/widgets/qtabbar.cpp4
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp4
-rw-r--r--tests/auto/auto.pro2
-rw-r--r--tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp44
-rw-r--r--tests/auto/corelib/io/qipaddress/tst_qipaddress.cpp6
-rw-r--r--tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp8
-rw-r--r--tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp1
-rw-r--r--tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro7
-rw-r--r--tests/auto/corelib/plugin/quuid/tst_quuid.cpp20
-rwxr-xr-x[-rw-r--r--]tests/auto/corelib/tools/qalgorithms/tst_qalgorithms.cpp107
-rw-r--r--tests/auto/corelib/tools/qchar/data/NormalizationTest.txt208
-rw-r--r--tests/auto/corelib/tools/qchar/tst_qchar.cpp20
-rw-r--r--tests/auto/corelib/tools/qlist/tst_qlist.cpp74
-rw-r--r--tests/auto/corelib/tools/qlocale/tst_qlocale.cpp60
-rw-r--r--tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp26
-rw-r--r--tests/auto/corelib/tools/qstring/tst_qstring.cpp529
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/data/GraphemeBreakTest.txt4
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/data/LineBreakTest.txt6
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/data/SentenceBreakTest.txt4
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/data/WordBreakTest.txt4
-rw-r--r--tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp80
-rw-r--r--tests/auto/corelib/tools/qvector/tst_qvector.cpp36
-rw-r--r--tests/auto/dbus/qdbusabstractadaptor/test/test.pro2
-rw-r--r--tests/auto/dbus/qdbusabstractinterface/test/test.pro2
-rw-r--r--tests/auto/dbus/qdbusconnection/qdbusconnection.pro2
-rw-r--r--tests/auto/dbus/qdbuscontext/qdbuscontext.pro1
-rw-r--r--tests/auto/dbus/qdbusinterface/test/test.pro2
-rw-r--r--tests/auto/dbus/qdbuslocalcalls/qdbuslocalcalls.pro2
-rw-r--r--tests/auto/dbus/qdbusmarshall/test/test.pro2
-rw-r--r--tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp8
-rw-r--r--tests/auto/dbus/qdbusmetaobject/qdbusmetaobject.pro2
-rw-r--r--tests/auto/dbus/qdbusmetatype/qdbusmetatype.pro2
-rw-r--r--tests/auto/dbus/qdbuspendingcall/qdbuspendingcall.pro2
-rw-r--r--tests/auto/dbus/qdbuspendingreply/qdbuspendingreply.pro2
-rw-r--r--tests/auto/dbus/qdbusreply/qdbusreply.pro2
-rw-r--r--tests/auto/dbus/qdbusservicewatcher/qdbusservicewatcher.pro2
-rw-r--r--tests/auto/dbus/qdbusthreading/qdbusthreading.pro2
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp41
-rw-r--r--tests/auto/gui/image/qpixmap/tst_qpixmap.cpp28
-rw-r--r--tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp94
-rw-r--r--tests/auto/gui/painting/qpainter/qpainter.pro2
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp153
-rw-r--r--tests/auto/gui/text/qtextdocument/test.css3
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp138
-rw-r--r--tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp14
-rw-r--r--tests/auto/network/access/qnetworkreply/BLACKLIST2
-rw-r--r--tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp17
-rw-r--r--tests/auto/network/kernel/qnetworkproxyfactory/BLACKLIST2
-rw-r--r--tests/auto/other/networkselftest/networkselftest.pro2
-rw-r--r--tests/auto/other/networkselftest/tst_networkselftest.cpp11
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/BLACKLIST2
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST4
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST2
-rw-r--r--tests/auto/widgets/kernel/qaction/BLACKLIST2
-rw-r--r--tests/auto/widgets/kernel/qwidget/BLACKLIST16
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp21
-rw-r--r--tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp45
-rw-r--r--tests/auto/widgets/util/qcompleter/BLACKLIST2
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp56
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_0.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_1.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_2.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_0.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_1.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_2.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_0.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_1.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_2.pngbin148 -> 148 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_0.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_1.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_2.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_0.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_1.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_2.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_0.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_1.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_2.pngbin154 -> 154 bytes
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp11
-rw-r--r--tests/auto/widgets/widgets/qmenubar/BLACKLIST4
-rw-r--r--tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp26
-rw-r--r--tests/manual/dialogs/filedialogpanel.cpp1
-rw-r--r--tools/configure/configureapp.cpp26
-rw-r--r--tools/configure/environment.cpp12
-rw-r--r--tools/configure/environment.h1
-rwxr-xr-xutil/local_database/cldr2qlocalexml.py119
-rw-r--r--[-rwxr-xr-x]util/local_database/cldr2qtimezone.py191
-rw-r--r--util/local_database/enumdata.py55
-rw-r--r--util/unicode/data/ArabicShaping.txt116
-rw-r--r--util/unicode/data/BidiMirroring.txt12
-rw-r--r--util/unicode/data/Blocks.txt42
-rw-r--r--util/unicode/data/CaseFolding.txt59
-rw-r--r--util/unicode/data/DerivedAge.txt157
-rw-r--r--util/unicode/data/DerivedNormalizationProps.txt129
-rw-r--r--util/unicode/data/GraphemeBreakProperty.txt89
-rw-r--r--util/unicode/data/LineBreak.txt28249
-rw-r--r--util/unicode/data/NormalizationCorrections.txt6
-rw-r--r--util/unicode/data/Scripts.txt432
-rw-r--r--util/unicode/data/SentenceBreakProperty.txt232
-rw-r--r--util/unicode/data/SpecialCasing.txt52
-rw-r--r--util/unicode/data/UnicodeData.txt2854
-rw-r--r--util/unicode/data/WordBreakProperty.txt176
-rw-r--r--util/unicode/main.cpp104
505 files changed, 37784 insertions, 47152 deletions
diff --git a/configure b/configure
index ccc2cc4da0..4addf22896 100755
--- a/configure
+++ b/configure
@@ -356,7 +356,11 @@ compilerSupportsFlag()
cat >conftest.cpp <<EOF
int main() { return 0; }
EOF
- "$@" -o conftest-out.o conftest.cpp
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ "$@" -o conftest-out.o conftest.cpp
+ else
+ "$@" -o conftest-out.o conftest.cpp >/dev/null 2>&1
+ fi
ret=$?
rm -f conftest.cpp conftest-out.o
return $ret
@@ -372,7 +376,7 @@ linkerSupportsFlag()
safe_flag=`shellEscape "$flag"`
lflags=$lflags,$safe_flag
done
- compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
+ compilerSupportsFlag $compiler $lflags
}
# $1: newline-separated list of default paths
@@ -557,21 +561,28 @@ fi
# initalize variables
#-------------------------------------------------------------------------------
-SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
+SYSTEM_VARIABLES="AR RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
for varname in $SYSTEM_VARIABLES; do
qmakevarname="${varname}"
+ qmakecmdargs=""
# use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
if [ "${varname}" = "LDFLAGS" ]; then
qmakevarname="LFLAGS"
elif [ "${varname}" = "LD" ]; then
qmakevarname="LINK"
+ elif [ "${varname}" = "AR" ]; then
+ # QMAKE_AR needs to be set to "/path/to/ar cqs" but the
+ # environment variable will be set to the command only so we
+ # need to append " cqs" for autoconf compatibility
+ qmakecmdargs=" cqs"
fi
cmd=`echo \
'if [ -n "\$'${varname}'" ]; then
- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
+ QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}${qmakecmdargs}'"
fi'`
eval "$cmd"
done
+
# Use CC/CXX to run config.tests
mkdir -p "$outpath/config.tests"
rm -f "$outpath/config.tests/.qmake.cache"
@@ -4010,8 +4021,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
(cd "$outpath/qmake"; "$MAKE") || exit 2
else
# Hide the output of make
- # Use bash to print dots, if we have it
- if $WHICH bash > /dev/null 2>/dev/null; then
+ # Use bash to print dots, if we have it, and stdout is a tty.
+ if test -t 1 && $WHICH bash > /dev/null 2>/dev/null; then
bash -c 'set -o pipefail
cd "$0/qmake"; "$1" | while read line; do
builtin echo -n .
diff --git a/dist/README b/dist/README
index f0d2034001..f6e6775d6a 100644
--- a/dist/README
+++ b/dist/README
@@ -13,7 +13,7 @@ http://qt-project.org
Be sure to check out the release notes, which will list any known
problems or limitations of this version:
-https://wiki.qt.io/?title=Category:Release
+https://wiki.qt.io/Category:Release
Overview
@@ -101,7 +101,7 @@ Building Qt 5 from Source
-------------------------
See <install_dir>/<version>/src/README and
-http://wiki.qt.io/?title=Building_Qt_5_from_Git
+http://wiki.qt.io/Building_Qt_5_from_Git
for instructions on building Qt from source.
diff --git a/doc/README b/doc/README
index a00256d195..ed8410db71 100644
--- a/doc/README
+++ b/doc/README
@@ -106,4 +106,4 @@ More Information
================
For more information about Qt 5's documentation, refer to the Qt Project wiki:
-http://wiki.qt.io/?title=Qt5DocumentationProject
+http://wiki.qt.io/Qt5DocumentationProject
diff --git a/doc/global/externalsites/external-resources.qdoc b/doc/global/externalsites/external-resources.qdoc
index 96ff35aee4..d2cf88c174 100644
--- a/doc/global/externalsites/external-resources.qdoc
+++ b/doc/global/externalsites/external-resources.qdoc
@@ -449,11 +449,6 @@
*/
/*!
- \externalpage http://wiki.forum.nokia.com/
- \title Forum Nokia Wiki
-*/
-
-/*!
\externalpage http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/_accessible_event_i_d_8idl.html
\title AccessibleEventID.idl File Reference
*/
diff --git a/doc/global/externalsites/qt-webpages.qdoc b/doc/global/externalsites/qt-webpages.qdoc
index 695a4ff7f4..057f0259e9 100644
--- a/doc/global/externalsites/qt-webpages.qdoc
+++ b/doc/global/externalsites/qt-webpages.qdoc
@@ -49,16 +49,16 @@
\title Qt Quarterly: Plural Form in Translation
*/
/*!
- \externalpage http://qt.gitorious.org
+ \externalpage https://code.qt.io/
\title Public Qt Repository
*/
/*!
- \externalpage http://qt.gitorious.org/qt-labs/qtestlib-tools
+ \externalpage https://code.qt.io/cgit/%7bnon-gerrit%7d/qt-labs/qtestlib-tools.git/
\title qtestlib-tools
*/
/*!
- \externalpage http://wiki.qt.io/?title=Qt_Coding_Style
+ \externalpage http://wiki.qt.io/Qt_Coding_Style
\title Qt Coding Style
*/
/*!
@@ -78,16 +78,16 @@
\title Pimp my video
*/
/*!
- \externalpage http://wiki.qt.io/?title=QtMediaHub
+ \externalpage http://wiki.qt.io/QtMediaHub
\title QtMediaHub
*/
/*!
- \externalpage http://wiki.qt.io/?title=Qt_RaspberryPi
+ \externalpage http://wiki.qt.io/Qt_RaspberryPi
\title QtonPi
*/
/*!
- \externalpage http://wiki.qt.io/?title=jom
+ \externalpage http://wiki.qt.io/jom
\title jom
*/
@@ -102,11 +102,11 @@
*/
/*!
- \externalpage http://wiki.qt.io/?title=Qt_Localization
+ \externalpage http://wiki.qt.io/Qt_Localization
\title external: Translating Qt Into Other Languages
*/
/*!
- \externalpage http://wiki.qt.io/?title=BlackBerry
+ \externalpage http://wiki.qt.io/BlackBerry
\title Qt for BlackBerry
*/
diff --git a/doc/global/html-footer-online.qdocconf b/doc/global/html-footer-online.qdocconf
index 6b3ea82968..5c72819341 100644
--- a/doc/global/html-footer-online.qdocconf
+++ b/doc/global/html-footer-online.qdocconf
@@ -27,7 +27,7 @@ HTML.footer += \
" <li id=\"menu-item-1356\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1356\"><a href=\"http://qt.io/qt-features/\">Qt Features</a></li>\n" \
" <li id=\"menu-item-1359\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1359\"><a href=\"http://qt.io/qt-quick/\">Qt Quick</a></li>\n" \
" <li id=\"menu-item-1357\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1357\"><a href=\"http://qt.io/qt-for-device-creation/\">Qt for Device Creation</a></li>\n" \
- " <li id=\"menu-item-34\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-34\"><a href=\"http://qt.io/qt-in-use/\">Qt in Use</a></li>\n" \
+ " <li id=\"menu-item-10159\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-10159\"><a href=\"http://qt.io/mobile-app-development/\">Qt for Mobile Apps</a></li>\n" \
" <li id=\"menu-item-1366\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1366\"><a href=\"http://showroom.qt-project.org/\">Showroom</a></li>\n" \
"</ul>\n" \
"</li>\n" \
@@ -37,8 +37,8 @@ HTML.footer += \
" <li id=\"menu-item-1364\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1364\"><a href=\"http://doc.qt.io/qt-5/qtexamplesandtutorials.html\">Examples &amp; Tutorials</a></li>\n" \
" <li id=\"menu-item-1363\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1363\"><a href=\"http://doc.qt.io/qt-5/topics-app-development.html\">Tools</a></li>\n" \
" <li id=\"menu-item-1361\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1361\"><a href=\"http://wiki.qt.io/\">Wiki</a></li>\n" \
- " <li id=\"menu-item-1360\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1360\"><a href=\"http://qt-project.org/forums\">Forums</a></li>\n" \
- " <li id=\"menu-item-1362\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1362\"><a href=\"http://wiki.qt.io/?title=Qt_Contribution_Guidelines\">Contribute to Qt</a></li>\n" \
+ " <li id=\"menu-item-1360\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1360\"><a href=\"http://forum.qt.io/\">Forums</a></li>\n" \
+ " <li id=\"menu-item-1362\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1362\"><a href=\"http://wiki.qt.io/Qt_Contribution_Guidelines\">Contribute to Qt</a></li>\n" \
"</ul>\n" \
"</li>\n" \
"<li id=\"menu-item-1347\" class=\"menu-item menu-item-type-post_type menu-item-object-page current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-1347\"><a href=\"http://qt.io/services/\">Services</a>\n" \
@@ -48,6 +48,7 @@ HTML.footer += \
" <li id=\"menu-item-4027\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4027\"><a href=\"http://qt.io/services-proof-of-concept/\">Proof of Concept</a></li>\n" \
" <li id=\"menu-item-4026\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4026\"><a href=\"http://qt.io/services-design-implementation/\">Design &amp; Implementation</a></li>\n" \
" <li id=\"menu-item-4025\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-4025\"><a href=\"http://qt.io/services-productization/\">Productization</a></li>\n" \
+ " <li id=\"menu-item-5124\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-5124\"><a href=\"https://qtcloudservices.com/\">Qt Cloud Services</a></li>\n" \
"</ul>\n" \
"</li>\n" \
"<li id=\"menu-item-1403\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1403\"><a href=\"http://qt.io/download/\">Download</a>\n" \
@@ -60,11 +61,10 @@ HTML.footer += \
"</ul>\n" \
"</li>\n" \
"</ul></div></nav>\n" \
- "<a href=\"http://digia.com\" target=\"_blank\" class=\"footer-logo retina\" data-icon=\"\">\n" \
- " </a>\n" \
+ "<a href=\"http://qt.io/about-us/\" target=\"_blank\" class=\"theqtcompany\"></a>\n" \
" <div class=\"footer-social clearfix\">\n" \
" <div class=\"facebook\">\n" \
- " <div class=\"fb-like fb_iframe_widget\" data-href=\"https://www.facebook.com/qtbydigia\" data-layout=\"button_count\" data-action=\"like\" data-show-faces=\"true\" data-share=\"false\" fb-xfbml-state=\"parsed\" fb-iframe-plugin-query=\"action=like&amp;app_id=207346529386114&amp;href=https%3A%2F%2Fwww.facebook.com%2Fqtbydigia&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;share=false&amp;show_faces=true\" style=\"display: block;\"><iframe style=\"width: 30px; height: 19px; border: 0px;\"></iframe></div>\n" \
+ " <iframe scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" src=\"//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fqtbydigia&amp;width&amp;layout=button_count&amp;action=like&amp;show_faces=true&amp;share=false&amp;height=21\" style=\"border:none;overflow:hidden;height:21px;\"></iframe>\n" \
" </div>\n" \
" <div class=\"twitter\">\n" \
" <iframe id=\"twitter-widget-0\" scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" src=\"http://platform.twitter.com/widgets/follow_button.33b190ea0cba008796487b65df7f6d8e.en.html#_=1414403615717&amp;id=twitter-widget-0&amp;lang=en&amp;screen_name=qtproject&amp;show_count=true&amp;show_screen_name=false&amp;size=m\" class=\"twitter-follow-button twitter-follow-button\" title=\"Twitter Follow Button\" data-twttr-rendered=\"true\" style=\"width: 160px; height: 20px;\"></iframe>\n" \
@@ -75,8 +75,9 @@ HTML.footer += \
"<div class=\"disclaimer\">\n" \
"<div class=\"container clearfix no_discs\">\n" \
" <ul id=\"menu-footer-submenu\" class=\"right clearfix\"><li id=\"menu-item-1795\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-1795\"><a title=\"Sign into your account.\" href=\"https://account.qt.io/login\">Sign In</a></li>\n" \
- " <li id=\"menu-item-1494\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1494\"><a href=\"http://qt.io/contact-us/\">Contact us</a></li>\n" \
- " <li id=\"menu-item-4472\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-4472\"><a href=\"http://www.digia.com\">© 2015 Digia Oyj</a></li>\n" \
+ " <li id=\"menu-item-10375\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-10375\"><a href=\"mailto:feedback@theqtcompany.com?Subject=Feedback%20about%20doc.qt.io%20site\">Feedback</a></li>\n" \
+ " <li id=\"menu-item-1494\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1494\"><a href=\"http://qt.io/contact-us/\">Contact us</a></li>\n" \
+ " <li id=\"menu-item-4472\" class=\"menu-item menu-item-type-custom menu-item-object-custom menu-item-4472\"><a href=\"http://qt.io/about-us/\">© 2015 The Qt Company</a></li>\n" \
" </ul>\n" \
"</div>\n" \
"</div>\n" \
diff --git a/doc/global/html-header-online.qdocconf b/doc/global/html-header-online.qdocconf
index b7fa9e1a65..e6dcbe19fa 100644
--- a/doc/global/html-header-online.qdocconf
+++ b/doc/global/html-header-online.qdocconf
@@ -7,7 +7,9 @@ HTML.stylesheets = template/style/online.css \
template/style/icomoon.svg \
template/style/icomoon.ttf \
template/style/icomoon.woff \
- template/style/doc_search.png
+ template/style/cookiebar-x.png \
+ template/style/doc_search.png \
+ template/style/theqtcompany.png
#for including files into the qch file. Relative to the outputdir of a QDoc build.
qhp.extraFiles += style/online.css \
@@ -16,7 +18,10 @@ qhp.extraFiles += style/online.css \
style/icomoon.eot \
style/icomoon.svg \
style/icomoon.ttf \
- style/icomoon.woff
+ style/icomoon.woff \
+ style/cookiebar-x.png \
+ style/doc_search.png \
+ style/theqtcompany.png
HTML.headerstyles = \
" <link rel=\"stylesheet\" type=\"text/css\" href=\"style/online.css\" />\n" \
@@ -116,7 +121,7 @@ HTML.postheader = \
" <ul class=\"sub-navigation\">\n" \
" <li><a href=\"http://wiki.qt.io/\">Wiki</a></li>\n" \
" <li><a href=\"http://doc.qt.io/\" class=\"active\">Documentation</a></li>\n" \
- " <li><a href=\"http://qt-project.org/forums\">Forum</a></li>\n" \
+ " <li><a href=\"http://forum.qt.io/\">Forum</a></li>\n" \
" <li><a href=\"https://bugreports.qt.io/\">Bug Reports</a></li>\n" \
" <li><a href=\"https://codereview.qt-project.org/\">Code Review</a></li>\n" \
" </ul>\n" \
diff --git a/doc/global/template/scripts/extras.js b/doc/global/template/scripts/extras.js
index cb1102d493..409215f2d8 100644
--- a/doc/global/template/scripts/extras.js
+++ b/doc/global/template/scripts/extras.js
@@ -1,13 +1,14 @@
var vOffset = 65;
$(function () {
- $('a[href*=#]:not([href=#])').on('click', function () {
+ $('a[href*=#]:not([href=#])').on('click', function (e) {
+ if (e.which == 2)
+ return true;
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
setTimeout(function () {
$('html, body').animate({scrollTop: target.offset().top - vOffset}, 50);}, 50);
- // return false;
}
});
});
diff --git a/doc/global/template/style/cookiebar-x.png b/doc/global/template/style/cookiebar-x.png
new file mode 100644
index 0000000000..6aea1e62d1
--- /dev/null
+++ b/doc/global/template/style/cookiebar-x.png
Binary files differ
diff --git a/doc/global/template/style/list_arrow.png b/doc/global/template/style/list_arrow.png
index a6a6be665b..7bb07b32d0 100644
--- a/doc/global/template/style/list_arrow.png
+++ b/doc/global/template/style/list_arrow.png
Binary files differ
diff --git a/doc/global/template/style/online.css b/doc/global/template/style/online.css
index 7fefe811d7..d1cfcd2d20 100644
--- a/doc/global/template/style/online.css
+++ b/doc/global/template/style/online.css
@@ -153,7 +153,8 @@
}
#mainmenu {
float:left;
- list-style:none
+ list-style:none;
+ margin-left:16px
}
#mainmenu li {
float:left;
@@ -212,6 +213,9 @@
min-width:85px;
font-weight:100
}
+#menuextras li:last-child a {
+ border-right:1px solid #eee;
+}
#menuextras li a:before {
display:inline-block;
font-family:'Qt Icons';
@@ -372,12 +376,37 @@
#menuextras li.navbar-search {
padding:5px 0
}
- .container {
- padding:0 2%
+ #footerbar .container {
+ padding:0
}
body .main {
margin-top:0px
}
+ #footerbar .footer-main .footer-nav {
+ padding:3.9% 0 3.9% 3%;
+ border-bottom:1px solid #413d3b;
+ float:none;
+ display:block;
+ width:auto
+ }
+ #footerbar .footer-main .theqtcompany {
+ clear:both;
+ float:left;
+ margin:30px 0 28px 3%
+ }
+ #footerbar .footer-main .footer-social {
+ float:left;
+ padding:30px 0px 0px 3%
+ }
+ #footerbar #menu-footer-submenu {
+ clear:both;
+ float:none;
+ display:block;
+ padding:0px 0px 3.9% 3%
+ }
+ ul#menu-footer-submenu {
+ margin-left: 0
+ }
}
.in-page-nav {
width:100%;
@@ -449,8 +478,9 @@ body.qt-account #navbar .navbar-oneQt h2 {
margin-bottom:40px
}
.cookies_yum {
- background-color:#006325;
+ background-color:#d6d6d6;
display:none;
+ line-height:1.625em;
width:100%
}
.cookies_yum img {
@@ -462,18 +492,18 @@ body.qt-account #navbar .navbar-oneQt h2 {
}
.cookies_yum div {
margin:0 auto;
- max-width:1180px;
+ max-width:1280px;
min-height:30px;
padding:6px 0px 6px 0px;
position:relative
}
.cookies_yum p {
- color:white;
+ color:#585a5c;
margin:0px;
font-size:0.79em;
display:inline-block;
line-height:1.2;
- padding:0 30px 0 40px
+ padding:0 30px 0 50px
}
.cookies_yum p a {
white-space:nowrap
@@ -484,13 +514,14 @@ body.qt-account #navbar .navbar-oneQt h2 {
.cookies_yum .close {
width:15px;
height:15px;
- background-image:url("../images/cookiebar-x.png");
+ background-image:url("cookiebar-x.png");
background-size:15px 30px;
background-position:top left;
cursor:pointer;
- top:6px;
- right:6px;
- position:absolute
+ top:13px;
+ right:13px;
+ position:absolute;
+ transition:none;
}
.cookies_yum .close:hover {
background-position:bottom left
@@ -691,7 +722,7 @@ body.qt-account #navbar .navbar-oneQt h2 {
left:0;
width:100%
}
-#footerbar .footer-main .footer-nav {
+#footerbar .footer-nav {
display:inline;
float:left
}
@@ -734,29 +765,20 @@ body.qt-account #navbar .navbar-oneQt h2 {
#footerbar .footer-main .footer-nav .sub-menu li a:hover,#footerbar .footer-main .footer-nav .sub-menu li.current-menu-item a {
color:#eee
}
-#footerbar .footer-main .footer-logo {
+#footerbar .theqtcompany {
+ background:url("theqtcompany.png") no-repeat;
+ background-size:100%;
+ width:150px;
+ height:68px;
display:inline;
float:right;
- padding:29px 0 28px 10px;
- margin-left:30px;
- width:56px
+ margin:29px 0 28px 30px
}
-#footerbar .footer-main .footer-logo:before {
- content:attr(data-icon);
- font-family:'Qt Icons';
- width:100%;
- line-height:1.2;
- display:inline-block;
- font-size:1.875em;
- color:#706e6d
-}
-#footerbar .footer-main .footer-logo:hover {
- padding:31px 0 26px 10px
-}
-#footerbar .footer-main .footer-social {
+#footerbar .footer-social {
display:inline;
float:right;
- padding-top:31px
+ padding-top:31px;
+ width:164px
}
#footerbar .footer-main .footer-social>div {
margin-left:0.1em;
@@ -848,6 +870,9 @@ body.qt-account #navbar .navbar-oneQt h2 {
.clearfix {
*zoom:1
}
+.clearfix .right {
+ float:right
+}
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
margin:0;
padding:0;
@@ -1169,7 +1194,7 @@ li a.active {
position:absolute
}
.flowList.odd {
- background-color:#eee
+ background-color:#f9f9f9
}
.context ul>li,.doc-column ul>li {
list-style-image:url("list_arrow.png");
@@ -1203,7 +1228,7 @@ li a.active {
vertical-align:initial
}
table .odd {
- background-color:#eee
+ background-color:#f9f9f9
}
table thead {
text-align:left;
diff --git a/doc/global/template/style/theqtcompany.png b/doc/global/template/style/theqtcompany.png
new file mode 100644
index 0000000000..b9799f387c
--- /dev/null
+++ b/doc/global/template/style/theqtcompany.png
Binary files differ
diff --git a/examples/widgets/doc/images/regularexpression-example.png b/examples/widgets/doc/images/regularexpression-example.png
new file mode 100644
index 0000000000..d426d8514a
--- /dev/null
+++ b/examples/widgets/doc/images/regularexpression-example.png
Binary files differ
diff --git a/examples/widgets/doc/src/regularexpression.qdoc b/examples/widgets/doc/src/regularexpression.qdoc
new file mode 100644
index 0000000000..804867fb58
--- /dev/null
+++ b/examples/widgets/doc/src/regularexpression.qdoc
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example tools/regularexpression
+ \title QRegularExpression Example
+ \ingroup examples-widgets-tools
+
+ \brief The QRegularExpression example shows how regular expressions in Qt are
+ applied to text by providing an environment in which new regular expressions can be
+ created and tested on custom text strings.
+
+ The example makes usage of the QRegularExpression class, which has been
+ introduced in Qt 5.0. QRegularExpression implements Perl-compatible regular
+ expressions, supporting a number of advanced matching features, such as
+ case insensitive matching, multiline matching, Unicode properties selectors
+ and partial/incremental matching.
+
+ QRegularExpression is a big improvement over QRegExp in terms of features
+ and performance and should be used in all new code.
+
+ \image regularexpression-example.png
+*/
+
diff --git a/examples/widgets/tools/regularexpression/images/copy.png b/examples/widgets/tools/regularexpression/images/copy.png
new file mode 100644
index 0000000000..2aeb28288f
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/images/copy.png
Binary files differ
diff --git a/examples/widgets/tools/regularexpression/main.cpp b/examples/widgets/tools/regularexpression/main.cpp
new file mode 100644
index 0000000000..a5ef410688
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/main.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "regularexpressiondialog.h"
+
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ RegularExpressionDialog dialog;
+ dialog.show();
+ return app.exec();
+}
diff --git a/examples/widgets/tools/regularexpression/regularexpression.pro b/examples/widgets/tools/regularexpression/regularexpression.pro
new file mode 100644
index 0000000000..8e72e171b8
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpression.pro
@@ -0,0 +1,11 @@
+QT += widgets
+
+HEADERS = regularexpressiondialog.h
+SOURCES = regularexpressiondialog.cpp \
+ main.cpp
+
+RESOURCES += regularexpression.qrc
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/regularexpression
+INSTALLS += target
diff --git a/examples/widgets/tools/regularexpression/regularexpression.qrc b/examples/widgets/tools/regularexpression/regularexpression.qrc
new file mode 100644
index 0000000000..ce7e104af3
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpression.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/copy.png</file>
+</qresource>
+</RCC>
diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp b/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp
new file mode 100644
index 0000000000..d40b4b325d
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.cpp
@@ -0,0 +1,349 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+** Copyright (C) 2015 Samuel Gaist <samuel.gaist@edeltech.ch>
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "regularexpressiondialog.h"
+
+#include <QApplication>
+
+#include <QCheckBox>
+#include <QComboBox>
+#include <QLabel>
+#include <QLineEdit>
+#include <QSpinBox>
+#include <QPlainTextEdit>
+#include <QTreeWidget>
+
+#include <QAction>
+#include <QClipboard>
+
+#include <QHBoxLayout>
+#include <QGridLayout>
+#include <QFormLayout>
+
+#include <QRegularExpression>
+#include <QRegularExpressionMatch>
+#include <QRegularExpressionMatchIterator>
+
+Q_DECLARE_METATYPE(QRegularExpression::MatchType)
+
+RegularExpressionDialog::RegularExpressionDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ setupUi();
+ setWindowTitle(tr("QRegularExpression Example"));
+
+ connect(patternLineEdit, &QLineEdit::textChanged, this, &RegularExpressionDialog::refresh);
+ connect(subjectTextEdit, &QPlainTextEdit::textChanged, this, &RegularExpressionDialog::refresh);
+
+ connect(caseInsensitiveOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(dotMatchesEverythingOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(multilineOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(extendedPatternSyntaxOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(invertedGreedinessOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(dontCaptureOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(useUnicodePropertiesOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(optimizeOnFirstUsageOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(dontAutomaticallyOptimizeOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+
+ connect(offsetSpinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
+ this, &RegularExpressionDialog::refresh);
+
+ connect(matchTypeComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
+ this, &RegularExpressionDialog::refresh);
+
+ connect(anchoredMatchOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+ connect(dontCheckSubjectStringMatchOptionCheckBox, &QCheckBox::toggled, this, &RegularExpressionDialog::refresh);
+
+ patternLineEdit->setText(tr("(\\+?\\d+)-(?<prefix>\\d+)-(?<number>\\w+)"));
+ subjectTextEdit->setPlainText(tr("My office number is +43-152-0123456, my mobile is 001-41-255512 instead."));
+
+ refresh();
+}
+
+void RegularExpressionDialog::refresh()
+{
+ setUpdatesEnabled(false);
+
+ const QString pattern = patternLineEdit->text();
+ const QString text = subjectTextEdit->toPlainText();
+
+ offsetSpinBox->setMaximum(qMax(0, text.length() - 1));
+
+ QString escaped = pattern;
+ escaped.replace(QLatin1String("\\"), QLatin1String("\\\\"));
+ escaped.replace(QLatin1String("\""), QLatin1String("\\\""));
+ escaped.prepend(QLatin1String("\""));
+ escaped.append(QLatin1String("\""));
+ escapedPatternLineEdit->setText(escaped);
+
+ QRegularExpression rx(pattern);
+ QRegularExpression::MatchType matchType = matchTypeComboBox->currentData().value<QRegularExpression::MatchType>();
+ QRegularExpression::PatternOptions patternOptions = QRegularExpression::NoPatternOption;
+ QRegularExpression::MatchOptions matchOptions = QRegularExpression::NoMatchOption;
+
+ if (anchoredMatchOptionCheckBox->isChecked())
+ matchOptions |= QRegularExpression::AnchoredMatchOption;
+ if (dontCheckSubjectStringMatchOptionCheckBox->isChecked())
+ matchOptions |= QRegularExpression::DontCheckSubjectStringMatchOption;
+
+ if (caseInsensitiveOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::CaseInsensitiveOption;
+ if (dotMatchesEverythingOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::DotMatchesEverythingOption;
+ if (multilineOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::MultilineOption;
+ if (extendedPatternSyntaxOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::ExtendedPatternSyntaxOption;
+ if (invertedGreedinessOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::InvertedGreedinessOption;
+ if (dontCaptureOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::DontCaptureOption;
+ if (useUnicodePropertiesOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::UseUnicodePropertiesOption;
+ if (optimizeOnFirstUsageOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::OptimizeOnFirstUsageOption;
+ if (dontAutomaticallyOptimizeOptionCheckBox->isChecked())
+ patternOptions |= QRegularExpression::DontAutomaticallyOptimizeOption;
+
+ rx.setPatternOptions(patternOptions);
+
+ QPalette palette = patternLineEdit->palette();
+ if (rx.isValid())
+ palette.setColor(QPalette::Text, subjectTextEdit->palette().color(QPalette::Text));
+ else
+ palette.setColor(QPalette::Text, Qt::red);
+ patternLineEdit->setPalette(palette);
+
+ matchDetailsTreeWidget->clear();
+ matchDetailsTreeWidget->setEnabled(rx.isValid());
+
+ if (rx.isValid()) {
+ const int capturingGroupsCount = rx.captureCount() + 1;
+
+ QRegularExpressionMatchIterator iterator = rx.globalMatch(text, offsetSpinBox->value(), matchType, matchOptions);
+ int i = 0;
+
+ while (iterator.hasNext()) {
+ QRegularExpressionMatch match = iterator.next();
+
+ QTreeWidgetItem *matchDetailTopItem = new QTreeWidgetItem(matchDetailsTreeWidget);
+ matchDetailTopItem->setText(0, QString::number(i));
+
+ for (int captureGroupIndex = 0; captureGroupIndex < capturingGroupsCount; ++captureGroupIndex) {
+ QTreeWidgetItem *matchDetailItem = new QTreeWidgetItem(matchDetailTopItem);
+ matchDetailItem->setText(1, QString::number(captureGroupIndex));
+ matchDetailItem->setText(2, match.captured(captureGroupIndex));
+ }
+
+ ++i;
+ }
+ }
+
+ matchDetailsTreeWidget->expandAll();
+
+ namedGroupsTreeWidget->clear();
+ namedGroupsTreeWidget->setEnabled(rx.isValid());
+
+ if (rx.isValid()) {
+ regexpStatusLabel->setText(tr("Valid"));
+
+ const QStringList namedCaptureGroups = rx.namedCaptureGroups();
+ for (int i = 0; i < namedCaptureGroups.size(); ++i) {
+ const QString currentNamedCaptureGroup = namedCaptureGroups.at(i);
+
+ QTreeWidgetItem *namedGroupItem = new QTreeWidgetItem(namedGroupsTreeWidget);
+ namedGroupItem->setText(0, QString::number(i));
+ namedGroupItem->setText(1, currentNamedCaptureGroup.isNull() ? tr("<no name>") : currentNamedCaptureGroup);
+ }
+ } else {
+ regexpStatusLabel->setText(tr("Invalid: syntax error at position %1 (%2)")
+ .arg(rx.patternErrorOffset())
+ .arg(rx.errorString()));
+ }
+
+ setUpdatesEnabled(true);
+}
+
+void RegularExpressionDialog::copyEscapedPatternToClipboard()
+{
+#ifndef QT_NO_CLIPBOARD
+ QClipboard *clipboard = QGuiApplication::clipboard();
+ if (clipboard)
+ clipboard->setText(escapedPatternLineEdit->text());
+#endif
+}
+
+void RegularExpressionDialog::setupUi()
+{
+ QWidget *leftHalfContainer = setupLeftUi();
+
+ QFrame *verticalSeparator = new QFrame;
+ verticalSeparator->setFrameStyle(QFrame::VLine | QFrame::Sunken);
+
+ QWidget *rightHalfContainer = setupRightUi();
+
+ QHBoxLayout *mainLayout = new QHBoxLayout;
+ mainLayout->addWidget(leftHalfContainer);
+ mainLayout->addWidget(verticalSeparator);
+ mainLayout->addWidget(rightHalfContainer);
+
+ setLayout(mainLayout);
+}
+
+QWidget *RegularExpressionDialog::setupLeftUi()
+{
+ QWidget *container = new QWidget;
+
+ QFormLayout *layout = new QFormLayout(container);
+ layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
+ layout->setMargin(0);
+
+ QLabel *regexpAndSubjectLabel = new QLabel(tr("<h3>Regular expression and text input</h3>"));
+ layout->addRow(regexpAndSubjectLabel);
+
+ patternLineEdit = new QLineEdit;
+ patternLineEdit->setClearButtonEnabled(true);
+ layout->addRow(tr("&Pattern:"), patternLineEdit);
+
+ escapedPatternLineEdit = new QLineEdit;
+ escapedPatternLineEdit->setReadOnly(true);
+ QPalette palette = escapedPatternLineEdit->palette();
+ palette.setBrush(QPalette::Base, palette.brush(QPalette::Disabled, QPalette::Base));
+ escapedPatternLineEdit->setPalette(palette);
+
+#ifndef QT_NO_CLIPBOARD
+ QAction *copyEscapedPatternAction = new QAction(this);
+ copyEscapedPatternAction->setText(tr("Copy to clipboard"));
+ copyEscapedPatternAction->setIcon(QIcon(QStringLiteral(":/images/copy.png")));
+ connect(copyEscapedPatternAction, &QAction::triggered, this, &RegularExpressionDialog::copyEscapedPatternToClipboard);
+ escapedPatternLineEdit->addAction(copyEscapedPatternAction, QLineEdit::TrailingPosition);
+#endif
+
+ layout->addRow(tr("&Escaped pattern:"), escapedPatternLineEdit);
+
+ subjectTextEdit = new QPlainTextEdit;
+ layout->addRow(tr("&Subject text:"), subjectTextEdit);
+
+ caseInsensitiveOptionCheckBox = new QCheckBox(tr("Case insensitive (/i)"));
+ dotMatchesEverythingOptionCheckBox = new QCheckBox(tr("Dot matches everything (/s)"));
+ multilineOptionCheckBox = new QCheckBox(tr("Multiline (/m)"));
+ extendedPatternSyntaxOptionCheckBox = new QCheckBox(tr("Extended pattern (/x)"));
+ invertedGreedinessOptionCheckBox = new QCheckBox(tr("Inverted greediness"));
+ dontCaptureOptionCheckBox = new QCheckBox(tr("Don't capture"));
+ useUnicodePropertiesOptionCheckBox = new QCheckBox(tr("Use unicode properties (/u)"));
+ optimizeOnFirstUsageOptionCheckBox = new QCheckBox(tr("Optimize on first usage"));
+ dontAutomaticallyOptimizeOptionCheckBox = new QCheckBox(tr("Don't automatically optimize"));
+
+ QGridLayout *patternOptionsCheckBoxLayout = new QGridLayout;
+ int gridRow = 0;
+ patternOptionsCheckBoxLayout->addWidget(caseInsensitiveOptionCheckBox, gridRow, 1);
+ patternOptionsCheckBoxLayout->addWidget(dotMatchesEverythingOptionCheckBox, gridRow, 2);
+ ++gridRow;
+ patternOptionsCheckBoxLayout->addWidget(multilineOptionCheckBox, gridRow, 1);
+ patternOptionsCheckBoxLayout->addWidget(extendedPatternSyntaxOptionCheckBox, gridRow, 2);
+ ++gridRow;
+ patternOptionsCheckBoxLayout->addWidget(invertedGreedinessOptionCheckBox, gridRow, 1);
+ patternOptionsCheckBoxLayout->addWidget(dontCaptureOptionCheckBox, gridRow, 2);
+ ++gridRow;
+ patternOptionsCheckBoxLayout->addWidget(useUnicodePropertiesOptionCheckBox, gridRow, 1);
+ patternOptionsCheckBoxLayout->addWidget(optimizeOnFirstUsageOptionCheckBox, gridRow, 2);
+ ++gridRow;
+ patternOptionsCheckBoxLayout->addWidget(dontAutomaticallyOptimizeOptionCheckBox, gridRow, 1);
+
+ layout->addRow(tr("Pattern options:"), patternOptionsCheckBoxLayout);
+
+ offsetSpinBox = new QSpinBox;
+ layout->addRow(tr("Match &offset:"), offsetSpinBox);
+
+ matchTypeComboBox = new QComboBox;
+ matchTypeComboBox->addItem(tr("Normal"), QVariant::fromValue(QRegularExpression::NormalMatch));
+ matchTypeComboBox->addItem(tr("Partial prefer complete"), QVariant::fromValue(QRegularExpression::PartialPreferCompleteMatch));
+ matchTypeComboBox->addItem(tr("Partial prefer first"), QVariant::fromValue(QRegularExpression::PartialPreferFirstMatch));
+ matchTypeComboBox->addItem(tr("No match"), QVariant::fromValue(QRegularExpression::NoMatch));
+ layout->addRow(tr("Match &type:"), matchTypeComboBox);
+
+ dontCheckSubjectStringMatchOptionCheckBox = new QCheckBox(tr("Don't check subject string"));
+ anchoredMatchOptionCheckBox = new QCheckBox(tr("Anchored match"));
+
+ QGridLayout *matchOptionsCheckBoxLayout = new QGridLayout;
+ matchOptionsCheckBoxLayout->addWidget(dontCheckSubjectStringMatchOptionCheckBox, 0, 0);
+ matchOptionsCheckBoxLayout->addWidget(anchoredMatchOptionCheckBox, 0, 1);
+ layout->addRow(tr("Match options:"), matchOptionsCheckBoxLayout);
+
+ return container;
+}
+
+QWidget *RegularExpressionDialog::setupRightUi()
+{
+ QWidget *container = new QWidget;
+
+ QFormLayout *layout = new QFormLayout(container);
+ layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
+ layout->setMargin(0);
+
+ QLabel *matchInfoLabel = new QLabel(tr("<h3>Match information</h3>"));
+ layout->addRow(matchInfoLabel);
+
+ matchDetailsTreeWidget = new QTreeWidget;
+ matchDetailsTreeWidget->setHeaderLabels(QStringList() << tr("Match index") << tr("Group index") << tr("Captured string"));
+ matchDetailsTreeWidget->setSizeAdjustPolicy(QTreeWidget::AdjustToContents);
+ layout->addRow(tr("Match details:"), matchDetailsTreeWidget);
+
+ QFrame *horizontalSeparator = new QFrame;
+ horizontalSeparator->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+ layout->addRow(horizontalSeparator);
+
+ QLabel *regexpInfoLabel = new QLabel(tr("<h3>Regular expression information</h3>"));
+ layout->addRow(regexpInfoLabel);
+
+ regexpStatusLabel = new QLabel(tr("Valid"));
+ regexpStatusLabel->setWordWrap(true);
+ layout->addRow(tr("Pattern status:"), regexpStatusLabel);
+
+ namedGroupsTreeWidget = new QTreeWidget;
+ namedGroupsTreeWidget->setHeaderLabels(QStringList() << tr("Index") << tr("Named group"));
+ namedGroupsTreeWidget->setSizeAdjustPolicy(QTreeWidget::AdjustToContents);
+ namedGroupsTreeWidget->setRootIsDecorated(false);
+ layout->addRow(tr("Named groups:"), namedGroupsTreeWidget);
+
+ return container;
+}
diff --git a/examples/widgets/tools/regularexpression/regularexpressiondialog.h b/examples/widgets/tools/regularexpression/regularexpressiondialog.h
new file mode 100644
index 0000000000..1b3b147c14
--- /dev/null
+++ b/examples/widgets/tools/regularexpression/regularexpressiondialog.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+** Copyright (C) 2015 Samuel Gaist <samuel.gaist@edeltech.ch>
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef REGULAREXPRESSIONDIALOG_H
+#define REGULAREXPRESSIONDIALOG_H
+
+#include <QDialog>
+
+QT_BEGIN_NAMESPACE
+class QCheckBox;
+class QComboBox;
+class QLabel;
+class QLineEdit;
+class QSpinBox;
+class QPlainTextEdit;
+class QTreeWidget;
+QT_END_NAMESPACE
+
+class RegularExpressionDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ RegularExpressionDialog(QWidget *parent = 0);
+
+private:
+ void refresh();
+ void copyEscapedPatternToClipboard();
+ void setupUi();
+ QWidget *setupLeftUi();
+ QWidget *setupRightUi();
+
+ QLineEdit *patternLineEdit;
+ QLineEdit *escapedPatternLineEdit;
+
+ QPlainTextEdit *subjectTextEdit;
+
+ QCheckBox *caseInsensitiveOptionCheckBox;
+ QCheckBox *dotMatchesEverythingOptionCheckBox;
+ QCheckBox *multilineOptionCheckBox;
+ QCheckBox *extendedPatternSyntaxOptionCheckBox;
+ QCheckBox *invertedGreedinessOptionCheckBox;
+ QCheckBox *dontCaptureOptionCheckBox;
+ QCheckBox *useUnicodePropertiesOptionCheckBox;
+ QCheckBox *optimizeOnFirstUsageOptionCheckBox;
+ QCheckBox *dontAutomaticallyOptimizeOptionCheckBox;
+
+ QSpinBox *offsetSpinBox;
+
+ QComboBox *matchTypeComboBox;
+
+ QCheckBox *anchoredMatchOptionCheckBox;
+ QCheckBox *dontCheckSubjectStringMatchOptionCheckBox;
+
+ QTreeWidget *matchDetailsTreeWidget;
+
+ QLabel *regexpStatusLabel;
+ QTreeWidget *namedGroupsTreeWidget;
+};
+
+#endif
diff --git a/examples/widgets/tools/tools.pro b/examples/widgets/tools/tools.pro
index 7178411110..282f8dedea 100644
--- a/examples/widgets/tools/tools.pro
+++ b/examples/widgets/tools/tools.pro
@@ -8,6 +8,7 @@ SUBDIRS = \
plugandpaintplugins \
plugandpaint \
regexp \
+ regularexpression \
settingseditor \
styleplugin \
treemodelcompleter \
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf
index 2fb2f4cc20..fc14eeae5a 100644
--- a/mkspecs/android-g++/qmake.conf
+++ b/mkspecs/android-g++/qmake.conf
@@ -130,7 +130,7 @@ equals(ANDROID_TARGET_ARCH, x86) {
QMAKE_CFLAGS_RELEASE = -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO = -g -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64
QMAKE_CFLAGS_DEBUG = -g -marm -O0 -fno-omit-frame-pointer
- equals(ANDROID_TARGET_ARCH, armeabi): equals(NDK_TOOLCHAIN_VERSION, 4.8) {
+ equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
} else {
QMAKE_CFLAGS_RELEASE += -mthumb
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
index a0a2b3f3d1..76a4b66129 100644
--- a/mkspecs/common/clang.conf
+++ b/mkspecs/common/clang.conf
@@ -16,12 +16,14 @@ QMAKE_LINK_SHLIB = $$QMAKE_CXX
CONFIG += clang_pch_style
QMAKE_PCH_OUTPUT_EXT = .pch
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_LTCG = -flto
QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf
index e16938b7b8..e638af6b6a 100644
--- a/mkspecs/common/msvc-desktop.conf
+++ b/mkspecs/common/msvc-desktop.conf
@@ -53,7 +53,7 @@ QMAKE_CXXFLAGS_STL_OFF =
QMAKE_CXXFLAGS_RTTI_ON = -GR
QMAKE_CXXFLAGS_RTTI_OFF =
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -D_HAS_EXCEPTIONS=0
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
QMAKE_INCDIR =
@@ -115,6 +115,7 @@ greaterThan(MSC_VER, 1599) {
greaterThan(MSC_VER, 1699) {
# Visual Studio 2012 (11.0) / Visual C++ 17.0 and up
+ QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -D_HAS_EXCEPTIONS=0
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE@QMAKE_SUBSYSTEM_SUFFIX@
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS@QMAKE_SUBSYSTEM_SUFFIX@
QT_CONFIG += c++11
diff --git a/mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf b/mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf
index a546a3ae18..3bbb7b6db9 100644
--- a/mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf
+++ b/mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf
@@ -1,7 +1,7 @@
#
# qmake configuration for building with arm-linux-uclibcgnueabi-g++
#
-# http://wiki.qt.io/?title=Shiner
+# http://wiki.qt.io/Shiner
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
index 20f8212f8f..bccb87e869 100644
--- a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
+++ b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
@@ -1,6 +1,6 @@
#
# qmake configuration for Broadcom's Raspberry PI
-# http://wiki.qt.io/?title=RaspberryPi
+# http://wiki.qt.io/RaspberryPi
include(../common/linux_device_pre.conf)
diff --git a/mkspecs/devices/linux-sh4-stmicro-ST7108-g++/qmake.conf b/mkspecs/devices/linux-sh4-stmicro-ST7108-g++/qmake.conf
index dc2b28a180..18d07dad63 100644
--- a/mkspecs/devices/linux-sh4-stmicro-ST7108-g++/qmake.conf
+++ b/mkspecs/devices/linux-sh4-stmicro-ST7108-g++/qmake.conf
@@ -1,7 +1,7 @@
#
# qmake configuration for linux-g++ using the sh4-linux-g++ crosscompiler
#
-# http://wiki.qt.io/?title=ST7108
+# http://wiki.qt.io/ST7108
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/devices/linux-sh4-stmicro-ST7540-g++/qmake.conf b/mkspecs/devices/linux-sh4-stmicro-ST7540-g++/qmake.conf
index 9c28dd52c9..5672829da9 100644
--- a/mkspecs/devices/linux-sh4-stmicro-ST7540-g++/qmake.conf
+++ b/mkspecs/devices/linux-sh4-stmicro-ST7540-g++/qmake.conf
@@ -1,7 +1,7 @@
#
# qmake configuration for linux-g++ using the sh4-linux-g++ crosscompiler
#
-# http://wiki.qt.io/?title=ST7540
+# http://wiki.qt.io/ST7540
#
MAKEFILE_GENERATOR = UNIX
diff --git a/mkspecs/devices/linux-snowball-g++/qmake.conf b/mkspecs/devices/linux-snowball-g++/qmake.conf
index 99b9dc07f5..3520c7a922 100644
--- a/mkspecs/devices/linux-snowball-g++/qmake.conf
+++ b/mkspecs/devices/linux-snowball-g++/qmake.conf
@@ -1,6 +1,6 @@
#
# qmake configuration for ST Ericsson's Snowball
-# http://wiki.qt.io/?title=Snowball
+# http://wiki.qt.io/Snowball
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
index bfd01c6eda..5ae4c08227 100644
--- a/mkspecs/features/qml_plugin.prf
+++ b/mkspecs/features/qml_plugin.prf
@@ -50,7 +50,7 @@ INSTALLS += target
# Some final setup
-TARGET = $$qtLibraryTarget($$TARGET)
+TARGET = $$qt5LibraryTarget($$TARGET)
load(qt_targets)
load(qt_common)
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index b1fc248ea0..264641b5b3 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -4,10 +4,8 @@ CONFIG *= thread
win32 {
contains(QT_CONFIG, shared) {
# this variable is read by qmake in qmake/generators/win32/msvc_vcproj.cpp
- # function VcprojGenerator::initDeploymentTool(), which contains some hardcoded
- # library names (the ones that were static in Qt 4)
- # it probably doesn't work anymore and should not be in this file
- QMAKE_QT_DLL = 1
+ # function VcprojGenerator::initDeploymentTool()
+ QMAKE_DLL_PATHS += $$[QT_INSTALL_BINS/get]
}
}
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 89870f4f51..78be2e8473 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -18,14 +18,20 @@ defineReplace(qtLibraryTarget) {
mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) {
QMAKE_FRAMEWORK_BUNDLE_NAME = $$LIBRARY_NAME
export(QMAKE_FRAMEWORK_BUNDLE_NAME)
- } else {
- # insert the major version of Qt in the library name
- # unless it's a framework build
- LIBRARY_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
}
return($$LIBRARY_NAME$$qtPlatformTargetSuffix())
}
+defineReplace(qt5LibraryTarget) {
+ LIBRARY_NAME = $$qtLibraryTarget($$1)
+ isEmpty(QMAKE_FRAMEWORK_BUNDLE_NAME) {
+ # Insert the major version of Qt in the library name
+ # unless it's a framework build.
+ LIBRARY_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
+ }
+ return($$LIBRARY_NAME)
+}
+
defineTest(qtAddLibrary) {
warning("qtAddLibrary() is deprecated. Use QT+= instead.")
@@ -100,7 +106,7 @@ defineTest(qtAddModule) {
# to give access to sources or include files, and not for linking.
!isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link) {
- # Re-insert the major version in the library name (cf qtLibraryTarget above)
+ # Re-insert the major version in the library name (cf qt5LibraryTarget above)
# unless it's a framework build
!mac|!contains(MODULE_CONFIG, lib_bundle): \
MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
diff --git a/mkspecs/features/qt_headersclean.prf b/mkspecs/features/qt_headersclean.prf
index aae8d7c707..06a20ad2c0 100644
--- a/mkspecs/features/qt_headersclean.prf
+++ b/mkspecs/features/qt_headersclean.prf
@@ -7,7 +7,7 @@
*-g++*: QMAKE_CXXFLAGS += -W -Wall -Wextra -Werror
-# The flags here come from http://wiki.qt.io/?title=Coding_Conventions#Conventions_for_public_header_files
+# The flags here come from http://wiki.qt.io/Coding_Conventions#Conventions_for_public_header_files
# -Wold-style-cast cannot be used, /usr/include/bits/byteswap.h defines the macro bswap_16 using C style casts :(
# -Wfloat-equal cannot be used, qrect.h and qvector2d.h do exact comparisons in isNull and operator==. Would need #pragmas.
*-g++*: QMAKE_CXXFLAGS += -Woverloaded-virtual -Wshadow -Wundef
diff --git a/mkspecs/features/qt_helper_lib.prf b/mkspecs/features/qt_helper_lib.prf
index b2bb55bb1e..70a17995cf 100644
--- a/mkspecs/features/qt_helper_lib.prf
+++ b/mkspecs/features/qt_helper_lib.prf
@@ -24,4 +24,4 @@ DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin
# as in this case they are not linked to the final library/plugin.
installed|contains(QT_CONFIG, static): load(qt_installs)
-TARGET = $$qtLibraryTarget($$TARGET)
+TARGET = $$qt5LibraryTarget($$TARGET)
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 8919d41dea..b85dbfb9c3 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -228,4 +228,4 @@ win32 {
DEFINES *= QT_DISABLE_DEPRECATED_BEFORE=0x050000
}
-TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
+TARGET = $$qt5LibraryTarget($$TARGET$$QT_LIBINFIX) # Do this towards the end
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index fd639b10ad..b40e1391ac 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -59,7 +59,9 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
module_rundep = "QT.$${MODULE_ID}.run_depends = $$replace(QT_PRIVATE, -private$, _private)"
else: \
module_rundep =
- static: \
+ equals(TEMPLATE, aux): \
+ module_build_type = no_link
+ else:static: \
module_build_type = staticlib
else:mac:contains(QT_CONFIG, qt_framework): \
module_build_type = lib_bundle
@@ -122,7 +124,7 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"" \
"QT_MODULES += $$MODULE"
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
- !internal_module {
+ !internal_module:!no_private_module {
module_build_type += internal_module no_link
MODULE_PRIVATE_PRI_CONT = \
"QT.$${MODULE}_private.VERSION = $${VERSION}" \
@@ -158,7 +160,7 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"QT_MODULE_PLUGIN_BASE = $$val_escape(MODULE_BASE_OUTDIR)/plugins" \
"include($$val_escape(MODULE_PRI))" \
"QT.$${MODULE_ID}.priority = 1"
- !internal_module: MODULE_FWD_PRI_CONT += \
+ !internal_module:!no_private_module: MODULE_FWD_PRI_CONT += \
"include($$val_escape(MODULE_PRIVATE_PRI))" \
"QT.$${MODULE}_private.priority = 1"
MODULE_FWD_PRI_CONT += $$MODULE_FWD_PRI_CONT_SUFFIX
diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
index 3834a55ac5..004eee551e 100644
--- a/mkspecs/features/qt_plugin.prf
+++ b/mkspecs/features/qt_plugin.prf
@@ -82,7 +82,7 @@ CONFIG(static, static|shared)|prefix_build {
target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
INSTALLS += target
-TARGET = $$qtLibraryTarget($$TARGET)
+TARGET = $$qt5LibraryTarget($$TARGET)
CONFIG += create_cmake
diff --git a/mkspecs/features/win32/dumpcpp.prf b/mkspecs/features/win32/dumpcpp.prf
index af6387bed6..3da54fb66d 100644
--- a/mkspecs/features/win32/dumpcpp.prf
+++ b/mkspecs/features/win32/dumpcpp.prf
@@ -11,7 +11,7 @@ dumpcpp_decl.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += dumpcpp_decl
-dumpcpp_impl.commands = $$QMAKE_DUMPCPP -donothing
+dumpcpp_impl.commands = $$escape_expand(\\n) # dummy command
dumpcpp_impl.output = ${QMAKE_FILE_BASE}.cpp
dumpcpp_impl.input = TYPELIBS
dumpcpp_impl.variable_out = SOURCES
diff --git a/mkspecs/features/win32/idcidl.prf b/mkspecs/features/win32/idcidl.prf
index d70691fd40..a688b3ff41 100644
--- a/mkspecs/features/win32/idcidl.prf
+++ b/mkspecs/features/win32/idcidl.prf
@@ -46,7 +46,8 @@ contains(TEMPLATE, "vc.*") {
QMAKE_POST_LINK += $$quote($$ACTIVEQT_IDL "$${ACTIVEQT_OUTPUT}.idl" /nologo /tlb "$${ACTIVEQT_TLBOUT}"$$ACTIVEQT_NEWLINE)
message("No rc-file linked into project; type library will be a separate file.")
}
- QMAKE_POST_LINK += $$quote($$ACTIVEQT_IDC $${ACTIVEQT_TARGET} /regserver)
+ !qaxserver_no_register: \
+ QMAKE_POST_LINK += $$quote($$ACTIVEQT_IDC $${ACTIVEQT_TARGET} /regserver)
QMAKE_CLEAN += $${ACTIVEQT_OUTPUT}.idl $${ACTIVEQT_OUTPUT}.tlb
}
diff --git a/mkspecs/features/xctest.prf b/mkspecs/features/xctest.prf
new file mode 100644
index 0000000000..4b84682df7
--- /dev/null
+++ b/mkspecs/features/xctest.prf
@@ -0,0 +1,6 @@
+equals(TEMPLATE, app) {
+ load(sdk)
+ # Make the XCTest framework available. This is normally handled automatically
+ # by Xcode based on heuristics, but we need to explicitly link to XCTest.
+ QMAKE_LFLAGS += -F$${QMAKE_MAC_SDK_PLATFORM_PATH}/Developer/Library/Frameworks -weak_framework XCTest
+}
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index 0525dc15e7..c9d3a5d85b 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -43,9 +43,6 @@ equals(TEMPLATE, app) {
QMAKE_EXTRA_COMPILERS =
!build_pass {
- # Prefer debug and simulator as default test target
- testcase: CONFIG += debug iphonesimulator
-
CONFIG += debug_and_release
load(resolve_config)
diff --git a/mkspecs/macx-ios-clang/features/qt.prf b/mkspecs/macx-ios-clang/features/qt.prf
index 697eb0ed60..9e6b486c6e 100644
--- a/mkspecs/macx-ios-clang/features/qt.prf
+++ b/mkspecs/macx-ios-clang/features/qt.prf
@@ -33,19 +33,20 @@ equals(TEMPLATE, app):contains(qt_depends, gui(-private)?) {
# called 'qt_main' now.
macx-xcode {
- objects_dir = "${OBJECT_FILE_DIR}-${CURRENT_VARIANT}"
- archs = "${ARCHS}"
+ objects_dir = "\"${OBJECT_FILE_DIR}-${CURRENT_VARIANT}\""
+ archs = "\"${ARCHS}\""
} else {
- objects_dir = $$OBJECTS_DIR
- isEmpty(objects_dir): \
+ isEmpty(OBJECTS_DIR): \
objects_dir = .
- archs = "$$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS"
+ else: \
+ objects_dir = $$shell_quote($$OBJECTS_DIR)
+ archs = $$shell_quote($$QMAKE_IOS_DEVICE_ARCHS $$QMAKE_IOS_SIMULATOR_ARCHS)
}
!isEmpty(QMAKE_PRE_LINK): \
QMAKE_PRE_LINK += ";"
- QMAKE_PRE_LINK += $$QMAKESPEC/rename_main.sh $${objects_dir} \"$${archs}\"
+ QMAKE_PRE_LINK += $$shell_quote($$QMAKESPEC/rename_main.sh) $$objects_dir $$archs
}
}
diff --git a/mkspecs/macx-ios-clang/rename_main.sh b/mkspecs/macx-ios-clang/rename_main.sh
index b7916e1d56..1547f5f75c 100755
--- a/mkspecs/macx-ios-clang/rename_main.sh
+++ b/mkspecs/macx-ios-clang/rename_main.sh
@@ -38,9 +38,11 @@ if [ $# -ne 2 ]; then
else
arch_paths=""
for a in $2; do
- arch_paths="$arch_paths $1/$a"
+ arch_paths="$arch_paths
+$1/$a"
done
- for f in $(find $arch_paths -name '*.o'); do
+ for f in $(IFS="
+"; find $arch_paths -name '*.o'); do
# Skip object files without the _main symbol
nm $f 2>/dev/null | grep -q 'T _main$' || continue
diff --git a/mkspecs/macx-xcode/QtTest.plist b/mkspecs/macx-xcode/QtTest.plist
new file mode 100644
index 0000000000..41dddb1a53
--- /dev/null
+++ b/mkspecs/macx-xcode/QtTest.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>io.qt.$(PRODUCT_NAME:rfc1034identifier)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+</dict>
+</plist>
diff --git a/mkspecs/macx-xcode/default.xcscheme b/mkspecs/macx-xcode/default.xcscheme
index ac21df17f3..4a16fefca0 100644
--- a/mkspecs/macx-xcode/default.xcscheme
+++ b/mkspecs/macx-xcode/default.xcscheme
@@ -32,9 +32,9 @@
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
- BlueprintIdentifier = "@TARGET_PBX_KEY@"
- BuildableName = "@QMAKE_ORIG_TARGET@"
- BlueprintName = "@QMAKE_ORIG_TARGET@"
+ BlueprintIdentifier = "@TEST_BUNDLE_PBX_KEY@"
+ BuildableName = "Qt Test"
+ BlueprintName = "Qt Test"
ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
</BuildableReference>
</TestableReference>
diff --git a/mkspecs/modules/README b/mkspecs/modules/README
index 9ce22005d3..10c6da374b 100644
--- a/mkspecs/modules/README
+++ b/mkspecs/modules/README
@@ -1,3 +1,3 @@
Qt modules need to drop a qmake file here to become part of the current
Qt configuration. The file format is documented in
-http://wiki.qt.io/?title=Creating_a_new_module_or_tool_for_Qt#The_qt_.3Cmodule.3E.pri_files
+http://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt#The_qt_.3Cmodule.3E.pri_files
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index 27399c1a1e..2def71c723 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -2644,7 +2644,7 @@
WINRT_MANIFEST.publisher = MyCompany
WINRT_MANIFEST.logo_store = someImage.png
WINRT_MANIFEST.capabilities += internetClient
- WINRT_MANIFEST.device_capabilities += location
+ WINRT_MANIFEST.capabilities_device += location
\endcode
Additionally, an input manifest file can be specified by using WINRT_MANIFEST.
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index 7798130392..3383e66ea6 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -1318,6 +1318,96 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
if(!project->isEmpty("DESTDIR"))
t << "\t\t\t" << writeSettings("productInstallPath", project->first("DESTDIR")) << ";\n";
t << "\t\t};\n";
+
+ // Test target for running Qt unit tests under XCTest
+ if (project->isActiveConfig("testcase") && project->isActiveConfig("app_bundle")) {
+ QString devNullFileReferenceKey = keyFor(pbx_dir + "QMAKE_PBX_DEV_NULL_FILE_REFERENCE");
+ t << "\t\t" << devNullFileReferenceKey << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("name", "/dev/null") << ";\n"
+ << "\t\t\t" << writeSettings("path", "/dev/null") << ";\n"
+ << "\t\t\t" << writeSettings("lastKnownFileType", "sourcecode.c.c") << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "<absolute>") << ";\n"
+ << "\t\t};\n";
+
+ QString devNullBuildFileKey = keyFor(pbx_dir + "QMAKE_PBX_DEV_NULL_BUILD_FILE");
+ t << "\t\t" << devNullBuildFileKey << " = {\n"
+ << "\t\t\t" << writeSettings("fileRef", devNullFileReferenceKey) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXBuildFile", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+
+ QString dummySourceBuildPhaseKey = keyFor(pbx_dir + "QMAKE_PBX_DUMMY_SOURCE_BUILD_PHASE");
+ t << "\t\t" << dummySourceBuildPhaseKey << " = {\n"
+ << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("files", devNullBuildFileKey, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXSourcesBuildPhase", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("runOnlyForDeploymentPostprocessing", "0", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+
+ ProStringList testBundleBuildConfigs;
+
+ ProString targetName = project->first("QMAKE_ORIG_TARGET");
+ ProString testHost = "$(BUILT_PRODUCTS_DIR)/" + targetName + ".app/";
+ if (!project->isActiveConfig("ios"))
+ testHost.append("Contents/MacOS/");
+ testHost.append(targetName);
+
+ static const char * const configs[] = { "Debug", "Release", 0 };
+ for (int i = 0; configs[i]; i++) {
+ QString testBundleBuildConfig = keyFor(pbx_dir + "QMAKE_PBX_TEST_BUNDLE_BUILDCONFIG_" + configs[i]);
+ t << "\t\t" << testBundleBuildConfig << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";\n"
+ << "\t\t\tbuildSettings = {\n"
+ << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", project->first("QMAKE_XCODE_SPECDIR") + "/QtTest.plist") << ";\n"
+ << "\t\t\t\t" << writeSettings("OTHER_LDFLAGS", "") << ";\n"
+ << "\t\t\t\t" << writeSettings("TEST_HOST", testHost) << ";\n"
+ << "\t\t\t\t" << writeSettings("DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym") << ";\n"
+ << "\t\t\t};\n"
+ << "\t\t\t" << writeSettings("name", configs[i], SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+
+ testBundleBuildConfigs.append(testBundleBuildConfig);
+ }
+
+ QString testBundleBuildConfigurationListKey = keyFor(pbx_dir + "QMAKE_PBX_TEST_BUNDLE_BUILDCONFIG_LIST");
+ t << "\t\t" << testBundleBuildConfigurationListKey << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("buildConfigurations", testBundleBuildConfigs, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("defaultConfigurationName", "Debug", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+
+ QString primaryTargetDependencyKey = keyFor(pbx_dir + "QMAKE_PBX_PRIMARY_TARGET_DEP");
+ t << "\t\t" << primaryTargetDependencyKey << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXTargetDependency", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("target", keyFor(pbx_dir + "QMAKE_PBX_TARGET")) << ";\n"
+ << "\t\t};\n";
+
+ QString testBundleReferenceKey = keyFor("QMAKE_TEST_BUNDLE_REFERENCE");
+ t << "\t\t" << testBundleReferenceKey << " = {\n"
+ << "\t\t\t" << writeSettings("isa", "PBXFileReference", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("explicitFileType", "wrapper.cfbundle") << ";\n"
+ << "\t\t\t" << writeSettings("includeInIndex", "0", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";\n"
+ << "\t\t};\n";
+
+ QString testTargetKey = keyFor(pbx_dir + "QMAKE_PBX_TEST_TARGET");
+ project->values("QMAKE_PBX_TARGETS").append(testTargetKey);
+ t << "\t\t" << testTargetKey << " = {\n"
+ << "\t\t\t" << writeSettings("buildPhases", dummySourceBuildPhaseKey, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("dependencies", primaryTargetDependencyKey, SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << writeSettings("buildConfigurationList", testBundleBuildConfigurationListKey) << ";\n"
+ << "\t\t\t" << writeSettings("productType", "com.apple.product-type.bundle.unit-test") << ";\n"
+ << "\t\t\t" << writeSettings("isa", "PBXNativeTarget", SettingsNoQuote) << ";\n"
+ << "\t\t\t" << writeSettings("productReference", testBundleReferenceKey) << ";\n"
+ << "\t\t\t" << writeSettings("name", "Qt Test") << ";\n"
+ << "\t\t};\n";
+
+ QLatin1Literal testTargetID("TestTargetID");
+ project->values(ProKey("QMAKE_PBX_TARGET_ATTRIBUTES_" + testTargetKey + "_" + testTargetID)).append(keyFor(pbx_dir + "QMAKE_PBX_TARGET"));
+ project->values(ProKey("QMAKE_PBX_TARGET_ATTRIBUTES_" + testTargetKey)).append(ProKey(testTargetID));
+ }
+
//DEBUG/RELEASE
QString defaultConfig;
for(int as_release = 0; as_release < 2; as_release++)
@@ -1543,6 +1633,19 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
t << "\t\t\t" << writeSettings("projectDirPath", ProStringList()) << ";\n"
<< "\t\t\t" << writeSettings("projectRoot", "") << ";\n"
<< "\t\t\t" << writeSettings("targets", project->values("QMAKE_PBX_TARGETS"), SettingsAsList, 4) << ";\n"
+ << "\t\t\t" << "attributes = {\n"
+ << "\t\t\t\tTargetAttributes = {\n";
+ foreach (const ProString &target, project->values("QMAKE_PBX_TARGETS")) {
+ const ProStringList &attributes = project->values(ProKey("QMAKE_PBX_TARGET_ATTRIBUTES_" + target));
+ if (attributes.isEmpty())
+ continue;
+ t << "\t\t\t\t\t" << target << " = {\n";
+ foreach (const ProString &attribute, attributes)
+ t << "\t\t\t\t\t\t" << writeSettings(attribute.toQString(), project->first(ProKey("QMAKE_PBX_TARGET_ATTRIBUTES_" + target + "_" + attribute))) << ";\n";
+ t << "\t\t\t\t\t};\n";
+ }
+ t << "\t\t\t\t};\n"
+ << "\t\t\t};\n"
<< "\t\t};\n";
// FIXME: Deal with developmentRegion and knownRegions for QMAKE_PBX_ROOT
@@ -1600,6 +1703,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
schemeData.replace("@QMAKE_ORIG_TARGET@", target);
schemeData.replace("@TARGET_PBX_KEY@", keyFor(pbx_dir + "QMAKE_PBX_TARGET"));
+ schemeData.replace("@TEST_BUNDLE_PBX_KEY@", keyFor("QMAKE_TEST_BUNDLE_REFERENCE"));
QTextStream outputSchemeStream(&outputSchemeFile);
outputSchemeStream << schemeData;
diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
index 9d666509fd..7822107a37 100644
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
@@ -802,15 +802,16 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
}
//copy the plist
while (!project->isActiveConfig("no_plist")) { // 'while' just to be able to 'break'
- QString info_plist = fileFixify(project->first("QMAKE_INFO_PLIST").toQString());
- if (info_plist.isEmpty())
- info_plist = specdir() + QDir::separator() + "Info.plist." + project->first("TEMPLATE");
- if (!exists(Option::normalizePath(info_plist))) {
+ QString info_plist = project->first("QMAKE_INFO_PLIST").toQString();
+ if (info_plist.isEmpty()) {
+ info_plist = escapeFilePath(specdir() + QDir::separator() + "Info.plist." + project->first("TEMPLATE"));
+ } else if (!exists(Option::normalizePath(info_plist))) {
warn_msg(WarnLogic, "Could not resolve Info.plist: '%s'. Check if QMAKE_INFO_PLIST points to a valid file.",
info_plist.toLatin1().constData());
break;
+ } else {
+ info_plist = escapeFilePath(fileFixify(info_plist));
}
- info_plist = escapeFilePath(info_plist);
bool isApp = (project->first("TEMPLATE") == "app");
QString info_plist_out =
bundle_dir + (isApp ? "Contents/Info.plist"
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 3d1b05c9b3..6c2d2c6206 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -571,6 +571,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool)
addFilters(tempProj, xmlFilter, "Source Files");
addFilters(tempProj, xmlFilter, "Translation Files");
addFilters(tempProj, xmlFilter, "Deployment Files");
+ addFilters(tempProj, xmlFilter, "Distribution Files");
for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x)
addFilters(tempProj, xmlFilter, tempProj.ExtraCompilers.at(x));
@@ -585,6 +586,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool)
outputFilter(tempProj, xml, xmlFilter, "Form Files");
outputFilter(tempProj, xml, xmlFilter, "Resource Files");
outputFilter(tempProj, xml, xmlFilter, "Deployment Files");
+ outputFilter(tempProj, xml, xmlFilter, "Distribution Files");
for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) {
outputFilter(tempProj, xml, xmlFilter, tempProj.ExtraCompilers.at(x));
@@ -804,6 +806,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool)
addFilters(tool, xmlFilter, "Source Files");
addFilters(tool, xmlFilter, "Translation Files");
addFilters(tool, xmlFilter, "Deployment Files");
+ addFilters(tool, xmlFilter, "Distribution Files");
for (int x = 0; x < tool.ExtraCompilers.count(); ++x)
addFilters(tool, xmlFilter, tool.ExtraCompilers.at(x));
@@ -818,6 +821,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool)
outputFilter(tool, xml, xmlFilter, "Form Files");
outputFilter(tool, xml, xmlFilter, "Resource Files");
outputFilter(tool, xml, xmlFilter, "Deployment Files");
+ outputFilter(tool, xml, xmlFilter, "Distribution Files");
for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
outputFilter(tool, xml, xmlFilter, tool.ExtraCompilers.at(x));
}
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 4a65d24687..917f4467a0 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2449,6 +2449,8 @@ const VCFilter &VCProjectSingleConfig::filterByName(const QString &name) const
return ResourceFiles;
if (name == "Deployment Files")
return DeploymentFiles;
+ if (name == "Distribution Files")
+ return DistributionFiles;
return filterForExtraCompiler(name);
}
@@ -2531,6 +2533,7 @@ void VCProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool)
outputFilter(tempProj, xml, "Form Files");
outputFilter(tempProj, xml, "Resource Files");
outputFilter(tempProj, xml, "Deployment Files");
+ outputFilter(tempProj, xml, "Distribution Files");
QSet<QString> extraCompilersInProject;
for (int i = 0; i < tool.ExtraCompilersFiles.count(); ++i) {
@@ -2584,6 +2587,7 @@ void VCProjectWriter::write(XmlOutput &xml, VCProject &tool)
outputFilter(tool, xml, "Form Files");
outputFilter(tool, xml, "Resource Files");
outputFilter(tool, xml, "Deployment Files");
+ outputFilter(tool, xml, "Distribution Files");
for (int x = 0; x < tool.ExtraCompilers.count(); ++x) {
outputFilter(tool, xml, tool.ExtraCompilers.at(x));
}
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index 62ea9bc055..59136b16c8 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -1010,6 +1010,7 @@ public:
VCFilter FormFiles;
VCFilter ResourceFiles;
VCFilter DeploymentFiles;
+ VCFilter DistributionFiles;
VCFilterList ExtraCompilersFiles;
bool flat_files;
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 57557732c5..3222030018 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -56,6 +56,7 @@ const char _GUIDTranslationFiles[] = "{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}
const char _GUIDFormFiles[] = "{99349809-55BA-4b9d-BF79-8FDBB0286EB3}";
const char _GUIDExtraCompilerFiles[] = "{E0D8C965-CC5F-43d7-AD63-FAEF0BBC0F85}";
const char _GUIDDeploymentFiles[] = "{D9D6E243-F8AF-46E4-B9FD-80ECBC20BA3E}";
+const char _GUIDDistributionFiles[] = "{B83CAF91-C7BF-462F-B76C-EA11631F866C}";
QT_END_NAMESPACE
#ifdef Q_OS_WIN32
@@ -943,6 +944,7 @@ void VcprojGenerator::initProject()
initTranslationFiles();
initFormFiles();
initResourceFiles();
+ initDistributionFiles();
initExtraCompilerOutputs();
// Own elements -----------------------------
@@ -1265,31 +1267,43 @@ void VcprojGenerator::initDeploymentTool()
if (targetPath.endsWith("/") || targetPath.endsWith("\\"))
targetPath.chop(1);
}
-
+ ProStringList dllPaths = project->values("QMAKE_DLL_PATHS");
// Only deploy Qt libs for shared build
- if (!project->values("QMAKE_QT_DLL").isEmpty()) {
+ if (!dllPaths.isEmpty()) {
// FIXME: This code should actually resolve the libraries from all Qt modules.
- const QString &qtdir = project->propertyValue(ProKey("QT_INSTALL_LIBS/get")).toQString();
ProStringList arg = project->values("QMAKE_LIBS") + project->values("QMAKE_LIBS_PRIVATE");
for (ProStringList::ConstIterator it = arg.constBegin(); it != arg.constEnd(); ++it) {
- if (it->contains(qtdir)) {
- QString dllName = (*it).toQString();
+ QString dllName = (*it).toQString();
+ dllName.replace(QLatin1Char('\\'), QLatin1Char('/'));
+ // LIBPATH isn't relevant for deployment
+ if (dllName.startsWith(QLatin1String("/LIBPATH:")))
+ continue;
+ // We want to deploy .dlls not .libs
+ if (dllName.endsWith(QLatin1String(".lib")))
+ dllName.replace(dllName.length() - 3, 3, QLatin1String("dll"));
+ // Use only the file name and check in Qt's install path and LIBPATHs to check for existence
+ dllName.remove(0, dllName.lastIndexOf(QLatin1Char('/')) + 1);
+ QFileInfo info;
+ foreach (const ProString &dllPath, dllPaths) {
+ QString absoluteDllFilePath = dllPath.toQString();
+ if (!absoluteDllFilePath.endsWith(QLatin1Char('/')))
+ absoluteDllFilePath += QLatin1Char('/');
+ absoluteDllFilePath += dllName;
+ info = QFileInfo(absoluteDllFilePath);
+ if (info.exists())
+ break;
+ }
- if (dllName.contains(QLatin1String("QAxContainer"))
- || dllName.contains(QLatin1String("qtmain"))
- || dllName.contains(QLatin1String("QtUiTools")))
- continue;
- dllName.replace(QLatin1String(".lib") , QLatin1String(".dll"));
- QFileInfo info(dllName);
- if (conf.WinRT) {
- QString absoluteFilePath(QDir::toNativeSeparators(info.absoluteFilePath()));
- vcProject.DeploymentFiles.addFile(absoluteFilePath);
- } else {
- conf.deployment.AdditionalFiles += info.fileName()
- + "|" + QDir::toNativeSeparators(info.absolutePath())
- + "|" + targetPath
- + "|0;";
- }
+ if (!info.exists())
+ continue;
+ if (conf.WinRT) {
+ QString absoluteFilePath(QDir::toNativeSeparators(info.absoluteFilePath()));
+ vcProject.DeploymentFiles.addFile(absoluteFilePath);
+ } else {
+ conf.deployment.AdditionalFiles += info.fileName()
+ + "|" + QDir::toNativeSeparators(info.absolutePath())
+ + "|" + targetPath
+ + "|0;";
}
}
}
@@ -1565,6 +1579,17 @@ void VcprojGenerator::initResourceFiles()
vcProject.ResourceFiles.Config = &(vcProject.Configuration);
}
+void VcprojGenerator::initDistributionFiles()
+{
+ vcProject.DistributionFiles.Name = "Distribution Files";
+ vcProject.DistributionFiles.ParseFiles = _False;
+ vcProject.DistributionFiles.Filter = "*";
+ vcProject.DistributionFiles.Guid = _GUIDDistributionFiles;
+ vcProject.DistributionFiles.addFiles(project->values("DISTFILES"));
+ vcProject.DistributionFiles.Project = this;
+ vcProject.DistributionFiles.Config = &(vcProject.Configuration);
+}
+
void VcprojGenerator::initExtraCompilerOutputs()
{
ProStringList otherFilters;
diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h
index 87cc39f323..3396ea4986 100644
--- a/qmake/generators/win32/msvc_vcproj.h
+++ b/qmake/generators/win32/msvc_vcproj.h
@@ -108,6 +108,7 @@ protected:
void initFormFiles();
void initResourceFiles();
void initDeploymentFiles();
+ void initDistributionFiles();
void initLexYaccFiles();
void initExtraCompilerOutputs();
diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c
index 5710608d6d..017ae0741e 100644
--- a/src/3rdparty/forkfd/forkfd.c
+++ b/src/3rdparty/forkfd/forkfd.c
@@ -41,9 +41,13 @@
#include <unistd.h>
#ifdef __linux__
-# define HAVE_PIPE2 1
-# define HAVE_EVENTFD 1
-# include <sys/eventfd.h>
+# if (defined(__GLIBC__) && (__GLIBC__ << 16) + __GLIBC_MINOR__ >= 0x207) || defined(__BIONIC__)
+# include <sys/eventfd.h>
+# define HAVE_EVENTFD 1
+# endif
+# if (defined(__GLIBC__) && (__GLIBC__ << 16) + __GLIBC_MINOR__ >= 0x209) || defined(__BIONIC__)
+# define HAVE_PIPE2 1
+# endif
#endif
#if _POSIX_VERSION-0 >= 200809L || _XOPEN_VERSION-0 >= 500
diff --git a/src/3rdparty/freetype.pri b/src/3rdparty/freetype.pri
deleted file mode 100644
index 02b6295228..0000000000
--- a/src/3rdparty/freetype.pri
+++ /dev/null
@@ -1,69 +0,0 @@
-QT_FREETYPE_DIR = $$PWD/freetype
-
-SOURCES += \
- $$QT_FREETYPE_DIR/src/autofit/afangles.c \
- $$QT_FREETYPE_DIR/src/autofit/afdummy.c \
- $$QT_FREETYPE_DIR/src/autofit/afglobal.c \
- $$QT_FREETYPE_DIR/src/autofit/afhints.c \
- $$QT_FREETYPE_DIR/src/autofit/aflatin.c \
- $$QT_FREETYPE_DIR/src/autofit/afloader.c \
- $$QT_FREETYPE_DIR/src/autofit/afmodule.c \
- $$QT_FREETYPE_DIR/src/autofit/autofit.c \
- $$QT_FREETYPE_DIR/src/base/ftbase.c \
- $$QT_FREETYPE_DIR/src/base/ftbitmap.c \
- $$QT_FREETYPE_DIR/src/base/ftbbox.c \
- $$QT_FREETYPE_DIR/src/base/ftdebug.c \
- $$QT_FREETYPE_DIR/src/base/ftglyph.c \
- $$QT_FREETYPE_DIR/src/base/ftinit.c \
- $$QT_FREETYPE_DIR/src/base/ftlcdfil.c \
- $$QT_FREETYPE_DIR/src/base/ftmm.c \
- $$QT_FREETYPE_DIR/src/base/ftsynth.c \
- $$QT_FREETYPE_DIR/src/base/fttype1.c \
- $$QT_FREETYPE_DIR/src/bdf/bdf.c \
- $$QT_FREETYPE_DIR/src/cache/ftcache.c \
- $$QT_FREETYPE_DIR/src/cff/cff.c \
- $$QT_FREETYPE_DIR/src/cid/type1cid.c \
- $$QT_FREETYPE_DIR/src/gzip/ftgzip.c \
- $$QT_FREETYPE_DIR/src/lzw/ftlzw.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvalid.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvbase.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvcommn.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvgdef.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvgpos.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvgsub.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvjstf.c \
- $$QT_FREETYPE_DIR/src/otvalid/otvmod.c \
- $$QT_FREETYPE_DIR/src/pcf/pcf.c \
- $$QT_FREETYPE_DIR/src/pfr/pfr.c \
- $$QT_FREETYPE_DIR/src/psaux/psaux.c \
- $$QT_FREETYPE_DIR/src/pshinter/pshinter.c \
- $$QT_FREETYPE_DIR/src/psnames/psmodule.c \
- $$QT_FREETYPE_DIR/src/raster/raster.c \
- $$QT_FREETYPE_DIR/src/sfnt/sfnt.c \
- $$QT_FREETYPE_DIR/src/smooth/smooth.c \
- $$QT_FREETYPE_DIR/src/truetype/truetype.c \
- $$QT_FREETYPE_DIR/src/type1/type1.c \
- $$QT_FREETYPE_DIR/src/type42/type42.c \
- $$QT_FREETYPE_DIR/src/winfonts/winfnt.c
-
-win32 {
- SOURCES += $$QT_FREETYPE_DIR/src/base/ftsystem.c
-} else {
- SOURCES += $$QT_FREETYPE_DIR/builds/unix/ftsystem.c
- INCLUDEPATH += $$QT_FREETYPE_DIR/builds/unix
-}
-
-INCLUDEPATH += $$QT_FREETYPE_DIR/src $$QT_FREETYPE_DIR/include
-
-DEFINES += FT2_BUILD_LIBRARY
-contains(QT_CONFIG, system-zlib) {
- DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
- include($$PWD/zlib_dependency.pri)
-}
-
-DEFINES += TT_CONFIG_OPTION_SUBPIXEL_HINTING
-
-# disable warnings about "unsafe" methods in C code
-msvc:QMAKE_CFLAGS_WARN_ON += -wd"4996"
-
-TR_EXCLUDE += $$QT_FREETYPE_DIR/*
diff --git a/src/3rdparty/freetype/freetype.pro b/src/3rdparty/freetype/freetype.pro
new file mode 100644
index 0000000000..a32579e0f9
--- /dev/null
+++ b/src/3rdparty/freetype/freetype.pro
@@ -0,0 +1,71 @@
+TARGET = qtfreetype
+
+CONFIG += \
+ static \
+ hide_symbols \
+ exceptions_off rtti_off warn_off
+
+load(qt_helper_lib)
+
+SOURCES += \
+ $$PWD/src/autofit/afangles.c \
+ $$PWD/src/autofit/afdummy.c \
+ $$PWD/src/autofit/afglobal.c \
+ $$PWD/src/autofit/afhints.c \
+ $$PWD/src/autofit/aflatin.c \
+ $$PWD/src/autofit/afloader.c \
+ $$PWD/src/autofit/afmodule.c \
+ $$PWD/src/autofit/autofit.c \
+ $$PWD/src/base/ftbase.c \
+ $$PWD/src/base/ftbitmap.c \
+ $$PWD/src/base/ftbbox.c \
+ $$PWD/src/base/ftdebug.c \
+ $$PWD/src/base/ftglyph.c \
+ $$PWD/src/base/ftinit.c \
+ $$PWD/src/base/ftlcdfil.c \
+ $$PWD/src/base/ftmm.c \
+ $$PWD/src/base/ftsynth.c \
+ $$PWD/src/base/fttype1.c \
+ $$PWD/src/bdf/bdf.c \
+ $$PWD/src/cache/ftcache.c \
+ $$PWD/src/cff/cff.c \
+ $$PWD/src/cid/type1cid.c \
+ $$PWD/src/gzip/ftgzip.c \
+ $$PWD/src/lzw/ftlzw.c \
+ $$PWD/src/otvalid/otvalid.c \
+ $$PWD/src/otvalid/otvbase.c \
+ $$PWD/src/otvalid/otvcommn.c \
+ $$PWD/src/otvalid/otvgdef.c \
+ $$PWD/src/otvalid/otvgpos.c \
+ $$PWD/src/otvalid/otvgsub.c \
+ $$PWD/src/otvalid/otvjstf.c \
+ $$PWD/src/otvalid/otvmod.c \
+ $$PWD/src/pcf/pcf.c \
+ $$PWD/src/pfr/pfr.c \
+ $$PWD/src/psaux/psaux.c \
+ $$PWD/src/pshinter/pshinter.c \
+ $$PWD/src/psnames/psmodule.c \
+ $$PWD/src/raster/raster.c \
+ $$PWD/src/sfnt/sfnt.c \
+ $$PWD/src/smooth/smooth.c \
+ $$PWD/src/truetype/truetype.c \
+ $$PWD/src/type1/type1.c \
+ $$PWD/src/type42/type42.c \
+ $$PWD/src/winfonts/winfnt.c
+
+win32 {
+ SOURCES += $$PWD/src/base/ftsystem.c
+} else {
+ SOURCES += $$PWD/builds/unix/ftsystem.c
+ INCLUDEPATH += $$PWD/builds/unix
+}
+
+INCLUDEPATH += $$PWD/include
+
+DEFINES += FT2_BUILD_LIBRARY
+contains(QT_CONFIG, system-zlib) {
+ DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
+ include($$PWD/../zlib_dependency.pri)
+}
+
+DEFINES += TT_CONFIG_OPTION_SUBPIXEL_HINTING
diff --git a/src/3rdparty/freetype_dependency.pri b/src/3rdparty/freetype_dependency.pri
new file mode 100644
index 0000000000..39280deb2f
--- /dev/null
+++ b/src/3rdparty/freetype_dependency.pri
@@ -0,0 +1,7 @@
+contains(QT_CONFIG, freetype) {
+ INCLUDEPATH += $$PWD/freetype/include
+ LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix()
+} else:contains(QT_CONFIG, system-freetype) {
+ # pull in the proper freetype2 include directory
+ include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
+}
diff --git a/src/3rdparty/harfbuzz-ng/src/hb-private.hh b/src/3rdparty/harfbuzz-ng/src/hb-private.hh
index 06b24a80f8..06d7f228a7 100644
--- a/src/3rdparty/harfbuzz-ng/src/hb-private.hh
+++ b/src/3rdparty/harfbuzz-ng/src/hb-private.hh
@@ -121,16 +121,17 @@
# if defined(_WIN32_WCE)
/* Some things not defined on Windows CE. */
+# define strdup _strdup
# define getenv(Name) NULL
-# define setlocale(Category, Locale) "C"
+# if _WIN32_WCE < 0x800
+# define setlocale(Category, Locale) "C"
static int errno = 0; /* Use something better? */
+# endif
# elif defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
# define getenv(Name) NULL
# endif
-# if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER)
+# if defined(_MSC_VER) && _MSC_VER < 1900
# define snprintf _snprintf
- /* Windows CE only has _strdup, while rest of Windows has both. */
-# define strdup _strdup
# endif
#endif
diff --git a/src/3rdparty/pcre/patches/pcre-r1495.patch b/src/3rdparty/pcre/patches/pcre-r1495.patch
deleted file mode 100644
index d8b4ce097a..0000000000
--- a/src/3rdparty/pcre/patches/pcre-r1495.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: pcre_compile.c
-===================================================================
---- pcre_compile.c (revision 1494)
-+++ pcre_compile.c (revision 1495)
-@@ -8267,12 +8267,16 @@
-
- /* If it was a capturing subpattern, check to see if it contained any
- recursive back references. If so, we must wrap it in atomic brackets.
-- In any event, remove the block from the chain. */
-+ Because we are moving code along, we must ensure that any pending recursive
-+ references are updated. In any event, remove the block from the chain. */
-
- if (capnumber > 0)
- {
- if (cd->open_caps->flag)
- {
-+ *code = OP_END;
-+ adjust_recurse(start_bracket, 1 + LINK_SIZE,
-+ (options & PCRE_UTF8) != 0, cd, cd->hwm);
- memmove(start_bracket + 1 + LINK_SIZE, start_bracket,
- IN_UCHARS(code - start_bracket));
- *start_bracket = OP_ONCE;
-
diff --git a/src/3rdparty/pcre/patches/pcre-r1498.patch b/src/3rdparty/pcre/patches/pcre-r1498.patch
deleted file mode 100644
index 8ae48a4336..0000000000
--- a/src/3rdparty/pcre/patches/pcre-r1498.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Index: pcre_compile.c
-===================================================================
---- pcre_compile.c (revision 1497)
-+++ pcre_compile.c (revision 1498)
-@@ -2374,6 +2374,7 @@
- if (c == OP_RECURSE)
- {
- const pcre_uchar *scode = cd->start_code + GET(code, 1);
-+ const pcre_uchar *endgroup = scode;
- BOOL empty_branch;
-
- /* Test for forward reference or uncompleted reference. This is disabled
-@@ -2388,24 +2389,20 @@
- if (GET(scode, 1) == 0) return TRUE; /* Unclosed */
- }
-
-- /* If we are scanning a completed pattern, there are no forward references
-- and all groups are complete. We need to detect whether this is a recursive
-- call, as otherwise there will be an infinite loop. If it is a recursion,
-- just skip over it. Simple recursions are easily detected. For mutual
-- recursions we keep a chain on the stack. */
-+ /* If the reference is to a completed group, we need to detect whether this
-+ is a recursive call, as otherwise there will be an infinite loop. If it is
-+ a recursion, just skip over it. Simple recursions are easily detected. For
-+ mutual recursions we keep a chain on the stack. */
-
-+ do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT);
-+ if (code >= scode && code <= endgroup) continue; /* Simple recursion */
- else
-- {
-+ {
- recurse_check *r = recurses;
-- const pcre_uchar *endgroup = scode;
--
-- do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT);
-- if (code >= scode && code <= endgroup) continue; /* Simple recursion */
--
- for (r = recurses; r != NULL; r = r->prev)
- if (r->group == scode) break;
- if (r != NULL) continue; /* Mutual recursion */
-- }
-+ }
-
- /* Completed reference; scan the referenced group, remembering it on the
- stack chain to detect mutual recursions. */
diff --git a/src/3rdparty/pcre/patches/pcre-r1513.patch b/src/3rdparty/pcre/patches/pcre-r1513.patch
deleted file mode 100644
index d84aa0cc61..0000000000
--- a/src/3rdparty/pcre/patches/pcre-r1513.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: pcre_exec.c
-===================================================================
---- pcre_exec.c (revisione 1512)
-+++ pcre_exec.c (revisione 1513)
-@@ -1404,8 +1404,11 @@
- condition = TRUE;
-
- /* Advance ecode past the assertion to the start of the first branch,
-- but adjust it so that the general choosing code below works. */
--
-+ but adjust it so that the general choosing code below works. If the
-+ assertion has a quantifier that allows zero repeats we must skip over
-+ the BRAZERO. This is a lunatic thing to do, but somebody did! */
-+
-+ if (*ecode == OP_BRAZERO) ecode++;
- ecode += GET(ecode, 1);
- while (*ecode == OP_ALT) ecode += GET(ecode, 1);
- ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode];
diff --git a/src/3rdparty/pcre/pcre.h b/src/3rdparty/pcre/pcre.h
index ce4251c8e6..20f04ebed4 100644
--- a/src/3rdparty/pcre/pcre.h
+++ b/src/3rdparty/pcre/pcre.h
@@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
/* The current PCRE version information. */
#define PCRE_MAJOR 8
-#define PCRE_MINOR 35
-#define PCRE_PRERELEASE
-#define PCRE_DATE 2014-04-04
+#define PCRE_MINOR 37
+#define PCRE_PRERELEASE -RC1
+#define PCRE_DATE 2015-02-03
/* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE, the appropriate
diff --git a/src/3rdparty/pcre/pcre_compile.c b/src/3rdparty/pcre/pcre_compile.c
index f85315e1be..13f738eb88 100644
--- a/src/3rdparty/pcre/pcre_compile.c
+++ b/src/3rdparty/pcre/pcre_compile.c
@@ -47,8 +47,8 @@ supporting internal functions that are not used by other modules. */
#endif
#define NLBLOCK cd /* Block containing newline information */
-#define PSSTART start_pattern /* Field containing processed string start */
-#define PSEND end_pattern /* Field containing processed string end */
+#define PSSTART start_pattern /* Field containing pattern start */
+#define PSEND end_pattern /* Field containing pattern end */
#include "pcre_internal.h"
@@ -549,6 +549,7 @@ static const char error_texts[] =
"group name must start with a non-digit\0"
/* 85 */
"parentheses are too deeply nested (stack check)\0"
+ "digits missing in \\x{} or \\o{}\0"
;
/* Table to identify digits and hex digits. This is used when compiling
@@ -1259,6 +1260,7 @@ else
case CHAR_o:
if (ptr[1] != CHAR_LEFT_CURLY_BRACKET) *errorcodeptr = ERR81; else
+ if (ptr[2] == CHAR_RIGHT_CURLY_BRACKET) *errorcodeptr = ERR86; else
{
ptr += 2;
c = 0;
@@ -1328,6 +1330,11 @@ else
if (ptr[1] == CHAR_LEFT_CURLY_BRACKET)
{
ptr += 2;
+ if (*ptr == CHAR_RIGHT_CURLY_BRACKET)
+ {
+ *errorcodeptr = ERR86;
+ break;
+ }
c = 0;
overflow = FALSE;
while (MAX_255(*ptr) && (digitab[*ptr] & ctype_xdigit) != 0)
@@ -1583,29 +1590,29 @@ read_repeat_counts(const pcre_uchar *p, int *minp, int *maxp, int *errorcodeptr)
int min = 0;
int max = -1;
-/* Read the minimum value and do a paranoid check: a negative value indicates
-an integer overflow. */
-
-while (IS_DIGIT(*p)) min = min * 10 + (int)(*p++ - CHAR_0);
-if (min < 0 || min > 65535)
+while (IS_DIGIT(*p))
{
- *errorcodeptr = ERR5;
- return p;
+ min = min * 10 + (int)(*p++ - CHAR_0);
+ if (min > 65535)
+ {
+ *errorcodeptr = ERR5;
+ return p;
+ }
}
-/* Read the maximum value if there is one, and again do a paranoid on its size.
-Also, max must not be less than min. */
-
if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else
{
if (*(++p) != CHAR_RIGHT_CURLY_BRACKET)
{
max = 0;
- while(IS_DIGIT(*p)) max = max * 10 + (int)(*p++ - CHAR_0);
- if (max < 0 || max > 65535)
+ while(IS_DIGIT(*p))
{
- *errorcodeptr = ERR5;
- return p;
+ max = max * 10 + (int)(*p++ - CHAR_0);
+ if (max > 65535)
+ {
+ *errorcodeptr = ERR5;
+ return p;
+ }
}
if (max < min)
{
@@ -1615,9 +1622,6 @@ if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else
}
}
-/* Fill in the required variables, and pass back the pointer to the terminating
-'}'. */
-
*minp = min;
*maxp = max;
return p;
@@ -2125,32 +2129,60 @@ for (;;)
{
case OP_CHAR:
case OP_CHARI:
+ case OP_NOT:
+ case OP_NOTI:
case OP_EXACT:
case OP_EXACTI:
+ case OP_NOTEXACT:
+ case OP_NOTEXACTI:
case OP_UPTO:
case OP_UPTOI:
+ case OP_NOTUPTO:
+ case OP_NOTUPTOI:
case OP_MINUPTO:
case OP_MINUPTOI:
+ case OP_NOTMINUPTO:
+ case OP_NOTMINUPTOI:
case OP_POSUPTO:
case OP_POSUPTOI:
+ case OP_NOTPOSUPTO:
+ case OP_NOTPOSUPTOI:
case OP_STAR:
case OP_STARI:
+ case OP_NOTSTAR:
+ case OP_NOTSTARI:
case OP_MINSTAR:
case OP_MINSTARI:
+ case OP_NOTMINSTAR:
+ case OP_NOTMINSTARI:
case OP_POSSTAR:
case OP_POSSTARI:
+ case OP_NOTPOSSTAR:
+ case OP_NOTPOSSTARI:
case OP_PLUS:
case OP_PLUSI:
+ case OP_NOTPLUS:
+ case OP_NOTPLUSI:
case OP_MINPLUS:
case OP_MINPLUSI:
+ case OP_NOTMINPLUS:
+ case OP_NOTMINPLUSI:
case OP_POSPLUS:
case OP_POSPLUSI:
+ case OP_NOTPOSPLUS:
+ case OP_NOTPOSPLUSI:
case OP_QUERY:
case OP_QUERYI:
+ case OP_NOTQUERY:
+ case OP_NOTQUERYI:
case OP_MINQUERY:
case OP_MINQUERYI:
+ case OP_NOTMINQUERY:
+ case OP_NOTMINQUERYI:
case OP_POSQUERY:
case OP_POSQUERYI:
+ case OP_NOTPOSQUERY:
+ case OP_NOTPOSQUERYI:
if (HAS_EXTRALEN(code[-1])) code += GET_EXTRALEN(code[-1]);
break;
}
@@ -2393,12 +2425,12 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE);
do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT);
if (code >= scode && code <= endgroup) continue; /* Simple recursion */
else
- {
+ {
recurse_check *r = recurses;
for (r = recurses; r != NULL; r = r->prev)
if (r->group == scode) break;
if (r != NULL) continue; /* Mutual recursion */
- }
+ }
/* Completed reference; scan the referenced group, remembering it on the
stack chain to detect mutual recursions. */
@@ -3035,7 +3067,7 @@ switch(c)
end += 1 + 2 * IMM2_SIZE;
break;
}
- list[2] = end - code;
+ list[2] = (pcre_uint32)(end - code);
return end;
}
return NULL; /* Opcode not accepted */
@@ -3076,6 +3108,7 @@ const pcre_uint8 *class_bitset;
const pcre_uint8 *set1, *set2, *set_end;
pcre_uint32 chr;
BOOL accepted, invert_bits;
+BOOL entered_a_group = FALSE;
/* Note: the base_list[1] contains whether the current opcode has greedy
(represented by a non-zero value) quantifier. This is a different from
@@ -3129,8 +3162,10 @@ for(;;)
case OP_ONCE:
case OP_ONCE_NC:
/* Atomic sub-patterns and assertions can always auto-possessify their
- last iterator. */
- return TRUE;
+ last iterator. However, if the group was entered as a result of checking
+ a previous iterator, this is not possible. */
+
+ return !entered_a_group;
}
code += PRIV(OP_lengths)[c];
@@ -3149,6 +3184,8 @@ for(;;)
code = next_code + 1 + LINK_SIZE;
next_code += GET(next_code, 1);
}
+
+ entered_a_group = TRUE;
continue;
case OP_BRAZERO:
@@ -3168,6 +3205,9 @@ for(;;)
code += PRIV(OP_lengths)[c];
continue;
+
+ default:
+ break;
}
/* Check for a supported opcode, and load its properties. */
@@ -3406,8 +3446,7 @@ for(;;)
rightop >= FIRST_AUTOTAB_OP && rightop <= LAST_AUTOTAB_RIGHT_OP &&
autoposstab[leftop - FIRST_AUTOTAB_OP][rightop - FIRST_AUTOTAB_OP];
- if (!accepted)
- return FALSE;
+ if (!accepted) return FALSE;
if (list[1] == 0) return TRUE;
/* Might be an empty repeat. */
@@ -3599,6 +3638,14 @@ for (;;)
{
c = *code;
+ /* When a pattern with bad UTF-8 encoding is compiled with NO_UTF_CHECK,
+ it may compile without complaining, but may get into a loop here if the code
+ pointer points to a bad value. This is, of course a documentated possibility,
+ when NO_UTF_CHECK is set, so it isn't a bug, but we can detect this case and
+ just give up on this optimization. */
+
+ if (c >= OP_TABLE_LENGTH) return;
+
if (c >= OP_STAR && c <= OP_TYPEPOSUPTO)
{
c -= get_repeat_base(c) - OP_STAR;
@@ -3936,14 +3983,14 @@ Arguments:
adjust the amount by which the group is to be moved
utf TRUE in UTF-8 / UTF-16 / UTF-32 mode
cd contains pointers to tables etc.
- save_hwm the hwm forward reference pointer at the start of the group
+ save_hwm_offset the hwm forward reference offset at the start of the group
Returns: nothing
*/
static void
adjust_recurse(pcre_uchar *group, int adjust, BOOL utf, compile_data *cd,
- pcre_uchar *save_hwm)
+ size_t save_hwm_offset)
{
pcre_uchar *ptr = group;
@@ -3955,7 +4002,8 @@ while ((ptr = (pcre_uchar *)find_recurse(ptr, utf)) != NULL)
/* See if this recursion is on the forward reference list. If so, adjust the
reference. */
- for (hc = save_hwm; hc < cd->hwm; hc += LINK_SIZE)
+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm;
+ hc += LINK_SIZE)
{
offset = (int)GET(hc, 0);
if (cd->start_code + offset == ptr + 1)
@@ -4400,7 +4448,7 @@ const pcre_uchar *tempptr;
const pcre_uchar *nestptr = NULL;
pcre_uchar *previous = NULL;
pcre_uchar *previous_callout = NULL;
-pcre_uchar *save_hwm = NULL;
+size_t save_hwm_offset = 0;
pcre_uint8 classbits[32];
/* We can fish out the UTF-8 setting once and for all into a BOOL, but we
@@ -4680,7 +4728,8 @@ for (;; ptr++)
previous = NULL;
if ((options & PCRE_MULTILINE) != 0)
{
- if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE;
+ if (firstcharflags == REQ_UNSET)
+ zerofirstcharflags = firstcharflags = REQ_NONE;
*code++ = OP_CIRCM;
}
else *code++ = OP_CIRC;
@@ -4860,7 +4909,7 @@ for (;; ptr++)
if (lengthptr != NULL && class_uchardata > class_uchardata_base)
{
xclass = TRUE;
- *lengthptr += class_uchardata - class_uchardata_base;
+ *lengthptr += (int)(class_uchardata - class_uchardata_base);
class_uchardata = class_uchardata_base;
}
#endif
@@ -5310,7 +5359,7 @@ for (;; ptr++)
whatever repeat count may follow. In the case of reqchar, save the
previous value for reinstating. */
- if (class_one_char == 1 && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET)
+ if (!inescq && class_one_char == 1 && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET)
{
ptr++;
zeroreqchar = reqchar;
@@ -5912,7 +5961,7 @@ for (;; ptr++)
if (repeat_max <= 1) /* Covers 0, 1, and unlimited */
{
*code = OP_END;
- adjust_recurse(previous, 1, utf, cd, save_hwm);
+ adjust_recurse(previous, 1, utf, cd, save_hwm_offset);
memmove(previous + 1, previous, IN_UCHARS(len));
code++;
if (repeat_max == 0)
@@ -5936,7 +5985,7 @@ for (;; ptr++)
{
int offset;
*code = OP_END;
- adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm);
+ adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm_offset);
memmove(previous + 2 + LINK_SIZE, previous, IN_UCHARS(len));
code += 2 + LINK_SIZE;
*previous++ = OP_BRAZERO + repeat_type;
@@ -5999,26 +6048,25 @@ for (;; ptr++)
for (i = 1; i < repeat_min; i++)
{
pcre_uchar *hc;
- pcre_uchar *this_hwm = cd->hwm;
+ size_t this_hwm_offset = cd->hwm - cd->start_workspace;
memcpy(code, previous, IN_UCHARS(len));
while (cd->hwm > cd->start_workspace + cd->workspace_size -
- WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm))
+ WORK_SIZE_SAFETY_MARGIN -
+ (this_hwm_offset - save_hwm_offset))
{
- int save_offset = save_hwm - cd->start_workspace;
- int this_offset = this_hwm - cd->start_workspace;
*errorcodeptr = expand_workspace(cd);
if (*errorcodeptr != 0) goto FAILED;
- save_hwm = (pcre_uchar *)cd->start_workspace + save_offset;
- this_hwm = (pcre_uchar *)cd->start_workspace + this_offset;
}
- for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE)
+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset;
+ hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset;
+ hc += LINK_SIZE)
{
PUT(cd->hwm, 0, GET(hc, 0) + len);
cd->hwm += LINK_SIZE;
}
- save_hwm = this_hwm;
+ save_hwm_offset = this_hwm_offset;
code += len;
}
}
@@ -6063,7 +6111,7 @@ for (;; ptr++)
else for (i = repeat_max - 1; i >= 0; i--)
{
pcre_uchar *hc;
- pcre_uchar *this_hwm = cd->hwm;
+ size_t this_hwm_offset = cd->hwm - cd->start_workspace;
*code++ = OP_BRAZERO + repeat_type;
@@ -6085,22 +6133,21 @@ for (;; ptr++)
copying them. */
while (cd->hwm > cd->start_workspace + cd->workspace_size -
- WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm))
+ WORK_SIZE_SAFETY_MARGIN -
+ (this_hwm_offset - save_hwm_offset))
{
- int save_offset = save_hwm - cd->start_workspace;
- int this_offset = this_hwm - cd->start_workspace;
*errorcodeptr = expand_workspace(cd);
if (*errorcodeptr != 0) goto FAILED;
- save_hwm = (pcre_uchar *)cd->start_workspace + save_offset;
- this_hwm = (pcre_uchar *)cd->start_workspace + this_offset;
}
- for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE)
+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset;
+ hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset;
+ hc += LINK_SIZE)
{
PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1));
cd->hwm += LINK_SIZE;
}
- save_hwm = this_hwm;
+ save_hwm_offset = this_hwm_offset;
code += len;
}
@@ -6196,7 +6243,7 @@ for (;; ptr++)
{
int nlen = (int)(code - bracode);
*code = OP_END;
- adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm);
+ adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm_offset);
memmove(bracode + 1 + LINK_SIZE, bracode, IN_UCHARS(nlen));
code += 1 + LINK_SIZE;
nlen += 1 + LINK_SIZE;
@@ -6330,7 +6377,7 @@ for (;; ptr++)
else
{
*code = OP_END;
- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm);
+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset);
memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len));
code += 1 + LINK_SIZE;
len += 1 + LINK_SIZE;
@@ -6379,7 +6426,7 @@ for (;; ptr++)
default:
*code = OP_END;
- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm);
+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset);
memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len));
code += 1 + LINK_SIZE;
len += 1 + LINK_SIZE;
@@ -6411,7 +6458,7 @@ for (;; ptr++)
newoptions = options;
skipbytes = 0;
bravalue = OP_CBRA;
- save_hwm = cd->hwm;
+ save_hwm_offset = cd->hwm - cd->start_workspace;
reset_bracount = FALSE;
/* First deal with various "verbs" that can be introduced by '*'. */
@@ -6609,7 +6656,10 @@ for (;; ptr++)
(tempptr[2] == CHAR_EQUALS_SIGN ||
tempptr[2] == CHAR_EXCLAMATION_MARK ||
tempptr[2] == CHAR_LESS_THAN_SIGN))
+ {
+ cd->iscondassert = TRUE;
break;
+ }
/* Other conditions use OP_CREF/OP_DNCREF/OP_RREF/OP_DNRREF, and all
need to skip at least 1+IMM2_SIZE bytes at the start of the group. */
@@ -6722,6 +6772,7 @@ for (;; ptr++)
goto FAILED;
}
PUT2(code, 2+LINK_SIZE, recno);
+ if (recno > cd->top_backref) cd->top_backref = recno;
break;
}
@@ -6744,12 +6795,15 @@ for (;; ptr++)
int offset = i++;
int count = 1;
recno = GET2(slot, 0); /* Number from first found */
+ if (recno > cd->top_backref) cd->top_backref = recno;
for (; i < cd->names_found; i++)
{
slot += cd->name_entry_size;
- if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) != 0) break;
+ if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) != 0 ||
+ (slot+IMM2_SIZE)[namelen] != 0) break;
count++;
}
+
if (count > 1)
{
PUT2(code, 2+LINK_SIZE, offset);
@@ -7098,6 +7152,12 @@ for (;; ptr++)
/* Count named back references. */
if (!is_recurse) cd->namedrefcount++;
+
+ /* We have to allow for a named reference to a duplicated name (this
+ cannot be determined until the second pass). This needs an extra
+ 16-bit data item. */
+
+ *lengthptr += IMM2_SIZE;
}
/* In the real compile, search the name table. We check the name
@@ -7144,6 +7204,8 @@ for (;; ptr++)
for (i++; i < cd->names_found; i++)
{
if (STRCMP_UC_UC(slot + IMM2_SIZE, cslot + IMM2_SIZE) != 0) break;
+
+
count++;
cslot += cd->name_entry_size;
}
@@ -7452,12 +7514,22 @@ for (;; ptr++)
goto FAILED;
}
- /* Assertions used not to be repeatable, but this was changed for Perl
- compatibility, so all kinds can now be repeated. We copy code into a
+ /* All assertions used not to be repeatable, but this was changed for Perl
+ compatibility. All kinds can now be repeated except for assertions that are
+ conditions (Perl also forbids these to be repeated). We copy code into a
non-register variable (tempcode) in order to be able to pass its address
- because some compilers complain otherwise. */
+ because some compilers complain otherwise. At the start of a conditional
+ group whose condition is an assertion, cd->iscondassert is set. We unset it
+ here so as to allow assertions later in the group to be quantified. */
+
+ if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT &&
+ cd->iscondassert)
+ {
+ previous = NULL;
+ cd->iscondassert = FALSE;
+ }
+ else previous = code;
- previous = code; /* For handling repetition */
*code = bravalue;
tempcode = code;
tempreqvary = cd->req_varyopt; /* Save value before bracket */
@@ -7704,7 +7776,7 @@ for (;; ptr++)
const pcre_uchar *p;
pcre_uint32 cf;
- save_hwm = cd->hwm; /* Normally this is set when '(' is read */
+ save_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */
terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)?
CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE;
@@ -8031,6 +8103,7 @@ int length;
unsigned int orig_bracount;
unsigned int max_bracount;
branch_chain bc;
+size_t save_hwm_offset;
/* If set, call the external function that checks for stack availability. */
@@ -8048,6 +8121,8 @@ bc.current_branch = code;
firstchar = reqchar = 0;
firstcharflags = reqcharflags = REQ_UNSET;
+save_hwm_offset = cd->hwm - cd->start_workspace;
+
/* Accumulate the length for use in the pre-compile phase. Start with the
length of the BRA and KET and any extra bytes that are required at the
beginning. We accumulate in a local variable to save frequent testing of
@@ -8250,7 +8325,7 @@ for (;;)
{
*code = OP_END;
adjust_recurse(start_bracket, 1 + LINK_SIZE,
- (options & PCRE_UTF8) != 0, cd, cd->hwm);
+ (options & PCRE_UTF8) != 0, cd, save_hwm_offset);
memmove(start_bracket + 1 + LINK_SIZE, start_bracket,
IN_UCHARS(code - start_bracket));
*start_bracket = OP_ONCE;
@@ -9058,6 +9133,7 @@ cd->dupnames = FALSE;
cd->namedrefcount = 0;
cd->start_code = cworkspace;
cd->hwm = cworkspace;
+cd->iscondassert = FALSE;
cd->start_workspace = cworkspace;
cd->workspace_size = COMPILE_WORK_SIZE;
cd->named_groups = named_groups;
@@ -9095,13 +9171,6 @@ if (length > MAX_PATTERN_SIZE)
goto PCRE_EARLY_ERROR_RETURN;
}
-/* If there are groups with duplicate names and there are also references by
-name, we must allow for the possibility of named references to duplicated
-groups. These require an extra data item each. */
-
-if (cd->dupnames && cd->namedrefcount > 0)
- length += cd->namedrefcount * IMM2_SIZE * sizeof(pcre_uchar);
-
/* Compute the size of the data block for storing the compiled pattern. Integer
overflow should no longer be possible because nowadays we limit the maximum
value of cd->names_found and cd->name_entry_size. */
@@ -9160,6 +9229,7 @@ cd->name_table = (pcre_uchar *)re + re->name_table_offset;
codestart = cd->name_table + re->name_entry_size * re->name_count;
cd->start_code = codestart;
cd->hwm = (pcre_uchar *)(cd->start_workspace);
+cd->iscondassert = FALSE;
cd->req_varyopt = 0;
cd->had_accept = FALSE;
cd->had_pruneorskip = FALSE;
@@ -9255,11 +9325,18 @@ subpattern. */
if (errorcode == 0 && re->top_backref > re->top_bracket) errorcode = ERR15;
-/* Unless disabled, check whether single character iterators can be
-auto-possessified. The function overwrites the appropriate opcode values. */
+/* Unless disabled, check whether any single character iterators can be
+auto-possessified. The function overwrites the appropriate opcode values, so
+the type of the pointer must be cast. NOTE: the intermediate variable "temp" is
+used in this code because at least one compiler gives a warning about loss of
+"const" attribute if the cast (pcre_uchar *)codestart is used directly in the
+function call. */
if ((options & PCRE_NO_AUTO_POSSESS) == 0)
- auto_possessify((pcre_uchar *)codestart, utf, cd);
+ {
+ pcre_uchar *temp = (pcre_uchar *)codestart;
+ auto_possessify(temp, utf, cd);
+ }
/* If there were any lookbehind assertions that contained OP_RECURSE
(recursions or subroutine calls), a flag is set for them to be checked here,
diff --git a/src/3rdparty/pcre/pcre_dfa_exec.c b/src/3rdparty/pcre/pcre_dfa_exec.c
index fb0c7e805d..87f4aef9ab 100644
--- a/src/3rdparty/pcre/pcre_dfa_exec.c
+++ b/src/3rdparty/pcre/pcre_dfa_exec.c
@@ -3242,7 +3242,7 @@ md->callout_data = NULL;
if (extra_data != NULL)
{
- unsigned int flags = extra_data->flags;
+ unsigned long int flags = extra_data->flags;
if ((flags & PCRE_EXTRA_STUDY_DATA) != 0)
study = (const pcre_study_data *)extra_data->study_data;
if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) return PCRE_ERROR_DFA_UMLIMIT;
diff --git a/src/3rdparty/pcre/pcre_exec.c b/src/3rdparty/pcre/pcre_exec.c
index fe3e640cc4..788cc76849 100644
--- a/src/3rdparty/pcre/pcre_exec.c
+++ b/src/3rdparty/pcre/pcre_exec.c
@@ -1136,88 +1136,81 @@ for (;;)
printf("\n");
#endif
- if (offset < md->offset_max)
- {
- matched_once = FALSE;
- code_offset = (int)(ecode - md->start_code);
-
- save_offset1 = md->offset_vector[offset];
- save_offset2 = md->offset_vector[offset+1];
- save_offset3 = md->offset_vector[md->offset_end - number];
- save_capture_last = md->capture_last;
+ if (offset >= md->offset_max) goto POSSESSIVE_NON_CAPTURE;
- DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3));
+ matched_once = FALSE;
+ code_offset = (int)(ecode - md->start_code);
- /* Each time round the loop, save the current subject position for use
- when the group matches. For MATCH_MATCH, the group has matched, so we
- restart it with a new subject starting position, remembering that we had
- at least one match. For MATCH_NOMATCH, carry on with the alternatives, as
- usual. If we haven't matched any alternatives in any iteration, check to
- see if a previous iteration matched. If so, the group has matched;
- continue from afterwards. Otherwise it has failed; restore the previous
- capture values before returning NOMATCH. */
+ save_offset1 = md->offset_vector[offset];
+ save_offset2 = md->offset_vector[offset+1];
+ save_offset3 = md->offset_vector[md->offset_end - number];
+ save_capture_last = md->capture_last;
- for (;;)
- {
- md->offset_vector[md->offset_end - number] =
- (int)(eptr - md->start_subject);
- if (op >= OP_SBRA) md->match_function_type = MATCH_CBEGROUP;
- RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md,
- eptrb, RM63);
- if (rrc == MATCH_KETRPOS)
- {
- offset_top = md->end_offset_top;
- eptr = md->end_match_ptr;
- ecode = md->start_code + code_offset;
- save_capture_last = md->capture_last;
- matched_once = TRUE;
- mstart = md->start_match_ptr; /* In case \K changed it */
- continue;
- }
+ DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3));
- /* See comment in the code for capturing groups above about handling
- THEN. */
+ /* Each time round the loop, save the current subject position for use
+ when the group matches. For MATCH_MATCH, the group has matched, so we
+ restart it with a new subject starting position, remembering that we had
+ at least one match. For MATCH_NOMATCH, carry on with the alternatives, as
+ usual. If we haven't matched any alternatives in any iteration, check to
+ see if a previous iteration matched. If so, the group has matched;
+ continue from afterwards. Otherwise it has failed; restore the previous
+ capture values before returning NOMATCH. */
- if (rrc == MATCH_THEN)
+ for (;;)
+ {
+ md->offset_vector[md->offset_end - number] =
+ (int)(eptr - md->start_subject);
+ if (op >= OP_SBRA) md->match_function_type = MATCH_CBEGROUP;
+ RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md,
+ eptrb, RM63);
+ if (rrc == MATCH_KETRPOS)
+ {
+ offset_top = md->end_offset_top;
+ ecode = md->start_code + code_offset;
+ save_capture_last = md->capture_last;
+ matched_once = TRUE;
+ mstart = md->start_match_ptr; /* In case \K changed it */
+ if (eptr == md->end_match_ptr) /* Matched an empty string */
{
- next = ecode + GET(ecode,1);
- if (md->start_match_ptr < next &&
- (*ecode == OP_ALT || *next == OP_ALT))
- rrc = MATCH_NOMATCH;
+ do ecode += GET(ecode, 1); while (*ecode == OP_ALT);
+ break;
}
-
- if (rrc != MATCH_NOMATCH) RRETURN(rrc);
- md->capture_last = save_capture_last;
- ecode += GET(ecode, 1);
- if (*ecode != OP_ALT) break;
+ eptr = md->end_match_ptr;
+ continue;
}
- if (!matched_once)
- {
- md->offset_vector[offset] = save_offset1;
- md->offset_vector[offset+1] = save_offset2;
- md->offset_vector[md->offset_end - number] = save_offset3;
- }
+ /* See comment in the code for capturing groups above about handling
+ THEN. */
- if (allow_zero || matched_once)
+ if (rrc == MATCH_THEN)
{
- ecode += 1 + LINK_SIZE;
- break;
+ next = ecode + GET(ecode,1);
+ if (md->start_match_ptr < next &&
+ (*ecode == OP_ALT || *next == OP_ALT))
+ rrc = MATCH_NOMATCH;
}
- RRETURN(MATCH_NOMATCH);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ md->capture_last = save_capture_last;
+ ecode += GET(ecode, 1);
+ if (*ecode != OP_ALT) break;
}
- /* FALL THROUGH ... Insufficient room for saving captured contents. Treat
- as a non-capturing bracket. */
-
- /* VVVVVVVVVVVVVVVVVVVVVVVVV */
- /* VVVVVVVVVVVVVVVVVVVVVVVVV */
+ if (!matched_once)
+ {
+ md->offset_vector[offset] = save_offset1;
+ md->offset_vector[offset+1] = save_offset2;
+ md->offset_vector[md->offset_end - number] = save_offset3;
+ }
- DPRINTF(("insufficient capture room: treat as non-capturing\n"));
+ if (allow_zero || matched_once)
+ {
+ ecode += 1 + LINK_SIZE;
+ break;
+ }
- /* VVVVVVVVVVVVVVVVVVVVVVVVV */
- /* VVVVVVVVVVVVVVVVVVVVVVVVV */
+ RRETURN(MATCH_NOMATCH);
/* Non-capturing possessive bracket with unlimited repeat. We come here
from BRAZERO with allow_zero = TRUE. The code is similar to the above,
@@ -1241,10 +1234,15 @@ for (;;)
if (rrc == MATCH_KETRPOS)
{
offset_top = md->end_offset_top;
- eptr = md->end_match_ptr;
ecode = md->start_code + code_offset;
matched_once = TRUE;
mstart = md->start_match_ptr; /* In case \K reset it */
+ if (eptr == md->end_match_ptr) /* Matched an empty string */
+ {
+ do ecode += GET(ecode, 1); while (*ecode == OP_ALT);
+ break;
+ }
+ eptr = md->end_match_ptr;
continue;
}
@@ -1394,11 +1392,11 @@ for (;;)
condition = TRUE;
/* Advance ecode past the assertion to the start of the first branch,
- but adjust it so that the general choosing code below works. If the
- assertion has a quantifier that allows zero repeats we must skip over
+ but adjust it so that the general choosing code below works. If the
+ assertion has a quantifier that allows zero repeats we must skip over
the BRAZERO. This is a lunatic thing to do, but somebody did! */
-
- if (*ecode == OP_BRAZERO) ecode++;
+
+ if (*ecode == OP_BRAZERO) ecode++;
ecode += GET(ecode, 1);
while (*ecode == OP_ALT) ecode += GET(ecode, 1);
ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode];
@@ -1467,7 +1465,18 @@ for (;;)
md->offset_vector[offset] =
md->offset_vector[md->offset_end - number];
md->offset_vector[offset+1] = (int)(eptr - md->start_subject);
- if (offset_top <= offset) offset_top = offset + 2;
+
+ /* If this group is at or above the current highwater mark, ensure that
+ any groups between the current high water mark and this group are marked
+ unset and then update the high water mark. */
+
+ if (offset >= offset_top)
+ {
+ register int *iptr = md->offset_vector + offset_top;
+ register int *iend = md->offset_vector + offset;
+ while (iptr < iend) *iptr++ = -1;
+ offset_top = offset + 2;
+ }
}
ecode += 1 + IMM2_SIZE;
break;
@@ -1819,7 +1828,11 @@ for (;;)
are defined in a range that can be tested for. */
if (rrc >= MATCH_BACKTRACK_MIN && rrc <= MATCH_BACKTRACK_MAX)
+ {
+ if (new_recursive.offset_save != stacksave)
+ (PUBL(free))(new_recursive.offset_save);
RRETURN(MATCH_NOMATCH);
+ }
/* Any return code other than NOMATCH is an error. */
@@ -1982,6 +1995,19 @@ for (;;)
}
}
+ /* OP_KETRPOS is a possessive repeating ket. Remember the current position,
+ and return the MATCH_KETRPOS. This makes it possible to do the repeats one
+ at a time from the outer level, thus saving stack. This must precede the
+ empty string test - in this case that test is done at the outer level. */
+
+ if (*ecode == OP_KETRPOS)
+ {
+ md->start_match_ptr = mstart; /* In case \K reset it */
+ md->end_match_ptr = eptr;
+ md->end_offset_top = offset_top;
+ RRETURN(MATCH_KETRPOS);
+ }
+
/* For an ordinary non-repeating ket, just continue at this level. This
also happens for a repeating ket if no characters were matched in the
group. This is the forcible breaking of infinite loops as implemented in
@@ -2004,18 +2030,6 @@ for (;;)
break;
}
- /* OP_KETRPOS is a possessive repeating ket. Remember the current position,
- and return the MATCH_KETRPOS. This makes it possible to do the repeats one
- at a time from the outer level, thus saving stack. */
-
- if (*ecode == OP_KETRPOS)
- {
- md->start_match_ptr = mstart; /* In case \K reset it */
- md->end_match_ptr = eptr;
- md->end_offset_top = offset_top;
- RRETURN(MATCH_KETRPOS);
- }
-
/* The normal repeating kets try the rest of the pattern or restart from
the preceding bracket, in the appropriate order. In the second case, we can
use tail recursion to avoid using another stack frame, unless we have an
@@ -5684,54 +5698,25 @@ for (;;)
switch(ctype)
{
case OP_ANY:
- if (max < INT_MAX)
+ for (i = min; i < max; i++)
{
- for (i = min; i < max; i++)
+ if (eptr >= md->end_subject)
{
- if (eptr >= md->end_subject)
- {
- SCHECK_PARTIAL();
- break;
- }
- if (IS_NEWLINE(eptr)) break;
- if (md->partial != 0 && /* Take care with CRLF partial */
- eptr + 1 >= md->end_subject &&
- NLBLOCK->nltype == NLTYPE_FIXED &&
- NLBLOCK->nllen == 2 &&
- UCHAR21(eptr) == NLBLOCK->nl[0])
- {
- md->hitend = TRUE;
- if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
- }
- eptr++;
- ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);
+ SCHECK_PARTIAL();
+ break;
}
- }
-
- /* Handle unlimited UTF-8 repeat */
-
- else
- {
- for (i = min; i < max; i++)
+ if (IS_NEWLINE(eptr)) break;
+ if (md->partial != 0 && /* Take care with CRLF partial */
+ eptr + 1 >= md->end_subject &&
+ NLBLOCK->nltype == NLTYPE_FIXED &&
+ NLBLOCK->nllen == 2 &&
+ UCHAR21(eptr) == NLBLOCK->nl[0])
{
- if (eptr >= md->end_subject)
- {
- SCHECK_PARTIAL();
- break;
- }
- if (IS_NEWLINE(eptr)) break;
- if (md->partial != 0 && /* Take care with CRLF partial */
- eptr + 1 >= md->end_subject &&
- NLBLOCK->nltype == NLTYPE_FIXED &&
- NLBLOCK->nllen == 2 &&
- UCHAR21(eptr) == NLBLOCK->nl[0])
- {
- md->hitend = TRUE;
- if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
- }
- eptr++;
- ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);
+ md->hitend = TRUE;
+ if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
}
+ eptr++;
+ ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);
}
break;
@@ -6522,7 +6507,7 @@ tables = re->tables;
if (extra_data != NULL)
{
- register unsigned int flags = extra_data->flags;
+ unsigned long int flags = extra_data->flags;
if ((flags & PCRE_EXTRA_STUDY_DATA) != 0)
study = (const pcre_study_data *)extra_data->study_data;
if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0)
diff --git a/src/3rdparty/pcre/pcre_internal.h b/src/3rdparty/pcre/pcre_internal.h
index 6e915a0e45..1c5f4cefd6 100644
--- a/src/3rdparty/pcre/pcre_internal.h
+++ b/src/3rdparty/pcre/pcre_internal.h
@@ -2281,7 +2281,7 @@ enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR5, ERR6, ERR7, ERR8, ERR9,
ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59,
ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69,
ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79,
- ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERRCOUNT };
+ ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT };
/* JIT compiling modes. The function list is indexed by them. */
@@ -2446,6 +2446,7 @@ typedef struct compile_data {
BOOL had_pruneorskip; /* (*PRUNE) or (*SKIP) encountered */
BOOL check_lookbehind; /* Lookbehinds need later checking */
BOOL dupnames; /* Duplicate names exist */
+ BOOL iscondassert; /* Next assert is a condition */
int nltype; /* Newline type */
int nllen; /* Newline string length */
pcre_uchar nl[4]; /* Newline string when fixed length */
diff --git a/src/3rdparty/pcre/pcre_jit_compile.c b/src/3rdparty/pcre/pcre_jit_compile.c
index e67071ef79..46ce0975a9 100644
--- a/src/3rdparty/pcre/pcre_jit_compile.c
+++ b/src/3rdparty/pcre/pcre_jit_compile.c
@@ -52,8 +52,8 @@ POSSIBILITY OF SUCH DAMAGE.
we just include it. This way we don't need to touch the build
system files. */
-#define SLJIT_MALLOC(size) (PUBL(malloc))(size)
-#define SLJIT_FREE(ptr) (PUBL(free))(ptr)
+#define SLJIT_MALLOC(size, allocator_data) (PUBL(malloc))(size)
+#define SLJIT_FREE(ptr, allocator_data) (PUBL(free))(ptr)
#define SLJIT_CONFIG_AUTO 1
#define SLJIT_CONFIG_STATIC 1
#define SLJIT_VERBOSE 0
@@ -179,7 +179,7 @@ typedef struct jit_arguments {
typedef struct executable_functions {
void *executable_funcs[JIT_NUMBER_OF_COMPILE_MODES];
- sljit_uw *read_only_data[JIT_NUMBER_OF_COMPILE_MODES];
+ void *read_only_data_heads[JIT_NUMBER_OF_COMPILE_MODES];
sljit_uw executable_sizes[JIT_NUMBER_OF_COMPILE_MODES];
PUBL(jit_callback) callback;
void *userdata;
@@ -200,7 +200,7 @@ typedef struct stub_list {
typedef struct label_addr_list {
struct sljit_label *label;
- sljit_uw *addr;
+ sljit_uw *update_addr;
struct label_addr_list *next;
} label_addr_list;
@@ -322,12 +322,8 @@ typedef struct compiler_common {
pcre_uchar *start;
/* Maps private data offset to each opcode. */
sljit_si *private_data_ptrs;
- /* This read-only data is available during runtime. */
- sljit_uw *read_only_data;
- /* The total size of the read-only data. */
- sljit_uw read_only_data_size;
- /* The next free entry of the read_only_data. */
- sljit_uw *read_only_data_ptr;
+ /* Chain list of read-only data ptrs. */
+ void *read_only_data_head;
/* Tells whether the capturing bracket is optimized. */
pcre_uint8 *optimized_cbracket;
/* Tells whether the starting offset is a target of then. */
@@ -475,16 +471,16 @@ typedef struct compare_context {
/* Used for accessing the elements of the stack. */
#define STACK(i) ((-(i) - 1) * (int)sizeof(sljit_sw))
-#define TMP1 SLJIT_SCRATCH_REG1
-#define TMP2 SLJIT_SCRATCH_REG3
-#define TMP3 SLJIT_TEMPORARY_EREG2
-#define STR_PTR SLJIT_SAVED_REG1
-#define STR_END SLJIT_SAVED_REG2
-#define STACK_TOP SLJIT_SCRATCH_REG2
-#define STACK_LIMIT SLJIT_SAVED_REG3
-#define ARGUMENTS SLJIT_SAVED_EREG1
-#define COUNT_MATCH SLJIT_SAVED_EREG2
-#define RETURN_ADDR SLJIT_TEMPORARY_EREG1
+#define TMP1 SLJIT_R0
+#define TMP2 SLJIT_R2
+#define TMP3 SLJIT_R3
+#define STR_PTR SLJIT_S0
+#define STR_END SLJIT_S1
+#define STACK_TOP SLJIT_R1
+#define STACK_LIMIT SLJIT_S2
+#define COUNT_MATCH SLJIT_S3
+#define ARGUMENTS SLJIT_S4
+#define RETURN_ADDR SLJIT_R4
/* Local space layout. */
/* These two locals can be used by the current opcode. */
@@ -545,7 +541,7 @@ the start pointers when the end of the capturing group has not yet reached. */
#define READ_CHAR_MAX 0x7fffffff
-static pcre_uchar* bracketend(pcre_uchar* cc)
+static pcre_uchar *bracketend(pcre_uchar *cc)
{
SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NOT) || (*cc >= OP_ONCE && *cc <= OP_SCOND));
do cc += GET(cc, 1); while (*cc == OP_ALT);
@@ -554,7 +550,7 @@ cc += 1 + LINK_SIZE;
return cc;
}
-static int no_alternatives(pcre_uchar* cc)
+static int no_alternatives(pcre_uchar *cc)
{
int count = 0;
SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NOT) || (*cc >= OP_ONCE && *cc <= OP_SCOND));
@@ -802,16 +798,6 @@ while (cc < ccend)
cc += 1 + IMM2_SIZE;
break;
- case OP_BRA:
- case OP_CBRA:
- case OP_SBRA:
- case OP_SCBRA:
- count = no_alternatives(cc);
- if (count > 4)
- common->read_only_data_size += count * sizeof(sljit_uw);
- cc += 1 + LINK_SIZE + (*cc == OP_CBRA || *cc == OP_SCBRA ? IMM2_SIZE : 0);
- break;
-
case OP_CBRAPOS:
case OP_SCBRAPOS:
common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] = 0;
@@ -1237,7 +1223,7 @@ while (cc < ccend)
}
/* Returns with a frame_types (always < 0) if no need for frame. */
-static int get_framesize(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, BOOL recursive, BOOL* needs_control_head)
+static int get_framesize(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, BOOL recursive, BOOL *needs_control_head)
{
int length = 0;
int possessive = 0;
@@ -1441,7 +1427,7 @@ while (cc < ccend)
SLJIT_ASSERT(common->has_set_som);
if (!setsom_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -OVECTOR(0));
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1457,7 +1443,7 @@ while (cc < ccend)
SLJIT_ASSERT(common->mark_ptr != 0);
if (!setmark_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->mark_ptr);
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1470,7 +1456,7 @@ while (cc < ccend)
case OP_RECURSE:
if (common->has_set_som && !setsom_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -OVECTOR(0));
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1479,7 +1465,7 @@ while (cc < ccend)
}
if (common->mark_ptr != 0 && !setmark_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->mark_ptr);
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1488,7 +1474,7 @@ while (cc < ccend)
}
if (common->capture_last_ptr != 0 && !capture_last_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->capture_last_ptr);
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1504,7 +1490,7 @@ while (cc < ccend)
case OP_SCBRAPOS:
if (common->capture_last_ptr != 0 && !capture_last_found)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->capture_last_ptr);
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
@@ -1514,8 +1500,8 @@ while (cc < ccend)
offset = (GET2(cc, 1 + LINK_SIZE)) << 1;
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, OVECTOR(offset));
stackpos += (int)sizeof(sljit_sw);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
stackpos += (int)sizeof(sljit_sw);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP2, 0);
@@ -1895,7 +1881,7 @@ do
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP1, 0);
stackptr += sizeof(sljit_sw);
}
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count]);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), srcw[count]);
tmp1empty = FALSE;
tmp1next = FALSE;
}
@@ -1906,7 +1892,7 @@ do
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP2, 0);
stackptr += sizeof(sljit_sw);
}
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count]);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), srcw[count]);
tmp2empty = FALSE;
tmp1next = TRUE;
}
@@ -1916,7 +1902,7 @@ do
if (tmp1next)
{
SLJIT_ASSERT(!tmp1empty);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count], TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), srcw[count], TMP1, 0);
tmp1empty = stackptr >= stacktop;
if (!tmp1empty)
{
@@ -1928,7 +1914,7 @@ do
else
{
SLJIT_ASSERT(!tmp2empty);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count], TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), srcw[count], TMP2, 0);
tmp2empty = stackptr >= stacktop;
if (!tmp2empty)
{
@@ -2030,7 +2016,7 @@ while (list)
}
}
-static SLJIT_INLINE void add_jump(struct sljit_compiler *compiler, jump_list **list, struct sljit_jump* jump)
+static SLJIT_INLINE void add_jump(struct sljit_compiler *compiler, jump_list **list, struct sljit_jump *jump)
{
jump_list *list_item = sljit_alloc_memory(compiler, sizeof(jump_list));
if (list_item)
@@ -2044,7 +2030,7 @@ if (list_item)
static void add_stub(compiler_common *common, struct sljit_jump *start)
{
DEFINE_COMPILER;
-stub_list* list_item = sljit_alloc_memory(compiler, sizeof(stub_list));
+stub_list *list_item = sljit_alloc_memory(compiler, sizeof(stub_list));
if (list_item)
{
@@ -2058,7 +2044,7 @@ if (list_item)
static void flush_stubs(compiler_common *common)
{
DEFINE_COMPILER;
-stub_list* list_item = common->stubs;
+stub_list *list_item = common->stubs;
while (list_item)
{
@@ -2070,7 +2056,7 @@ while (list_item)
common->stubs = NULL;
}
-static void add_label_addr(compiler_common *common)
+static void add_label_addr(compiler_common *common, sljit_uw *update_addr)
{
DEFINE_COMPILER;
label_addr_list *label_addr;
@@ -2079,10 +2065,9 @@ label_addr = sljit_alloc_memory(compiler, sizeof(label_addr_list));
if (label_addr == NULL)
return;
label_addr->label = LABEL();
-label_addr->addr = common->read_only_data_ptr;
+label_addr->update_addr = update_addr;
label_addr->next = common->label_addrs;
common->label_addrs = label_addr;
-common->read_only_data_ptr++;
}
static SLJIT_INLINE void count_match(compiler_common *common)
@@ -2090,7 +2075,7 @@ static SLJIT_INLINE void count_match(compiler_common *common)
DEFINE_COMPILER;
OP2(SLJIT_SUB | SLJIT_SET_E, COUNT_MATCH, 0, COUNT_MATCH, 0, SLJIT_IMM, 1);
-add_jump(compiler, &common->calllimit, JUMP(SLJIT_C_ZERO));
+add_jump(compiler, &common->calllimit, JUMP(SLJIT_ZERO));
}
static SLJIT_INLINE void allocate_stack(compiler_common *common, int size)
@@ -2103,10 +2088,10 @@ OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_sw));
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 12345);
OP1(SLJIT_MOV, TMP3, 0, TMP1, 0);
OP1(SLJIT_MOV, RETURN_ADDR, 0, TMP1, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, TMP1, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP1, 0);
#endif
-add_stub(common, CMP(SLJIT_C_GREATER, STACK_TOP, 0, STACK_LIMIT, 0));
+add_stub(common, CMP(SLJIT_GREATER, STACK_TOP, 0, STACK_LIMIT, 0));
}
static SLJIT_INLINE void free_stack(compiler_common *common, int size)
@@ -2115,6 +2100,40 @@ DEFINE_COMPILER;
OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_sw));
}
+static sljit_uw * allocate_read_only_data(compiler_common *common, sljit_uw size)
+{
+DEFINE_COMPILER;
+sljit_uw *result;
+
+if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
+ return NULL;
+
+result = (sljit_uw *)SLJIT_MALLOC(size + sizeof(sljit_uw), common->allocator_data);
+if (SLJIT_UNLIKELY(result == NULL))
+ {
+ sljit_set_compiler_memory_error(compiler);
+ return NULL;
+ }
+
+*(void**)result = common->read_only_data_head;
+common->read_only_data_head = (void *)result;
+return result + 1;
+}
+
+static void free_read_only_data(void *current, void *allocator_data)
+{
+void *next;
+
+SLJIT_UNUSED_ARG(allocator_data);
+
+while (current != NULL)
+ {
+ next = *(void**)current;
+ SLJIT_FREE(current, allocator_data);
+ current = next;
+ }
+}
+
static SLJIT_INLINE void reset_ovector(compiler_common *common, int length)
{
DEFINE_COMPILER;
@@ -2124,20 +2143,20 @@ int i;
/* At this point we can freely use all temporary registers. */
SLJIT_ASSERT(length > 1);
/* TMP1 returns with begin - 1. */
-OP2(SLJIT_SUB, SLJIT_SCRATCH_REG1, 0, SLJIT_MEM1(SLJIT_SAVED_REG1), SLJIT_OFFSETOF(jit_arguments, begin), SLJIT_IMM, IN_UCHARS(1));
+OP2(SLJIT_SUB, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S0), SLJIT_OFFSETOF(jit_arguments, begin), SLJIT_IMM, IN_UCHARS(1));
if (length < 8)
{
for (i = 1; i < length; i++)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(i), SLJIT_SCRATCH_REG1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(i), SLJIT_R0, 0);
}
else
{
- GET_LOCAL_BASE(SLJIT_SCRATCH_REG2, 0, OVECTOR_START);
- OP1(SLJIT_MOV, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, length - 1);
+ GET_LOCAL_BASE(SLJIT_R1, 0, OVECTOR_START);
+ OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, length - 1);
loop = LABEL();
- OP1(SLJIT_MOVU, SLJIT_MEM1(SLJIT_SCRATCH_REG2), sizeof(sljit_sw), SLJIT_SCRATCH_REG1, 0);
- OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_SCRATCH_REG3, 0, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, loop);
+ OP1(SLJIT_MOVU, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw), SLJIT_R0, 0);
+ OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, 1);
+ JUMPTO(SLJIT_NOT_ZERO, loop);
}
}
@@ -2150,11 +2169,11 @@ int i;
SLJIT_ASSERT(length > 1);
/* OVECTOR(1) contains the "string begin - 1" constant. */
if (length > 2)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1));
if (length < 8)
{
for (i = 2; i < length; i++)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(i), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(i), TMP1, 0);
}
else
{
@@ -2163,16 +2182,16 @@ else
loop = LABEL();
OP1(SLJIT_MOVU, SLJIT_MEM1(TMP2), sizeof(sljit_sw), TMP1, 0);
OP2(SLJIT_SUB | SLJIT_SET_E, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, loop);
+ JUMPTO(SLJIT_NOT_ZERO, loop);
}
OP1(SLJIT_MOV, STACK_TOP, 0, ARGUMENTS, 0);
if (common->mark_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, SLJIT_IMM, 0);
if (common->control_head_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0);
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), SLJIT_OFFSETOF(jit_arguments, stack));
-OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_ptr);
+OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->start_ptr);
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), SLJIT_OFFSETOF(struct sljit_stack, base));
}
@@ -2206,44 +2225,44 @@ struct sljit_label *loop;
struct sljit_jump *early_quit;
/* At this point we can freely use all registers. */
-OP1(SLJIT_MOV, SLJIT_SAVED_REG3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1), STR_PTR, 0);
+OP1(SLJIT_MOV, SLJIT_S2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1));
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(1), STR_PTR, 0);
-OP1(SLJIT_MOV, SLJIT_SCRATCH_REG1, 0, ARGUMENTS, 0);
+OP1(SLJIT_MOV, SLJIT_R0, 0, ARGUMENTS, 0);
if (common->mark_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr);
-OP1(SLJIT_MOV_SI, SLJIT_SCRATCH_REG2, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG1), SLJIT_OFFSETOF(jit_arguments, offset_count));
+ OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr);
+OP1(SLJIT_MOV_SI, SLJIT_R1, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, offset_count));
if (common->mark_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SCRATCH_REG1), SLJIT_OFFSETOF(jit_arguments, mark_ptr), SLJIT_SCRATCH_REG3, 0);
-OP2(SLJIT_SUB, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG1), SLJIT_OFFSETOF(jit_arguments, offsets), SLJIT_IMM, sizeof(int));
-OP1(SLJIT_MOV, SLJIT_SCRATCH_REG1, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG1), SLJIT_OFFSETOF(jit_arguments, begin));
-GET_LOCAL_BASE(SLJIT_SAVED_REG1, 0, OVECTOR_START);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, mark_ptr), SLJIT_R2, 0);
+OP2(SLJIT_SUB, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, offsets), SLJIT_IMM, sizeof(int));
+OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, begin));
+GET_LOCAL_BASE(SLJIT_S0, 0, OVECTOR_START);
/* Unlikely, but possible */
-early_quit = CMP(SLJIT_C_EQUAL, SLJIT_SCRATCH_REG2, 0, SLJIT_IMM, 0);
+early_quit = CMP(SLJIT_EQUAL, SLJIT_R1, 0, SLJIT_IMM, 0);
loop = LABEL();
-OP2(SLJIT_SUB, SLJIT_SAVED_REG2, 0, SLJIT_MEM1(SLJIT_SAVED_REG1), 0, SLJIT_SCRATCH_REG1, 0);
-OP2(SLJIT_ADD, SLJIT_SAVED_REG1, 0, SLJIT_SAVED_REG1, 0, SLJIT_IMM, sizeof(sljit_sw));
+OP2(SLJIT_SUB, SLJIT_S1, 0, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_R0, 0);
+OP2(SLJIT_ADD, SLJIT_S0, 0, SLJIT_S0, 0, SLJIT_IMM, sizeof(sljit_sw));
/* Copy the integer value to the output buffer */
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
-OP2(SLJIT_ASHR, SLJIT_SAVED_REG2, 0, SLJIT_SAVED_REG2, 0, SLJIT_IMM, UCHAR_SHIFT);
+OP2(SLJIT_ASHR, SLJIT_S1, 0, SLJIT_S1, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
-OP1(SLJIT_MOVU_SI, SLJIT_MEM1(SLJIT_SCRATCH_REG3), sizeof(int), SLJIT_SAVED_REG2, 0);
-OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_SCRATCH_REG2, 0, SLJIT_SCRATCH_REG2, 0, SLJIT_IMM, 1);
-JUMPTO(SLJIT_C_NOT_ZERO, loop);
+OP1(SLJIT_MOVU_SI, SLJIT_MEM1(SLJIT_R2), sizeof(int), SLJIT_S1, 0);
+OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1);
+JUMPTO(SLJIT_NOT_ZERO, loop);
JUMPHERE(early_quit);
/* Calculate the return value, which is the maximum ovector value. */
if (topbracket > 1)
{
- GET_LOCAL_BASE(SLJIT_SCRATCH_REG1, 0, OVECTOR_START + topbracket * 2 * sizeof(sljit_sw));
- OP1(SLJIT_MOV, SLJIT_SCRATCH_REG2, 0, SLJIT_IMM, topbracket + 1);
+ GET_LOCAL_BASE(SLJIT_R0, 0, OVECTOR_START + topbracket * 2 * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, topbracket + 1);
- /* OVECTOR(0) is never equal to SLJIT_SAVED_REG3. */
+ /* OVECTOR(0) is never equal to SLJIT_S2. */
loop = LABEL();
- OP1(SLJIT_MOVU, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG1), -(2 * (sljit_sw)sizeof(sljit_sw)));
- OP2(SLJIT_SUB, SLJIT_SCRATCH_REG2, 0, SLJIT_SCRATCH_REG2, 0, SLJIT_IMM, 1);
- CMPTO(SLJIT_C_EQUAL, SLJIT_SCRATCH_REG3, 0, SLJIT_SAVED_REG3, 0, loop);
- OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_SCRATCH_REG2, 0);
+ OP1(SLJIT_MOVU, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw)));
+ OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1);
+ CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop);
+ OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_R1, 0);
}
else
OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1);
@@ -2254,39 +2273,39 @@ static SLJIT_INLINE void return_with_partial_match(compiler_common *common, stru
DEFINE_COMPILER;
struct sljit_jump *jump;
-SLJIT_COMPILE_ASSERT(STR_END == SLJIT_SAVED_REG2, str_end_must_be_saved_reg2);
+SLJIT_COMPILE_ASSERT(STR_END == SLJIT_S1, str_end_must_be_saved_reg2);
SLJIT_ASSERT(common->start_used_ptr != 0 && common->start_ptr != 0
&& (common->mode == JIT_PARTIAL_SOFT_COMPILE ? common->hit_start != 0 : common->hit_start == 0));
-OP1(SLJIT_MOV, SLJIT_SCRATCH_REG2, 0, ARGUMENTS, 0);
+OP1(SLJIT_MOV, SLJIT_R1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_PARTIAL);
-OP1(SLJIT_MOV_SI, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG2), SLJIT_OFFSETOF(jit_arguments, real_offset_count));
-CMPTO(SLJIT_C_SIG_LESS, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, 2, quit);
+OP1(SLJIT_MOV_SI, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R1), SLJIT_OFFSETOF(jit_arguments, real_offset_count));
+CMPTO(SLJIT_SIG_LESS, SLJIT_R2, 0, SLJIT_IMM, 2, quit);
/* Store match begin and end. */
-OP1(SLJIT_MOV, SLJIT_SAVED_REG1, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG2), SLJIT_OFFSETOF(jit_arguments, begin));
-OP1(SLJIT_MOV, SLJIT_SCRATCH_REG2, 0, SLJIT_MEM1(SLJIT_SCRATCH_REG2), SLJIT_OFFSETOF(jit_arguments, offsets));
+OP1(SLJIT_MOV, SLJIT_S0, 0, SLJIT_MEM1(SLJIT_R1), SLJIT_OFFSETOF(jit_arguments, begin));
+OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_MEM1(SLJIT_R1), SLJIT_OFFSETOF(jit_arguments, offsets));
-jump = CMP(SLJIT_C_SIG_LESS, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, 3);
-OP2(SLJIT_SUB, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mode == JIT_PARTIAL_HARD_COMPILE ? common->start_ptr : (common->hit_start + (int)sizeof(sljit_sw)), SLJIT_SAVED_REG1, 0);
+jump = CMP(SLJIT_SIG_LESS, SLJIT_R2, 0, SLJIT_IMM, 3);
+OP2(SLJIT_SUB, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_SP), common->mode == JIT_PARTIAL_HARD_COMPILE ? common->start_ptr : (common->hit_start + (int)sizeof(sljit_sw)), SLJIT_S0, 0);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
-OP2(SLJIT_ASHR, SLJIT_SCRATCH_REG3, 0, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, UCHAR_SHIFT);
+OP2(SLJIT_ASHR, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
-OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_SCRATCH_REG2), 2 * sizeof(int), SLJIT_SCRATCH_REG3, 0);
+OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_R1), 2 * sizeof(int), SLJIT_R2, 0);
JUMPHERE(jump);
-OP1(SLJIT_MOV, SLJIT_SCRATCH_REG3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mode == JIT_PARTIAL_HARD_COMPILE ? common->start_used_ptr : common->hit_start);
-OP2(SLJIT_SUB, SLJIT_SAVED_REG2, 0, STR_END, 0, SLJIT_SAVED_REG1, 0);
+OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_SP), common->mode == JIT_PARTIAL_HARD_COMPILE ? common->start_used_ptr : common->hit_start);
+OP2(SLJIT_SUB, SLJIT_S1, 0, STR_END, 0, SLJIT_S0, 0);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
-OP2(SLJIT_ASHR, SLJIT_SAVED_REG2, 0, SLJIT_SAVED_REG2, 0, SLJIT_IMM, UCHAR_SHIFT);
+OP2(SLJIT_ASHR, SLJIT_S1, 0, SLJIT_S1, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
-OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_SCRATCH_REG2), sizeof(int), SLJIT_SAVED_REG2, 0);
+OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_R1), sizeof(int), SLJIT_S1, 0);
-OP2(SLJIT_SUB, SLJIT_SCRATCH_REG3, 0, SLJIT_SCRATCH_REG3, 0, SLJIT_SAVED_REG1, 0);
+OP2(SLJIT_SUB, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_S0, 0);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
-OP2(SLJIT_ASHR, SLJIT_SCRATCH_REG3, 0, SLJIT_SCRATCH_REG3, 0, SLJIT_IMM, UCHAR_SHIFT);
+OP2(SLJIT_ASHR, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
-OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_SCRATCH_REG2), 0, SLJIT_SCRATCH_REG3, 0);
+OP1(SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_R1), 0, SLJIT_R2, 0);
JUMPTO(SLJIT_JUMP, quit);
}
@@ -2300,22 +2319,22 @@ struct sljit_jump *jump;
if (common->mode == JIT_PARTIAL_SOFT_COMPILE)
{
/* The value of -1 must be kept for start_used_ptr! */
- OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, SLJIT_IMM, 1);
+ OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, SLJIT_IMM, 1);
/* Jumps if start_used_ptr < STR_PTR, or start_used_ptr == -1. Although overwriting
is not necessary if start_used_ptr == STR_PTR, it does not hurt as well. */
- jump = CMP(SLJIT_C_LESS_EQUAL, TMP1, 0, STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
+ jump = CMP(SLJIT_LESS_EQUAL, TMP1, 0, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
JUMPHERE(jump);
}
else if (common->mode == JIT_PARTIAL_HARD_COMPILE)
{
- jump = CMP(SLJIT_C_LESS_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
+ jump = CMP(SLJIT_LESS_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
JUMPHERE(jump);
}
}
-static SLJIT_INLINE BOOL char_has_othercase(compiler_common *common, pcre_uchar* cc)
+static SLJIT_INLINE BOOL char_has_othercase(compiler_common *common, pcre_uchar *cc)
{
/* Detects if the character has an othercase. */
unsigned int c;
@@ -2358,7 +2377,7 @@ if (common->utf && c > 127)
return TABLE_GET(c, common->fcc, c);
}
-static unsigned int char_get_othercase_bit(compiler_common *common, pcre_uchar* cc)
+static unsigned int char_get_othercase_bit(compiler_common *common, pcre_uchar *cc)
{
/* Detects if the character and its othercase has only 1 bit difference. */
unsigned int c, oc, bit;
@@ -2446,12 +2465,12 @@ if (common->mode == JIT_COMPILE)
return;
if (!force)
- jump = CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
+ jump = CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
else if (common->mode == JIT_PARTIAL_SOFT_COMPILE)
- jump = CMP(SLJIT_C_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, SLJIT_IMM, -1);
+ jump = CMP(SLJIT_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, SLJIT_IMM, -1);
if (common->mode == JIT_PARTIAL_SOFT_COMPILE)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, 0);
else
{
if (common->partialmatchlabel != NULL)
@@ -2472,20 +2491,20 @@ struct sljit_jump *jump;
if (common->mode == JIT_COMPILE)
{
- add_jump(compiler, end_reached, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, end_reached, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
return;
}
-jump = CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0);
+jump = CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0);
if (common->mode == JIT_PARTIAL_SOFT_COMPILE)
{
- add_jump(compiler, end_reached, CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, 0);
+ add_jump(compiler, end_reached, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, 0);
add_jump(compiler, end_reached, JUMP(SLJIT_JUMP));
}
else
{
- add_jump(compiler, end_reached, CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0));
+ add_jump(compiler, end_reached, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0));
if (common->partialmatchlabel != NULL)
JUMPTO(SLJIT_JUMP, common->partialmatchlabel);
else
@@ -2501,16 +2520,16 @@ struct sljit_jump *jump;
if (common->mode == JIT_COMPILE)
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
return;
}
/* Partial matching mode. */
-jump = CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0);
-add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0));
+jump = CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0);
+add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0));
if (common->mode == JIT_PARTIAL_SOFT_COMPILE)
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, 0);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
}
else
@@ -2540,7 +2559,7 @@ if (common->utf)
{
if (max < 128) return;
- jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
+ jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
add_jump(compiler, &common->utfreadchar, JUMP(SLJIT_FAST_CALL));
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
@@ -2554,7 +2573,7 @@ if (common->utf)
if (max < 0xd800) return;
OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
+ jump = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
/* TMP2 contains the high surrogate. */
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x40);
@@ -2573,7 +2592,7 @@ static BOOL is_char7_bitset(const pcre_uint8 *bitset, BOOL nclass)
/* Tells whether the character codes below 128 are enough
to determine a match. */
const pcre_uint8 value = nclass ? 0xff : 0;
-const pcre_uint8* end = bitset + 32;
+const pcre_uint8 *end = bitset + 32;
bitset += 16;
do
@@ -2602,7 +2621,7 @@ OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
if (full_read)
{
- jump = CMP(SLJIT_C_LESS, TMP2, 0, SLJIT_IMM, 0xc0);
+ jump = CMP(SLJIT_LESS, TMP2, 0, SLJIT_IMM, 0xc0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
JUMPHERE(jump);
@@ -2637,14 +2656,14 @@ if (common->utf)
{
if (max < 128 && !update_str_ptr) return;
- jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
+ jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
if (min >= 0x10000)
{
OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, 0xf0);
if (update_str_ptr)
OP1(SLJIT_MOV_UB, RETURN_ADDR, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
- jump2 = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0x7);
+ jump2 = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0x7);
OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3f);
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
@@ -2668,7 +2687,7 @@ if (common->utf)
if (update_str_ptr)
OP1(SLJIT_MOV_UB, RETURN_ADDR, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
- jump2 = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0xf);
+ jump2 = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0xf);
OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3f);
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
@@ -2713,7 +2732,7 @@ if (common->utf)
if (max >= 0x10000)
{
OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
+ jump = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
/* TMP2 contains the high surrogate. */
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x40);
@@ -2729,7 +2748,7 @@ if (common->utf)
/* Skip low surrogate if necessary. */
OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
+ jump = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
if (update_str_ptr)
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
if (max >= 0xd800)
@@ -2766,7 +2785,7 @@ if (common->utf)
/* This can be an extra read in some situations, but hopefully
it is needed in most cases. */
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
- jump = CMP(SLJIT_C_LESS, TMP2, 0, SLJIT_IMM, 0xc0);
+ jump = CMP(SLJIT_LESS, TMP2, 0, SLJIT_IMM, 0xc0);
if (!update_str_ptr)
{
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
@@ -2776,7 +2795,7 @@ if (common->utf)
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3f);
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, TMP1, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0);
- jump2 = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 255);
+ jump2 = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 255);
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
JUMPHERE(jump2);
}
@@ -2790,7 +2809,7 @@ if (common->utf)
#if !defined COMPILE_PCRE8
/* The ctypes array contains only 256 values. */
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0);
-jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 255);
+jump = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 255);
#endif
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
#if !defined COMPILE_PCRE8
@@ -2802,7 +2821,7 @@ if (common->utf && update_str_ptr)
{
/* Skip low surrogate if necessary. */
OP2(SLJIT_SUB, TMP2, 0, TMP2, 0, SLJIT_IMM, 0xd800);
- jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
+ jump = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0xdc00 - 0xd800 - 1);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
JUMPHERE(jump);
}
@@ -2823,7 +2842,7 @@ if (common->utf)
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), -IN_UCHARS(1));
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xc0);
- CMPTO(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0x80, label);
+ CMPTO(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, 0x80, label);
return;
}
#elif defined COMPILE_PCRE16
@@ -2834,7 +2853,7 @@ if (common->utf)
/* Skip low surrogate if necessary. */
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xdc00);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
return;
@@ -2853,26 +2872,26 @@ struct sljit_jump *jump;
if (nltype == NLTYPE_ANY)
{
add_jump(compiler, &common->anynewline, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, JUMP(jumpifmatch ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
+ add_jump(compiler, backtracks, JUMP(jumpifmatch ? SLJIT_NOT_ZERO : SLJIT_ZERO));
}
else if (nltype == NLTYPE_ANYCRLF)
{
if (jumpifmatch)
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR));
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
}
else
{
- jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
+ jump = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
JUMPHERE(jump);
}
}
else
{
SLJIT_ASSERT(nltype == NLTYPE_FIXED && common->newline < 256);
- add_jump(compiler, backtracks, CMP(jumpifmatch ? SLJIT_C_EQUAL : SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
+ add_jump(compiler, backtracks, CMP(jumpifmatch ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
}
}
@@ -2895,7 +2914,7 @@ OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
/* Searching for the first zero. */
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x800);
-jump = JUMP(SLJIT_C_NOT_ZERO);
+jump = JUMP(SLJIT_NOT_ZERO);
/* Two byte sequence. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(2));
@@ -2909,7 +2928,7 @@ OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f);
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x10000);
-jump = JUMP(SLJIT_C_NOT_ZERO);
+jump = JUMP(SLJIT_NOT_ZERO);
/* Three byte sequence. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(3));
@@ -2943,14 +2962,14 @@ OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
/* Searching for the first zero. */
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x800);
-jump = JUMP(SLJIT_C_NOT_ZERO);
+jump = JUMP(SLJIT_NOT_ZERO);
/* Two byte sequence. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
JUMPHERE(jump);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x400);
-OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_NOT_ZERO);
+OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_NOT_ZERO);
/* This code runs only in 8 bit mode. No need to shift the value. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
@@ -2974,13 +2993,13 @@ struct sljit_jump *compare;
sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, 0x20);
-jump = JUMP(SLJIT_C_NOT_ZERO);
+jump = JUMP(SLJIT_NOT_ZERO);
/* Two byte sequence. */
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x1f);
/* The upper 5 bits are known at this point. */
-compare = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 0x3);
+compare = CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, 0x3);
OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3f);
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, TMP1, 0);
@@ -3060,25 +3079,25 @@ if (firstline)
{
mainloop = LABEL();
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
- end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ end = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, mainloop);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, mainloop);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, mainloop);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, mainloop);
JUMPHERE(end);
- OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
+ OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_SP), common->first_line_end, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
}
else
{
- end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ end = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
mainloop = LABEL();
/* Continual stores does not cause data dependency. */
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->first_line_end, STR_PTR, 0);
read_char_range(common, common->nlmin, common->nlmax, TRUE);
check_newlinechar(common, common->nltype, &newline, TRUE);
- CMPTO(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0, mainloop);
+ CMPTO(SLJIT_LESS, STR_PTR, 0, STR_END, 0, mainloop);
JUMPHERE(end);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->first_line_end, STR_PTR, 0);
set_jumps(newline, LABEL());
}
@@ -3091,10 +3110,10 @@ if (newlinecheck)
{
newlinelabel = LABEL();
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
- end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ end = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, common->newline & 0xff);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
@@ -3114,14 +3133,14 @@ if (readuchar)
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
if (newlinecheck)
- CMPTO(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, newlinelabel);
+ CMPTO(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, newlinelabel);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
#if defined SUPPORT_UTF && !defined COMPILE_PCRE32
#if defined COMPILE_PCRE8
if (common->utf)
{
- singlechar = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
+ singlechar = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
JUMPHERE(singlechar);
@@ -3129,10 +3148,10 @@ if (common->utf)
#elif defined COMPILE_PCRE16
if (common->utf)
{
- singlechar = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
+ singlechar = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
JUMPHERE(singlechar);
@@ -3531,9 +3550,6 @@ int range_right = -1, range_len = 3 - 1;
sljit_ub *update_table = NULL;
BOOL in_range;
-/* This is even TRUE, if both are NULL. */
-SLJIT_ASSERT(common->read_only_data_ptr == common->read_only_data);
-
for (i = 0; i < MAX_N_CHARS; i++)
{
chars[i << 1] = NOTACHAR;
@@ -3582,18 +3598,9 @@ for (i = 0; i <= max; i++)
if (range_right >= 0)
{
- /* Since no data is consumed (see the assert in the beginning
- of this function), this space can be reallocated. */
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
-
- common->read_only_data_size += 256;
- common->read_only_data = (sljit_uw *)SLJIT_MALLOC(common->read_only_data_size);
- if (common->read_only_data == NULL)
+ update_table = (sljit_ub *)allocate_read_only_data(common, 256);
+ if (update_table == NULL)
return TRUE;
-
- update_table = (sljit_ub *)common->read_only_data;
- common->read_only_data_ptr = (sljit_uw *)(update_table + 256);
memset(update_table, IN_UCHARS(range_len), 256);
for (i = 0; i < range_len; i++)
@@ -3681,10 +3688,10 @@ max -= 1;
if (firstline)
{
SLJIT_ASSERT(common->first_line_end != 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
OP1(SLJIT_MOV, TMP3, 0, STR_END, 0);
OP2(SLJIT_SUB, STR_END, 0, STR_END, 0, SLJIT_IMM, IN_UCHARS(max));
- quit = CMP(SLJIT_C_LESS_EQUAL, STR_END, 0, TMP1, 0);
+ quit = CMP(SLJIT_LESS_EQUAL, STR_END, 0, TMP1, 0);
OP1(SLJIT_MOV, STR_END, 0, TMP1, 0);
JUMPHERE(quit);
}
@@ -3697,7 +3704,7 @@ if (range_right >= 0)
#endif
start = LABEL();
-quit = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+quit = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
SLJIT_ASSERT(range_right >= 0 || offsets[0] >= 0);
@@ -3715,7 +3722,7 @@ if (range_right >= 0)
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)update_table);
#endif
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, start);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, start);
}
if (offsets[0] >= 0)
@@ -3727,7 +3734,7 @@ if (offsets[0] >= 0)
if (chars[1] != 0)
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, chars[1]);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, chars[0], start);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, chars[0], start);
if (offsets[2] >= 0)
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(offsets[2] - 1));
@@ -3735,14 +3742,14 @@ if (offsets[0] >= 0)
{
if (chars[5] != 0)
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_IMM, chars[5]);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, chars[4], start);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, chars[4], start);
}
if (offsets[2] >= 0)
{
if (chars[3] != 0)
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, chars[3]);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, chars[2], start);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, chars[2], start);
}
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
}
@@ -3752,11 +3759,11 @@ JUMPHERE(quit);
if (firstline)
{
if (range_right >= 0)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
OP1(SLJIT_MOV, STR_END, 0, TMP3, 0);
if (range_right >= 0)
{
- quit = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP1, 0);
+ quit = CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP1, 0);
OP1(SLJIT_MOV, STR_PTR, 0, TMP1, 0);
JUMPHERE(quit);
}
@@ -3781,11 +3788,11 @@ if (firstline)
{
SLJIT_ASSERT(common->first_line_end != 0);
OP1(SLJIT_MOV, TMP3, 0, STR_END, 0);
- OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
}
start = LABEL();
-quit = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+quit = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
oc = first_char;
@@ -3798,22 +3805,22 @@ if (caseless)
#endif
}
if (first_char == oc)
- found = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, first_char);
+ found = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, first_char);
else
{
bit = first_char ^ oc;
if (is_powerof2(bit))
{
OP2(SLJIT_OR, TMP2, 0, TMP1, 0, SLJIT_IMM, bit);
- found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, first_char | bit);
+ found = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, first_char | bit);
}
else
{
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, first_char);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, oc);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
- found = JUMP(SLJIT_C_NOT_ZERO);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
+ found = JUMP(SLJIT_NOT_ZERO);
}
}
@@ -3841,20 +3848,20 @@ if (firstline)
{
SLJIT_ASSERT(common->first_line_end != 0);
OP1(SLJIT_MOV, TMP3, 0, STR_END, 0);
- OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
}
if (common->nltype == NLTYPE_FIXED && common->newline > 255)
{
- lastchar = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ lastchar = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
- firstchar = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
+ firstchar = CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(2));
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, STR_PTR, 0, TMP1, 0);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_GREATER_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_GREATER_EQUAL);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
@@ -3862,11 +3869,11 @@ if (common->nltype == NLTYPE_FIXED && common->newline > 255)
loop = LABEL();
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
- quit = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ quit = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-2));
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, loop);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, loop);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, loop);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, loop);
JUMPHERE(quit);
JUMPHERE(firstchar);
@@ -3879,16 +3886,16 @@ if (common->nltype == NLTYPE_FIXED && common->newline > 255)
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
-firstchar = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
+firstchar = CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
skip_char_back(common);
loop = LABEL();
common->ff_newline_shortcut = loop;
read_char_range(common, common->nlmin, common->nlmax, TRUE);
-lastchar = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+lastchar = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
if (common->nltype == NLTYPE_ANY || common->nltype == NLTYPE_ANYCRLF)
- foundcr = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
+ foundcr = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
check_newlinechar(common, common->nltype, &newline, FALSE);
set_jumps(newline, loop);
@@ -3896,10 +3903,10 @@ if (common->nltype == NLTYPE_ANY || common->nltype == NLTYPE_ANYCRLF)
{
quit = JUMP(SLJIT_JUMP);
JUMPHERE(foundcr);
- notfoundnl = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ notfoundnl = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, CHAR_NL);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, UCHAR_SHIFT);
#endif
@@ -3931,11 +3938,11 @@ if (firstline)
{
SLJIT_ASSERT(common->first_line_end != 0);
OP1(SLJIT_MOV, RETURN_ADDR, 0, STR_END, 0);
- OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
}
start = LABEL();
-quit = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+quit = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
#ifdef SUPPORT_UTF
if (common->utf)
@@ -3945,7 +3952,7 @@ if (common->utf)
if (!check_class_ranges(common, start_bits, (start_bits[31] & 0x80) != 0, TRUE, &matches))
{
#ifndef COMPILE_PCRE8
- jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 255);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 255);
JUMPHERE(jump);
#endif
@@ -3954,7 +3961,7 @@ if (!check_class_ranges(common, start_bits, (start_bits[31] & 0x80) != 0, TRUE,
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)start_bits);
OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
- found = JUMP(SLJIT_C_NOT_ZERO);
+ found = JUMP(SLJIT_NOT_ZERO);
}
#ifdef SUPPORT_UTF
@@ -3966,17 +3973,17 @@ OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
#if defined COMPILE_PCRE8
if (common->utf)
{
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0, start);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0, start);
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
}
#elif defined COMPILE_PCRE16
if (common->utf)
{
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800, start);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xd800, start);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
}
@@ -4005,10 +4012,10 @@ struct sljit_jump *notfound;
pcre_uint32 oc, bit;
SLJIT_ASSERT(common->req_char_ptr != 0);
-OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->req_char_ptr);
+OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->req_char_ptr);
OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, REQ_BYTE_MAX);
-toolong = CMP(SLJIT_C_LESS, TMP1, 0, STR_END, 0);
-alreadyfound = CMP(SLJIT_C_LESS, STR_PTR, 0, TMP2, 0);
+toolong = CMP(SLJIT_LESS, TMP1, 0, STR_END, 0);
+alreadyfound = CMP(SLJIT_LESS, STR_PTR, 0, TMP2, 0);
if (has_firstchar)
OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
@@ -4016,7 +4023,7 @@ else
OP1(SLJIT_MOV, TMP1, 0, STR_PTR, 0);
loop = LABEL();
-notfound = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, STR_END, 0);
+notfound = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, STR_END, 0);
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(TMP1), 0);
oc = req_char;
@@ -4029,19 +4036,19 @@ if (caseless)
#endif
}
if (req_char == oc)
- found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
+ found = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
else
{
bit = req_char ^ oc;
if (is_powerof2(bit))
{
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_IMM, bit);
- found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char | bit);
+ found = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, req_char | bit);
}
else
{
- found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
- foundoc = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, oc);
+ found = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
+ foundoc = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, oc);
}
}
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
@@ -4050,7 +4057,7 @@ JUMPTO(SLJIT_JUMP, loop);
JUMPHERE(found);
if (foundoc)
JUMPHERE(foundoc);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->req_char_ptr, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->req_char_ptr, TMP1, 0);
JUMPHERE(alreadyfound);
JUMPHERE(toolong);
return notfound;
@@ -4070,7 +4077,7 @@ GET_LOCAL_BASE(TMP3, 0, 0);
mainloop = LABEL();
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), 0);
OP2(SLJIT_SUB | SLJIT_SET_S, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, 0);
-jump = JUMP(SLJIT_C_SIG_LESS_EQUAL);
+jump = JUMP(SLJIT_SIG_LESS_EQUAL);
OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, TMP3, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(TMP1), sizeof(sljit_sw));
@@ -4079,7 +4086,7 @@ OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 3 * sizeof(sljit_sw));
JUMPTO(SLJIT_JUMP, mainloop);
JUMPHERE(jump);
-jump = JUMP(SLJIT_C_SIG_LESS);
+jump = JUMP(SLJIT_SIG_LESS);
/* End of dropping frames. */
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
@@ -4102,12 +4109,12 @@ struct sljit_jump *jump;
SLJIT_COMPILE_ASSERT(ctype_word == 0x10, ctype_word_must_be_16);
-sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0);
/* Get type of the previous char, and put it to LOCALS1. */
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, SLJIT_IMM, 0);
-skipread = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, SLJIT_IMM, 0);
+skipread = CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP1, 0);
skip_char_back(common);
check_start_used_ptr(common);
read_char(common);
@@ -4117,32 +4124,32 @@ read_char(common);
if (common->use_ucp)
{
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 1);
- jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
+ jump = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Nd - ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_No - ucp_Nd);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
JUMPHERE(jump);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP2, 0);
}
else
#endif
{
#ifndef COMPILE_PCRE8
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
#elif defined SUPPORT_UTF
/* Here LOCALS1 has already been zeroed. */
jump = NULL;
if (common->utf)
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
#endif /* COMPILE_PCRE8 */
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), common->ctypes);
OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 4 /* ctype_word */);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP1, 0);
#ifndef COMPILE_PCRE8
JUMPHERE(jump);
#elif defined SUPPORT_UTF
@@ -4161,14 +4168,14 @@ peek_char(common, READ_CHAR_MAX);
if (common->use_ucp)
{
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 1);
- jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
+ jump = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Nd - ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_No - ucp_Nd);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
JUMPHERE(jump);
}
else
@@ -4177,12 +4184,12 @@ else
#ifndef COMPILE_PCRE8
/* TMP2 may be destroyed by peek_char. */
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0);
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
#elif defined SUPPORT_UTF
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0);
jump = NULL;
if (common->utf)
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
#endif
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), common->ctypes);
OP2(SLJIT_LSHR, TMP2, 0, TMP2, 0, SLJIT_IMM, 4 /* ctype_word */);
@@ -4196,8 +4203,8 @@ else
}
set_jumps(skipread_list, LABEL());
-OP2(SLJIT_XOR | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
-sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+OP2(SLJIT_XOR | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1);
+sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0);
}
static BOOL check_class_ranges(compiler_common *common, const pcre_uint8 *bits, BOOL nclass, BOOL invert, jump_list **backtracks)
@@ -4257,41 +4264,41 @@ switch(length)
return TRUE;
case 1:
- add_jump(compiler, backtracks, CMP(bit == 0 ? SLJIT_C_LESS : SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
+ add_jump(compiler, backtracks, CMP(bit == 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
return TRUE;
case 2:
if (ranges[0] + 1 != ranges[1])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[0]);
- add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_C_LESS : SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
+ add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
}
else
- add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_C_EQUAL : SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
+ add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
return TRUE;
case 3:
if (bit != 0)
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2]));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2]));
if (ranges[0] + 1 != ranges[1])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[0]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
return TRUE;
}
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[0]));
if (ranges[1] + 1 != ranges[2])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[1]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1]));
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1]));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1]));
return TRUE;
case 4:
@@ -4303,10 +4310,10 @@ switch(length)
if (ranges[2] + 1 != ranges[3])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[2]);
- add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_C_LESS : SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[2]));
+ add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[2]));
}
else
- add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_C_EQUAL : SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2]));
+ add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2]));
return TRUE;
}
@@ -4316,31 +4323,31 @@ switch(length)
if (ranges[0] + 1 != ranges[1])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[0]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
i = ranges[0];
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0]));
if (ranges[2] + 1 != ranges[3])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[2] - i);
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[2]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[2]));
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2] - i));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2] - i));
return TRUE;
}
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[0]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[0]));
if (ranges[1] + 1 != ranges[2])
{
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1]));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1]));
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0]));
return TRUE;
default:
@@ -4358,21 +4365,21 @@ sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x0a);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x0d - 0x0a);
-OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x85 - 0x0a);
#if defined SUPPORT_UTF || defined COMPILE_PCRE16 || defined COMPILE_PCRE32
#ifdef COMPILE_PCRE8
if (common->utf)
{
#endif
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x1);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2029 - 0x0a);
#ifdef COMPILE_PCRE8
}
#endif
#endif /* SUPPORT_UTF || COMPILE_PCRE16 || COMPILE_PCRE32 */
-OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
}
@@ -4384,33 +4391,33 @@ DEFINE_COMPILER;
sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x09);
-OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x20);
-OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xa0);
#if defined SUPPORT_UTF || defined COMPILE_PCRE16 || defined COMPILE_PCRE32
#ifdef COMPILE_PCRE8
if (common->utf)
{
#endif
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x1680);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x180e);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x2000);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x200A - 0x2000);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x202f - 0x2000);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x205f - 0x2000);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x3000 - 0x2000);
#ifdef COMPILE_PCRE8
}
#endif
#endif /* SUPPORT_UTF || COMPILE_PCRE16 || COMPILE_PCRE32 */
-OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
}
@@ -4424,21 +4431,21 @@ sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x0a);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x0d - 0x0a);
-OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x85 - 0x0a);
#if defined SUPPORT_UTF || defined COMPILE_PCRE16 || defined COMPILE_PCRE32
#ifdef COMPILE_PCRE8
if (common->utf)
{
#endif
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x1);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2029 - 0x0a);
#ifdef COMPILE_PCRE8
}
#endif
#endif /* SUPPORT_UTF || COMPILE_PCRE16 || COMPILE_PCRE32 */
-OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
}
@@ -4455,21 +4462,21 @@ struct sljit_label *label;
sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
OP1(SLJIT_MOV, TMP3, 0, CHAR1, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, CHAR2, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, CHAR2, 0);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
label = LABEL();
OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1));
OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
-jump = CMP(SLJIT_C_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
+jump = CMP(SLJIT_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1));
-JUMPTO(SLJIT_C_NOT_ZERO, label);
+JUMPTO(SLJIT_NOT_ZERO, label);
JUMPHERE(jump);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP1(SLJIT_MOV, CHAR1, 0, TMP3, 0);
-OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
}
@@ -4485,8 +4492,8 @@ sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
OP1(SLJIT_MOV, TMP3, 0, LCC_TABLE, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, CHAR1, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, CHAR2, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, CHAR1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, CHAR2, 0);
OP1(SLJIT_MOV, LCC_TABLE, 0, SLJIT_IMM, common->lcc);
OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
@@ -4495,26 +4502,26 @@ label = LABEL();
OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1));
OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
#ifndef COMPILE_PCRE8
-jump = CMP(SLJIT_C_GREATER, CHAR1, 0, SLJIT_IMM, 255);
+jump = CMP(SLJIT_GREATER, CHAR1, 0, SLJIT_IMM, 255);
#endif
OP1(SLJIT_MOV_UB, CHAR1, 0, SLJIT_MEM2(LCC_TABLE, CHAR1), 0);
#ifndef COMPILE_PCRE8
JUMPHERE(jump);
-jump = CMP(SLJIT_C_GREATER, CHAR2, 0, SLJIT_IMM, 255);
+jump = CMP(SLJIT_GREATER, CHAR2, 0, SLJIT_IMM, 255);
#endif
OP1(SLJIT_MOV_UB, CHAR2, 0, SLJIT_MEM2(LCC_TABLE, CHAR2), 0);
#ifndef COMPILE_PCRE8
JUMPHERE(jump);
#endif
-jump = CMP(SLJIT_C_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
+jump = CMP(SLJIT_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1));
-JUMPTO(SLJIT_C_NOT_ZERO, label);
+JUMPTO(SLJIT_NOT_ZERO, label);
JUMPHERE(jump);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP1(SLJIT_MOV, LCC_TABLE, 0, TMP3, 0);
-OP1(SLJIT_MOV, CHAR1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
-OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
+OP1(SLJIT_MOV, CHAR1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
+OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1);
sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
}
@@ -4556,7 +4563,7 @@ return src2;
#endif /* SUPPORT_UTF && SUPPORT_UCP */
static pcre_uchar *byte_sequence_compare(compiler_common *common, BOOL caseless, pcre_uchar *cc,
- compare_context* context, jump_list **backtracks)
+ compare_context *context, jump_list **backtracks)
{
DEFINE_COMPILER;
unsigned int othercasebit = 0;
@@ -4656,20 +4663,20 @@ do
case 4 / sizeof(pcre_uchar):
if (context->oc.asint != 0)
OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asint);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asint | context->oc.asint));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asint | context->oc.asint));
break;
case 2 / sizeof(pcre_uchar):
if (context->oc.asushort != 0)
OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asushort);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asushort | context->oc.asushort));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asushort | context->oc.asushort));
break;
#ifdef COMPILE_PCRE8
case 1:
if (context->oc.asbyte != 0)
OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asbyte);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asbyte | context->oc.asbyte));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asbyte | context->oc.asbyte));
break;
#endif
@@ -4691,10 +4698,10 @@ do
if (othercasebit != 0 && othercasechar == cc)
{
OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, othercasebit);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc | othercasebit));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc | othercasebit));
}
else
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc));
#endif
@@ -4855,7 +4862,7 @@ if ((cc[-1] & XCL_HASPROP) == 0)
{
if ((cc[-1] & XCL_MAP) != 0)
{
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
if (!check_class_ranges(common, (const pcre_uint8 *)cc, (((const pcre_uint8 *)cc)[31] & 0x80) != 0, TRUE, &found))
{
OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7);
@@ -4863,7 +4870,7 @@ if ((cc[-1] & XCL_HASPROP) == 0)
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc);
OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
- add_jump(compiler, &found, JUMP(SLJIT_C_NOT_ZERO));
+ add_jump(compiler, &found, JUMP(SLJIT_NOT_ZERO));
}
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
@@ -4874,7 +4881,7 @@ if ((cc[-1] & XCL_HASPROP) == 0)
else
{
OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, min);
- add_jump(compiler, (cc[-1] & XCL_NOT) == 0 ? backtracks : &found, CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, max - min));
+ add_jump(compiler, (cc[-1] & XCL_NOT) == 0 ? backtracks : &found, CMP(SLJIT_GREATER, TMP2, 0, SLJIT_IMM, max - min));
}
}
else if ((cc[-1] & XCL_MAP) != 0)
@@ -4888,14 +4895,14 @@ else if ((cc[-1] & XCL_MAP) != 0)
#ifdef COMPILE_PCRE8
SLJIT_ASSERT(common->utf);
#endif
- jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7);
OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3);
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc);
OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
- add_jump(compiler, list, JUMP(SLJIT_C_NOT_ZERO));
+ add_jump(compiler, list, JUMP(SLJIT_NOT_ZERO));
JUMPHERE(jump);
}
@@ -4965,19 +4972,19 @@ while (*cc != XCL_END)
if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE))
{
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
- OP_FLAGS(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, numberofcmps == 0 ? SLJIT_UNUSED : TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, numberofcmps == 0 ? SLJIT_UNUSED : TMP2, 0, SLJIT_EQUAL);
numberofcmps++;
}
else if (numberofcmps > 0)
{
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
numberofcmps = 0;
}
else
{
- jump = CMP(SLJIT_C_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
+ jump = CMP(SLJIT_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
numberofcmps = 0;
}
}
@@ -4991,19 +4998,19 @@ while (*cc != XCL_END)
if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE))
{
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
- OP_FLAGS(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, numberofcmps == 0 ? SLJIT_UNUSED : TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, numberofcmps == 0 ? SLJIT_UNUSED : TMP2, 0, SLJIT_LESS_EQUAL);
numberofcmps++;
}
else if (numberofcmps > 0)
{
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
numberofcmps = 0;
}
else
{
- jump = CMP(SLJIT_C_LESS_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
+ jump = CMP(SLJIT_LESS_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (sljit_sw)(c - charoffset));
numberofcmps = 0;
}
}
@@ -5028,59 +5035,59 @@ while (*cc != XCL_END)
case PT_LAMP:
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lu - typeoffset);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Ll - typeoffset);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lt - typeoffset);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
case PT_GC:
c = PRIV(ucp_typerange)[(int)cc[1] * 2];
SET_TYPE_OFFSET(c);
- jump = CMP(SLJIT_C_LESS_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, PRIV(ucp_typerange)[(int)cc[1] * 2 + 1] - c);
+ jump = CMP(SLJIT_LESS_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, PRIV(ucp_typerange)[(int)cc[1] * 2 + 1] - c);
break;
case PT_PC:
- jump = CMP(SLJIT_C_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, (int)cc[1] - typeoffset);
+ jump = CMP(SLJIT_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, (int)cc[1] - typeoffset);
break;
case PT_SC:
- jump = CMP(SLJIT_C_EQUAL ^ invertcmp, scriptreg, 0, SLJIT_IMM, (int)cc[1]);
+ jump = CMP(SLJIT_EQUAL ^ invertcmp, scriptreg, 0, SLJIT_IMM, (int)cc[1]);
break;
case PT_SPACE:
case PT_PXSPACE:
SET_CHAR_OFFSET(9);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd - 0x9);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x85 - 0x9);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x180e - 0x9);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
SET_TYPE_OFFSET(ucp_Zl);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Zs - ucp_Zl);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
case PT_WORD:
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(CHAR_UNDERSCORE - charoffset));
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
/* Fall through. */
case PT_ALNUM:
SET_TYPE_OFFSET(ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
- OP_FLAGS((*cc == PT_ALNUM) ? SLJIT_MOV : SLJIT_OR, TMP2, 0, (*cc == PT_ALNUM) ? SLJIT_UNUSED : TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS((*cc == PT_ALNUM) ? SLJIT_MOV : SLJIT_OR, TMP2, 0, (*cc == PT_ALNUM) ? SLJIT_UNUSED : TMP2, 0, SLJIT_LESS_EQUAL);
SET_TYPE_OFFSET(ucp_Nd);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_No - ucp_Nd);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
case PT_CLIST:
@@ -5102,7 +5109,7 @@ while (*cc != XCL_END)
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_IMM, other_cases[1] ^ other_cases[0]);
}
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, other_cases[1]);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
other_cases += 2;
}
else if (is_powerof2(other_cases[2] ^ other_cases[1]))
@@ -5115,103 +5122,103 @@ while (*cc != XCL_END)
OP2(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_IMM, other_cases[1] ^ other_cases[0]);
}
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, other_cases[2]);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(other_cases[0] - charoffset));
- OP_FLAGS(SLJIT_OR | ((other_cases[3] == NOTACHAR) ? SLJIT_SET_E : 0), TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR | ((other_cases[3] == NOTACHAR) ? SLJIT_SET_E : 0), TMP2, 0, TMP2, 0, SLJIT_EQUAL);
other_cases += 3;
}
else
{
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(*other_cases++ - charoffset));
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
}
while (*other_cases != NOTACHAR)
{
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(*other_cases++ - charoffset));
- OP_FLAGS(SLJIT_OR | ((*other_cases == NOTACHAR) ? SLJIT_SET_E : 0), TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR | ((*other_cases == NOTACHAR) ? SLJIT_SET_E : 0), TMP2, 0, TMP2, 0, SLJIT_EQUAL);
}
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
case PT_UCNC:
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(CHAR_DOLLAR_SIGN - charoffset));
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(CHAR_COMMERCIAL_AT - charoffset));
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(CHAR_GRAVE_ACCENT - charoffset));
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
SET_CHAR_OFFSET(0xa0);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (sljit_sw)(0xd7ff - charoffset));
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
SET_CHAR_OFFSET(0);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xe000 - 0);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_GREATER_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_GREATER_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
case PT_PXGRAPH:
/* C and Z groups are the farthest two groups. */
SET_TYPE_OFFSET(ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_So - ucp_Ll);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_GREATER);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_GREATER);
- jump = CMP(SLJIT_C_NOT_EQUAL, typereg, 0, SLJIT_IMM, ucp_Cf - ucp_Ll);
+ jump = CMP(SLJIT_NOT_EQUAL, typereg, 0, SLJIT_IMM, ucp_Cf - ucp_Ll);
/* In case of ucp_Cf, we overwrite the result. */
SET_CHAR_OFFSET(0x2066);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2069 - 0x2066);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x061c - 0x2066);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x180e - 0x2066);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
JUMPHERE(jump);
- jump = CMP(SLJIT_C_ZERO ^ invertcmp, TMP2, 0, SLJIT_IMM, 0);
+ jump = CMP(SLJIT_ZERO ^ invertcmp, TMP2, 0, SLJIT_IMM, 0);
break;
case PT_PXPRINT:
/* C and Z groups are the farthest two groups. */
SET_TYPE_OFFSET(ucp_Ll);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_So - ucp_Ll);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_GREATER);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_GREATER);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Zs - ucp_Ll);
- OP_FLAGS(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_C_NOT_EQUAL);
+ OP_FLAGS(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_NOT_EQUAL);
- jump = CMP(SLJIT_C_NOT_EQUAL, typereg, 0, SLJIT_IMM, ucp_Cf - ucp_Ll);
+ jump = CMP(SLJIT_NOT_EQUAL, typereg, 0, SLJIT_IMM, ucp_Cf - ucp_Ll);
/* In case of ucp_Cf, we overwrite the result. */
SET_CHAR_OFFSET(0x2066);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2069 - 0x2066);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x061c - 0x2066);
- OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_EQUAL);
JUMPHERE(jump);
- jump = CMP(SLJIT_C_ZERO ^ invertcmp, TMP2, 0, SLJIT_IMM, 0);
+ jump = CMP(SLJIT_ZERO ^ invertcmp, TMP2, 0, SLJIT_IMM, 0);
break;
case PT_PXPUNCT:
SET_TYPE_OFFSET(ucp_Sc);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_So - ucp_Sc);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS_EQUAL);
SET_CHAR_OFFSET(0);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xff);
- OP_FLAGS(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
+ OP_FLAGS(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
SET_TYPE_OFFSET(ucp_Pc);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Ps - ucp_Pc);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_LESS_EQUAL);
- jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_LESS_EQUAL);
+ jump = JUMP(SLJIT_NOT_ZERO ^ invertcmp);
break;
}
cc += 2;
@@ -5251,19 +5258,19 @@ switch(type)
case OP_SOD:
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
return cc;
case OP_SOM:
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
return cc;
case OP_NOT_WORD_BOUNDARY:
case OP_WORD_BOUNDARY:
add_jump(compiler, &common->wordboundary, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, JUMP(type == OP_NOT_WORD_BOUNDARY ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_NOT_WORD_BOUNDARY ? SLJIT_NOT_ZERO : SLJIT_ZERO));
return cc;
case OP_NOT_DIGIT:
@@ -5278,7 +5285,7 @@ switch(type)
read_char8_type(common, type == OP_NOT_DIGIT);
/* Flip the starting bit in the negative case. */
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_digit);
- add_jump(compiler, backtracks, JUMP(type == OP_DIGIT ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_DIGIT ? SLJIT_ZERO : SLJIT_NOT_ZERO));
return cc;
case OP_NOT_WHITESPACE:
@@ -5291,7 +5298,7 @@ switch(type)
#endif
read_char8_type(common, type == OP_NOT_WHITESPACE);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_space);
- add_jump(compiler, backtracks, JUMP(type == OP_WHITESPACE ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_WHITESPACE ? SLJIT_ZERO : SLJIT_NOT_ZERO));
return cc;
case OP_NOT_WORDCHAR:
@@ -5304,7 +5311,7 @@ switch(type)
#endif
read_char8_type(common, type == OP_NOT_WORDCHAR);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_word);
- add_jump(compiler, backtracks, JUMP(type == OP_WORDCHAR ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_WORDCHAR ? SLJIT_ZERO : SLJIT_NOT_ZERO));
return cc;
case OP_ANY:
@@ -5312,15 +5319,15 @@ switch(type)
read_char_range(common, common->nlmin, common->nlmax, TRUE);
if (common->nltype == NLTYPE_FIXED && common->newline > 255)
{
- jump[0] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff);
+ jump[0] = CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff);
end_list = NULL;
if (common->mode != JIT_PARTIAL_HARD_COMPILE)
- add_jump(compiler, &end_list, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, &end_list, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
else
check_str_end(common, &end_list);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, common->newline & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline & 0xff));
set_jumps(end_list, LABEL());
JUMPHERE(jump[0]);
}
@@ -5337,14 +5344,14 @@ switch(type)
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
#if defined COMPILE_PCRE8 || defined COMPILE_PCRE16
#if defined COMPILE_PCRE8
- jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
+ jump[0] = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
#elif defined COMPILE_PCRE16
- jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
+ jump[0] = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
- OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_C_EQUAL);
+ OP_FLAGS(SLJIT_MOV, TMP1, 0, SLJIT_UNUSED, 0, SLJIT_EQUAL);
OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
#endif
@@ -5378,15 +5385,15 @@ switch(type)
case OP_ANYNL:
detect_partial_match(common, backtracks);
read_char_range(common, common->bsr_nlmin, common->bsr_nlmax, FALSE);
- jump[0] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
+ jump[0] = CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
/* We don't need to handle soft partial matching case. */
end_list = NULL;
if (common->mode != JIT_PARTIAL_HARD_COMPILE)
- add_jump(compiler, &end_list, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, &end_list, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
else
check_str_end(common, &end_list);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
- jump[1] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
+ jump[1] = CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
jump[2] = JUMP(SLJIT_JUMP);
JUMPHERE(jump[0]);
@@ -5401,7 +5408,7 @@ switch(type)
detect_partial_match(common, backtracks);
read_char_range(common, 0x9, 0x3000, type == OP_NOT_HSPACE);
add_jump(compiler, &common->hspace, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, JUMP(type == OP_NOT_HSPACE ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_NOT_HSPACE ? SLJIT_NOT_ZERO : SLJIT_ZERO));
return cc;
case OP_NOT_VSPACE:
@@ -5409,7 +5416,7 @@ switch(type)
detect_partial_match(common, backtracks);
read_char_range(common, 0xa, 0x2029, type == OP_NOT_VSPACE);
add_jump(compiler, &common->vspace, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, JUMP(type == OP_NOT_VSPACE ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
+ add_jump(compiler, backtracks, JUMP(type == OP_NOT_VSPACE ? SLJIT_NOT_ZERO : SLJIT_ZERO));
return cc;
#ifdef SUPPORT_UCP
@@ -5419,11 +5426,11 @@ switch(type)
add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, (sljit_sw)PRIV(ucd_records) + SLJIT_OFFSETOF(ucd_record, gbprop));
/* Optimize register allocation: use a real register. */
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0);
OP1(SLJIT_MOV_UB, STACK_TOP, 0, SLJIT_MEM2(TMP1, TMP2), 3);
label = LABEL();
- jump[0] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ jump[0] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
OP1(SLJIT_MOV, TMP3, 0, STR_PTR, 0);
read_char(common);
add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
@@ -5435,15 +5442,15 @@ switch(type)
OP1(SLJIT_MOV, STACK_TOP, 0, TMP2, 0);
OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ JUMPTO(SLJIT_NOT_ZERO, label);
OP1(SLJIT_MOV, STR_PTR, 0, TMP3, 0);
JUMPHERE(jump[0]);
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
if (common->mode == JIT_PARTIAL_HARD_COMPILE)
{
- jump[0] = CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0);
+ jump[0] = CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0);
/* Since we successfully read a char above, partial matching must occure. */
check_partial(common, TRUE);
JUMPHERE(jump[0]);
@@ -5453,64 +5460,64 @@ switch(type)
case OP_EODN:
/* Requires rather complex checks. */
- jump[0] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
+ jump[0] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
if (common->nltype == NLTYPE_FIXED && common->newline > 255)
{
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
if (common->mode == JIT_COMPILE)
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, STR_END, 0));
else
{
- jump[1] = CMP(SLJIT_C_EQUAL, TMP2, 0, STR_END, 0);
+ jump[1] = CMP(SLJIT_EQUAL, TMP2, 0, STR_END, 0);
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP2, 0, STR_END, 0);
- OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_C_LESS);
+ OP_FLAGS(SLJIT_MOV, TMP2, 0, SLJIT_UNUSED, 0, SLJIT_LESS);
OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff);
- OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_C_NOT_EQUAL);
- add_jump(compiler, backtracks, JUMP(SLJIT_C_NOT_EQUAL));
+ OP_FLAGS(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_NOT_EQUAL);
+ add_jump(compiler, backtracks, JUMP(SLJIT_NOT_EQUAL));
check_partial(common, TRUE);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
JUMPHERE(jump[1]);
}
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
}
else if (common->nltype == NLTYPE_FIXED)
{
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_END, 0));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
}
else
{
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
- jump[1] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
+ jump[1] = CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP2, 0, STR_END, 0);
- jump[2] = JUMP(SLJIT_C_GREATER);
- add_jump(compiler, backtracks, JUMP(SLJIT_C_LESS));
+ jump[2] = JUMP(SLJIT_GREATER);
+ add_jump(compiler, backtracks, JUMP(SLJIT_LESS));
/* Equal. */
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
- jump[3] = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
+ jump[3] = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
JUMPHERE(jump[1]);
if (common->nltype == NLTYPE_ANYCRLF)
{
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP2, 0, STR_END, 0));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP2, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
}
else
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, STR_PTR, 0);
read_char_range(common, common->nlmin, common->nlmax, TRUE);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, STR_END, 0));
add_jump(compiler, &common->anynewline, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, JUMP(SLJIT_C_ZERO));
- OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
+ add_jump(compiler, backtracks, JUMP(SLJIT_ZERO));
+ OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1);
}
JUMPHERE(jump[2]);
JUMPHERE(jump[3]);
@@ -5520,36 +5527,36 @@ switch(type)
return cc;
case OP_EOD:
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0));
check_partial(common, FALSE);
return cc;
case OP_CIRC:
OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, begin));
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER, STR_PTR, 0, TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, TMP1, 0));
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, notbol));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
return cc;
case OP_CIRCM:
OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, begin));
- jump[1] = CMP(SLJIT_C_GREATER, STR_PTR, 0, TMP1, 0);
+ jump[1] = CMP(SLJIT_GREATER, STR_PTR, 0, TMP1, 0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, notbol));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
jump[0] = JUMP(SLJIT_JUMP);
JUMPHERE(jump[1]);
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
if (common->nltype == NLTYPE_FIXED && common->newline > 255)
{
OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, TMP2, 0, TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP2, 0, TMP1, 0));
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-2));
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
}
else
{
@@ -5563,22 +5570,22 @@ switch(type)
case OP_DOLL:
OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, noteol));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
if (!common->endonly)
compile_char1_matchingpath(common, OP_EODN, cc, backtracks);
else
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0));
check_partial(common, FALSE);
}
return cc;
case OP_DOLLM:
- jump[1] = CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0);
+ jump[1] = CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0);
OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, noteol));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
check_partial(common, FALSE);
jump[0] = JUMP(SLJIT_JUMP);
JUMPHERE(jump[1]);
@@ -5588,20 +5595,20 @@ switch(type)
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
if (common->mode == JIT_COMPILE)
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER, TMP2, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER, TMP2, 0, STR_END, 0));
else
{
- jump[1] = CMP(SLJIT_C_LESS_EQUAL, TMP2, 0, STR_END, 0);
+ jump[1] = CMP(SLJIT_LESS_EQUAL, TMP2, 0, STR_END, 0);
/* STR_PTR = STR_END - IN_UCHARS(1) */
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
check_partial(common, TRUE);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
JUMPHERE(jump[1]);
}
OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
}
else
{
@@ -5620,7 +5627,7 @@ switch(type)
if (common->mode == JIT_COMPILE && (type == OP_CHAR || !char_has_othercase(common, cc) || char_get_othercase_bit(common, cc) != 0))
{
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(length));
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, STR_END, 0));
context.length = IN_UCHARS(length);
context.sourcereg = -1;
@@ -5643,7 +5650,7 @@ switch(type)
if (type == OP_CHAR || !char_has_othercase(common, cc))
{
read_char_range(common, c, c, FALSE);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c));
return cc + length;
}
oc = char_othercase(common, c);
@@ -5652,11 +5659,11 @@ switch(type)
if (is_powerof2(bit))
{
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, bit);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c | bit));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c | bit));
return cc + length;
}
- jump[0] = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c);
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, oc));
+ jump[0] = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c);
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, oc));
JUMPHERE(jump[0]);
return cc + length;
@@ -5673,16 +5680,16 @@ switch(type)
{
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
if (type == OP_NOT || !char_has_othercase(common, cc))
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c));
else
{
/* Since UTF8 code page is fixed, we know that c is in [a-z] or [A-Z] range. */
OP2(SLJIT_OR, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x20);
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, c | 0x20));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, c | 0x20));
}
/* Skip the variable-length character. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
- jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
+ jump[0] = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0);
OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)PRIV(utf8_table4) - 0xc0);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
JUMPHERE(jump[0]);
@@ -5701,7 +5708,7 @@ switch(type)
if (type == OP_NOT || !char_has_othercase(common, cc))
{
read_char_range(common, c, c, TRUE);
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c));
}
else
{
@@ -5711,12 +5718,12 @@ switch(type)
if (is_powerof2(bit))
{
OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, bit);
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c | bit));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c | bit));
}
else
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c));
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, oc));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, oc));
}
}
return cc + length;
@@ -5739,7 +5746,7 @@ switch(type)
jump[0] = NULL;
if (common->utf)
{
- jump[0] = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, bit);
+ jump[0] = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, bit);
if (type == OP_CLASS)
{
add_jump(compiler, backtracks, jump[0]);
@@ -5747,7 +5754,7 @@ switch(type)
}
}
#elif !defined COMPILE_PCRE8
- jump[0] = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
+ jump[0] = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255);
if (type == OP_CLASS)
{
add_jump(compiler, backtracks, jump[0]);
@@ -5760,7 +5767,7 @@ switch(type)
OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc);
OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
- add_jump(compiler, backtracks, JUMP(SLJIT_C_ZERO));
+ add_jump(compiler, backtracks, JUMP(SLJIT_ZERO));
#if defined SUPPORT_UTF || !defined COMPILE_PCRE8
if (jump[0] != NULL)
@@ -5786,17 +5793,17 @@ switch(type)
OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, length);
label = LABEL();
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP3, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP3, 0));
skip_char_back(common);
OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ JUMPTO(SLJIT_NOT_ZERO, label);
}
else
#endif
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(length));
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS, STR_PTR, 0, TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, TMP1, 0));
}
check_start_used_ptr(common);
return cc + LINK_SIZE;
@@ -5857,7 +5864,7 @@ if (context.length > 0)
{
/* We have a fixed-length byte sequence. */
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, context.length);
- add_jump(compiler, backtracks, CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, STR_END, 0));
context.sourcereg = -1;
#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED
@@ -5914,21 +5921,21 @@ jump_list *found = NULL;
SLJIT_ASSERT(*cc == OP_DNREF || *cc == OP_DNREFI);
-OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
+OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1));
count--;
while (count-- > 0)
{
offset = GET2(slot, 0) << 1;
GET_LOCAL_BASE(TMP2, 0, OVECTOR(offset));
- add_jump(compiler, &found, CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0));
+ add_jump(compiler, &found, CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0));
slot += common->name_entry_size;
}
offset = GET2(slot, 0) << 1;
GET_LOCAL_BASE(TMP2, 0, OVECTOR(offset));
if (backtracks != NULL && !common->jscript_compat)
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0));
set_jumps(found, LABEL());
}
@@ -5945,10 +5952,10 @@ struct sljit_jump *nopartial;
if (ref)
{
offset = GET2(cc, 1) << 1;
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
/* OVECTOR(1) contains the "string begin - 1" constant. */
if (withchecks && !common->jscript_compat)
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
}
else
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0);
@@ -5956,27 +5963,27 @@ else
#if defined SUPPORT_UTF && defined SUPPORT_UCP
if (common->utf && *cc == OP_REFI)
{
- SLJIT_ASSERT(TMP1 == SLJIT_SCRATCH_REG1 && STACK_TOP == SLJIT_SCRATCH_REG2 && TMP2 == SLJIT_SCRATCH_REG3);
+ SLJIT_ASSERT(TMP1 == SLJIT_R0 && STACK_TOP == SLJIT_R1 && TMP2 == SLJIT_R2);
if (ref)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
else
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
if (withchecks)
- jump = CMP(SLJIT_C_EQUAL, TMP1, 0, TMP2, 0);
+ jump = CMP(SLJIT_EQUAL, TMP1, 0, TMP2, 0);
/* Needed to save important temporary registers. */
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STACK_TOP, 0);
- OP1(SLJIT_MOV, SLJIT_SCRATCH_REG2, 0, ARGUMENTS, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SCRATCH_REG2), SLJIT_OFFSETOF(jit_arguments, uchar_ptr), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_R1, 0, ARGUMENTS, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_R1), SLJIT_OFFSETOF(jit_arguments, uchar_ptr), STR_PTR, 0);
sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_utf_caselesscmp));
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
if (common->mode == JIT_COMPILE)
- add_jump(compiler, backtracks, CMP(SLJIT_C_LESS_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1));
+ add_jump(compiler, backtracks, CMP(SLJIT_LESS_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1));
else
{
- add_jump(compiler, backtracks, CMP(SLJIT_C_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0));
- nopartial = CMP(SLJIT_C_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1);
+ add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0));
+ nopartial = CMP(SLJIT_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1);
check_partial(common, FALSE);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
JUMPHERE(nopartial);
@@ -5987,20 +5994,20 @@ else
#endif /* SUPPORT_UTF && SUPPORT_UCP */
{
if (ref)
- OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP1, 0);
+ OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), TMP1, 0);
else
OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw), TMP1, 0);
if (withchecks)
- jump = JUMP(SLJIT_C_ZERO);
+ jump = JUMP(SLJIT_ZERO);
OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
- partial = CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0);
+ partial = CMP(SLJIT_GREATER, STR_PTR, 0, STR_END, 0);
if (common->mode == JIT_COMPILE)
add_jump(compiler, backtracks, partial);
add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
if (common->mode != JIT_COMPILE)
{
@@ -6009,10 +6016,10 @@ else
/* TMP2 -= STR_END - STR_PTR */
OP2(SLJIT_SUB, TMP2, 0, TMP2, 0, STR_PTR, 0);
OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, STR_END, 0);
- partial = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0);
+ partial = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, 0);
OP1(SLJIT_MOV, STR_PTR, 0, STR_END, 0);
add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, JUMP(SLJIT_FAST_CALL));
- add_jump(compiler, backtracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
JUMPHERE(partial);
check_partial(common, FALSE);
add_jump(compiler, backtracks, JUMP(SLJIT_JUMP));
@@ -6090,7 +6097,7 @@ if (!minimize)
{
allocate_stack(common, 2);
if (ref)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0);
/* Temporary release of STR_PTR. */
@@ -6098,13 +6105,13 @@ if (!minimize)
/* Handles both invalid and empty cases. Since the minimum repeat,
is zero the invalid case is basically the same as an empty case. */
if (ref)
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
else
{
compile_dnref_search(common, ccbegin, NULL);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, TMP2, 0);
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, TMP2, 0);
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
}
/* Restore if not zero length. */
OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_sw));
@@ -6113,40 +6120,40 @@ if (!minimize)
{
allocate_stack(common, 1);
if (ref)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
if (ref)
{
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
}
else
{
compile_dnref_search(common, ccbegin, &backtrack->topbacktracks);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, TMP2, 0);
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, TMP2, 0);
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
}
}
if (min > 1 || max > 1)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0, SLJIT_IMM, 0);
label = LABEL();
if (!ref)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1);
compile_ref_matchingpath(common, ccbegin, &backtrack->topbacktracks, FALSE, FALSE);
if (min > 1 || max > 1)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0);
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0, TMP1, 0);
if (min > 1)
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min, label);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min, label);
if (max > 1)
{
- jump = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max);
+ jump = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max);
allocate_stack(common, 1);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
JUMPTO(SLJIT_JUMP, label);
@@ -6171,7 +6178,7 @@ if (!minimize)
allocate_stack(common, ref ? 2 : 3);
if (ref)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
if (type != OP_CRMINSTAR)
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0);
@@ -6181,13 +6188,13 @@ if (min == 0)
/* Handles both invalid and empty cases. Since the minimum repeat,
is zero the invalid case is basically the same as an empty case. */
if (ref)
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
else
{
compile_dnref_search(common, ccbegin, NULL);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), TMP2, 0);
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
}
/* Length is non-zero, we can match real repeats. */
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
@@ -6197,21 +6204,21 @@ else
{
if (ref)
{
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
}
else
{
compile_dnref_search(common, ccbegin, &backtrack->topbacktracks);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), TMP2, 0);
- zerolength = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
+ zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw));
}
}
BACKTRACK_AS(iterator_backtrack)->matchingpath = LABEL();
if (max > 0)
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, max));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, max));
if (!ref)
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(2));
@@ -6223,7 +6230,7 @@ if (min > 1)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min, BACKTRACK_AS(iterator_backtrack)->matchingpath);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min, BACKTRACK_AS(iterator_backtrack)->matchingpath);
}
else if (max > 0)
OP2(SLJIT_ADD, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
@@ -6283,15 +6290,15 @@ if (entry == NULL)
if (common->has_set_som && common->mark_ptr != 0)
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
allocate_stack(common, 2);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
}
else if (common->has_set_som || common->mark_ptr != 0)
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->has_set_som ? (int)(OVECTOR(0)) : common->mark_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->has_set_som ? (int)(OVECTOR(0)) : common->mark_ptr);
allocate_stack(common, 1);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
}
@@ -6301,11 +6308,11 @@ if (entry->entry == NULL)
else
JUMPTO(SLJIT_FAST_CALL, entry->entry);
/* Leave if the match is failed. */
-add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0));
+add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, 0));
return cc + 1 + LINK_SIZE;
}
-static int SLJIT_CALL do_callout(struct jit_arguments* arguments, PUBL(callout_block) *callout_block, pcre_uchar **jit_ovector)
+static int SLJIT_CALL do_callout(struct jit_arguments *arguments, PUBL(callout_block) *callout_block, pcre_uchar **jit_ovector)
{
const pcre_uchar *begin = arguments->begin;
int *offset_vector = arguments->offsets;
@@ -6365,14 +6372,14 @@ PUSH_BACKTRACK(sizeof(backtrack_common), cc, NULL);
allocate_stack(common, CALLOUT_ARG_SIZE / sizeof(sljit_sw));
-OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr);
-OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
SLJIT_ASSERT(common->capture_last_ptr != 0);
+OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr);
+OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV_SI, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(callout_number), SLJIT_IMM, cc[1]);
OP1(SLJIT_MOV_SI, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(capture_last), TMP2, 0);
/* These pointer sized fields temporarly stores internal variables. */
-OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(offset_vector), STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(subject), TMP2, 0);
@@ -6383,21 +6390,21 @@ OP1(SLJIT_MOV_SI, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(next_item_length), S
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(mark), (common->mark_ptr != 0) ? TMP2 : SLJIT_IMM, 0);
/* Needed to save important temporary registers. */
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STACK_TOP, 0);
-OP2(SLJIT_SUB, SLJIT_SCRATCH_REG2, 0, STACK_TOP, 0, SLJIT_IMM, CALLOUT_ARG_SIZE);
-GET_LOCAL_BASE(SLJIT_SCRATCH_REG3, 0, OVECTOR_START);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0);
+OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_TOP, 0, SLJIT_IMM, CALLOUT_ARG_SIZE);
+GET_LOCAL_BASE(SLJIT_R2, 0, OVECTOR_START);
sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_callout));
OP1(SLJIT_MOV_SI, SLJIT_RETURN_REG, 0, SLJIT_RETURN_REG, 0);
-OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
free_stack(common, CALLOUT_ARG_SIZE / sizeof(sljit_sw));
/* Check return value. */
OP2(SLJIT_SUB | SLJIT_SET_S, SLJIT_UNUSED, 0, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0);
-add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_C_SIG_GREATER));
+add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_SIG_GREATER));
if (common->forced_quit_label == NULL)
- add_jump(compiler, &common->forced_quit, JUMP(SLJIT_C_SIG_LESS));
+ add_jump(compiler, &common->forced_quit, JUMP(SLJIT_SIG_LESS));
else
- JUMPTO(SLJIT_C_SIG_LESS, common->forced_quit_label);
+ JUMPTO(SLJIT_SIG_LESS, common->forced_quit_label);
return cc + 2 + 2 * LINK_SIZE;
}
@@ -6455,21 +6462,21 @@ if (bra == OP_BRAMINZERO)
/* This is a braminzero backtrack path. */
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- brajump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ brajump = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
}
if (framesize < 0)
{
extrasize = needs_control_head ? 2 : 1;
if (framesize == no_frame)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STACK_TOP, 0);
allocate_stack(common, extrasize);
if (needs_control_head)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
if (needs_control_head)
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
}
}
@@ -6477,17 +6484,17 @@ else
{
extrasize = needs_control_head ? 3 : 2;
allocate_stack(common, framesize + extrasize);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + extrasize) * sizeof(sljit_sw));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP2, 0);
if (needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
if (needs_control_head)
{
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), TMP1, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0);
}
else
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
@@ -6542,26 +6549,26 @@ while (1)
if (framesize < 0)
{
if (framesize == no_frame)
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
else
free_stack(common, extrasize);
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), 0);
}
else
{
if ((opcode != OP_ASSERT_NOT && opcode != OP_ASSERTBACK_NOT) || conditional)
{
/* We don't need to keep the STR_PTR, only the previous private_data_ptr. */
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_sw));
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_sw));
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), 0);
}
else
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), (framesize + 1) * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), (framesize + 1) * sizeof(sljit_sw));
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
}
}
@@ -6579,7 +6586,7 @@ while (1)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_sw));
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), (framesize + extrasize - 1) * sizeof(sljit_sw));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP1, 0);
}
OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_sw));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
@@ -6587,7 +6594,7 @@ while (1)
else if (framesize >= 0)
{
/* For OP_BRA and OP_BRAMINZERO. */
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_sw));
}
}
add_jump(compiler, found, JUMP(SLJIT_JUMP));
@@ -6631,10 +6638,10 @@ if (common->positive_assert_quit != NULL)
set_jumps(common->positive_assert_quit, LABEL());
SLJIT_ASSERT(framesize != no_stack);
if (framesize < 0)
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, extrasize * sizeof(sljit_sw));
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, extrasize * sizeof(sljit_sw));
else
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + extrasize) * sizeof(sljit_sw));
}
@@ -6642,7 +6649,7 @@ if (common->positive_assert_quit != NULL)
}
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(1));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(1));
if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
{
@@ -6673,7 +6680,7 @@ if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
}
else
free_stack(common, framesize + extrasize);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP1, 0);
}
jump = JUMP(SLJIT_JUMP);
if (bra != OP_BRAZERO)
@@ -6703,13 +6710,13 @@ if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
if (bra == OP_BRA)
{
/* We don't need to keep the STR_PTR, only the previous private_data_ptr. */
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_sw));
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_sw));
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), (extrasize - 2) * sizeof(sljit_sw));
}
else
{
/* We don't need to keep the STR_PTR, only the previous private_data_ptr. */
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, (framesize + 2) * sizeof(sljit_sw));
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, (framesize + 2) * sizeof(sljit_sw));
if (extrasize == 2)
{
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
@@ -6735,9 +6742,9 @@ if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
JUMPHERE(brajump);
if (framesize >= 0)
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_sw));
}
set_jumps(backtrack->common.topbacktracks, LABEL());
}
@@ -6769,7 +6776,7 @@ else
}
else
free_stack(common, framesize + extrasize);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP1, 0);
}
if (bra == OP_BRAZERO)
@@ -6810,7 +6817,7 @@ int stacksize;
if (framesize < 0)
{
if (framesize == no_frame)
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
else
{
stacksize = needs_control_head ? 1 : 0;
@@ -6828,13 +6835,13 @@ if (framesize < 0)
else if (ket == OP_KETRMIN)
{
/* Move the STR_PTR to the private_data_ptr. */
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_MEM1(STACK_TOP), 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_MEM1(STACK_TOP), 0);
}
}
else
{
stacksize = (ket != OP_KET || has_alternatives) ? 2 : 1;
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, (framesize + stacksize) * sizeof(sljit_sw));
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, (framesize + stacksize) * sizeof(sljit_sw));
if (needs_control_head)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), 0);
@@ -6845,7 +6852,7 @@ else
}
}
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, TMP1, 0);
}
static SLJIT_INLINE int match_capture_common(compiler_common *common, int stacksize, int offset, int private_data_ptr)
@@ -6854,20 +6861,20 @@ DEFINE_COMPILER;
if (common->capture_last_ptr != 0)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), TMP1, 0);
stacksize++;
}
if (common->optimized_cbracket[offset >> 1] == 0)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), TMP1, 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize + 1), TMP2, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
stacksize += 2;
}
return stacksize;
@@ -7051,13 +7058,13 @@ if (bra == OP_BRAMINZERO)
if (ket != OP_KETRMIN)
{
free_stack(common, 1);
- braminzero = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ braminzero = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
}
else
{
if (opcode == OP_ONCE || opcode >= OP_SBRA)
{
- jump = CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ jump = CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
/* Nothing stored during the first run. */
skip = JUMP(SLJIT_JUMP);
@@ -7066,19 +7073,19 @@ if (bra == OP_BRAMINZERO)
if (opcode != OP_ONCE || BACKTRACK_AS(bracket_backtrack)->u.framesize < 0)
{
/* When we come from outside, private_data_ptr contains the previous STR_PTR. */
- braminzero = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ braminzero = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
}
else
{
/* Except when the whole stack frame must be saved. */
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
- braminzero = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (BACKTRACK_AS(bracket_backtrack)->u.framesize + 1) * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
+ braminzero = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (BACKTRACK_AS(bracket_backtrack)->u.framesize + 1) * sizeof(sljit_sw));
}
JUMPHERE(skip);
}
else
{
- jump = CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ jump = CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
JUMPHERE(jump);
}
@@ -7087,7 +7094,7 @@ if (bra == OP_BRAMINZERO)
if (repeat_type != 0)
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, repeat_count);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, repeat_count);
if (repeat_type == OP_EXACT)
rmax_label = LABEL();
}
@@ -7108,7 +7115,7 @@ if (opcode == OP_ONCE)
stacksize = 0;
if (needs_control_head)
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
stacksize++;
}
@@ -7119,12 +7126,12 @@ if (opcode == OP_ONCE)
{
stacksize += 2;
if (!needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
}
else
{
if (BACKTRACK_AS(bracket_backtrack)->u.framesize == no_frame)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STACK_TOP, 0);
if (ket == OP_KETRMAX || has_alternatives)
stacksize++;
}
@@ -7142,10 +7149,10 @@ if (opcode == OP_ONCE)
if (ket == OP_KETRMIN)
{
if (needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), STR_PTR, 0);
if (BACKTRACK_AS(bracket_backtrack)->u.framesize == no_frame)
- OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STACK_TOP, 0, SLJIT_IMM, needs_control_head ? (2 * sizeof(sljit_sw)) : sizeof(sljit_sw));
+ OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STACK_TOP, 0, SLJIT_IMM, needs_control_head ? (2 * sizeof(sljit_sw)) : sizeof(sljit_sw));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize + 1), TMP2, 0);
}
else if (ket == OP_KETRMAX || has_alternatives)
@@ -7162,20 +7169,20 @@ if (opcode == OP_ONCE)
if (needs_control_head)
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, stacksize * sizeof(sljit_sw));
stacksize = needs_control_head ? 1 : 0;
if (ket != OP_KET || has_alternatives)
{
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP2, 0);
stacksize++;
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), TMP1, 0);
}
else
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP2, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), TMP1, 0);
}
init_frame(common, ccbegin, NULL, BACKTRACK_AS(bracket_backtrack)->u.framesize + stacksize, stacksize + 1, FALSE);
@@ -7188,26 +7195,26 @@ else if (opcode == OP_CBRA || opcode == OP_SCBRA)
{
SLJIT_ASSERT(private_data_ptr == OVECTOR(offset));
allocate_stack(common, 2);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr + sizeof(sljit_sw));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr + sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
}
else
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
allocate_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
}
}
else if (opcode == OP_SBRA || opcode == OP_SCOND)
{
/* Saving the previous value. */
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
allocate_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
}
else if (has_alternatives)
@@ -7224,7 +7231,7 @@ if (opcode == OP_COND || opcode == OP_SCOND)
{
SLJIT_ASSERT(has_alternatives);
add_jump(compiler, &(BACKTRACK_AS(bracket_backtrack)->u.condfailed),
- CMP(SLJIT_C_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(GET2(matchingpath, 1) << 1), SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
+ CMP(SLJIT_EQUAL, SLJIT_MEM1(SLJIT_SP), OVECTOR(GET2(matchingpath, 1) << 1), SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
matchingpath += 1 + IMM2_SIZE;
}
else if (*matchingpath == OP_DNCREF)
@@ -7234,18 +7241,18 @@ if (opcode == OP_COND || opcode == OP_SCOND)
i = GET2(matchingpath, 1 + IMM2_SIZE);
slot = common->name_table + GET2(matchingpath, 1) * common->name_entry_size;
OP1(SLJIT_MOV, TMP3, 0, STR_PTR, 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
- OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(GET2(slot, 0) << 1), TMP1, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1));
+ OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(GET2(slot, 0) << 1), TMP1, 0);
slot += common->name_entry_size;
i--;
while (i-- > 0)
{
- OP2(SLJIT_SUB, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(GET2(slot, 0) << 1), TMP1, 0);
+ OP2(SLJIT_SUB, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(GET2(slot, 0) << 1), TMP1, 0);
OP2(SLJIT_OR | SLJIT_SET_E, TMP2, 0, TMP2, 0, STR_PTR, 0);
slot += common->name_entry_size;
}
OP1(SLJIT_MOV, STR_PTR, 0, TMP3, 0);
- add_jump(compiler, &(BACKTRACK_AS(bracket_backtrack)->u.condfailed), JUMP(SLJIT_C_ZERO));
+ add_jump(compiler, &(BACKTRACK_AS(bracket_backtrack)->u.condfailed), JUMP(SLJIT_ZERO));
matchingpath += 1 + 2 * IMM2_SIZE;
}
else if (*matchingpath == OP_RREF || *matchingpath == OP_DNRREF)
@@ -7328,7 +7335,7 @@ stacksize = 0;
if (repeat_type == OP_MINUPTO)
{
/* We need to preserve the counter. TMP2 will be used below. */
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), repeat_ptr);
stacksize++;
}
if (ket != OP_KET || bra != OP_BRA)
@@ -7378,7 +7385,7 @@ if (has_alternatives)
if (offset != 0 && common->optimized_cbracket[offset >> 1] != 0)
{
SLJIT_ASSERT(private_data_ptr == OVECTOR(offset + 0));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
}
if (ket == OP_KETRMAX)
@@ -7387,8 +7394,8 @@ if (ket == OP_KETRMAX)
{
if (has_alternatives)
BACKTRACK_AS(bracket_backtrack)->alternative_matchingpath = LABEL();
- OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, rmax_label);
+ OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, 1);
+ JUMPTO(SLJIT_NOT_ZERO, rmax_label);
/* Drop STR_PTR for greedy plus quantifier. */
if (opcode != OP_ONCE)
free_stack(common, 1);
@@ -7400,14 +7407,14 @@ if (ket == OP_KETRMAX)
/* Checking zero-length iteration. */
if (opcode != OP_ONCE)
{
- CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STR_PTR, 0, rmax_label);
+ CMPTO(SLJIT_NOT_EQUAL, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STR_PTR, 0, rmax_label);
/* Drop STR_PTR for greedy plus quantifier. */
if (bra != OP_BRAZERO)
free_stack(common, 1);
}
else
/* TMP2 must contain the starting STR_PTR. */
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, rmax_label);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, STR_PTR, 0, rmax_label);
}
else
JUMPTO(SLJIT_JUMP, rmax_label);
@@ -7416,13 +7423,14 @@ if (ket == OP_KETRMAX)
if (repeat_type == OP_EXACT)
{
- OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, rmax_label);
+ count_match(common);
+ OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, 1);
+ JUMPTO(SLJIT_NOT_ZERO, rmax_label);
}
else if (repeat_type == OP_UPTO)
{
/* We need to preserve the counter. */
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), repeat_ptr);
allocate_stack(common, 1);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
}
@@ -7442,7 +7450,7 @@ if (bra == OP_BRAMINZERO)
framesize is < 0, OP_ONCE will do the release itself. */
if (opcode == OP_ONCE && BACKTRACK_AS(bracket_backtrack)->u.framesize >= 0)
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
}
else if (ket == OP_KETRMIN && opcode != OP_ONCE)
@@ -7537,20 +7545,20 @@ if (framesize < 0)
BACKTRACK_AS(bracketpos_backtrack)->stacksize = stacksize;
allocate_stack(common, stacksize);
if (framesize == no_frame)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STACK_TOP, 0);
stack = 0;
if (offset != 0)
{
stack = 2;
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
if (common->capture_last_ptr != 0)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
if (needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
if (common->capture_last_ptr != 0)
{
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), TMP1, 0);
@@ -7560,7 +7568,7 @@ if (framesize < 0)
else
{
if (needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
stack = 1;
}
@@ -7587,10 +7595,10 @@ else
BACKTRACK_AS(bracketpos_backtrack)->stacksize = stacksize;
allocate_stack(common, stacksize);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
if (needs_control_head)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
- OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, STACK_TOP, 0, SLJIT_IMM, -STACK(stacksize - 1));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
+ OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_SP), private_data_ptr, STACK_TOP, 0, SLJIT_IMM, -STACK(stacksize - 1));
stack = 0;
if (!zero)
@@ -7614,7 +7622,7 @@ else
}
if (offset != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), cbraprivptr, STR_PTR, 0);
loop = LABEL();
while (*cc != OP_KETRPOS)
@@ -7630,16 +7638,16 @@ while (*cc != OP_KETRPOS)
if (framesize < 0)
{
if (framesize == no_frame)
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
if (offset != 0)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), cbraprivptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), cbraprivptr, STR_PTR, 0);
if (common->capture_last_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
}
else
{
@@ -7649,7 +7657,7 @@ while (*cc != OP_KETRPOS)
}
if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
- add_jump(compiler, &emptymatch, CMP(SLJIT_C_EQUAL, TMP1, 0, STR_PTR, 0));
+ add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));
if (!zero)
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0);
@@ -7658,17 +7666,17 @@ while (*cc != OP_KETRPOS)
{
if (offset != 0)
{
- OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_IMM, stacksize * sizeof(sljit_sw));
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
+ OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_IMM, stacksize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), cbraprivptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), cbraprivptr, STR_PTR, 0);
if (common->capture_last_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, SLJIT_IMM, offset >> 1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
}
else
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP2(SLJIT_ADD, STACK_TOP, 0, TMP2, 0, SLJIT_IMM, stacksize * sizeof(sljit_sw));
if (opcode == OP_SBRAPOS)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw));
@@ -7676,7 +7684,7 @@ while (*cc != OP_KETRPOS)
}
if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
- add_jump(compiler, &emptymatch, CMP(SLJIT_C_EQUAL, TMP1, 0, STR_PTR, 0));
+ add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0));
if (!zero)
{
@@ -7688,7 +7696,7 @@ while (*cc != OP_KETRPOS)
}
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack));
JUMPTO(SLJIT_JUMP, loop);
flush_stubs(common);
@@ -7701,7 +7709,7 @@ while (*cc != OP_KETRPOS)
if (framesize < 0)
{
if (offset != 0)
- OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
+ OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), cbraprivptr);
else
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
}
@@ -7711,12 +7719,12 @@ while (*cc != OP_KETRPOS)
{
/* Last alternative. */
if (*cc == OP_KETRPOS)
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
- OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
+ OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), cbraprivptr);
}
else
{
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw));
}
}
@@ -7732,9 +7740,9 @@ backtrack->topbacktracks = NULL;
if (!zero)
{
if (framesize < 0)
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0));
else /* TMP2 is set to [private_data_ptr] above. */
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(TMP2), (stacksize - 1) * sizeof(sljit_sw), SLJIT_IMM, 0));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(TMP2), (stacksize - 1) * sizeof(sljit_sw), SLJIT_IMM, 0));
}
/* None of them matched. */
@@ -7848,12 +7856,12 @@ backtrack_common *backtrack;
pcre_uchar opcode;
pcre_uchar type;
int max = -1, min = -1;
-pcre_uchar* end;
+pcre_uchar *end;
jump_list *nomatch = NULL;
struct sljit_jump *jump = NULL;
struct sljit_label *label;
int private_data_ptr = PRIVATE_DATA(cc);
-int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_LOCALS_REG);
+int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_SP);
int offset0 = (private_data_ptr == 0) ? STACK(0) : private_data_ptr;
int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + (int)sizeof(sljit_sw);
int tmp_base, tmp_offset;
@@ -7896,7 +7904,7 @@ switch(type)
case OP_XCLASS:
case OP_NOTPROP:
case OP_PROP:
- tmp_base = SLJIT_MEM1(SLJIT_LOCALS_REG);
+ tmp_base = SLJIT_MEM1(SLJIT_SP);
tmp_offset = POSSESSIVE0;
break;
}
@@ -7923,19 +7931,19 @@ switch(opcode)
}
if (opcode == OP_UPTO || opcode == OP_CRRANGE)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0, SLJIT_IMM, 0);
label = LABEL();
compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
if (opcode == OP_UPTO || opcode == OP_CRRANGE)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0);
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
if (opcode == OP_CRRANGE && min > 0)
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min, label);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min, label);
if (opcode == OP_UPTO || (opcode == OP_CRRANGE && max > 0))
- jump = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
+ jump = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE0, TMP1, 0);
}
/* We cannot use TMP3 because of this allocate_stack. */
@@ -7971,11 +7979,11 @@ switch(opcode)
OP1(SLJIT_MOV, TMP1, 0, base, offset1);
OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
OP1(SLJIT_MOV, base, offset1, TMP1, 0);
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, max + 1, label);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, max + 1, label);
}
set_jumps(nomatch, LABEL());
if (opcode == OP_CRRANGE)
- add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_LESS, base, offset1, SLJIT_IMM, min + 1));
+ add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS, base, offset1, SLJIT_IMM, min + 1));
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
}
BACKTRACK_AS(iterator_backtrack)->matchingpath = LABEL();
@@ -8017,7 +8025,7 @@ switch(opcode)
label = LABEL();
compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
OP2(SLJIT_SUB | SLJIT_SET_E, tmp_base, tmp_offset, tmp_base, tmp_offset, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ JUMPTO(SLJIT_NOT_ZERO, label);
break;
case OP_POSSTAR:
@@ -8026,7 +8034,7 @@ switch(opcode)
if (opcode == OP_POSPLUS)
compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
if (opcode == OP_POSUPTO)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_IMM, max);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_IMM, max);
OP1(SLJIT_MOV, tmp_base, tmp_offset, STR_PTR, 0);
label = LABEL();
compile_char1_matchingpath(common, type, cc, &nomatch);
@@ -8035,8 +8043,8 @@ switch(opcode)
JUMPTO(SLJIT_JUMP, label);
else
{
- OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_IMM, 1);
+ JUMPTO(SLJIT_NOT_ZERO, label);
}
set_jumps(nomatch, LABEL());
OP1(SLJIT_MOV, STR_PTR, 0, tmp_base, tmp_offset);
@@ -8056,12 +8064,12 @@ switch(opcode)
label = LABEL();
compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
OP2(SLJIT_SUB | SLJIT_SET_E, tmp_base, tmp_offset, tmp_base, tmp_offset, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ JUMPTO(SLJIT_NOT_ZERO, label);
if (max != 0)
{
SLJIT_ASSERT(max - min > 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_IMM, max - min);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_IMM, max - min);
}
OP1(SLJIT_MOV, tmp_base, tmp_offset, STR_PTR, 0);
label = LABEL();
@@ -8071,8 +8079,8 @@ switch(opcode)
JUMPTO(SLJIT_JUMP, label);
else
{
- OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, SLJIT_IMM, 1);
- JUMPTO(SLJIT_C_NOT_ZERO, label);
+ OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_MEM1(SLJIT_SP), POSSESSIVE1, SLJIT_IMM, 1);
+ JUMPTO(SLJIT_NOT_ZERO, label);
}
set_jumps(nomatch, LABEL());
OP1(SLJIT_MOV, STR_PTR, 0, tmp_base, tmp_offset);
@@ -8111,22 +8119,22 @@ if (*cc == OP_ASSERT_ACCEPT || common->currententry != NULL || !common->might_be
}
if (common->accept_label == NULL)
- add_jump(compiler, &common->accept, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0)));
+ add_jump(compiler, &common->accept, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0)));
else
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), common->accept_label);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0), common->accept_label);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty));
-add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty_atstart));
if (common->accept_label == NULL)
- add_jump(compiler, &common->accept, CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0));
+ add_jump(compiler, &common->accept, CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
else
- CMPTO(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0, common->accept_label);
+ CMPTO(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, 0, common->accept_label);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
if (common->accept_label == NULL)
- add_jump(compiler, &common->accept, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0));
+ add_jump(compiler, &common->accept, CMP(SLJIT_NOT_EQUAL, TMP2, 0, STR_PTR, 0));
else
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, common->accept_label);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, STR_PTR, 0, common->accept_label);
add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_JUMP));
return cc + 1;
}
@@ -8142,11 +8150,11 @@ if (common->currententry != NULL)
return cc + 1 + IMM2_SIZE;
if (!optimized_cbracket)
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR_PRIV(offset));
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR_PRIV(offset));
offset <<= 1;
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
if (!optimized_cbracket)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
return cc + 1 + IMM2_SIZE;
}
@@ -8173,7 +8181,7 @@ if (opcode == OP_PRUNE_ARG || opcode == OP_THEN_ARG)
{
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, (sljit_sw)(cc + 2));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, TMP2, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, mark_ptr), TMP2, 0);
}
@@ -8198,12 +8206,12 @@ BACKTRACK_AS(then_trap_backtrack)->framesize = get_framesize(common, cc, ccend,
size = BACKTRACK_AS(then_trap_backtrack)->framesize;
size = 3 + (size < 0 ? 0 : size);
-OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
allocate_stack(common, size);
if (size > 3)
- OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, STACK_TOP, 0, SLJIT_IMM, (size - 3) * sizeof(sljit_sw));
+ OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, STACK_TOP, 0, SLJIT_IMM, (size - 3) * sizeof(sljit_sw));
else
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, STACK_TOP, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(size - 1), SLJIT_IMM, BACKTRACK_AS(then_trap_backtrack)->start);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(size - 2), SLJIT_IMM, type_then_trap);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(size - 3), TMP2, 0);
@@ -8270,9 +8278,9 @@ while (cc < ccend)
case OP_SET_SOM:
PUSH_BACKTRACK_NOVALUE(sizeof(backtrack_common), cc);
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
allocate_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(0), STR_PTR, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
cc++;
break;
@@ -8460,17 +8468,17 @@ while (cc < ccend)
case OP_MARK:
PUSH_BACKTRACK_NOVALUE(sizeof(backtrack_common), cc);
SLJIT_ASSERT(common->mark_ptr != 0);
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr);
allocate_stack(common, common->has_skip_arg ? 5 : 1);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(common->has_skip_arg ? 4 : 0), TMP2, 0);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, (sljit_sw)(cc + 2));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, TMP2, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, mark_ptr), TMP2, 0);
if (common->has_skip_arg)
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, STACK_TOP, 0);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, type_mark);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), SLJIT_IMM, (sljit_sw)(cc + 2));
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(3), STR_PTR, 0);
@@ -8548,7 +8556,7 @@ struct sljit_label *label = NULL;
struct sljit_jump *jump = NULL;
jump_list *jumplist = NULL;
int private_data_ptr = PRIVATE_DATA(cc);
-int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_LOCALS_REG);
+int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_SP);
int offset0 = (private_data_ptr == 0) ? STACK(0) : private_data_ptr;
int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + (int)sizeof(sljit_sw);
@@ -8566,7 +8574,7 @@ switch(opcode)
set_jumps(current->topbacktracks, LABEL());
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
}
else
{
@@ -8575,13 +8583,13 @@ switch(opcode)
if (opcode <= OP_PLUS)
{
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
- jump = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, base, offset1);
+ jump = CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, base, offset1);
}
else
{
OP1(SLJIT_MOV, TMP1, 0, base, offset1);
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
- jump = CMP(SLJIT_C_LESS_EQUAL, TMP1, 0, SLJIT_IMM, min + 1);
+ jump = CMP(SLJIT_LESS_EQUAL, TMP1, 0, SLJIT_IMM, min + 1);
OP2(SLJIT_SUB, base, offset1, TMP1, 0, SLJIT_IMM, 1);
}
skip_char_back(common);
@@ -8626,12 +8634,12 @@ switch(opcode)
OP1(SLJIT_MOV, base, offset1, TMP1, 0);
if (opcode == OP_CRMINRANGE)
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min + 1, label);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min + 1, label);
if (opcode == OP_CRMINRANGE && max == 0)
JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_backtrack)->matchingpath);
else
- CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, max + 2, CURRENT_AS(iterator_backtrack)->matchingpath);
+ CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, max + 2, CURRENT_AS(iterator_backtrack)->matchingpath);
set_jumps(jumplist, LABEL());
if (private_data_ptr == 0)
@@ -8641,7 +8649,7 @@ switch(opcode)
case OP_QUERY:
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
OP1(SLJIT_MOV, base, offset0, SLJIT_IMM, 0);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
jump = JUMP(SLJIT_JUMP);
set_jumps(current->topbacktracks, LABEL());
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
@@ -8655,7 +8663,7 @@ switch(opcode)
case OP_MINQUERY:
OP1(SLJIT_MOV, STR_PTR, 0, base, offset0);
OP1(SLJIT_MOV, base, offset0, SLJIT_IMM, 0);
- jump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ jump = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
compile_char1_matchingpath(common, type, cc, &jumplist);
JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_backtrack)->matchingpath);
set_jumps(jumplist, LABEL());
@@ -8696,12 +8704,12 @@ if ((type & 0x1) == 0)
set_jumps(current->topbacktracks, LABEL());
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
return;
}
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
-CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
+CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_backtrack)->matchingpath);
set_jumps(current->topbacktracks, LABEL());
free_stack(common, ref ? 2 : 3);
}
@@ -8721,14 +8729,14 @@ if (common->has_set_som && common->mark_ptr != 0)
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
free_stack(common, 2);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP2, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(0), TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, TMP1, 0);
}
else if (common->has_set_som || common->mark_ptr != 0)
{
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->has_set_som ? (int)(OVECTOR(0)) : common->mark_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->has_set_som ? (int)(OVECTOR(0)) : common->mark_ptr, TMP2, 0);
}
}
@@ -8759,7 +8767,7 @@ if (CURRENT_AS(assert_backtrack)->framesize < 0)
if (bra == OP_BRAZERO)
{
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_backtrack)->matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_backtrack)->matchingpath);
free_stack(common, 1);
}
return;
@@ -8770,19 +8778,19 @@ if (bra == OP_BRAZERO)
if (*cc == OP_ASSERT_NOT || *cc == OP_ASSERTBACK_NOT)
{
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_backtrack)->matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_backtrack)->matchingpath);
free_stack(common, 1);
return;
}
free_stack(common, 1);
- brajump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
+ brajump = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
}
if (*cc == OP_ASSERT || *cc == OP_ASSERTBACK)
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(assert_backtrack)->private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), CURRENT_AS(assert_backtrack)->private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(assert_backtrack)->private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(assert_backtrack)->framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), CURRENT_AS(assert_backtrack)->private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(assert_backtrack)->framesize * sizeof(sljit_sw));
set_jumps(current->topbacktracks, LABEL());
}
@@ -8812,6 +8820,7 @@ pcre_uchar *ccprev;
pcre_uchar bra = OP_BRA;
pcre_uchar ket;
assert_backtrack *assert;
+sljit_uw *next_update_addr = NULL;
BOOL has_alternatives;
BOOL needs_control_head = FALSE;
struct sljit_jump *brazero = NULL;
@@ -8869,9 +8878,9 @@ if (ket != OP_KET && repeat_type != 0)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
if (repeat_type == OP_UPTO)
- OP2(SLJIT_ADD, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, TMP1, 0, SLJIT_IMM, 1);
+ OP2(SLJIT_ADD, SLJIT_MEM1(SLJIT_SP), repeat_ptr, TMP1, 0, SLJIT_IMM, 1);
else
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), repeat_ptr, TMP1, 0);
}
if (ket == OP_KETRMAX)
@@ -8880,7 +8889,7 @@ if (ket == OP_KETRMAX)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- brazero = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0);
+ brazero = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, 0);
}
}
else if (ket == OP_KETRMIN)
@@ -8891,7 +8900,7 @@ else if (ket == OP_KETRMIN)
if (repeat_type != 0)
{
/* TMP1 was set a few lines above. */
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
/* Drop STR_PTR for non-greedy plus quantifier. */
if (opcode != OP_ONCE)
free_stack(common, 1);
@@ -8900,11 +8909,11 @@ else if (ket == OP_KETRMIN)
{
/* Checking zero-length iteration. */
if (opcode != OP_ONCE || CURRENT_AS(bracket_backtrack)->u.framesize < 0)
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
else
{
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (CURRENT_AS(bracket_backtrack)->u.framesize + 1) * sizeof(sljit_sw), CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (CURRENT_AS(bracket_backtrack)->u.framesize + 1) * sizeof(sljit_sw), CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
}
/* Drop STR_PTR for non-greedy plus quantifier. */
if (opcode != OP_ONCE)
@@ -8915,17 +8924,17 @@ else if (ket == OP_KETRMIN)
}
rmin_label = LABEL();
if (repeat_type != 0)
- OP2(SLJIT_ADD, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, 1);
+ OP2(SLJIT_ADD, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, 1);
}
else if (bra == OP_BRAZERO)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- brazero = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0);
+ brazero = CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0);
}
else if (repeat_type == OP_EXACT)
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, 1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, 1);
exact_label = LABEL();
}
@@ -8936,19 +8945,19 @@ if (offset != 0)
SLJIT_ASSERT(common->optimized_cbracket[offset >> 1] == 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, TMP1, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(2));
free_stack(common, 3);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP2, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), TMP1, 0);
}
else if (common->optimized_cbracket[offset >> 1] == 0)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
free_stack(common, 2);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), TMP2, 0);
}
}
@@ -8956,7 +8965,7 @@ if (SLJIT_UNLIKELY(opcode == OP_ONCE))
{
if (CURRENT_AS(bracket_backtrack)->u.framesize >= 0)
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
}
once = JUMP(SLJIT_JUMP);
@@ -8970,7 +8979,7 @@ else if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND)
free_stack(common, 1);
alt_max = 2;
- alt1 = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, sizeof(sljit_uw));
+ alt1 = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, sizeof(sljit_uw));
}
}
else if (has_alternatives)
@@ -8981,14 +8990,17 @@ else if (has_alternatives)
if (alt_max > 4)
{
/* Table jump if alt_max is greater than 4. */
- sljit_emit_ijump(compiler, SLJIT_JUMP, SLJIT_MEM1(TMP1), (sljit_sw)common->read_only_data_ptr);
- add_label_addr(common);
+ next_update_addr = allocate_read_only_data(common, alt_max * sizeof(sljit_uw));
+ if (SLJIT_UNLIKELY(next_update_addr == NULL))
+ return;
+ sljit_emit_ijump(compiler, SLJIT_JUMP, SLJIT_MEM1(TMP1), (sljit_sw)next_update_addr);
+ add_label_addr(common, next_update_addr++);
}
else
{
if (alt_max == 4)
- alt2 = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_uw));
- alt1 = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, sizeof(sljit_uw));
+ alt2 = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_uw));
+ alt1 = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, sizeof(sljit_uw));
}
}
@@ -9005,9 +9017,9 @@ if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND))
assert = CURRENT_AS(bracket_backtrack)->u.assert;
if (assert->framesize >= 0 && (ccbegin[1 + LINK_SIZE] == OP_ASSERT || ccbegin[1 + LINK_SIZE] == OP_ASSERTBACK))
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), assert->private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->private_data_ptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), assert->private_data_ptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_sw));
}
cond = JUMP(SLJIT_JUMP);
set_jumps(CURRENT_AS(bracket_backtrack)->u.assert->condfailed, LABEL());
@@ -9040,7 +9052,7 @@ if (has_alternatives)
if (opcode != OP_ONCE)
{
if (private_data_ptr != 0)
- OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr);
+ OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr);
else
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
}
@@ -9061,7 +9073,7 @@ if (has_alternatives)
if (repeat_type == OP_MINUPTO)
{
/* We need to preserve the counter. TMP2 will be used below. */
- OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr);
+ OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), repeat_ptr);
stacksize++;
}
if (ket != OP_KET || bra != OP_BRA)
@@ -9106,7 +9118,7 @@ if (has_alternatives)
{
/* If ket is not OP_KETRMAX, this code path is executed after the jump to alternative_matchingpath. */
SLJIT_ASSERT(private_data_ptr == OVECTOR(offset + 0));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), STR_PTR, 0);
}
JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_backtrack)->alternative_matchingpath);
@@ -9114,20 +9126,20 @@ if (has_alternatives)
if (opcode != OP_ONCE)
{
if (alt_max > 4)
- add_label_addr(common);
+ add_label_addr(common, next_update_addr++);
else
{
if (alt_count != 2 * sizeof(sljit_uw))
{
JUMPHERE(alt1);
if (alt_max == 3 && alt_count == sizeof(sljit_uw))
- alt2 = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_uw));
+ alt2 = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_uw));
}
else
{
JUMPHERE(alt2);
if (alt_max == 4)
- alt1 = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 3 * sizeof(sljit_uw));
+ alt1 = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 3 * sizeof(sljit_uw));
}
}
alt_count += sizeof(sljit_uw);
@@ -9146,9 +9158,9 @@ if (has_alternatives)
assert = CURRENT_AS(bracket_backtrack)->u.assert;
if ((ccbegin[1 + LINK_SIZE] == OP_ASSERT_NOT || ccbegin[1 + LINK_SIZE] == OP_ASSERTBACK_NOT) && assert->framesize >= 0)
{
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->private_data_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), assert->private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->private_data_ptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), assert->private_data_ptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_sw));
}
JUMPHERE(cond);
}
@@ -9166,19 +9178,19 @@ if (offset != 0)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
free_stack(common, 2);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), TMP2, 0);
}
else
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP1, 0);
}
}
else if (opcode == OP_SBRA || opcode == OP_SCOND)
{
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_MEM1(STACK_TOP), STACK(0));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
}
else if (opcode == OP_ONCE)
@@ -9201,21 +9213,21 @@ else if (opcode == OP_ONCE)
JUMPHERE(once);
/* Restore previous private_data_ptr */
if (CURRENT_AS(bracket_backtrack)->u.framesize >= 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracket_backtrack)->u.framesize * sizeof(sljit_sw));
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracket_backtrack)->u.framesize * sizeof(sljit_sw));
else if (ket == OP_KETRMIN)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
/* See the comment below. */
free_stack(common, 2);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), private_data_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), private_data_ptr, TMP1, 0);
}
}
if (repeat_type == OP_EXACT)
{
- OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, SLJIT_IMM, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), repeat_ptr, TMP1, 0);
- CMPTO(SLJIT_C_LESS_EQUAL, TMP1, 0, SLJIT_IMM, repeat_count, exact_label);
+ OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_SP), repeat_ptr, SLJIT_IMM, 1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), repeat_ptr, TMP1, 0);
+ CMPTO(SLJIT_LESS_EQUAL, TMP1, 0, SLJIT_IMM, repeat_count, exact_label);
}
else if (ket == OP_KETRMAX)
{
@@ -9223,7 +9235,7 @@ else if (ket == OP_KETRMAX)
if (bra != OP_BRAZERO)
free_stack(common, 1);
- CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
+ CMPTO(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_backtrack)->recursive_matchingpath);
if (bra == OP_BRAZERO)
{
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
@@ -9241,7 +9253,7 @@ else if (ket == OP_KETRMIN)
affect badly the free_stack(2) above. */
if (opcode != OP_ONCE)
free_stack(common, 1);
- CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, rmin_label);
+ CMPTO(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, rmin_label);
if (opcode == OP_ONCE)
free_stack(common, bra == OP_BRAMINZERO ? 2 : 1);
else if (bra == OP_BRAMINZERO)
@@ -9268,19 +9280,19 @@ if (CURRENT_AS(bracketpos_backtrack)->framesize < 0)
offset = (GET2(current->cc, 1 + LINK_SIZE)) << 1;
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0);
if (common->capture_last_ptr != 0)
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(2));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1), TMP2, 0);
if (common->capture_last_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, TMP1, 0);
}
set_jumps(current->topbacktracks, LABEL());
free_stack(common, CURRENT_AS(bracketpos_backtrack)->stacksize);
return;
}
-OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(bracketpos_backtrack)->private_data_ptr);
+OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), CURRENT_AS(bracketpos_backtrack)->private_data_ptr);
add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
if (current->topbacktracks)
@@ -9291,7 +9303,7 @@ if (current->topbacktracks)
free_stack(common, CURRENT_AS(bracketpos_backtrack)->stacksize);
JUMPHERE(jump);
}
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(bracketpos_backtrack)->private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracketpos_backtrack)->framesize * sizeof(sljit_sw));
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), CURRENT_AS(bracketpos_backtrack)->private_data_ptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracketpos_backtrack)->framesize * sizeof(sljit_sw));
}
static SLJIT_INLINE void compile_braminzero_backtrackingpath(compiler_common *common, struct backtrack_common *current)
@@ -9331,7 +9343,7 @@ if (opcode == OP_THEN || opcode == OP_THEN_ARG)
{
SLJIT_ASSERT(common->control_head_ptr != 0);
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, type_then_trap);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, common->then_trap->start);
jump = JUMP(SLJIT_JUMP);
@@ -9339,8 +9351,8 @@ if (opcode == OP_THEN || opcode == OP_THEN_ARG)
loop = LABEL();
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(STACK_TOP), -(int)sizeof(sljit_sw));
JUMPHERE(jump);
- CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), -(int)(2 * sizeof(sljit_sw)), TMP1, 0, loop);
- CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), -(int)(3 * sizeof(sljit_sw)), TMP2, 0, loop);
+ CMPTO(SLJIT_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), -(int)(2 * sizeof(sljit_sw)), TMP1, 0, loop);
+ CMPTO(SLJIT_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), -(int)(3 * sizeof(sljit_sw)), TMP2, 0, loop);
add_jump(compiler, &common->then_trap->quit, JUMP(SLJIT_JUMP));
return;
}
@@ -9363,14 +9375,14 @@ if (common->local_exit)
if (opcode == OP_SKIP_ARG)
{
SLJIT_ASSERT(common->control_head_ptr != 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STACK_TOP, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STACK_TOP, 0);
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, (sljit_sw)(current->cc + 2));
sljit_emit_ijump(compiler, SLJIT_CALL2, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_search_mark));
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0);
OP1(SLJIT_MOV, STR_PTR, 0, TMP1, 0);
- add_jump(compiler, &common->reset_match, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, -1));
+ add_jump(compiler, &common->reset_match, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, -1));
return;
}
@@ -9408,7 +9420,7 @@ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 3);
JUMPHERE(jump);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, TMP1, 0);
}
static void compile_backtrackingpath(compiler_common *common, struct backtrack_common *current)
@@ -9425,7 +9437,7 @@ while (current)
case OP_SET_SOM:
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(0), TMP1, 0);
break;
case OP_STAR:
@@ -9554,9 +9566,9 @@ while (current)
if (common->has_skip_arg)
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
free_stack(common, common->has_skip_arg ? 5 : 1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, TMP1, 0);
if (common->has_skip_arg)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, TMP2, 0);
break;
case OP_THEN:
@@ -9630,8 +9642,8 @@ allocate_stack(common, private_data_size + framesize + alternativesize);
OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(private_data_size + framesize + alternativesize - 1), TMP2, 0);
copy_private_data(common, ccbegin, ccend, TRUE, private_data_size + framesize + alternativesize, framesize + alternativesize, needs_control_head);
if (needs_control_head)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_IMM, 0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->recursive_head_ptr, STACK_TOP, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->recursive_head_ptr, STACK_TOP, 0);
if (needs_frame)
init_frame(common, cc, NULL, framesize + alternativesize - 1, alternativesize, TRUE);
@@ -9678,7 +9690,7 @@ jump = JUMP(SLJIT_JUMP);
if (common->quit != NULL)
{
set_jumps(common->quit, LABEL());
- OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->recursive_head_ptr);
+ OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), common->recursive_head_ptr);
if (needs_frame)
{
OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + alternativesize) * sizeof(sljit_sw));
@@ -9691,7 +9703,7 @@ if (common->quit != NULL)
}
set_jumps(common->accept, LABEL());
-OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->recursive_head_ptr);
+OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_SP), common->recursive_head_ptr);
if (needs_frame)
{
OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + alternativesize) * sizeof(sljit_sw));
@@ -9709,15 +9721,15 @@ if (needs_control_head)
{
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), 2 * sizeof(sljit_sw));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), sizeof(sljit_sw));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->recursive_head_ptr, TMP1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->recursive_head_ptr, TMP1, 0);
OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, TMP2, 0);
}
else
{
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), sizeof(sljit_sw));
OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->recursive_head_ptr, TMP2, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->recursive_head_ptr, TMP2, 0);
}
sljit_emit_fast_return(compiler, SLJIT_MEM1(STACK_TOP), 0);
}
@@ -9763,9 +9775,7 @@ memset(common, 0, sizeof(compiler_common));
rootbacktrack.cc = (pcre_uchar *)re + re->name_table_offset + re->name_count * re->name_entry_size;
common->start = rootbacktrack.cc;
-common->read_only_data = NULL;
-common->read_only_data_size = 0;
-common->read_only_data_ptr = NULL;
+common->read_only_data_head = NULL;
common->fcc = tables + fcc_offset;
common->lcc = (sljit_sw)(tables + lcc_offset);
common->mode = mode;
@@ -9846,7 +9856,7 @@ ccend = bracketend(common->start);
/* Calculate the local space size on the stack. */
common->ovector_start = LIMIT_MATCH + sizeof(sljit_sw);
-common->optimized_cbracket = (pcre_uint8 *)SLJIT_MALLOC(re->top_bracket + 1);
+common->optimized_cbracket = (pcre_uint8 *)SLJIT_MALLOC(re->top_bracket + 1, compiler->allocator_data);
if (!common->optimized_cbracket)
return;
#if defined DEBUG_FORCE_UNOPTIMIZED_CBRAS && DEBUG_FORCE_UNOPTIMIZED_CBRAS == 1
@@ -9862,7 +9872,7 @@ common->ovector_start += sizeof(sljit_sw);
#endif
if (!check_opcode_types(common, common->start, ccend))
{
- SLJIT_FREE(common->optimized_cbracket);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
return;
}
@@ -9924,10 +9934,10 @@ SLJIT_ASSERT(!(common->req_char_ptr != 0 && common->start_used_ptr != 0));
common->cbra_ptr = OVECTOR_START + (re->top_bracket + 1) * 2 * sizeof(sljit_sw);
total_length = ccend - common->start;
-common->private_data_ptrs = (sljit_si *)SLJIT_MALLOC(total_length * (sizeof(sljit_si) + (common->has_then ? 1 : 0)));
+common->private_data_ptrs = (sljit_si *)SLJIT_MALLOC(total_length * (sizeof(sljit_si) + (common->has_then ? 1 : 0)), compiler->allocator_data);
if (!common->private_data_ptrs)
{
- SLJIT_FREE(common->optimized_cbracket);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
return;
}
memset(common->private_data_ptrs, 0, total_length * sizeof(sljit_si));
@@ -9936,8 +9946,8 @@ private_data_size = common->cbra_ptr + (re->top_bracket + 1) * sizeof(sljit_sw);
set_private_data_ptrs(common, &private_data_size, ccend);
if (private_data_size > SLJIT_MAX_LOCAL_SIZE)
{
- SLJIT_FREE(common->private_data_ptrs);
- SLJIT_FREE(common->optimized_cbracket);
+ SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
return;
}
@@ -9948,53 +9958,39 @@ if (common->has_then)
set_then_offsets(common, common->start, NULL);
}
-if (common->read_only_data_size > 0)
- {
- common->read_only_data = (sljit_uw *)SLJIT_MALLOC(common->read_only_data_size);
- if (common->read_only_data == NULL)
- {
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- return;
- }
- common->read_only_data_ptr = common->read_only_data;
- }
-
-compiler = sljit_create_compiler();
+compiler = sljit_create_compiler(NULL);
if (!compiler)
{
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
+ SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
return;
}
common->compiler = compiler;
/* Main pcre_jit_exec entry. */
-sljit_emit_enter(compiler, 1, 5, 5, private_data_size);
+sljit_emit_enter(compiler, 0, 1, 5, 5, 0, 0, private_data_size);
/* Register init. */
reset_ovector(common, (re->top_bracket + 1) * 2);
if (common->req_char_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->req_char_ptr, SLJIT_SCRATCH_REG1, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->req_char_ptr, SLJIT_R0, 0);
-OP1(SLJIT_MOV, ARGUMENTS, 0, SLJIT_SAVED_REG1, 0);
-OP1(SLJIT_MOV, TMP1, 0, SLJIT_SAVED_REG1, 0);
+OP1(SLJIT_MOV, ARGUMENTS, 0, SLJIT_S0, 0);
+OP1(SLJIT_MOV, TMP1, 0, SLJIT_S0, 0);
OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, end));
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
OP1(SLJIT_MOV_UI, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, limit_match));
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, base));
OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, limit));
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LIMIT_MATCH, TMP1, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LIMIT_MATCH, TMP1, 0);
if (mode == JIT_PARTIAL_SOFT_COMPILE)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, -1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, -1);
if (common->mark_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->mark_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->mark_ptr, SLJIT_IMM, 0);
if (common->control_head_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->control_head_ptr, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_IMM, 0);
/* Main part of the matching */
if ((re->options & PCRE_ANCHORED) == 0)
@@ -10005,21 +10001,12 @@ if ((re->options & PCRE_ANCHORED) == 0)
if ((re->options & PCRE_NO_START_OPTIMIZE) == 0)
{
if (mode == JIT_COMPILE && fast_forward_first_n_chars(common, (re->options & PCRE_FIRSTLINE) != 0))
- {
- /* If read_only_data is reallocated, we might have an allocation failure. */
- if (common->read_only_data_size > 0 && common->read_only_data == NULL)
- {
- sljit_free_compiler(compiler);
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- return;
- }
- }
+ ;
else if ((re->flags & PCRE_FIRSTSET) != 0)
fast_forward_first_char(common, (pcre_uchar)re->first_char, (re->flags & PCRE_FCH_CASELESS) != 0, (re->options & PCRE_FIRSTLINE) != 0);
else if ((re->flags & PCRE_STARTLINE) != 0)
fast_forward_newline(common, (re->options & PCRE_FIRSTLINE) != 0);
- else if ((re->flags & PCRE_STARTLINE) == 0 && study != NULL && (study->flags & PCRE_STUDY_MAPPED) != 0)
+ else if (study != NULL && (study->flags & PCRE_STUDY_MAPPED) != 0)
fast_forward_start_bits(common, study->start_bits, (re->options & PCRE_FIRSTLINE) != 0);
}
}
@@ -10030,22 +10017,22 @@ if (mode == JIT_COMPILE && study->minlength > 0 && (re->options & PCRE_NO_START_
{
OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_NOMATCH);
OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(study->minlength));
- minlength_check_failed = CMP(SLJIT_C_GREATER, TMP2, 0, STR_END, 0);
+ minlength_check_failed = CMP(SLJIT_GREATER, TMP2, 0, STR_END, 0);
}
if (common->req_char_ptr != 0)
reqbyte_notfound = search_requested_char(common, (pcre_uchar)re->req_char, (re->flags & PCRE_RCH_CASELESS) != 0, (re->flags & PCRE_FIRSTSET) != 0);
/* Store the current STR_PTR in OVECTOR(0). */
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), STR_PTR, 0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), OVECTOR(0), STR_PTR, 0);
/* Copy the limit of allowed recursions. */
-OP1(SLJIT_MOV, COUNT_MATCH, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LIMIT_MATCH);
+OP1(SLJIT_MOV, COUNT_MATCH, 0, SLJIT_MEM1(SLJIT_SP), LIMIT_MATCH);
if (common->capture_last_ptr != 0)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->capture_last_ptr, SLJIT_IMM, -1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr, SLJIT_IMM, -1);
if (common->needs_start_ptr)
{
SLJIT_ASSERT(common->start_ptr != OVECTOR(0));
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_ptr, STR_PTR, 0);
}
else
SLJIT_ASSERT(common->start_ptr == OVECTOR(0));
@@ -10053,28 +10040,27 @@ else
/* Copy the beginning of the string. */
if (mode == JIT_PARTIAL_SOFT_COMPILE)
{
- jump = CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, -1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start + sizeof(sljit_sw), STR_PTR, 0);
+ jump = CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, -1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start + sizeof(sljit_sw), STR_PTR, 0);
JUMPHERE(jump);
}
else if (mode == JIT_PARTIAL_HARD_COMPILE)
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, STR_PTR, 0);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, STR_PTR, 0);
compile_matchingpath(common, common->start, ccend, &rootbacktrack);
if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
{
sljit_free_compiler(compiler);
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
+ SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
+ free_read_only_data(common->read_only_data_head, compiler->allocator_data);
return;
}
if (common->might_be_empty)
{
- empty_match = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
+ empty_match = CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0));
empty_match_found_label = LABEL();
}
@@ -10106,10 +10092,9 @@ compile_backtrackingpath(common, rootbacktrack.top);
if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
{
sljit_free_compiler(compiler);
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
+ SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
+ free_read_only_data(common->read_only_data_head, compiler->allocator_data);
return;
}
@@ -10119,10 +10104,10 @@ reset_match_label = LABEL();
if (mode == JIT_PARTIAL_SOFT_COMPILE)
{
/* Update hit_start only in the first time. */
- jump = CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_used_ptr, SLJIT_IMM, -1);
- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, TMP1, 0);
+ jump = CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, 0);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->start_used_ptr, SLJIT_IMM, -1);
+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->hit_start, TMP1, 0);
JUMPHERE(jump);
}
@@ -10130,25 +10115,25 @@ if (mode == JIT_PARTIAL_SOFT_COMPILE)
if ((re->options & PCRE_ANCHORED) == 0 && (re->options & PCRE_FIRSTLINE) != 0)
{
SLJIT_ASSERT(common->first_line_end != 0);
- OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->first_line_end);
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->first_line_end);
}
-OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), common->start_ptr);
+OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), common->start_ptr);
if ((re->options & PCRE_ANCHORED) == 0)
{
if (common->ff_newline_shortcut != NULL)
{
if ((re->options & PCRE_FIRSTLINE) == 0)
- CMPTO(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0, common->ff_newline_shortcut);
+ CMPTO(SLJIT_LESS, STR_PTR, 0, STR_END, 0, common->ff_newline_shortcut);
/* There cannot be more newlines here. */
}
else
{
if ((re->options & PCRE_FIRSTLINE) == 0)
- CMPTO(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0, mainloop_label);
+ CMPTO(SLJIT_LESS, STR_PTR, 0, STR_END, 0, mainloop_label);
else
- CMPTO(SLJIT_C_LESS, STR_PTR, 0, TMP1, 0, mainloop_label);
+ CMPTO(SLJIT_LESS, STR_PTR, 0, TMP1, 0, mainloop_label);
}
}
@@ -10157,7 +10142,7 @@ if (reqbyte_notfound != NULL)
JUMPHERE(reqbyte_notfound);
if (mode == JIT_PARTIAL_SOFT_COMPILE)
- CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), common->hit_start, SLJIT_IMM, -1, common->partialmatchlabel);
+ CMPTO(SLJIT_NOT_EQUAL, SLJIT_MEM1(SLJIT_SP), common->hit_start, SLJIT_IMM, -1, common->partialmatchlabel);
OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_NOMATCH);
JUMPTO(SLJIT_JUMP, common->quit_label);
@@ -10169,11 +10154,11 @@ if (common->might_be_empty)
JUMPHERE(empty_match);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty));
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_backtrack_label);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_backtrack_label);
OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty_atstart));
- CMPTO(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_found_label);
+ CMPTO(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_found_label);
OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
- CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, empty_match_found_label);
+ CMPTO(SLJIT_NOT_EQUAL, TMP2, 0, STR_PTR, 0, empty_match_found_label);
JUMPTO(SLJIT_JUMP, empty_match_backtrack_label);
}
@@ -10187,10 +10172,9 @@ while (common->currententry != NULL)
if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
{
sljit_free_compiler(compiler);
- SLJIT_FREE(common->optimized_cbracket);
- SLJIT_FREE(common->private_data_ptrs);
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
+ SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
+ free_read_only_data(common->read_only_data_head, compiler->allocator_data);
return;
}
flush_stubs(common);
@@ -10203,21 +10187,21 @@ common->quit_label = quit_label;
/* This is a (really) rare case. */
set_jumps(common->stackalloc, LABEL());
/* RETURN_ADDR is not a saved register. */
-sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
-OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP2, 0);
+sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0);
+OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP2, 0);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top), STACK_TOP, 0);
OP2(SLJIT_ADD, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit), SLJIT_IMM, STACK_GROWTH_RATE);
sljit_emit_ijump(compiler, SLJIT_CALL2, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_stack_resize));
-jump = CMP(SLJIT_C_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0);
+jump = CMP(SLJIT_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0);
OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top));
OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit));
-OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
-sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
+OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1);
+sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0);
/* Allocation failed. */
JUMPHERE(jump);
@@ -10269,7 +10253,7 @@ if (common->reset_match != NULL)
{
set_jumps(common->reset_match, LABEL());
do_reset_match(common, (re->top_bracket + 1) * 2);
- CMPTO(SLJIT_C_GREATER, STR_PTR, 0, TMP1, 0, continue_match_label);
+ CMPTO(SLJIT_GREATER, STR_PTR, 0, TMP1, 0, continue_match_label);
OP1(SLJIT_MOV, STR_PTR, 0, TMP1, 0);
JUMPTO(SLJIT_JUMP, reset_match_label);
}
@@ -10300,23 +10284,21 @@ if (common->getucd != NULL)
}
#endif
-SLJIT_ASSERT(common->read_only_data + (common->read_only_data_size >> SLJIT_WORD_SHIFT) == common->read_only_data_ptr);
-SLJIT_FREE(common->optimized_cbracket);
-SLJIT_FREE(common->private_data_ptrs);
+SLJIT_FREE(common->optimized_cbracket, compiler->allocator_data);
+SLJIT_FREE(common->private_data_ptrs, compiler->allocator_data);
executable_func = sljit_generate_code(compiler);
executable_size = sljit_get_generated_code_size(compiler);
label_addr = common->label_addrs;
while (label_addr != NULL)
{
- *label_addr->addr = sljit_get_label_addr(label_addr->label);
+ *label_addr->update_addr = sljit_get_label_addr(label_addr->label);
label_addr = label_addr->next;
}
sljit_free_compiler(compiler);
if (executable_func == NULL)
{
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ free_read_only_data(common->read_only_data_head, compiler->allocator_data);
return;
}
@@ -10334,14 +10316,13 @@ else
* bit remains set, as the bit indicates that the pointer to the data
* is valid.)
*/
- functions = SLJIT_MALLOC(sizeof(executable_functions));
+ functions = SLJIT_MALLOC(sizeof(executable_functions), compiler->allocator_data);
if (functions == NULL)
{
/* This case is highly unlikely since we just recently
freed a lot of memory. Not impossible though. */
sljit_free_code(executable_func);
- if (common->read_only_data)
- SLJIT_FREE(common->read_only_data);
+ free_read_only_data(common->read_only_data_head, compiler->allocator_data);
return;
}
memset(functions, 0, sizeof(executable_functions));
@@ -10352,14 +10333,14 @@ else
}
functions->executable_funcs[mode] = executable_func;
-functions->read_only_data[mode] = common->read_only_data;
+functions->read_only_data_heads[mode] = common->read_only_data_head;
functions->executable_sizes[mode] = executable_size;
}
-static int jit_machine_stack_exec(jit_arguments *arguments, void* executable_func)
+static SLJIT_NOINLINE int jit_machine_stack_exec(jit_arguments *arguments, void *executable_func)
{
union {
- void* executable_func;
+ void *executable_func;
jit_function call_executable_func;
} convert_executable_func;
pcre_uint8 local_space[MACHINE_STACK_SIZE];
@@ -10380,7 +10361,7 @@ PRIV(jit_exec)(const PUBL(extra) *extra_data, const pcre_uchar *subject,
{
executable_functions *functions = (executable_functions *)extra_data->executable_jit;
union {
- void* executable_func;
+ void *executable_func;
jit_function call_executable_func;
} convert_executable_func;
jit_arguments arguments;
@@ -10467,7 +10448,7 @@ pcre32_jit_exec(const pcre32 *argument_re, const pcre32_extra *extra_data,
pcre_uchar *subject_ptr = (pcre_uchar *)subject;
executable_functions *functions = (executable_functions *)extra_data->executable_jit;
union {
- void* executable_func;
+ void *executable_func;
jit_function call_executable_func;
} convert_executable_func;
jit_arguments arguments;
@@ -10539,10 +10520,9 @@ for (i = 0; i < JIT_NUMBER_OF_COMPILE_MODES; i++)
{
if (functions->executable_funcs[i] != NULL)
sljit_free_code(functions->executable_funcs[i]);
- if (functions->read_only_data[i] != NULL)
- SLJIT_FREE(functions->read_only_data[i]);
+ free_read_only_data(functions->read_only_data_heads[i], NULL);
}
-SLJIT_FREE(functions);
+SLJIT_FREE(functions, compiler->allocator_data);
}
int
@@ -10579,7 +10559,7 @@ if (startsize > maxsize)
startsize = maxsize;
startsize = (startsize + STACK_GROWTH_RATE - 1) & ~(STACK_GROWTH_RATE - 1);
maxsize = (maxsize + STACK_GROWTH_RATE - 1) & ~(STACK_GROWTH_RATE - 1);
-return (PUBL(jit_stack)*)sljit_allocate_stack(startsize, maxsize);
+return (PUBL(jit_stack)*)sljit_allocate_stack(startsize, maxsize, NULL);
}
#if defined COMPILE_PCRE8
@@ -10593,7 +10573,7 @@ PCRE_EXP_DECL void
pcre32_jit_stack_free(pcre32_jit_stack *stack)
#endif
{
-sljit_free_stack((struct sljit_stack *)stack);
+sljit_free_stack((struct sljit_stack *)stack, NULL);
}
#if defined COMPILE_PCRE8
diff --git a/src/3rdparty/pcre/pcre_study.c b/src/3rdparty/pcre/pcre_study.c
index ab9510e20e..a2458c4c96 100644
--- a/src/3rdparty/pcre/pcre_study.c
+++ b/src/3rdparty/pcre/pcre_study.c
@@ -393,7 +393,7 @@ for (;;)
ce = cs = (pcre_uchar *)PRIV(find_bracket)(startcode, utf, GET2(slot, 0));
if (cs == NULL) return -2;
do ce += GET(ce, 1); while (*ce == OP_ALT);
- if (cc > cs && cc < ce)
+ if ((cc > cs && cc < ce) || recurse_depth > 10)
{
d = 0;
had_recurse = TRUE;
@@ -401,7 +401,7 @@ for (;;)
}
else
{
- int dd = find_minlength(re, cs, startcode, options, recurse_depth);
+ int dd = find_minlength(re, cs, startcode, options, recurse_depth+1);
if (dd < d) d = dd;
}
slot += re->name_entry_size;
@@ -418,14 +418,14 @@ for (;;)
ce = cs = (pcre_uchar *)PRIV(find_bracket)(startcode, utf, GET2(cc, 1));
if (cs == NULL) return -2;
do ce += GET(ce, 1); while (*ce == OP_ALT);
- if (cc > cs && cc < ce)
+ if ((cc > cs && cc < ce) || recurse_depth > 10)
{
d = 0;
had_recurse = TRUE;
}
else
{
- d = find_minlength(re, cs, startcode, options, recurse_depth);
+ d = find_minlength(re, cs, startcode, options, recurse_depth + 1);
}
}
else d = 0;
@@ -863,7 +863,6 @@ do
case OP_NOTUPTOI:
case OP_NOT_HSPACE:
case OP_NOT_VSPACE:
- case OP_PROP:
case OP_PRUNE:
case OP_PRUNE_ARG:
case OP_RECURSE:
@@ -881,6 +880,31 @@ do
case OP_THEN_ARG:
return SSB_FAIL;
+ /* A "real" property test implies no starting bits, but the fake property
+ PT_CLIST identifies a list of characters. These lists are short, as they
+ are used for characters with more than one "other case", so there is no
+ point in recognizing them for OP_NOTPROP. */
+
+ case OP_PROP:
+ if (tcode[1] != PT_CLIST) return SSB_FAIL;
+ {
+ const pcre_uint32 *p = PRIV(ucd_caseless_sets) + tcode[2];
+ while ((c = *p++) < NOTACHAR)
+ {
+#if defined SUPPORT_UTF && defined COMPILE_PCRE8
+ if (utf)
+ {
+ pcre_uchar buff[6];
+ (void)PRIV(ord2utf)(c, buff);
+ c = buff[0];
+ }
+#endif
+ if (c > 0xff) SET_BIT(0xff); else SET_BIT(c);
+ }
+ }
+ try_next = FALSE;
+ break;
+
/* We can ignore word boundary tests. */
case OP_WORD_BOUNDARY:
@@ -1106,24 +1130,17 @@ do
try_next = FALSE;
break;
- /* The cbit_space table has vertical tab as whitespace; we have to
- ensure it is set as not whitespace. Luckily, the code value is the same
- (0x0b) in ASCII and EBCDIC, so we can just adjust the appropriate bit. */
+ /* The cbit_space table has vertical tab as whitespace; we no longer
+ have to play fancy tricks because Perl added VT to its whitespace at
+ release 5.18. PCRE added it at release 8.34. */
case OP_NOT_WHITESPACE:
set_nottype_bits(start_bits, cbit_space, table_limit, cd);
- start_bits[1] |= 0x08;
try_next = FALSE;
break;
- /* The cbit_space table has vertical tab as whitespace; we have to not
- set it from the table. Luckily, the code value is the same (0x0b) in
- ASCII and EBCDIC, so we can just adjust the appropriate bit. */
-
case OP_WHITESPACE:
- c = start_bits[1]; /* Save in case it was already set */
set_type_bits(start_bits, cbit_space, table_limit, cd);
- start_bits[1] = (start_bits[1] & ~0x08) | c;
try_next = FALSE;
break;
diff --git a/src/3rdparty/pcre/pcre_tables.c b/src/3rdparty/pcre/pcre_tables.c
index f38ab52cbb..4960af57c4 100644
--- a/src/3rdparty/pcre/pcre_tables.c
+++ b/src/3rdparty/pcre/pcre_tables.c
@@ -213,6 +213,7 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Avestan0 STR_A STR_v STR_e STR_s STR_t STR_a STR_n "\0"
#define STRING_Balinese0 STR_B STR_a STR_l STR_i STR_n STR_e STR_s STR_e "\0"
#define STRING_Bamum0 STR_B STR_a STR_m STR_u STR_m "\0"
+#define STRING_Bassa_Vah0 STR_B STR_a STR_s STR_s STR_a STR_UNDERSCORE STR_V STR_a STR_h "\0"
#define STRING_Batak0 STR_B STR_a STR_t STR_a STR_k "\0"
#define STRING_Bengali0 STR_B STR_e STR_n STR_g STR_a STR_l STR_i "\0"
#define STRING_Bopomofo0 STR_B STR_o STR_p STR_o STR_m STR_o STR_f STR_o "\0"
@@ -223,6 +224,7 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_C0 STR_C "\0"
#define STRING_Canadian_Aboriginal0 STR_C STR_a STR_n STR_a STR_d STR_i STR_a STR_n STR_UNDERSCORE STR_A STR_b STR_o STR_r STR_i STR_g STR_i STR_n STR_a STR_l "\0"
#define STRING_Carian0 STR_C STR_a STR_r STR_i STR_a STR_n "\0"
+#define STRING_Caucasian_Albanian0 STR_C STR_a STR_u STR_c STR_a STR_s STR_i STR_a STR_n STR_UNDERSCORE STR_A STR_l STR_b STR_a STR_n STR_i STR_a STR_n "\0"
#define STRING_Cc0 STR_C STR_c "\0"
#define STRING_Cf0 STR_C STR_f "\0"
#define STRING_Chakma0 STR_C STR_h STR_a STR_k STR_m STR_a "\0"
@@ -238,11 +240,14 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Cyrillic0 STR_C STR_y STR_r STR_i STR_l STR_l STR_i STR_c "\0"
#define STRING_Deseret0 STR_D STR_e STR_s STR_e STR_r STR_e STR_t "\0"
#define STRING_Devanagari0 STR_D STR_e STR_v STR_a STR_n STR_a STR_g STR_a STR_r STR_i "\0"
+#define STRING_Duployan0 STR_D STR_u STR_p STR_l STR_o STR_y STR_a STR_n "\0"
#define STRING_Egyptian_Hieroglyphs0 STR_E STR_g STR_y STR_p STR_t STR_i STR_a STR_n STR_UNDERSCORE STR_H STR_i STR_e STR_r STR_o STR_g STR_l STR_y STR_p STR_h STR_s "\0"
+#define STRING_Elbasan0 STR_E STR_l STR_b STR_a STR_s STR_a STR_n "\0"
#define STRING_Ethiopic0 STR_E STR_t STR_h STR_i STR_o STR_p STR_i STR_c "\0"
#define STRING_Georgian0 STR_G STR_e STR_o STR_r STR_g STR_i STR_a STR_n "\0"
#define STRING_Glagolitic0 STR_G STR_l STR_a STR_g STR_o STR_l STR_i STR_t STR_i STR_c "\0"
#define STRING_Gothic0 STR_G STR_o STR_t STR_h STR_i STR_c "\0"
+#define STRING_Grantha0 STR_G STR_r STR_a STR_n STR_t STR_h STR_a "\0"
#define STRING_Greek0 STR_G STR_r STR_e STR_e STR_k "\0"
#define STRING_Gujarati0 STR_G STR_u STR_j STR_a STR_r STR_a STR_t STR_i "\0"
#define STRING_Gurmukhi0 STR_G STR_u STR_r STR_m STR_u STR_k STR_h STR_i "\0"
@@ -262,12 +267,15 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Kayah_Li0 STR_K STR_a STR_y STR_a STR_h STR_UNDERSCORE STR_L STR_i "\0"
#define STRING_Kharoshthi0 STR_K STR_h STR_a STR_r STR_o STR_s STR_h STR_t STR_h STR_i "\0"
#define STRING_Khmer0 STR_K STR_h STR_m STR_e STR_r "\0"
+#define STRING_Khojki0 STR_K STR_h STR_o STR_j STR_k STR_i "\0"
+#define STRING_Khudawadi0 STR_K STR_h STR_u STR_d STR_a STR_w STR_a STR_d STR_i "\0"
#define STRING_L0 STR_L "\0"
#define STRING_L_AMPERSAND0 STR_L STR_AMPERSAND "\0"
#define STRING_Lao0 STR_L STR_a STR_o "\0"
#define STRING_Latin0 STR_L STR_a STR_t STR_i STR_n "\0"
#define STRING_Lepcha0 STR_L STR_e STR_p STR_c STR_h STR_a "\0"
#define STRING_Limbu0 STR_L STR_i STR_m STR_b STR_u "\0"
+#define STRING_Linear_A0 STR_L STR_i STR_n STR_e STR_a STR_r STR_UNDERSCORE STR_A "\0"
#define STRING_Linear_B0 STR_L STR_i STR_n STR_e STR_a STR_r STR_UNDERSCORE STR_B "\0"
#define STRING_Lisu0 STR_L STR_i STR_s STR_u "\0"
#define STRING_Ll0 STR_L STR_l "\0"
@@ -278,18 +286,24 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Lycian0 STR_L STR_y STR_c STR_i STR_a STR_n "\0"
#define STRING_Lydian0 STR_L STR_y STR_d STR_i STR_a STR_n "\0"
#define STRING_M0 STR_M "\0"
+#define STRING_Mahajani0 STR_M STR_a STR_h STR_a STR_j STR_a STR_n STR_i "\0"
#define STRING_Malayalam0 STR_M STR_a STR_l STR_a STR_y STR_a STR_l STR_a STR_m "\0"
#define STRING_Mandaic0 STR_M STR_a STR_n STR_d STR_a STR_i STR_c "\0"
+#define STRING_Manichaean0 STR_M STR_a STR_n STR_i STR_c STR_h STR_a STR_e STR_a STR_n "\0"
#define STRING_Mc0 STR_M STR_c "\0"
#define STRING_Me0 STR_M STR_e "\0"
#define STRING_Meetei_Mayek0 STR_M STR_e STR_e STR_t STR_e STR_i STR_UNDERSCORE STR_M STR_a STR_y STR_e STR_k "\0"
+#define STRING_Mende_Kikakui0 STR_M STR_e STR_n STR_d STR_e STR_UNDERSCORE STR_K STR_i STR_k STR_a STR_k STR_u STR_i "\0"
#define STRING_Meroitic_Cursive0 STR_M STR_e STR_r STR_o STR_i STR_t STR_i STR_c STR_UNDERSCORE STR_C STR_u STR_r STR_s STR_i STR_v STR_e "\0"
#define STRING_Meroitic_Hieroglyphs0 STR_M STR_e STR_r STR_o STR_i STR_t STR_i STR_c STR_UNDERSCORE STR_H STR_i STR_e STR_r STR_o STR_g STR_l STR_y STR_p STR_h STR_s "\0"
#define STRING_Miao0 STR_M STR_i STR_a STR_o "\0"
#define STRING_Mn0 STR_M STR_n "\0"
+#define STRING_Modi0 STR_M STR_o STR_d STR_i "\0"
#define STRING_Mongolian0 STR_M STR_o STR_n STR_g STR_o STR_l STR_i STR_a STR_n "\0"
+#define STRING_Mro0 STR_M STR_r STR_o "\0"
#define STRING_Myanmar0 STR_M STR_y STR_a STR_n STR_m STR_a STR_r "\0"
#define STRING_N0 STR_N "\0"
+#define STRING_Nabataean0 STR_N STR_a STR_b STR_a STR_t STR_a STR_e STR_a STR_n "\0"
#define STRING_Nd0 STR_N STR_d "\0"
#define STRING_New_Tai_Lue0 STR_N STR_e STR_w STR_UNDERSCORE STR_T STR_a STR_i STR_UNDERSCORE STR_L STR_u STR_e "\0"
#define STRING_Nko0 STR_N STR_k STR_o "\0"
@@ -298,12 +312,17 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Ogham0 STR_O STR_g STR_h STR_a STR_m "\0"
#define STRING_Ol_Chiki0 STR_O STR_l STR_UNDERSCORE STR_C STR_h STR_i STR_k STR_i "\0"
#define STRING_Old_Italic0 STR_O STR_l STR_d STR_UNDERSCORE STR_I STR_t STR_a STR_l STR_i STR_c "\0"
+#define STRING_Old_North_Arabian0 STR_O STR_l STR_d STR_UNDERSCORE STR_N STR_o STR_r STR_t STR_h STR_UNDERSCORE STR_A STR_r STR_a STR_b STR_i STR_a STR_n "\0"
+#define STRING_Old_Permic0 STR_O STR_l STR_d STR_UNDERSCORE STR_P STR_e STR_r STR_m STR_i STR_c "\0"
#define STRING_Old_Persian0 STR_O STR_l STR_d STR_UNDERSCORE STR_P STR_e STR_r STR_s STR_i STR_a STR_n "\0"
#define STRING_Old_South_Arabian0 STR_O STR_l STR_d STR_UNDERSCORE STR_S STR_o STR_u STR_t STR_h STR_UNDERSCORE STR_A STR_r STR_a STR_b STR_i STR_a STR_n "\0"
#define STRING_Old_Turkic0 STR_O STR_l STR_d STR_UNDERSCORE STR_T STR_u STR_r STR_k STR_i STR_c "\0"
#define STRING_Oriya0 STR_O STR_r STR_i STR_y STR_a "\0"
#define STRING_Osmanya0 STR_O STR_s STR_m STR_a STR_n STR_y STR_a "\0"
#define STRING_P0 STR_P "\0"
+#define STRING_Pahawh_Hmong0 STR_P STR_a STR_h STR_a STR_w STR_h STR_UNDERSCORE STR_H STR_m STR_o STR_n STR_g "\0"
+#define STRING_Palmyrene0 STR_P STR_a STR_l STR_m STR_y STR_r STR_e STR_n STR_e "\0"
+#define STRING_Pau_Cin_Hau0 STR_P STR_a STR_u STR_UNDERSCORE STR_C STR_i STR_n STR_UNDERSCORE STR_H STR_a STR_u "\0"
#define STRING_Pc0 STR_P STR_c "\0"
#define STRING_Pd0 STR_P STR_d "\0"
#define STRING_Pe0 STR_P STR_e "\0"
@@ -313,6 +332,7 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Pi0 STR_P STR_i "\0"
#define STRING_Po0 STR_P STR_o "\0"
#define STRING_Ps0 STR_P STR_s "\0"
+#define STRING_Psalter_Pahlavi0 STR_P STR_s STR_a STR_l STR_t STR_e STR_r STR_UNDERSCORE STR_P STR_a STR_h STR_l STR_a STR_v STR_i "\0"
#define STRING_Rejang0 STR_R STR_e STR_j STR_a STR_n STR_g "\0"
#define STRING_Runic0 STR_R STR_u STR_n STR_i STR_c "\0"
#define STRING_S0 STR_S "\0"
@@ -321,6 +341,7 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Sc0 STR_S STR_c "\0"
#define STRING_Sharada0 STR_S STR_h STR_a STR_r STR_a STR_d STR_a "\0"
#define STRING_Shavian0 STR_S STR_h STR_a STR_v STR_i STR_a STR_n "\0"
+#define STRING_Siddham0 STR_S STR_i STR_d STR_d STR_h STR_a STR_m "\0"
#define STRING_Sinhala0 STR_S STR_i STR_n STR_h STR_a STR_l STR_a "\0"
#define STRING_Sk0 STR_S STR_k "\0"
#define STRING_Sm0 STR_S STR_m "\0"
@@ -341,8 +362,10 @@ strings to make sure that UTF-8 support works on EBCDIC platforms. */
#define STRING_Thai0 STR_T STR_h STR_a STR_i "\0"
#define STRING_Tibetan0 STR_T STR_i STR_b STR_e STR_t STR_a STR_n "\0"
#define STRING_Tifinagh0 STR_T STR_i STR_f STR_i STR_n STR_a STR_g STR_h "\0"
+#define STRING_Tirhuta0 STR_T STR_i STR_r STR_h STR_u STR_t STR_a "\0"
#define STRING_Ugaritic0 STR_U STR_g STR_a STR_r STR_i STR_t STR_i STR_c "\0"
#define STRING_Vai0 STR_V STR_a STR_i "\0"
+#define STRING_Warang_Citi0 STR_W STR_a STR_r STR_a STR_n STR_g STR_UNDERSCORE STR_C STR_i STR_t STR_i "\0"
#define STRING_Xan0 STR_X STR_a STR_n "\0"
#define STRING_Xps0 STR_X STR_p STR_s "\0"
#define STRING_Xsp0 STR_X STR_s STR_p "\0"
@@ -361,6 +384,7 @@ const char PRIV(utt_names)[] =
STRING_Avestan0
STRING_Balinese0
STRING_Bamum0
+ STRING_Bassa_Vah0
STRING_Batak0
STRING_Bengali0
STRING_Bopomofo0
@@ -371,6 +395,7 @@ const char PRIV(utt_names)[] =
STRING_C0
STRING_Canadian_Aboriginal0
STRING_Carian0
+ STRING_Caucasian_Albanian0
STRING_Cc0
STRING_Cf0
STRING_Chakma0
@@ -386,11 +411,14 @@ const char PRIV(utt_names)[] =
STRING_Cyrillic0
STRING_Deseret0
STRING_Devanagari0
+ STRING_Duployan0
STRING_Egyptian_Hieroglyphs0
+ STRING_Elbasan0
STRING_Ethiopic0
STRING_Georgian0
STRING_Glagolitic0
STRING_Gothic0
+ STRING_Grantha0
STRING_Greek0
STRING_Gujarati0
STRING_Gurmukhi0
@@ -410,12 +438,15 @@ const char PRIV(utt_names)[] =
STRING_Kayah_Li0
STRING_Kharoshthi0
STRING_Khmer0
+ STRING_Khojki0
+ STRING_Khudawadi0
STRING_L0
STRING_L_AMPERSAND0
STRING_Lao0
STRING_Latin0
STRING_Lepcha0
STRING_Limbu0
+ STRING_Linear_A0
STRING_Linear_B0
STRING_Lisu0
STRING_Ll0
@@ -426,18 +457,24 @@ const char PRIV(utt_names)[] =
STRING_Lycian0
STRING_Lydian0
STRING_M0
+ STRING_Mahajani0
STRING_Malayalam0
STRING_Mandaic0
+ STRING_Manichaean0
STRING_Mc0
STRING_Me0
STRING_Meetei_Mayek0
+ STRING_Mende_Kikakui0
STRING_Meroitic_Cursive0
STRING_Meroitic_Hieroglyphs0
STRING_Miao0
STRING_Mn0
+ STRING_Modi0
STRING_Mongolian0
+ STRING_Mro0
STRING_Myanmar0
STRING_N0
+ STRING_Nabataean0
STRING_Nd0
STRING_New_Tai_Lue0
STRING_Nko0
@@ -446,12 +483,17 @@ const char PRIV(utt_names)[] =
STRING_Ogham0
STRING_Ol_Chiki0
STRING_Old_Italic0
+ STRING_Old_North_Arabian0
+ STRING_Old_Permic0
STRING_Old_Persian0
STRING_Old_South_Arabian0
STRING_Old_Turkic0
STRING_Oriya0
STRING_Osmanya0
STRING_P0
+ STRING_Pahawh_Hmong0
+ STRING_Palmyrene0
+ STRING_Pau_Cin_Hau0
STRING_Pc0
STRING_Pd0
STRING_Pe0
@@ -461,6 +503,7 @@ const char PRIV(utt_names)[] =
STRING_Pi0
STRING_Po0
STRING_Ps0
+ STRING_Psalter_Pahlavi0
STRING_Rejang0
STRING_Runic0
STRING_S0
@@ -469,6 +512,7 @@ const char PRIV(utt_names)[] =
STRING_Sc0
STRING_Sharada0
STRING_Shavian0
+ STRING_Siddham0
STRING_Sinhala0
STRING_Sk0
STRING_Sm0
@@ -489,8 +533,10 @@ const char PRIV(utt_names)[] =
STRING_Thai0
STRING_Tibetan0
STRING_Tifinagh0
+ STRING_Tirhuta0
STRING_Ugaritic0
STRING_Vai0
+ STRING_Warang_Citi0
STRING_Xan0
STRING_Xps0
STRING_Xsp0
@@ -509,146 +555,169 @@ const ucp_type_table PRIV(utt)[] = {
{ 20, PT_SC, ucp_Avestan },
{ 28, PT_SC, ucp_Balinese },
{ 37, PT_SC, ucp_Bamum },
- { 43, PT_SC, ucp_Batak },
- { 49, PT_SC, ucp_Bengali },
- { 57, PT_SC, ucp_Bopomofo },
- { 66, PT_SC, ucp_Brahmi },
- { 73, PT_SC, ucp_Braille },
- { 81, PT_SC, ucp_Buginese },
- { 90, PT_SC, ucp_Buhid },
- { 96, PT_GC, ucp_C },
- { 98, PT_SC, ucp_Canadian_Aboriginal },
- { 118, PT_SC, ucp_Carian },
- { 125, PT_PC, ucp_Cc },
- { 128, PT_PC, ucp_Cf },
- { 131, PT_SC, ucp_Chakma },
- { 138, PT_SC, ucp_Cham },
- { 143, PT_SC, ucp_Cherokee },
- { 152, PT_PC, ucp_Cn },
- { 155, PT_PC, ucp_Co },
- { 158, PT_SC, ucp_Common },
- { 165, PT_SC, ucp_Coptic },
- { 172, PT_PC, ucp_Cs },
- { 175, PT_SC, ucp_Cuneiform },
- { 185, PT_SC, ucp_Cypriot },
- { 193, PT_SC, ucp_Cyrillic },
- { 202, PT_SC, ucp_Deseret },
- { 210, PT_SC, ucp_Devanagari },
- { 221, PT_SC, ucp_Egyptian_Hieroglyphs },
- { 242, PT_SC, ucp_Ethiopic },
- { 251, PT_SC, ucp_Georgian },
- { 260, PT_SC, ucp_Glagolitic },
- { 271, PT_SC, ucp_Gothic },
- { 278, PT_SC, ucp_Greek },
- { 284, PT_SC, ucp_Gujarati },
- { 293, PT_SC, ucp_Gurmukhi },
- { 302, PT_SC, ucp_Han },
- { 306, PT_SC, ucp_Hangul },
- { 313, PT_SC, ucp_Hanunoo },
- { 321, PT_SC, ucp_Hebrew },
- { 328, PT_SC, ucp_Hiragana },
- { 337, PT_SC, ucp_Imperial_Aramaic },
- { 354, PT_SC, ucp_Inherited },
- { 364, PT_SC, ucp_Inscriptional_Pahlavi },
- { 386, PT_SC, ucp_Inscriptional_Parthian },
- { 409, PT_SC, ucp_Javanese },
- { 418, PT_SC, ucp_Kaithi },
- { 425, PT_SC, ucp_Kannada },
- { 433, PT_SC, ucp_Katakana },
- { 442, PT_SC, ucp_Kayah_Li },
- { 451, PT_SC, ucp_Kharoshthi },
- { 462, PT_SC, ucp_Khmer },
- { 468, PT_GC, ucp_L },
- { 470, PT_LAMP, 0 },
- { 473, PT_SC, ucp_Lao },
- { 477, PT_SC, ucp_Latin },
- { 483, PT_SC, ucp_Lepcha },
- { 490, PT_SC, ucp_Limbu },
- { 496, PT_SC, ucp_Linear_B },
- { 505, PT_SC, ucp_Lisu },
- { 510, PT_PC, ucp_Ll },
- { 513, PT_PC, ucp_Lm },
- { 516, PT_PC, ucp_Lo },
- { 519, PT_PC, ucp_Lt },
- { 522, PT_PC, ucp_Lu },
- { 525, PT_SC, ucp_Lycian },
- { 532, PT_SC, ucp_Lydian },
- { 539, PT_GC, ucp_M },
- { 541, PT_SC, ucp_Malayalam },
- { 551, PT_SC, ucp_Mandaic },
- { 559, PT_PC, ucp_Mc },
- { 562, PT_PC, ucp_Me },
- { 565, PT_SC, ucp_Meetei_Mayek },
- { 578, PT_SC, ucp_Meroitic_Cursive },
- { 595, PT_SC, ucp_Meroitic_Hieroglyphs },
- { 616, PT_SC, ucp_Miao },
- { 621, PT_PC, ucp_Mn },
- { 624, PT_SC, ucp_Mongolian },
- { 634, PT_SC, ucp_Myanmar },
- { 642, PT_GC, ucp_N },
- { 644, PT_PC, ucp_Nd },
- { 647, PT_SC, ucp_New_Tai_Lue },
- { 659, PT_SC, ucp_Nko },
- { 663, PT_PC, ucp_Nl },
- { 666, PT_PC, ucp_No },
- { 669, PT_SC, ucp_Ogham },
- { 675, PT_SC, ucp_Ol_Chiki },
- { 684, PT_SC, ucp_Old_Italic },
- { 695, PT_SC, ucp_Old_Persian },
- { 707, PT_SC, ucp_Old_South_Arabian },
- { 725, PT_SC, ucp_Old_Turkic },
- { 736, PT_SC, ucp_Oriya },
- { 742, PT_SC, ucp_Osmanya },
- { 750, PT_GC, ucp_P },
- { 752, PT_PC, ucp_Pc },
- { 755, PT_PC, ucp_Pd },
- { 758, PT_PC, ucp_Pe },
- { 761, PT_PC, ucp_Pf },
- { 764, PT_SC, ucp_Phags_Pa },
- { 773, PT_SC, ucp_Phoenician },
- { 784, PT_PC, ucp_Pi },
- { 787, PT_PC, ucp_Po },
- { 790, PT_PC, ucp_Ps },
- { 793, PT_SC, ucp_Rejang },
- { 800, PT_SC, ucp_Runic },
- { 806, PT_GC, ucp_S },
- { 808, PT_SC, ucp_Samaritan },
- { 818, PT_SC, ucp_Saurashtra },
- { 829, PT_PC, ucp_Sc },
- { 832, PT_SC, ucp_Sharada },
- { 840, PT_SC, ucp_Shavian },
- { 848, PT_SC, ucp_Sinhala },
- { 856, PT_PC, ucp_Sk },
- { 859, PT_PC, ucp_Sm },
- { 862, PT_PC, ucp_So },
- { 865, PT_SC, ucp_Sora_Sompeng },
- { 878, PT_SC, ucp_Sundanese },
- { 888, PT_SC, ucp_Syloti_Nagri },
- { 901, PT_SC, ucp_Syriac },
- { 908, PT_SC, ucp_Tagalog },
- { 916, PT_SC, ucp_Tagbanwa },
- { 925, PT_SC, ucp_Tai_Le },
- { 932, PT_SC, ucp_Tai_Tham },
- { 941, PT_SC, ucp_Tai_Viet },
- { 950, PT_SC, ucp_Takri },
- { 956, PT_SC, ucp_Tamil },
- { 962, PT_SC, ucp_Telugu },
- { 969, PT_SC, ucp_Thaana },
- { 976, PT_SC, ucp_Thai },
- { 981, PT_SC, ucp_Tibetan },
- { 989, PT_SC, ucp_Tifinagh },
- { 998, PT_SC, ucp_Ugaritic },
- { 1007, PT_SC, ucp_Vai },
- { 1011, PT_ALNUM, 0 },
- { 1015, PT_PXSPACE, 0 },
- { 1019, PT_SPACE, 0 },
- { 1023, PT_UCNC, 0 },
- { 1027, PT_WORD, 0 },
- { 1031, PT_SC, ucp_Yi },
- { 1034, PT_GC, ucp_Z },
- { 1036, PT_PC, ucp_Zl },
- { 1039, PT_PC, ucp_Zp },
- { 1042, PT_PC, ucp_Zs }
+ { 43, PT_SC, ucp_Bassa_Vah },
+ { 53, PT_SC, ucp_Batak },
+ { 59, PT_SC, ucp_Bengali },
+ { 67, PT_SC, ucp_Bopomofo },
+ { 76, PT_SC, ucp_Brahmi },
+ { 83, PT_SC, ucp_Braille },
+ { 91, PT_SC, ucp_Buginese },
+ { 100, PT_SC, ucp_Buhid },
+ { 106, PT_GC, ucp_C },
+ { 108, PT_SC, ucp_Canadian_Aboriginal },
+ { 128, PT_SC, ucp_Carian },
+ { 135, PT_SC, ucp_Caucasian_Albanian },
+ { 154, PT_PC, ucp_Cc },
+ { 157, PT_PC, ucp_Cf },
+ { 160, PT_SC, ucp_Chakma },
+ { 167, PT_SC, ucp_Cham },
+ { 172, PT_SC, ucp_Cherokee },
+ { 181, PT_PC, ucp_Cn },
+ { 184, PT_PC, ucp_Co },
+ { 187, PT_SC, ucp_Common },
+ { 194, PT_SC, ucp_Coptic },
+ { 201, PT_PC, ucp_Cs },
+ { 204, PT_SC, ucp_Cuneiform },
+ { 214, PT_SC, ucp_Cypriot },
+ { 222, PT_SC, ucp_Cyrillic },
+ { 231, PT_SC, ucp_Deseret },
+ { 239, PT_SC, ucp_Devanagari },
+ { 250, PT_SC, ucp_Duployan },
+ { 259, PT_SC, ucp_Egyptian_Hieroglyphs },
+ { 280, PT_SC, ucp_Elbasan },
+ { 288, PT_SC, ucp_Ethiopic },
+ { 297, PT_SC, ucp_Georgian },
+ { 306, PT_SC, ucp_Glagolitic },
+ { 317, PT_SC, ucp_Gothic },
+ { 324, PT_SC, ucp_Grantha },
+ { 332, PT_SC, ucp_Greek },
+ { 338, PT_SC, ucp_Gujarati },
+ { 347, PT_SC, ucp_Gurmukhi },
+ { 356, PT_SC, ucp_Han },
+ { 360, PT_SC, ucp_Hangul },
+ { 367, PT_SC, ucp_Hanunoo },
+ { 375, PT_SC, ucp_Hebrew },
+ { 382, PT_SC, ucp_Hiragana },
+ { 391, PT_SC, ucp_Imperial_Aramaic },
+ { 408, PT_SC, ucp_Inherited },
+ { 418, PT_SC, ucp_Inscriptional_Pahlavi },
+ { 440, PT_SC, ucp_Inscriptional_Parthian },
+ { 463, PT_SC, ucp_Javanese },
+ { 472, PT_SC, ucp_Kaithi },
+ { 479, PT_SC, ucp_Kannada },
+ { 487, PT_SC, ucp_Katakana },
+ { 496, PT_SC, ucp_Kayah_Li },
+ { 505, PT_SC, ucp_Kharoshthi },
+ { 516, PT_SC, ucp_Khmer },
+ { 522, PT_SC, ucp_Khojki },
+ { 529, PT_SC, ucp_Khudawadi },
+ { 539, PT_GC, ucp_L },
+ { 541, PT_LAMP, 0 },
+ { 544, PT_SC, ucp_Lao },
+ { 548, PT_SC, ucp_Latin },
+ { 554, PT_SC, ucp_Lepcha },
+ { 561, PT_SC, ucp_Limbu },
+ { 567, PT_SC, ucp_Linear_A },
+ { 576, PT_SC, ucp_Linear_B },
+ { 585, PT_SC, ucp_Lisu },
+ { 590, PT_PC, ucp_Ll },
+ { 593, PT_PC, ucp_Lm },
+ { 596, PT_PC, ucp_Lo },
+ { 599, PT_PC, ucp_Lt },
+ { 602, PT_PC, ucp_Lu },
+ { 605, PT_SC, ucp_Lycian },
+ { 612, PT_SC, ucp_Lydian },
+ { 619, PT_GC, ucp_M },
+ { 621, PT_SC, ucp_Mahajani },
+ { 630, PT_SC, ucp_Malayalam },
+ { 640, PT_SC, ucp_Mandaic },
+ { 648, PT_SC, ucp_Manichaean },
+ { 659, PT_PC, ucp_Mc },
+ { 662, PT_PC, ucp_Me },
+ { 665, PT_SC, ucp_Meetei_Mayek },
+ { 678, PT_SC, ucp_Mende_Kikakui },
+ { 692, PT_SC, ucp_Meroitic_Cursive },
+ { 709, PT_SC, ucp_Meroitic_Hieroglyphs },
+ { 730, PT_SC, ucp_Miao },
+ { 735, PT_PC, ucp_Mn },
+ { 738, PT_SC, ucp_Modi },
+ { 743, PT_SC, ucp_Mongolian },
+ { 753, PT_SC, ucp_Mro },
+ { 757, PT_SC, ucp_Myanmar },
+ { 765, PT_GC, ucp_N },
+ { 767, PT_SC, ucp_Nabataean },
+ { 777, PT_PC, ucp_Nd },
+ { 780, PT_SC, ucp_New_Tai_Lue },
+ { 792, PT_SC, ucp_Nko },
+ { 796, PT_PC, ucp_Nl },
+ { 799, PT_PC, ucp_No },
+ { 802, PT_SC, ucp_Ogham },
+ { 808, PT_SC, ucp_Ol_Chiki },
+ { 817, PT_SC, ucp_Old_Italic },
+ { 828, PT_SC, ucp_Old_North_Arabian },
+ { 846, PT_SC, ucp_Old_Permic },
+ { 857, PT_SC, ucp_Old_Persian },
+ { 869, PT_SC, ucp_Old_South_Arabian },
+ { 887, PT_SC, ucp_Old_Turkic },
+ { 898, PT_SC, ucp_Oriya },
+ { 904, PT_SC, ucp_Osmanya },
+ { 912, PT_GC, ucp_P },
+ { 914, PT_SC, ucp_Pahawh_Hmong },
+ { 927, PT_SC, ucp_Palmyrene },
+ { 937, PT_SC, ucp_Pau_Cin_Hau },
+ { 949, PT_PC, ucp_Pc },
+ { 952, PT_PC, ucp_Pd },
+ { 955, PT_PC, ucp_Pe },
+ { 958, PT_PC, ucp_Pf },
+ { 961, PT_SC, ucp_Phags_Pa },
+ { 970, PT_SC, ucp_Phoenician },
+ { 981, PT_PC, ucp_Pi },
+ { 984, PT_PC, ucp_Po },
+ { 987, PT_PC, ucp_Ps },
+ { 990, PT_SC, ucp_Psalter_Pahlavi },
+ { 1006, PT_SC, ucp_Rejang },
+ { 1013, PT_SC, ucp_Runic },
+ { 1019, PT_GC, ucp_S },
+ { 1021, PT_SC, ucp_Samaritan },
+ { 1031, PT_SC, ucp_Saurashtra },
+ { 1042, PT_PC, ucp_Sc },
+ { 1045, PT_SC, ucp_Sharada },
+ { 1053, PT_SC, ucp_Shavian },
+ { 1061, PT_SC, ucp_Siddham },
+ { 1069, PT_SC, ucp_Sinhala },
+ { 1077, PT_PC, ucp_Sk },
+ { 1080, PT_PC, ucp_Sm },
+ { 1083, PT_PC, ucp_So },
+ { 1086, PT_SC, ucp_Sora_Sompeng },
+ { 1099, PT_SC, ucp_Sundanese },
+ { 1109, PT_SC, ucp_Syloti_Nagri },
+ { 1122, PT_SC, ucp_Syriac },
+ { 1129, PT_SC, ucp_Tagalog },
+ { 1137, PT_SC, ucp_Tagbanwa },
+ { 1146, PT_SC, ucp_Tai_Le },
+ { 1153, PT_SC, ucp_Tai_Tham },
+ { 1162, PT_SC, ucp_Tai_Viet },
+ { 1171, PT_SC, ucp_Takri },
+ { 1177, PT_SC, ucp_Tamil },
+ { 1183, PT_SC, ucp_Telugu },
+ { 1190, PT_SC, ucp_Thaana },
+ { 1197, PT_SC, ucp_Thai },
+ { 1202, PT_SC, ucp_Tibetan },
+ { 1210, PT_SC, ucp_Tifinagh },
+ { 1219, PT_SC, ucp_Tirhuta },
+ { 1227, PT_SC, ucp_Ugaritic },
+ { 1236, PT_SC, ucp_Vai },
+ { 1240, PT_SC, ucp_Warang_Citi },
+ { 1252, PT_ALNUM, 0 },
+ { 1256, PT_PXSPACE, 0 },
+ { 1260, PT_SPACE, 0 },
+ { 1264, PT_UCNC, 0 },
+ { 1268, PT_WORD, 0 },
+ { 1272, PT_SC, ucp_Yi },
+ { 1275, PT_GC, ucp_Z },
+ { 1277, PT_PC, ucp_Zl },
+ { 1280, PT_PC, ucp_Zp },
+ { 1283, PT_PC, ucp_Zs }
};
const int PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table);
diff --git a/src/3rdparty/pcre/pcre_ucd.c b/src/3rdparty/pcre/pcre_ucd.c
index 46ea70c44c..69c4fd42c3 100644
--- a/src/3rdparty/pcre/pcre_ucd.c
+++ b/src/3rdparty/pcre/pcre_ucd.c
@@ -20,7 +20,7 @@ needed. */
/* Unicode character database. */
/* This file was autogenerated by the MultiStage2.py script. */
-/* Total size: 65688 bytes, block size: 128. */
+/* Total size: 72576 bytes, block size: 128. */
/* The tables herein are needed only when UCP support is built
into PCRE. This module should not be referenced otherwise, so
@@ -79,7 +79,7 @@ const pcre_uint32 PRIV(ucd_caseless_sets)[] = {
#ifndef PCRE_INCLUDED
-const ucd_record PRIV(ucd_records)[] = { /* 5016 bytes, record size 8 */
+const ucd_record PRIV(ucd_records)[] = { /* 5760 bytes, record size 8 */
{ 9, 0, 2, 0, 0, }, /* 0 */
{ 9, 0, 1, 0, 0, }, /* 1 */
{ 9, 0, 0, 0, 0, }, /* 2 */
@@ -166,547 +166,640 @@ const ucd_record PRIV(ucd_records)[] = { /* 5016 bytes, record size 8 */
{ 33, 5, 12, 0, -205, }, /* 83 */
{ 33, 5, 12, 0, -202, }, /* 84 */
{ 33, 5, 12, 0, -203, }, /* 85 */
- { 33, 5, 12, 0, -207, }, /* 86 */
- { 33, 5, 12, 0, 42280, }, /* 87 */
- { 33, 5, 12, 0, 42308, }, /* 88 */
- { 33, 5, 12, 0, -209, }, /* 89 */
- { 33, 5, 12, 0, -211, }, /* 90 */
- { 33, 5, 12, 0, 10743, }, /* 91 */
- { 33, 5, 12, 0, 10749, }, /* 92 */
- { 33, 5, 12, 0, -213, }, /* 93 */
- { 33, 5, 12, 0, -214, }, /* 94 */
- { 33, 5, 12, 0, 10727, }, /* 95 */
- { 33, 5, 12, 0, -218, }, /* 96 */
- { 33, 5, 12, 0, -69, }, /* 97 */
- { 33, 5, 12, 0, -217, }, /* 98 */
- { 33, 5, 12, 0, -71, }, /* 99 */
- { 33, 5, 12, 0, -219, }, /* 100 */
- { 33, 6, 12, 0, 0, }, /* 101 */
- { 9, 6, 12, 0, 0, }, /* 102 */
- { 3, 24, 12, 0, 0, }, /* 103 */
- { 27, 12, 3, 0, 0, }, /* 104 */
- { 27, 12, 3, 21, 116, }, /* 105 */
- { 19, 9, 12, 0, 1, }, /* 106 */
- { 19, 5, 12, 0, -1, }, /* 107 */
- { 19, 24, 12, 0, 0, }, /* 108 */
- { 9, 2, 12, 0, 0, }, /* 109 */
- { 19, 6, 12, 0, 0, }, /* 110 */
- { 19, 5, 12, 0, 130, }, /* 111 */
- { 19, 9, 12, 0, 38, }, /* 112 */
- { 19, 9, 12, 0, 37, }, /* 113 */
- { 19, 9, 12, 0, 64, }, /* 114 */
- { 19, 9, 12, 0, 63, }, /* 115 */
- { 19, 5, 12, 0, 0, }, /* 116 */
- { 19, 9, 12, 0, 32, }, /* 117 */
- { 19, 9, 12, 34, 32, }, /* 118 */
- { 19, 9, 12, 59, 32, }, /* 119 */
- { 19, 9, 12, 38, 32, }, /* 120 */
- { 19, 9, 12, 21, 32, }, /* 121 */
- { 19, 9, 12, 51, 32, }, /* 122 */
- { 19, 9, 12, 26, 32, }, /* 123 */
- { 19, 9, 12, 47, 32, }, /* 124 */
- { 19, 9, 12, 55, 32, }, /* 125 */
- { 19, 9, 12, 30, 32, }, /* 126 */
- { 19, 9, 12, 43, 32, }, /* 127 */
- { 19, 9, 12, 67, 32, }, /* 128 */
- { 19, 5, 12, 0, -38, }, /* 129 */
- { 19, 5, 12, 0, -37, }, /* 130 */
- { 19, 5, 12, 0, -32, }, /* 131 */
- { 19, 5, 12, 34, -32, }, /* 132 */
- { 19, 5, 12, 59, -32, }, /* 133 */
- { 19, 5, 12, 38, -32, }, /* 134 */
- { 19, 5, 12, 21, -116, }, /* 135 */
- { 19, 5, 12, 51, -32, }, /* 136 */
- { 19, 5, 12, 26, -775, }, /* 137 */
- { 19, 5, 12, 47, -32, }, /* 138 */
- { 19, 5, 12, 55, -32, }, /* 139 */
- { 19, 5, 12, 30, 1, }, /* 140 */
- { 19, 5, 12, 30, -32, }, /* 141 */
- { 19, 5, 12, 43, -32, }, /* 142 */
- { 19, 5, 12, 67, -32, }, /* 143 */
- { 19, 5, 12, 0, -64, }, /* 144 */
- { 19, 5, 12, 0, -63, }, /* 145 */
- { 19, 9, 12, 0, 8, }, /* 146 */
- { 19, 5, 12, 34, -30, }, /* 147 */
- { 19, 5, 12, 38, -25, }, /* 148 */
- { 19, 9, 12, 0, 0, }, /* 149 */
- { 19, 5, 12, 43, -15, }, /* 150 */
- { 19, 5, 12, 47, -22, }, /* 151 */
- { 19, 5, 12, 0, -8, }, /* 152 */
- { 10, 9, 12, 0, 1, }, /* 153 */
- { 10, 5, 12, 0, -1, }, /* 154 */
- { 19, 5, 12, 51, -54, }, /* 155 */
- { 19, 5, 12, 55, -48, }, /* 156 */
- { 19, 5, 12, 0, 7, }, /* 157 */
- { 19, 9, 12, 38, -60, }, /* 158 */
- { 19, 5, 12, 59, -64, }, /* 159 */
- { 19, 25, 12, 0, 0, }, /* 160 */
- { 19, 9, 12, 0, -7, }, /* 161 */
- { 19, 9, 12, 0, -130, }, /* 162 */
- { 12, 9, 12, 0, 80, }, /* 163 */
- { 12, 9, 12, 0, 32, }, /* 164 */
- { 12, 5, 12, 0, -32, }, /* 165 */
- { 12, 5, 12, 0, -80, }, /* 166 */
- { 12, 9, 12, 0, 1, }, /* 167 */
- { 12, 5, 12, 0, -1, }, /* 168 */
- { 12, 26, 12, 0, 0, }, /* 169 */
- { 12, 12, 3, 0, 0, }, /* 170 */
- { 12, 11, 3, 0, 0, }, /* 171 */
- { 12, 9, 12, 0, 15, }, /* 172 */
- { 12, 5, 12, 0, -15, }, /* 173 */
- { 1, 9, 12, 0, 48, }, /* 174 */
- { 1, 6, 12, 0, 0, }, /* 175 */
- { 1, 21, 12, 0, 0, }, /* 176 */
- { 1, 5, 12, 0, -48, }, /* 177 */
- { 1, 5, 12, 0, 0, }, /* 178 */
- { 1, 17, 12, 0, 0, }, /* 179 */
- { 1, 23, 12, 0, 0, }, /* 180 */
- { 25, 12, 3, 0, 0, }, /* 181 */
- { 25, 17, 12, 0, 0, }, /* 182 */
- { 25, 21, 12, 0, 0, }, /* 183 */
- { 25, 7, 12, 0, 0, }, /* 184 */
- { 0, 1, 2, 0, 0, }, /* 185 */
- { 0, 25, 12, 0, 0, }, /* 186 */
- { 0, 21, 12, 0, 0, }, /* 187 */
- { 0, 23, 12, 0, 0, }, /* 188 */
- { 0, 26, 12, 0, 0, }, /* 189 */
- { 0, 12, 3, 0, 0, }, /* 190 */
- { 0, 7, 12, 0, 0, }, /* 191 */
- { 0, 6, 12, 0, 0, }, /* 192 */
- { 0, 13, 12, 0, 0, }, /* 193 */
- { 49, 21, 12, 0, 0, }, /* 194 */
- { 49, 1, 2, 0, 0, }, /* 195 */
- { 49, 7, 12, 0, 0, }, /* 196 */
- { 49, 12, 3, 0, 0, }, /* 197 */
- { 55, 7, 12, 0, 0, }, /* 198 */
- { 55, 12, 3, 0, 0, }, /* 199 */
- { 63, 13, 12, 0, 0, }, /* 200 */
- { 63, 7, 12, 0, 0, }, /* 201 */
- { 63, 12, 3, 0, 0, }, /* 202 */
- { 63, 6, 12, 0, 0, }, /* 203 */
- { 63, 26, 12, 0, 0, }, /* 204 */
- { 63, 21, 12, 0, 0, }, /* 205 */
- { 89, 7, 12, 0, 0, }, /* 206 */
- { 89, 12, 3, 0, 0, }, /* 207 */
- { 89, 6, 12, 0, 0, }, /* 208 */
- { 89, 21, 12, 0, 0, }, /* 209 */
- { 94, 7, 12, 0, 0, }, /* 210 */
- { 94, 12, 3, 0, 0, }, /* 211 */
- { 94, 21, 12, 0, 0, }, /* 212 */
- { 14, 12, 3, 0, 0, }, /* 213 */
- { 14, 10, 5, 0, 0, }, /* 214 */
- { 14, 7, 12, 0, 0, }, /* 215 */
- { 14, 13, 12, 0, 0, }, /* 216 */
- { 14, 21, 12, 0, 0, }, /* 217 */
- { 14, 6, 12, 0, 0, }, /* 218 */
- { 2, 12, 3, 0, 0, }, /* 219 */
- { 2, 10, 5, 0, 0, }, /* 220 */
- { 2, 7, 12, 0, 0, }, /* 221 */
- { 2, 10, 3, 0, 0, }, /* 222 */
- { 2, 13, 12, 0, 0, }, /* 223 */
- { 2, 23, 12, 0, 0, }, /* 224 */
- { 2, 15, 12, 0, 0, }, /* 225 */
- { 2, 26, 12, 0, 0, }, /* 226 */
- { 21, 12, 3, 0, 0, }, /* 227 */
- { 21, 10, 5, 0, 0, }, /* 228 */
- { 21, 7, 12, 0, 0, }, /* 229 */
- { 21, 13, 12, 0, 0, }, /* 230 */
- { 20, 12, 3, 0, 0, }, /* 231 */
- { 20, 10, 5, 0, 0, }, /* 232 */
- { 20, 7, 12, 0, 0, }, /* 233 */
- { 20, 13, 12, 0, 0, }, /* 234 */
- { 20, 21, 12, 0, 0, }, /* 235 */
- { 20, 23, 12, 0, 0, }, /* 236 */
- { 43, 12, 3, 0, 0, }, /* 237 */
- { 43, 10, 5, 0, 0, }, /* 238 */
- { 43, 7, 12, 0, 0, }, /* 239 */
- { 43, 10, 3, 0, 0, }, /* 240 */
- { 43, 13, 12, 0, 0, }, /* 241 */
- { 43, 26, 12, 0, 0, }, /* 242 */
- { 43, 15, 12, 0, 0, }, /* 243 */
- { 53, 12, 3, 0, 0, }, /* 244 */
- { 53, 7, 12, 0, 0, }, /* 245 */
- { 53, 10, 3, 0, 0, }, /* 246 */
- { 53, 10, 5, 0, 0, }, /* 247 */
- { 53, 13, 12, 0, 0, }, /* 248 */
- { 53, 15, 12, 0, 0, }, /* 249 */
- { 53, 26, 12, 0, 0, }, /* 250 */
- { 53, 23, 12, 0, 0, }, /* 251 */
- { 54, 10, 5, 0, 0, }, /* 252 */
- { 54, 7, 12, 0, 0, }, /* 253 */
- { 54, 12, 3, 0, 0, }, /* 254 */
- { 54, 13, 12, 0, 0, }, /* 255 */
- { 54, 15, 12, 0, 0, }, /* 256 */
- { 54, 26, 12, 0, 0, }, /* 257 */
- { 28, 10, 5, 0, 0, }, /* 258 */
- { 28, 7, 12, 0, 0, }, /* 259 */
- { 28, 12, 3, 0, 0, }, /* 260 */
- { 28, 10, 3, 0, 0, }, /* 261 */
- { 28, 13, 12, 0, 0, }, /* 262 */
- { 36, 10, 5, 0, 0, }, /* 263 */
- { 36, 7, 12, 0, 0, }, /* 264 */
- { 36, 10, 3, 0, 0, }, /* 265 */
- { 36, 12, 3, 0, 0, }, /* 266 */
- { 36, 13, 12, 0, 0, }, /* 267 */
- { 36, 15, 12, 0, 0, }, /* 268 */
- { 36, 26, 12, 0, 0, }, /* 269 */
- { 47, 10, 5, 0, 0, }, /* 270 */
- { 47, 7, 12, 0, 0, }, /* 271 */
- { 47, 12, 3, 0, 0, }, /* 272 */
- { 47, 10, 3, 0, 0, }, /* 273 */
- { 47, 21, 12, 0, 0, }, /* 274 */
- { 56, 7, 12, 0, 0, }, /* 275 */
- { 56, 12, 3, 0, 0, }, /* 276 */
- { 56, 7, 5, 0, 0, }, /* 277 */
- { 56, 6, 12, 0, 0, }, /* 278 */
- { 56, 21, 12, 0, 0, }, /* 279 */
- { 56, 13, 12, 0, 0, }, /* 280 */
- { 32, 7, 12, 0, 0, }, /* 281 */
- { 32, 12, 3, 0, 0, }, /* 282 */
- { 32, 7, 5, 0, 0, }, /* 283 */
- { 32, 6, 12, 0, 0, }, /* 284 */
- { 32, 13, 12, 0, 0, }, /* 285 */
- { 57, 7, 12, 0, 0, }, /* 286 */
- { 57, 26, 12, 0, 0, }, /* 287 */
- { 57, 21, 12, 0, 0, }, /* 288 */
- { 57, 12, 3, 0, 0, }, /* 289 */
- { 57, 13, 12, 0, 0, }, /* 290 */
- { 57, 15, 12, 0, 0, }, /* 291 */
- { 57, 22, 12, 0, 0, }, /* 292 */
- { 57, 18, 12, 0, 0, }, /* 293 */
- { 57, 10, 5, 0, 0, }, /* 294 */
- { 38, 7, 12, 0, 0, }, /* 295 */
- { 38, 10, 12, 0, 0, }, /* 296 */
- { 38, 12, 3, 0, 0, }, /* 297 */
- { 38, 10, 5, 0, 0, }, /* 298 */
- { 38, 13, 12, 0, 0, }, /* 299 */
- { 38, 21, 12, 0, 0, }, /* 300 */
- { 38, 26, 12, 0, 0, }, /* 301 */
- { 16, 9, 12, 0, 7264, }, /* 302 */
- { 16, 7, 12, 0, 0, }, /* 303 */
- { 16, 6, 12, 0, 0, }, /* 304 */
- { 23, 7, 6, 0, 0, }, /* 305 */
- { 23, 7, 7, 0, 0, }, /* 306 */
- { 23, 7, 8, 0, 0, }, /* 307 */
- { 15, 7, 12, 0, 0, }, /* 308 */
- { 15, 12, 3, 0, 0, }, /* 309 */
- { 15, 21, 12, 0, 0, }, /* 310 */
- { 15, 15, 12, 0, 0, }, /* 311 */
- { 15, 26, 12, 0, 0, }, /* 312 */
- { 8, 7, 12, 0, 0, }, /* 313 */
- { 7, 17, 12, 0, 0, }, /* 314 */
- { 7, 7, 12, 0, 0, }, /* 315 */
- { 7, 21, 12, 0, 0, }, /* 316 */
- { 40, 29, 12, 0, 0, }, /* 317 */
- { 40, 7, 12, 0, 0, }, /* 318 */
- { 40, 22, 12, 0, 0, }, /* 319 */
- { 40, 18, 12, 0, 0, }, /* 320 */
- { 45, 7, 12, 0, 0, }, /* 321 */
- { 45, 14, 12, 0, 0, }, /* 322 */
- { 50, 7, 12, 0, 0, }, /* 323 */
- { 50, 12, 3, 0, 0, }, /* 324 */
- { 24, 7, 12, 0, 0, }, /* 325 */
- { 24, 12, 3, 0, 0, }, /* 326 */
- { 6, 7, 12, 0, 0, }, /* 327 */
- { 6, 12, 3, 0, 0, }, /* 328 */
- { 51, 7, 12, 0, 0, }, /* 329 */
- { 51, 12, 3, 0, 0, }, /* 330 */
- { 31, 7, 12, 0, 0, }, /* 331 */
- { 31, 12, 3, 0, 0, }, /* 332 */
- { 31, 10, 5, 0, 0, }, /* 333 */
- { 31, 21, 12, 0, 0, }, /* 334 */
- { 31, 6, 12, 0, 0, }, /* 335 */
- { 31, 23, 12, 0, 0, }, /* 336 */
- { 31, 13, 12, 0, 0, }, /* 337 */
- { 31, 15, 12, 0, 0, }, /* 338 */
- { 37, 21, 12, 0, 0, }, /* 339 */
- { 37, 17, 12, 0, 0, }, /* 340 */
- { 37, 12, 3, 0, 0, }, /* 341 */
- { 37, 1, 2, 0, 0, }, /* 342 */
- { 37, 13, 12, 0, 0, }, /* 343 */
- { 37, 7, 12, 0, 0, }, /* 344 */
- { 37, 6, 12, 0, 0, }, /* 345 */
- { 34, 7, 12, 0, 0, }, /* 346 */
- { 34, 12, 3, 0, 0, }, /* 347 */
- { 34, 10, 5, 0, 0, }, /* 348 */
- { 34, 26, 12, 0, 0, }, /* 349 */
- { 34, 21, 12, 0, 0, }, /* 350 */
- { 34, 13, 12, 0, 0, }, /* 351 */
- { 52, 7, 12, 0, 0, }, /* 352 */
- { 39, 7, 12, 0, 0, }, /* 353 */
- { 39, 10, 12, 0, 0, }, /* 354 */
- { 39, 10, 5, 0, 0, }, /* 355 */
- { 39, 13, 12, 0, 0, }, /* 356 */
- { 39, 15, 12, 0, 0, }, /* 357 */
- { 39, 26, 12, 0, 0, }, /* 358 */
- { 31, 26, 12, 0, 0, }, /* 359 */
- { 5, 7, 12, 0, 0, }, /* 360 */
- { 5, 12, 3, 0, 0, }, /* 361 */
- { 5, 10, 5, 0, 0, }, /* 362 */
- { 5, 21, 12, 0, 0, }, /* 363 */
- { 90, 7, 12, 0, 0, }, /* 364 */
- { 90, 10, 5, 0, 0, }, /* 365 */
- { 90, 12, 3, 0, 0, }, /* 366 */
- { 90, 10, 12, 0, 0, }, /* 367 */
- { 90, 13, 12, 0, 0, }, /* 368 */
- { 90, 21, 12, 0, 0, }, /* 369 */
- { 90, 6, 12, 0, 0, }, /* 370 */
- { 61, 12, 3, 0, 0, }, /* 371 */
- { 61, 10, 5, 0, 0, }, /* 372 */
- { 61, 7, 12, 0, 0, }, /* 373 */
- { 61, 13, 12, 0, 0, }, /* 374 */
- { 61, 21, 12, 0, 0, }, /* 375 */
- { 61, 26, 12, 0, 0, }, /* 376 */
- { 75, 12, 3, 0, 0, }, /* 377 */
- { 75, 10, 5, 0, 0, }, /* 378 */
- { 75, 7, 12, 0, 0, }, /* 379 */
- { 75, 13, 12, 0, 0, }, /* 380 */
- { 92, 7, 12, 0, 0, }, /* 381 */
- { 92, 12, 3, 0, 0, }, /* 382 */
- { 92, 10, 5, 0, 0, }, /* 383 */
- { 92, 21, 12, 0, 0, }, /* 384 */
- { 69, 7, 12, 0, 0, }, /* 385 */
- { 69, 10, 5, 0, 0, }, /* 386 */
- { 69, 12, 3, 0, 0, }, /* 387 */
- { 69, 21, 12, 0, 0, }, /* 388 */
- { 69, 13, 12, 0, 0, }, /* 389 */
- { 72, 13, 12, 0, 0, }, /* 390 */
- { 72, 7, 12, 0, 0, }, /* 391 */
- { 72, 6, 12, 0, 0, }, /* 392 */
- { 72, 21, 12, 0, 0, }, /* 393 */
- { 75, 21, 12, 0, 0, }, /* 394 */
- { 9, 10, 5, 0, 0, }, /* 395 */
- { 9, 7, 12, 0, 0, }, /* 396 */
- { 12, 5, 12, 0, 0, }, /* 397 */
- { 12, 6, 12, 0, 0, }, /* 398 */
- { 33, 5, 12, 0, 35332, }, /* 399 */
- { 33, 5, 12, 0, 3814, }, /* 400 */
- { 33, 9, 12, 63, 1, }, /* 401 */
- { 33, 5, 12, 63, -1, }, /* 402 */
- { 33, 5, 12, 63, -58, }, /* 403 */
- { 33, 9, 12, 0, -7615, }, /* 404 */
- { 19, 5, 12, 0, 8, }, /* 405 */
- { 19, 9, 12, 0, -8, }, /* 406 */
- { 19, 5, 12, 0, 74, }, /* 407 */
- { 19, 5, 12, 0, 86, }, /* 408 */
- { 19, 5, 12, 0, 100, }, /* 409 */
- { 19, 5, 12, 0, 128, }, /* 410 */
- { 19, 5, 12, 0, 112, }, /* 411 */
- { 19, 5, 12, 0, 126, }, /* 412 */
- { 19, 8, 12, 0, -8, }, /* 413 */
- { 19, 5, 12, 0, 9, }, /* 414 */
- { 19, 9, 12, 0, -74, }, /* 415 */
- { 19, 8, 12, 0, -9, }, /* 416 */
- { 19, 5, 12, 21, -7173, }, /* 417 */
- { 19, 9, 12, 0, -86, }, /* 418 */
- { 19, 9, 12, 0, -100, }, /* 419 */
- { 19, 9, 12, 0, -112, }, /* 420 */
- { 19, 9, 12, 0, -128, }, /* 421 */
- { 19, 9, 12, 0, -126, }, /* 422 */
- { 27, 1, 3, 0, 0, }, /* 423 */
- { 9, 27, 2, 0, 0, }, /* 424 */
- { 9, 28, 2, 0, 0, }, /* 425 */
- { 9, 2, 2, 0, 0, }, /* 426 */
- { 27, 11, 3, 0, 0, }, /* 427 */
- { 9, 9, 12, 0, 0, }, /* 428 */
- { 9, 5, 12, 0, 0, }, /* 429 */
- { 19, 9, 12, 67, -7517, }, /* 430 */
- { 33, 9, 12, 71, -8383, }, /* 431 */
- { 33, 9, 12, 75, -8262, }, /* 432 */
- { 33, 9, 12, 0, 28, }, /* 433 */
- { 33, 5, 12, 0, -28, }, /* 434 */
- { 33, 14, 12, 0, 16, }, /* 435 */
- { 33, 14, 12, 0, -16, }, /* 436 */
- { 33, 14, 12, 0, 0, }, /* 437 */
- { 9, 26, 12, 0, 26, }, /* 438 */
- { 9, 26, 12, 0, -26, }, /* 439 */
- { 4, 26, 12, 0, 0, }, /* 440 */
- { 17, 9, 12, 0, 48, }, /* 441 */
- { 17, 5, 12, 0, -48, }, /* 442 */
- { 33, 9, 12, 0, -10743, }, /* 443 */
- { 33, 9, 12, 0, -3814, }, /* 444 */
- { 33, 9, 12, 0, -10727, }, /* 445 */
- { 33, 5, 12, 0, -10795, }, /* 446 */
- { 33, 5, 12, 0, -10792, }, /* 447 */
- { 33, 9, 12, 0, -10780, }, /* 448 */
- { 33, 9, 12, 0, -10749, }, /* 449 */
- { 33, 9, 12, 0, -10783, }, /* 450 */
- { 33, 9, 12, 0, -10782, }, /* 451 */
- { 33, 9, 12, 0, -10815, }, /* 452 */
- { 10, 5, 12, 0, 0, }, /* 453 */
- { 10, 26, 12, 0, 0, }, /* 454 */
- { 10, 12, 3, 0, 0, }, /* 455 */
- { 10, 21, 12, 0, 0, }, /* 456 */
- { 10, 15, 12, 0, 0, }, /* 457 */
- { 16, 5, 12, 0, -7264, }, /* 458 */
- { 58, 7, 12, 0, 0, }, /* 459 */
- { 58, 6, 12, 0, 0, }, /* 460 */
- { 58, 21, 12, 0, 0, }, /* 461 */
- { 58, 12, 3, 0, 0, }, /* 462 */
- { 22, 26, 12, 0, 0, }, /* 463 */
- { 22, 6, 12, 0, 0, }, /* 464 */
- { 22, 14, 12, 0, 0, }, /* 465 */
- { 23, 10, 3, 0, 0, }, /* 466 */
- { 26, 7, 12, 0, 0, }, /* 467 */
- { 26, 6, 12, 0, 0, }, /* 468 */
- { 29, 7, 12, 0, 0, }, /* 469 */
- { 29, 6, 12, 0, 0, }, /* 470 */
- { 3, 7, 12, 0, 0, }, /* 471 */
- { 23, 7, 12, 0, 0, }, /* 472 */
- { 23, 26, 12, 0, 0, }, /* 473 */
- { 29, 26, 12, 0, 0, }, /* 474 */
- { 22, 7, 12, 0, 0, }, /* 475 */
- { 60, 7, 12, 0, 0, }, /* 476 */
- { 60, 6, 12, 0, 0, }, /* 477 */
- { 60, 26, 12, 0, 0, }, /* 478 */
- { 85, 7, 12, 0, 0, }, /* 479 */
- { 85, 6, 12, 0, 0, }, /* 480 */
- { 85, 21, 12, 0, 0, }, /* 481 */
- { 76, 7, 12, 0, 0, }, /* 482 */
- { 76, 6, 12, 0, 0, }, /* 483 */
- { 76, 21, 12, 0, 0, }, /* 484 */
- { 76, 13, 12, 0, 0, }, /* 485 */
- { 12, 7, 12, 0, 0, }, /* 486 */
- { 12, 21, 12, 0, 0, }, /* 487 */
- { 78, 7, 12, 0, 0, }, /* 488 */
- { 78, 14, 12, 0, 0, }, /* 489 */
- { 78, 12, 3, 0, 0, }, /* 490 */
- { 78, 21, 12, 0, 0, }, /* 491 */
- { 33, 9, 12, 0, -35332, }, /* 492 */
- { 33, 9, 12, 0, -42280, }, /* 493 */
- { 33, 9, 12, 0, -42308, }, /* 494 */
- { 48, 7, 12, 0, 0, }, /* 495 */
- { 48, 12, 3, 0, 0, }, /* 496 */
- { 48, 10, 5, 0, 0, }, /* 497 */
- { 48, 26, 12, 0, 0, }, /* 498 */
- { 64, 7, 12, 0, 0, }, /* 499 */
- { 64, 21, 12, 0, 0, }, /* 500 */
- { 74, 10, 5, 0, 0, }, /* 501 */
- { 74, 7, 12, 0, 0, }, /* 502 */
- { 74, 12, 3, 0, 0, }, /* 503 */
- { 74, 21, 12, 0, 0, }, /* 504 */
- { 74, 13, 12, 0, 0, }, /* 505 */
- { 68, 13, 12, 0, 0, }, /* 506 */
- { 68, 7, 12, 0, 0, }, /* 507 */
- { 68, 12, 3, 0, 0, }, /* 508 */
- { 68, 21, 12, 0, 0, }, /* 509 */
- { 73, 7, 12, 0, 0, }, /* 510 */
- { 73, 12, 3, 0, 0, }, /* 511 */
- { 73, 10, 5, 0, 0, }, /* 512 */
- { 73, 21, 12, 0, 0, }, /* 513 */
- { 83, 12, 3, 0, 0, }, /* 514 */
- { 83, 10, 5, 0, 0, }, /* 515 */
- { 83, 7, 12, 0, 0, }, /* 516 */
- { 83, 21, 12, 0, 0, }, /* 517 */
- { 83, 13, 12, 0, 0, }, /* 518 */
- { 67, 7, 12, 0, 0, }, /* 519 */
- { 67, 12, 3, 0, 0, }, /* 520 */
- { 67, 10, 5, 0, 0, }, /* 521 */
- { 67, 13, 12, 0, 0, }, /* 522 */
- { 67, 21, 12, 0, 0, }, /* 523 */
- { 38, 6, 12, 0, 0, }, /* 524 */
- { 91, 7, 12, 0, 0, }, /* 525 */
- { 91, 12, 3, 0, 0, }, /* 526 */
- { 91, 6, 12, 0, 0, }, /* 527 */
- { 91, 21, 12, 0, 0, }, /* 528 */
- { 86, 7, 12, 0, 0, }, /* 529 */
- { 86, 10, 5, 0, 0, }, /* 530 */
- { 86, 12, 3, 0, 0, }, /* 531 */
- { 86, 21, 12, 0, 0, }, /* 532 */
- { 86, 6, 12, 0, 0, }, /* 533 */
- { 86, 13, 12, 0, 0, }, /* 534 */
- { 23, 7, 9, 0, 0, }, /* 535 */
- { 23, 7, 10, 0, 0, }, /* 536 */
- { 9, 4, 2, 0, 0, }, /* 537 */
- { 9, 3, 12, 0, 0, }, /* 538 */
- { 25, 25, 12, 0, 0, }, /* 539 */
- { 0, 24, 12, 0, 0, }, /* 540 */
- { 9, 6, 3, 0, 0, }, /* 541 */
- { 35, 7, 12, 0, 0, }, /* 542 */
- { 19, 14, 12, 0, 0, }, /* 543 */
- { 19, 15, 12, 0, 0, }, /* 544 */
- { 19, 26, 12, 0, 0, }, /* 545 */
- { 70, 7, 12, 0, 0, }, /* 546 */
- { 66, 7, 12, 0, 0, }, /* 547 */
- { 41, 7, 12, 0, 0, }, /* 548 */
- { 41, 15, 12, 0, 0, }, /* 549 */
- { 18, 7, 12, 0, 0, }, /* 550 */
- { 18, 14, 12, 0, 0, }, /* 551 */
- { 59, 7, 12, 0, 0, }, /* 552 */
- { 59, 21, 12, 0, 0, }, /* 553 */
- { 42, 7, 12, 0, 0, }, /* 554 */
- { 42, 21, 12, 0, 0, }, /* 555 */
- { 42, 14, 12, 0, 0, }, /* 556 */
- { 13, 9, 12, 0, 40, }, /* 557 */
- { 13, 5, 12, 0, -40, }, /* 558 */
- { 46, 7, 12, 0, 0, }, /* 559 */
- { 44, 7, 12, 0, 0, }, /* 560 */
- { 44, 13, 12, 0, 0, }, /* 561 */
- { 11, 7, 12, 0, 0, }, /* 562 */
- { 80, 7, 12, 0, 0, }, /* 563 */
- { 80, 21, 12, 0, 0, }, /* 564 */
- { 80, 15, 12, 0, 0, }, /* 565 */
- { 65, 7, 12, 0, 0, }, /* 566 */
- { 65, 15, 12, 0, 0, }, /* 567 */
- { 65, 21, 12, 0, 0, }, /* 568 */
- { 71, 7, 12, 0, 0, }, /* 569 */
- { 71, 21, 12, 0, 0, }, /* 570 */
- { 97, 7, 12, 0, 0, }, /* 571 */
- { 96, 7, 12, 0, 0, }, /* 572 */
- { 30, 7, 12, 0, 0, }, /* 573 */
- { 30, 12, 3, 0, 0, }, /* 574 */
- { 30, 15, 12, 0, 0, }, /* 575 */
- { 30, 21, 12, 0, 0, }, /* 576 */
- { 87, 7, 12, 0, 0, }, /* 577 */
- { 87, 15, 12, 0, 0, }, /* 578 */
- { 87, 21, 12, 0, 0, }, /* 579 */
- { 77, 7, 12, 0, 0, }, /* 580 */
- { 77, 21, 12, 0, 0, }, /* 581 */
- { 82, 7, 12, 0, 0, }, /* 582 */
- { 82, 15, 12, 0, 0, }, /* 583 */
- { 81, 7, 12, 0, 0, }, /* 584 */
- { 81, 15, 12, 0, 0, }, /* 585 */
- { 88, 7, 12, 0, 0, }, /* 586 */
- { 0, 15, 12, 0, 0, }, /* 587 */
- { 93, 10, 5, 0, 0, }, /* 588 */
- { 93, 12, 3, 0, 0, }, /* 589 */
- { 93, 7, 12, 0, 0, }, /* 590 */
- { 93, 21, 12, 0, 0, }, /* 591 */
- { 93, 15, 12, 0, 0, }, /* 592 */
- { 93, 13, 12, 0, 0, }, /* 593 */
- { 84, 12, 3, 0, 0, }, /* 594 */
- { 84, 10, 5, 0, 0, }, /* 595 */
- { 84, 7, 12, 0, 0, }, /* 596 */
- { 84, 21, 12, 0, 0, }, /* 597 */
- { 84, 1, 2, 0, 0, }, /* 598 */
- { 100, 7, 12, 0, 0, }, /* 599 */
- { 100, 13, 12, 0, 0, }, /* 600 */
- { 95, 12, 3, 0, 0, }, /* 601 */
- { 95, 7, 12, 0, 0, }, /* 602 */
- { 95, 10, 5, 0, 0, }, /* 603 */
- { 95, 13, 12, 0, 0, }, /* 604 */
- { 95, 21, 12, 0, 0, }, /* 605 */
- { 99, 12, 3, 0, 0, }, /* 606 */
- { 99, 10, 5, 0, 0, }, /* 607 */
- { 99, 7, 12, 0, 0, }, /* 608 */
- { 99, 21, 12, 0, 0, }, /* 609 */
- { 99, 13, 12, 0, 0, }, /* 610 */
- { 101, 7, 12, 0, 0, }, /* 611 */
- { 101, 12, 3, 0, 0, }, /* 612 */
- { 101, 10, 5, 0, 0, }, /* 613 */
- { 101, 13, 12, 0, 0, }, /* 614 */
- { 62, 7, 12, 0, 0, }, /* 615 */
- { 62, 14, 12, 0, 0, }, /* 616 */
- { 62, 21, 12, 0, 0, }, /* 617 */
- { 79, 7, 12, 0, 0, }, /* 618 */
- { 98, 7, 12, 0, 0, }, /* 619 */
- { 98, 10, 5, 0, 0, }, /* 620 */
- { 98, 12, 3, 0, 0, }, /* 621 */
- { 98, 6, 12, 0, 0, }, /* 622 */
- { 9, 10, 3, 0, 0, }, /* 623 */
- { 19, 12, 3, 0, 0, }, /* 624 */
- { 9, 26, 11, 0, 0, }, /* 625 */
- { 26, 26, 12, 0, 0, }, /* 626 */
+ { 33, 5, 12, 0, 42319, }, /* 86 */
+ { 33, 5, 12, 0, 42315, }, /* 87 */
+ { 33, 5, 12, 0, -207, }, /* 88 */
+ { 33, 5, 12, 0, 42280, }, /* 89 */
+ { 33, 5, 12, 0, 42308, }, /* 90 */
+ { 33, 5, 12, 0, -209, }, /* 91 */
+ { 33, 5, 12, 0, -211, }, /* 92 */
+ { 33, 5, 12, 0, 10743, }, /* 93 */
+ { 33, 5, 12, 0, 42305, }, /* 94 */
+ { 33, 5, 12, 0, 10749, }, /* 95 */
+ { 33, 5, 12, 0, -213, }, /* 96 */
+ { 33, 5, 12, 0, -214, }, /* 97 */
+ { 33, 5, 12, 0, 10727, }, /* 98 */
+ { 33, 5, 12, 0, -218, }, /* 99 */
+ { 33, 5, 12, 0, 42282, }, /* 100 */
+ { 33, 5, 12, 0, -69, }, /* 101 */
+ { 33, 5, 12, 0, -217, }, /* 102 */
+ { 33, 5, 12, 0, -71, }, /* 103 */
+ { 33, 5, 12, 0, -219, }, /* 104 */
+ { 33, 5, 12, 0, 42258, }, /* 105 */
+ { 33, 6, 12, 0, 0, }, /* 106 */
+ { 9, 6, 12, 0, 0, }, /* 107 */
+ { 3, 24, 12, 0, 0, }, /* 108 */
+ { 27, 12, 3, 0, 0, }, /* 109 */
+ { 27, 12, 3, 21, 116, }, /* 110 */
+ { 19, 9, 12, 0, 1, }, /* 111 */
+ { 19, 5, 12, 0, -1, }, /* 112 */
+ { 19, 24, 12, 0, 0, }, /* 113 */
+ { 9, 2, 12, 0, 0, }, /* 114 */
+ { 19, 6, 12, 0, 0, }, /* 115 */
+ { 19, 5, 12, 0, 130, }, /* 116 */
+ { 19, 9, 12, 0, 116, }, /* 117 */
+ { 19, 9, 12, 0, 38, }, /* 118 */
+ { 19, 9, 12, 0, 37, }, /* 119 */
+ { 19, 9, 12, 0, 64, }, /* 120 */
+ { 19, 9, 12, 0, 63, }, /* 121 */
+ { 19, 5, 12, 0, 0, }, /* 122 */
+ { 19, 9, 12, 0, 32, }, /* 123 */
+ { 19, 9, 12, 34, 32, }, /* 124 */
+ { 19, 9, 12, 59, 32, }, /* 125 */
+ { 19, 9, 12, 38, 32, }, /* 126 */
+ { 19, 9, 12, 21, 32, }, /* 127 */
+ { 19, 9, 12, 51, 32, }, /* 128 */
+ { 19, 9, 12, 26, 32, }, /* 129 */
+ { 19, 9, 12, 47, 32, }, /* 130 */
+ { 19, 9, 12, 55, 32, }, /* 131 */
+ { 19, 9, 12, 30, 32, }, /* 132 */
+ { 19, 9, 12, 43, 32, }, /* 133 */
+ { 19, 9, 12, 67, 32, }, /* 134 */
+ { 19, 5, 12, 0, -38, }, /* 135 */
+ { 19, 5, 12, 0, -37, }, /* 136 */
+ { 19, 5, 12, 0, -32, }, /* 137 */
+ { 19, 5, 12, 34, -32, }, /* 138 */
+ { 19, 5, 12, 59, -32, }, /* 139 */
+ { 19, 5, 12, 38, -32, }, /* 140 */
+ { 19, 5, 12, 21, -116, }, /* 141 */
+ { 19, 5, 12, 51, -32, }, /* 142 */
+ { 19, 5, 12, 26, -775, }, /* 143 */
+ { 19, 5, 12, 47, -32, }, /* 144 */
+ { 19, 5, 12, 55, -32, }, /* 145 */
+ { 19, 5, 12, 30, 1, }, /* 146 */
+ { 19, 5, 12, 30, -32, }, /* 147 */
+ { 19, 5, 12, 43, -32, }, /* 148 */
+ { 19, 5, 12, 67, -32, }, /* 149 */
+ { 19, 5, 12, 0, -64, }, /* 150 */
+ { 19, 5, 12, 0, -63, }, /* 151 */
+ { 19, 9, 12, 0, 8, }, /* 152 */
+ { 19, 5, 12, 34, -30, }, /* 153 */
+ { 19, 5, 12, 38, -25, }, /* 154 */
+ { 19, 9, 12, 0, 0, }, /* 155 */
+ { 19, 5, 12, 43, -15, }, /* 156 */
+ { 19, 5, 12, 47, -22, }, /* 157 */
+ { 19, 5, 12, 0, -8, }, /* 158 */
+ { 10, 9, 12, 0, 1, }, /* 159 */
+ { 10, 5, 12, 0, -1, }, /* 160 */
+ { 19, 5, 12, 51, -54, }, /* 161 */
+ { 19, 5, 12, 55, -48, }, /* 162 */
+ { 19, 5, 12, 0, 7, }, /* 163 */
+ { 19, 5, 12, 0, -116, }, /* 164 */
+ { 19, 9, 12, 38, -60, }, /* 165 */
+ { 19, 5, 12, 59, -64, }, /* 166 */
+ { 19, 25, 12, 0, 0, }, /* 167 */
+ { 19, 9, 12, 0, -7, }, /* 168 */
+ { 19, 9, 12, 0, -130, }, /* 169 */
+ { 12, 9, 12, 0, 80, }, /* 170 */
+ { 12, 9, 12, 0, 32, }, /* 171 */
+ { 12, 5, 12, 0, -32, }, /* 172 */
+ { 12, 5, 12, 0, -80, }, /* 173 */
+ { 12, 9, 12, 0, 1, }, /* 174 */
+ { 12, 5, 12, 0, -1, }, /* 175 */
+ { 12, 26, 12, 0, 0, }, /* 176 */
+ { 12, 12, 3, 0, 0, }, /* 177 */
+ { 12, 11, 3, 0, 0, }, /* 178 */
+ { 12, 9, 12, 0, 15, }, /* 179 */
+ { 12, 5, 12, 0, -15, }, /* 180 */
+ { 1, 9, 12, 0, 48, }, /* 181 */
+ { 1, 6, 12, 0, 0, }, /* 182 */
+ { 1, 21, 12, 0, 0, }, /* 183 */
+ { 1, 5, 12, 0, -48, }, /* 184 */
+ { 1, 5, 12, 0, 0, }, /* 185 */
+ { 1, 17, 12, 0, 0, }, /* 186 */
+ { 1, 26, 12, 0, 0, }, /* 187 */
+ { 1, 23, 12, 0, 0, }, /* 188 */
+ { 25, 12, 3, 0, 0, }, /* 189 */
+ { 25, 17, 12, 0, 0, }, /* 190 */
+ { 25, 21, 12, 0, 0, }, /* 191 */
+ { 25, 7, 12, 0, 0, }, /* 192 */
+ { 0, 1, 2, 0, 0, }, /* 193 */
+ { 0, 25, 12, 0, 0, }, /* 194 */
+ { 0, 21, 12, 0, 0, }, /* 195 */
+ { 0, 23, 12, 0, 0, }, /* 196 */
+ { 0, 26, 12, 0, 0, }, /* 197 */
+ { 0, 12, 3, 0, 0, }, /* 198 */
+ { 0, 7, 12, 0, 0, }, /* 199 */
+ { 0, 6, 12, 0, 0, }, /* 200 */
+ { 0, 13, 12, 0, 0, }, /* 201 */
+ { 49, 21, 12, 0, 0, }, /* 202 */
+ { 49, 1, 2, 0, 0, }, /* 203 */
+ { 49, 7, 12, 0, 0, }, /* 204 */
+ { 49, 12, 3, 0, 0, }, /* 205 */
+ { 55, 7, 12, 0, 0, }, /* 206 */
+ { 55, 12, 3, 0, 0, }, /* 207 */
+ { 63, 13, 12, 0, 0, }, /* 208 */
+ { 63, 7, 12, 0, 0, }, /* 209 */
+ { 63, 12, 3, 0, 0, }, /* 210 */
+ { 63, 6, 12, 0, 0, }, /* 211 */
+ { 63, 26, 12, 0, 0, }, /* 212 */
+ { 63, 21, 12, 0, 0, }, /* 213 */
+ { 89, 7, 12, 0, 0, }, /* 214 */
+ { 89, 12, 3, 0, 0, }, /* 215 */
+ { 89, 6, 12, 0, 0, }, /* 216 */
+ { 89, 21, 12, 0, 0, }, /* 217 */
+ { 94, 7, 12, 0, 0, }, /* 218 */
+ { 94, 12, 3, 0, 0, }, /* 219 */
+ { 94, 21, 12, 0, 0, }, /* 220 */
+ { 14, 12, 3, 0, 0, }, /* 221 */
+ { 14, 10, 5, 0, 0, }, /* 222 */
+ { 14, 7, 12, 0, 0, }, /* 223 */
+ { 14, 13, 12, 0, 0, }, /* 224 */
+ { 14, 21, 12, 0, 0, }, /* 225 */
+ { 14, 6, 12, 0, 0, }, /* 226 */
+ { 2, 7, 12, 0, 0, }, /* 227 */
+ { 2, 12, 3, 0, 0, }, /* 228 */
+ { 2, 10, 5, 0, 0, }, /* 229 */
+ { 2, 10, 3, 0, 0, }, /* 230 */
+ { 2, 13, 12, 0, 0, }, /* 231 */
+ { 2, 23, 12, 0, 0, }, /* 232 */
+ { 2, 15, 12, 0, 0, }, /* 233 */
+ { 2, 26, 12, 0, 0, }, /* 234 */
+ { 21, 12, 3, 0, 0, }, /* 235 */
+ { 21, 10, 5, 0, 0, }, /* 236 */
+ { 21, 7, 12, 0, 0, }, /* 237 */
+ { 21, 13, 12, 0, 0, }, /* 238 */
+ { 20, 12, 3, 0, 0, }, /* 239 */
+ { 20, 10, 5, 0, 0, }, /* 240 */
+ { 20, 7, 12, 0, 0, }, /* 241 */
+ { 20, 13, 12, 0, 0, }, /* 242 */
+ { 20, 21, 12, 0, 0, }, /* 243 */
+ { 20, 23, 12, 0, 0, }, /* 244 */
+ { 43, 12, 3, 0, 0, }, /* 245 */
+ { 43, 10, 5, 0, 0, }, /* 246 */
+ { 43, 7, 12, 0, 0, }, /* 247 */
+ { 43, 10, 3, 0, 0, }, /* 248 */
+ { 43, 13, 12, 0, 0, }, /* 249 */
+ { 43, 26, 12, 0, 0, }, /* 250 */
+ { 43, 15, 12, 0, 0, }, /* 251 */
+ { 53, 12, 3, 0, 0, }, /* 252 */
+ { 53, 7, 12, 0, 0, }, /* 253 */
+ { 53, 10, 3, 0, 0, }, /* 254 */
+ { 53, 10, 5, 0, 0, }, /* 255 */
+ { 53, 13, 12, 0, 0, }, /* 256 */
+ { 53, 15, 12, 0, 0, }, /* 257 */
+ { 53, 26, 12, 0, 0, }, /* 258 */
+ { 53, 23, 12, 0, 0, }, /* 259 */
+ { 54, 12, 3, 0, 0, }, /* 260 */
+ { 54, 10, 5, 0, 0, }, /* 261 */
+ { 54, 7, 12, 0, 0, }, /* 262 */
+ { 54, 13, 12, 0, 0, }, /* 263 */
+ { 54, 15, 12, 0, 0, }, /* 264 */
+ { 54, 26, 12, 0, 0, }, /* 265 */
+ { 28, 12, 3, 0, 0, }, /* 266 */
+ { 28, 10, 5, 0, 0, }, /* 267 */
+ { 28, 7, 12, 0, 0, }, /* 268 */
+ { 28, 10, 3, 0, 0, }, /* 269 */
+ { 28, 13, 12, 0, 0, }, /* 270 */
+ { 36, 12, 3, 0, 0, }, /* 271 */
+ { 36, 10, 5, 0, 0, }, /* 272 */
+ { 36, 7, 12, 0, 0, }, /* 273 */
+ { 36, 10, 3, 0, 0, }, /* 274 */
+ { 36, 13, 12, 0, 0, }, /* 275 */
+ { 36, 15, 12, 0, 0, }, /* 276 */
+ { 36, 26, 12, 0, 0, }, /* 277 */
+ { 47, 10, 5, 0, 0, }, /* 278 */
+ { 47, 7, 12, 0, 0, }, /* 279 */
+ { 47, 12, 3, 0, 0, }, /* 280 */
+ { 47, 10, 3, 0, 0, }, /* 281 */
+ { 47, 13, 12, 0, 0, }, /* 282 */
+ { 47, 21, 12, 0, 0, }, /* 283 */
+ { 56, 7, 12, 0, 0, }, /* 284 */
+ { 56, 12, 3, 0, 0, }, /* 285 */
+ { 56, 7, 5, 0, 0, }, /* 286 */
+ { 56, 6, 12, 0, 0, }, /* 287 */
+ { 56, 21, 12, 0, 0, }, /* 288 */
+ { 56, 13, 12, 0, 0, }, /* 289 */
+ { 32, 7, 12, 0, 0, }, /* 290 */
+ { 32, 12, 3, 0, 0, }, /* 291 */
+ { 32, 7, 5, 0, 0, }, /* 292 */
+ { 32, 6, 12, 0, 0, }, /* 293 */
+ { 32, 13, 12, 0, 0, }, /* 294 */
+ { 57, 7, 12, 0, 0, }, /* 295 */
+ { 57, 26, 12, 0, 0, }, /* 296 */
+ { 57, 21, 12, 0, 0, }, /* 297 */
+ { 57, 12, 3, 0, 0, }, /* 298 */
+ { 57, 13, 12, 0, 0, }, /* 299 */
+ { 57, 15, 12, 0, 0, }, /* 300 */
+ { 57, 22, 12, 0, 0, }, /* 301 */
+ { 57, 18, 12, 0, 0, }, /* 302 */
+ { 57, 10, 5, 0, 0, }, /* 303 */
+ { 38, 7, 12, 0, 0, }, /* 304 */
+ { 38, 10, 12, 0, 0, }, /* 305 */
+ { 38, 12, 3, 0, 0, }, /* 306 */
+ { 38, 10, 5, 0, 0, }, /* 307 */
+ { 38, 13, 12, 0, 0, }, /* 308 */
+ { 38, 21, 12, 0, 0, }, /* 309 */
+ { 38, 26, 12, 0, 0, }, /* 310 */
+ { 16, 9, 12, 0, 7264, }, /* 311 */
+ { 16, 7, 12, 0, 0, }, /* 312 */
+ { 16, 6, 12, 0, 0, }, /* 313 */
+ { 23, 7, 6, 0, 0, }, /* 314 */
+ { 23, 7, 7, 0, 0, }, /* 315 */
+ { 23, 7, 8, 0, 0, }, /* 316 */
+ { 15, 7, 12, 0, 0, }, /* 317 */
+ { 15, 12, 3, 0, 0, }, /* 318 */
+ { 15, 21, 12, 0, 0, }, /* 319 */
+ { 15, 15, 12, 0, 0, }, /* 320 */
+ { 15, 26, 12, 0, 0, }, /* 321 */
+ { 8, 7, 12, 0, 0, }, /* 322 */
+ { 7, 17, 12, 0, 0, }, /* 323 */
+ { 7, 7, 12, 0, 0, }, /* 324 */
+ { 7, 21, 12, 0, 0, }, /* 325 */
+ { 40, 29, 12, 0, 0, }, /* 326 */
+ { 40, 7, 12, 0, 0, }, /* 327 */
+ { 40, 22, 12, 0, 0, }, /* 328 */
+ { 40, 18, 12, 0, 0, }, /* 329 */
+ { 45, 7, 12, 0, 0, }, /* 330 */
+ { 45, 14, 12, 0, 0, }, /* 331 */
+ { 50, 7, 12, 0, 0, }, /* 332 */
+ { 50, 12, 3, 0, 0, }, /* 333 */
+ { 24, 7, 12, 0, 0, }, /* 334 */
+ { 24, 12, 3, 0, 0, }, /* 335 */
+ { 6, 7, 12, 0, 0, }, /* 336 */
+ { 6, 12, 3, 0, 0, }, /* 337 */
+ { 51, 7, 12, 0, 0, }, /* 338 */
+ { 51, 12, 3, 0, 0, }, /* 339 */
+ { 31, 7, 12, 0, 0, }, /* 340 */
+ { 31, 12, 3, 0, 0, }, /* 341 */
+ { 31, 10, 5, 0, 0, }, /* 342 */
+ { 31, 21, 12, 0, 0, }, /* 343 */
+ { 31, 6, 12, 0, 0, }, /* 344 */
+ { 31, 23, 12, 0, 0, }, /* 345 */
+ { 31, 13, 12, 0, 0, }, /* 346 */
+ { 31, 15, 12, 0, 0, }, /* 347 */
+ { 37, 21, 12, 0, 0, }, /* 348 */
+ { 37, 17, 12, 0, 0, }, /* 349 */
+ { 37, 12, 3, 0, 0, }, /* 350 */
+ { 37, 1, 2, 0, 0, }, /* 351 */
+ { 37, 13, 12, 0, 0, }, /* 352 */
+ { 37, 7, 12, 0, 0, }, /* 353 */
+ { 37, 6, 12, 0, 0, }, /* 354 */
+ { 34, 7, 12, 0, 0, }, /* 355 */
+ { 34, 12, 3, 0, 0, }, /* 356 */
+ { 34, 10, 5, 0, 0, }, /* 357 */
+ { 34, 26, 12, 0, 0, }, /* 358 */
+ { 34, 21, 12, 0, 0, }, /* 359 */
+ { 34, 13, 12, 0, 0, }, /* 360 */
+ { 52, 7, 12, 0, 0, }, /* 361 */
+ { 39, 7, 12, 0, 0, }, /* 362 */
+ { 39, 10, 12, 0, 0, }, /* 363 */
+ { 39, 10, 5, 0, 0, }, /* 364 */
+ { 39, 13, 12, 0, 0, }, /* 365 */
+ { 39, 15, 12, 0, 0, }, /* 366 */
+ { 39, 26, 12, 0, 0, }, /* 367 */
+ { 31, 26, 12, 0, 0, }, /* 368 */
+ { 5, 7, 12, 0, 0, }, /* 369 */
+ { 5, 12, 3, 0, 0, }, /* 370 */
+ { 5, 10, 5, 0, 0, }, /* 371 */
+ { 5, 21, 12, 0, 0, }, /* 372 */
+ { 90, 7, 12, 0, 0, }, /* 373 */
+ { 90, 10, 5, 0, 0, }, /* 374 */
+ { 90, 12, 3, 0, 0, }, /* 375 */
+ { 90, 10, 12, 0, 0, }, /* 376 */
+ { 90, 13, 12, 0, 0, }, /* 377 */
+ { 90, 21, 12, 0, 0, }, /* 378 */
+ { 90, 6, 12, 0, 0, }, /* 379 */
+ { 27, 11, 3, 0, 0, }, /* 380 */
+ { 61, 12, 3, 0, 0, }, /* 381 */
+ { 61, 10, 5, 0, 0, }, /* 382 */
+ { 61, 7, 12, 0, 0, }, /* 383 */
+ { 61, 13, 12, 0, 0, }, /* 384 */
+ { 61, 21, 12, 0, 0, }, /* 385 */
+ { 61, 26, 12, 0, 0, }, /* 386 */
+ { 75, 12, 3, 0, 0, }, /* 387 */
+ { 75, 10, 5, 0, 0, }, /* 388 */
+ { 75, 7, 12, 0, 0, }, /* 389 */
+ { 75, 13, 12, 0, 0, }, /* 390 */
+ { 92, 7, 12, 0, 0, }, /* 391 */
+ { 92, 12, 3, 0, 0, }, /* 392 */
+ { 92, 10, 5, 0, 0, }, /* 393 */
+ { 92, 21, 12, 0, 0, }, /* 394 */
+ { 69, 7, 12, 0, 0, }, /* 395 */
+ { 69, 10, 5, 0, 0, }, /* 396 */
+ { 69, 12, 3, 0, 0, }, /* 397 */
+ { 69, 21, 12, 0, 0, }, /* 398 */
+ { 69, 13, 12, 0, 0, }, /* 399 */
+ { 72, 13, 12, 0, 0, }, /* 400 */
+ { 72, 7, 12, 0, 0, }, /* 401 */
+ { 72, 6, 12, 0, 0, }, /* 402 */
+ { 72, 21, 12, 0, 0, }, /* 403 */
+ { 75, 21, 12, 0, 0, }, /* 404 */
+ { 9, 10, 5, 0, 0, }, /* 405 */
+ { 9, 7, 12, 0, 0, }, /* 406 */
+ { 12, 5, 12, 0, 0, }, /* 407 */
+ { 12, 6, 12, 0, 0, }, /* 408 */
+ { 33, 5, 12, 0, 35332, }, /* 409 */
+ { 33, 5, 12, 0, 3814, }, /* 410 */
+ { 33, 9, 12, 63, 1, }, /* 411 */
+ { 33, 5, 12, 63, -1, }, /* 412 */
+ { 33, 5, 12, 63, -58, }, /* 413 */
+ { 33, 9, 12, 0, -7615, }, /* 414 */
+ { 19, 5, 12, 0, 8, }, /* 415 */
+ { 19, 9, 12, 0, -8, }, /* 416 */
+ { 19, 5, 12, 0, 74, }, /* 417 */
+ { 19, 5, 12, 0, 86, }, /* 418 */
+ { 19, 5, 12, 0, 100, }, /* 419 */
+ { 19, 5, 12, 0, 128, }, /* 420 */
+ { 19, 5, 12, 0, 112, }, /* 421 */
+ { 19, 5, 12, 0, 126, }, /* 422 */
+ { 19, 8, 12, 0, -8, }, /* 423 */
+ { 19, 5, 12, 0, 9, }, /* 424 */
+ { 19, 9, 12, 0, -74, }, /* 425 */
+ { 19, 8, 12, 0, -9, }, /* 426 */
+ { 19, 5, 12, 21, -7173, }, /* 427 */
+ { 19, 9, 12, 0, -86, }, /* 428 */
+ { 19, 9, 12, 0, -100, }, /* 429 */
+ { 19, 9, 12, 0, -112, }, /* 430 */
+ { 19, 9, 12, 0, -128, }, /* 431 */
+ { 19, 9, 12, 0, -126, }, /* 432 */
+ { 27, 1, 3, 0, 0, }, /* 433 */
+ { 9, 27, 2, 0, 0, }, /* 434 */
+ { 9, 28, 2, 0, 0, }, /* 435 */
+ { 9, 2, 2, 0, 0, }, /* 436 */
+ { 9, 9, 12, 0, 0, }, /* 437 */
+ { 9, 5, 12, 0, 0, }, /* 438 */
+ { 19, 9, 12, 67, -7517, }, /* 439 */
+ { 33, 9, 12, 71, -8383, }, /* 440 */
+ { 33, 9, 12, 75, -8262, }, /* 441 */
+ { 33, 9, 12, 0, 28, }, /* 442 */
+ { 33, 5, 12, 0, -28, }, /* 443 */
+ { 33, 14, 12, 0, 16, }, /* 444 */
+ { 33, 14, 12, 0, -16, }, /* 445 */
+ { 33, 14, 12, 0, 0, }, /* 446 */
+ { 9, 26, 12, 0, 26, }, /* 447 */
+ { 9, 26, 12, 0, -26, }, /* 448 */
+ { 4, 26, 12, 0, 0, }, /* 449 */
+ { 17, 9, 12, 0, 48, }, /* 450 */
+ { 17, 5, 12, 0, -48, }, /* 451 */
+ { 33, 9, 12, 0, -10743, }, /* 452 */
+ { 33, 9, 12, 0, -3814, }, /* 453 */
+ { 33, 9, 12, 0, -10727, }, /* 454 */
+ { 33, 5, 12, 0, -10795, }, /* 455 */
+ { 33, 5, 12, 0, -10792, }, /* 456 */
+ { 33, 9, 12, 0, -10780, }, /* 457 */
+ { 33, 9, 12, 0, -10749, }, /* 458 */
+ { 33, 9, 12, 0, -10783, }, /* 459 */
+ { 33, 9, 12, 0, -10782, }, /* 460 */
+ { 33, 9, 12, 0, -10815, }, /* 461 */
+ { 10, 5, 12, 0, 0, }, /* 462 */
+ { 10, 26, 12, 0, 0, }, /* 463 */
+ { 10, 12, 3, 0, 0, }, /* 464 */
+ { 10, 21, 12, 0, 0, }, /* 465 */
+ { 10, 15, 12, 0, 0, }, /* 466 */
+ { 16, 5, 12, 0, -7264, }, /* 467 */
+ { 58, 7, 12, 0, 0, }, /* 468 */
+ { 58, 6, 12, 0, 0, }, /* 469 */
+ { 58, 21, 12, 0, 0, }, /* 470 */
+ { 58, 12, 3, 0, 0, }, /* 471 */
+ { 22, 26, 12, 0, 0, }, /* 472 */
+ { 22, 6, 12, 0, 0, }, /* 473 */
+ { 22, 14, 12, 0, 0, }, /* 474 */
+ { 23, 10, 3, 0, 0, }, /* 475 */
+ { 26, 7, 12, 0, 0, }, /* 476 */
+ { 26, 6, 12, 0, 0, }, /* 477 */
+ { 29, 7, 12, 0, 0, }, /* 478 */
+ { 29, 6, 12, 0, 0, }, /* 479 */
+ { 3, 7, 12, 0, 0, }, /* 480 */
+ { 23, 7, 12, 0, 0, }, /* 481 */
+ { 23, 26, 12, 0, 0, }, /* 482 */
+ { 29, 26, 12, 0, 0, }, /* 483 */
+ { 22, 7, 12, 0, 0, }, /* 484 */
+ { 60, 7, 12, 0, 0, }, /* 485 */
+ { 60, 6, 12, 0, 0, }, /* 486 */
+ { 60, 26, 12, 0, 0, }, /* 487 */
+ { 85, 7, 12, 0, 0, }, /* 488 */
+ { 85, 6, 12, 0, 0, }, /* 489 */
+ { 85, 21, 12, 0, 0, }, /* 490 */
+ { 76, 7, 12, 0, 0, }, /* 491 */
+ { 76, 6, 12, 0, 0, }, /* 492 */
+ { 76, 21, 12, 0, 0, }, /* 493 */
+ { 76, 13, 12, 0, 0, }, /* 494 */
+ { 12, 7, 12, 0, 0, }, /* 495 */
+ { 12, 21, 12, 0, 0, }, /* 496 */
+ { 78, 7, 12, 0, 0, }, /* 497 */
+ { 78, 14, 12, 0, 0, }, /* 498 */
+ { 78, 12, 3, 0, 0, }, /* 499 */
+ { 78, 21, 12, 0, 0, }, /* 500 */
+ { 33, 9, 12, 0, -35332, }, /* 501 */
+ { 33, 9, 12, 0, -42280, }, /* 502 */
+ { 33, 9, 12, 0, -42308, }, /* 503 */
+ { 33, 9, 12, 0, -42319, }, /* 504 */
+ { 33, 9, 12, 0, -42315, }, /* 505 */
+ { 33, 9, 12, 0, -42305, }, /* 506 */
+ { 33, 9, 12, 0, -42258, }, /* 507 */
+ { 33, 9, 12, 0, -42282, }, /* 508 */
+ { 48, 7, 12, 0, 0, }, /* 509 */
+ { 48, 12, 3, 0, 0, }, /* 510 */
+ { 48, 10, 5, 0, 0, }, /* 511 */
+ { 48, 26, 12, 0, 0, }, /* 512 */
+ { 64, 7, 12, 0, 0, }, /* 513 */
+ { 64, 21, 12, 0, 0, }, /* 514 */
+ { 74, 10, 5, 0, 0, }, /* 515 */
+ { 74, 7, 12, 0, 0, }, /* 516 */
+ { 74, 12, 3, 0, 0, }, /* 517 */
+ { 74, 21, 12, 0, 0, }, /* 518 */
+ { 74, 13, 12, 0, 0, }, /* 519 */
+ { 68, 13, 12, 0, 0, }, /* 520 */
+ { 68, 7, 12, 0, 0, }, /* 521 */
+ { 68, 12, 3, 0, 0, }, /* 522 */
+ { 68, 21, 12, 0, 0, }, /* 523 */
+ { 73, 7, 12, 0, 0, }, /* 524 */
+ { 73, 12, 3, 0, 0, }, /* 525 */
+ { 73, 10, 5, 0, 0, }, /* 526 */
+ { 73, 21, 12, 0, 0, }, /* 527 */
+ { 83, 12, 3, 0, 0, }, /* 528 */
+ { 83, 10, 5, 0, 0, }, /* 529 */
+ { 83, 7, 12, 0, 0, }, /* 530 */
+ { 83, 21, 12, 0, 0, }, /* 531 */
+ { 83, 13, 12, 0, 0, }, /* 532 */
+ { 38, 6, 12, 0, 0, }, /* 533 */
+ { 67, 7, 12, 0, 0, }, /* 534 */
+ { 67, 12, 3, 0, 0, }, /* 535 */
+ { 67, 10, 5, 0, 0, }, /* 536 */
+ { 67, 13, 12, 0, 0, }, /* 537 */
+ { 67, 21, 12, 0, 0, }, /* 538 */
+ { 91, 7, 12, 0, 0, }, /* 539 */
+ { 91, 12, 3, 0, 0, }, /* 540 */
+ { 91, 6, 12, 0, 0, }, /* 541 */
+ { 91, 21, 12, 0, 0, }, /* 542 */
+ { 86, 7, 12, 0, 0, }, /* 543 */
+ { 86, 10, 5, 0, 0, }, /* 544 */
+ { 86, 12, 3, 0, 0, }, /* 545 */
+ { 86, 21, 12, 0, 0, }, /* 546 */
+ { 86, 6, 12, 0, 0, }, /* 547 */
+ { 86, 13, 12, 0, 0, }, /* 548 */
+ { 23, 7, 9, 0, 0, }, /* 549 */
+ { 23, 7, 10, 0, 0, }, /* 550 */
+ { 9, 4, 2, 0, 0, }, /* 551 */
+ { 9, 3, 12, 0, 0, }, /* 552 */
+ { 25, 25, 12, 0, 0, }, /* 553 */
+ { 0, 24, 12, 0, 0, }, /* 554 */
+ { 9, 6, 3, 0, 0, }, /* 555 */
+ { 35, 7, 12, 0, 0, }, /* 556 */
+ { 19, 14, 12, 0, 0, }, /* 557 */
+ { 19, 15, 12, 0, 0, }, /* 558 */
+ { 19, 26, 12, 0, 0, }, /* 559 */
+ { 70, 7, 12, 0, 0, }, /* 560 */
+ { 66, 7, 12, 0, 0, }, /* 561 */
+ { 41, 7, 12, 0, 0, }, /* 562 */
+ { 41, 15, 12, 0, 0, }, /* 563 */
+ { 18, 7, 12, 0, 0, }, /* 564 */
+ { 18, 14, 12, 0, 0, }, /* 565 */
+ { 117, 7, 12, 0, 0, }, /* 566 */
+ { 117, 12, 3, 0, 0, }, /* 567 */
+ { 59, 7, 12, 0, 0, }, /* 568 */
+ { 59, 21, 12, 0, 0, }, /* 569 */
+ { 42, 7, 12, 0, 0, }, /* 570 */
+ { 42, 21, 12, 0, 0, }, /* 571 */
+ { 42, 14, 12, 0, 0, }, /* 572 */
+ { 13, 9, 12, 0, 40, }, /* 573 */
+ { 13, 5, 12, 0, -40, }, /* 574 */
+ { 46, 7, 12, 0, 0, }, /* 575 */
+ { 44, 7, 12, 0, 0, }, /* 576 */
+ { 44, 13, 12, 0, 0, }, /* 577 */
+ { 105, 7, 12, 0, 0, }, /* 578 */
+ { 103, 7, 12, 0, 0, }, /* 579 */
+ { 103, 21, 12, 0, 0, }, /* 580 */
+ { 109, 7, 12, 0, 0, }, /* 581 */
+ { 11, 7, 12, 0, 0, }, /* 582 */
+ { 80, 7, 12, 0, 0, }, /* 583 */
+ { 80, 21, 12, 0, 0, }, /* 584 */
+ { 80, 15, 12, 0, 0, }, /* 585 */
+ { 119, 7, 12, 0, 0, }, /* 586 */
+ { 119, 26, 12, 0, 0, }, /* 587 */
+ { 119, 15, 12, 0, 0, }, /* 588 */
+ { 115, 7, 12, 0, 0, }, /* 589 */
+ { 115, 15, 12, 0, 0, }, /* 590 */
+ { 65, 7, 12, 0, 0, }, /* 591 */
+ { 65, 15, 12, 0, 0, }, /* 592 */
+ { 65, 21, 12, 0, 0, }, /* 593 */
+ { 71, 7, 12, 0, 0, }, /* 594 */
+ { 71, 21, 12, 0, 0, }, /* 595 */
+ { 97, 7, 12, 0, 0, }, /* 596 */
+ { 96, 7, 12, 0, 0, }, /* 597 */
+ { 30, 7, 12, 0, 0, }, /* 598 */
+ { 30, 12, 3, 0, 0, }, /* 599 */
+ { 30, 15, 12, 0, 0, }, /* 600 */
+ { 30, 21, 12, 0, 0, }, /* 601 */
+ { 87, 7, 12, 0, 0, }, /* 602 */
+ { 87, 15, 12, 0, 0, }, /* 603 */
+ { 87, 21, 12, 0, 0, }, /* 604 */
+ { 116, 7, 12, 0, 0, }, /* 605 */
+ { 116, 15, 12, 0, 0, }, /* 606 */
+ { 111, 7, 12, 0, 0, }, /* 607 */
+ { 111, 26, 12, 0, 0, }, /* 608 */
+ { 111, 12, 3, 0, 0, }, /* 609 */
+ { 111, 15, 12, 0, 0, }, /* 610 */
+ { 111, 21, 12, 0, 0, }, /* 611 */
+ { 77, 7, 12, 0, 0, }, /* 612 */
+ { 77, 21, 12, 0, 0, }, /* 613 */
+ { 82, 7, 12, 0, 0, }, /* 614 */
+ { 82, 15, 12, 0, 0, }, /* 615 */
+ { 81, 7, 12, 0, 0, }, /* 616 */
+ { 81, 15, 12, 0, 0, }, /* 617 */
+ { 120, 7, 12, 0, 0, }, /* 618 */
+ { 120, 21, 12, 0, 0, }, /* 619 */
+ { 120, 15, 12, 0, 0, }, /* 620 */
+ { 88, 7, 12, 0, 0, }, /* 621 */
+ { 0, 15, 12, 0, 0, }, /* 622 */
+ { 93, 10, 5, 0, 0, }, /* 623 */
+ { 93, 12, 3, 0, 0, }, /* 624 */
+ { 93, 7, 12, 0, 0, }, /* 625 */
+ { 93, 21, 12, 0, 0, }, /* 626 */
+ { 93, 15, 12, 0, 0, }, /* 627 */
+ { 93, 13, 12, 0, 0, }, /* 628 */
+ { 84, 12, 3, 0, 0, }, /* 629 */
+ { 84, 10, 5, 0, 0, }, /* 630 */
+ { 84, 7, 12, 0, 0, }, /* 631 */
+ { 84, 21, 12, 0, 0, }, /* 632 */
+ { 84, 1, 2, 0, 0, }, /* 633 */
+ { 100, 7, 12, 0, 0, }, /* 634 */
+ { 100, 13, 12, 0, 0, }, /* 635 */
+ { 95, 12, 3, 0, 0, }, /* 636 */
+ { 95, 7, 12, 0, 0, }, /* 637 */
+ { 95, 10, 5, 0, 0, }, /* 638 */
+ { 95, 13, 12, 0, 0, }, /* 639 */
+ { 95, 21, 12, 0, 0, }, /* 640 */
+ { 110, 7, 12, 0, 0, }, /* 641 */
+ { 110, 12, 3, 0, 0, }, /* 642 */
+ { 110, 21, 12, 0, 0, }, /* 643 */
+ { 99, 12, 3, 0, 0, }, /* 644 */
+ { 99, 10, 5, 0, 0, }, /* 645 */
+ { 99, 7, 12, 0, 0, }, /* 646 */
+ { 99, 21, 12, 0, 0, }, /* 647 */
+ { 99, 13, 12, 0, 0, }, /* 648 */
+ { 47, 15, 12, 0, 0, }, /* 649 */
+ { 107, 7, 12, 0, 0, }, /* 650 */
+ { 107, 10, 5, 0, 0, }, /* 651 */
+ { 107, 12, 3, 0, 0, }, /* 652 */
+ { 107, 21, 12, 0, 0, }, /* 653 */
+ { 108, 7, 12, 0, 0, }, /* 654 */
+ { 108, 12, 3, 0, 0, }, /* 655 */
+ { 108, 10, 5, 0, 0, }, /* 656 */
+ { 108, 13, 12, 0, 0, }, /* 657 */
+ { 106, 12, 3, 0, 0, }, /* 658 */
+ { 106, 10, 5, 0, 0, }, /* 659 */
+ { 106, 7, 12, 0, 0, }, /* 660 */
+ { 106, 10, 3, 0, 0, }, /* 661 */
+ { 123, 7, 12, 0, 0, }, /* 662 */
+ { 123, 10, 3, 0, 0, }, /* 663 */
+ { 123, 10, 5, 0, 0, }, /* 664 */
+ { 123, 12, 3, 0, 0, }, /* 665 */
+ { 123, 21, 12, 0, 0, }, /* 666 */
+ { 123, 13, 12, 0, 0, }, /* 667 */
+ { 122, 7, 12, 0, 0, }, /* 668 */
+ { 122, 10, 3, 0, 0, }, /* 669 */
+ { 122, 10, 5, 0, 0, }, /* 670 */
+ { 122, 12, 3, 0, 0, }, /* 671 */
+ { 122, 21, 12, 0, 0, }, /* 672 */
+ { 113, 7, 12, 0, 0, }, /* 673 */
+ { 113, 10, 5, 0, 0, }, /* 674 */
+ { 113, 12, 3, 0, 0, }, /* 675 */
+ { 113, 21, 12, 0, 0, }, /* 676 */
+ { 113, 13, 12, 0, 0, }, /* 677 */
+ { 101, 7, 12, 0, 0, }, /* 678 */
+ { 101, 12, 3, 0, 0, }, /* 679 */
+ { 101, 10, 5, 0, 0, }, /* 680 */
+ { 101, 13, 12, 0, 0, }, /* 681 */
+ { 124, 9, 12, 0, 32, }, /* 682 */
+ { 124, 5, 12, 0, -32, }, /* 683 */
+ { 124, 13, 12, 0, 0, }, /* 684 */
+ { 124, 15, 12, 0, 0, }, /* 685 */
+ { 124, 7, 12, 0, 0, }, /* 686 */
+ { 121, 7, 12, 0, 0, }, /* 687 */
+ { 62, 7, 12, 0, 0, }, /* 688 */
+ { 62, 14, 12, 0, 0, }, /* 689 */
+ { 62, 21, 12, 0, 0, }, /* 690 */
+ { 79, 7, 12, 0, 0, }, /* 691 */
+ { 114, 7, 12, 0, 0, }, /* 692 */
+ { 114, 13, 12, 0, 0, }, /* 693 */
+ { 114, 21, 12, 0, 0, }, /* 694 */
+ { 102, 7, 12, 0, 0, }, /* 695 */
+ { 102, 12, 3, 0, 0, }, /* 696 */
+ { 102, 21, 12, 0, 0, }, /* 697 */
+ { 118, 7, 12, 0, 0, }, /* 698 */
+ { 118, 12, 3, 0, 0, }, /* 699 */
+ { 118, 21, 12, 0, 0, }, /* 700 */
+ { 118, 26, 12, 0, 0, }, /* 701 */
+ { 118, 6, 12, 0, 0, }, /* 702 */
+ { 118, 13, 12, 0, 0, }, /* 703 */
+ { 118, 15, 12, 0, 0, }, /* 704 */
+ { 98, 7, 12, 0, 0, }, /* 705 */
+ { 98, 10, 5, 0, 0, }, /* 706 */
+ { 98, 12, 3, 0, 0, }, /* 707 */
+ { 98, 6, 12, 0, 0, }, /* 708 */
+ { 104, 7, 12, 0, 0, }, /* 709 */
+ { 104, 26, 12, 0, 0, }, /* 710 */
+ { 104, 12, 3, 0, 0, }, /* 711 */
+ { 104, 21, 12, 0, 0, }, /* 712 */
+ { 9, 10, 3, 0, 0, }, /* 713 */
+ { 19, 12, 3, 0, 0, }, /* 714 */
+ { 112, 7, 12, 0, 0, }, /* 715 */
+ { 112, 15, 12, 0, 0, }, /* 716 */
+ { 112, 12, 3, 0, 0, }, /* 717 */
+ { 9, 26, 11, 0, 0, }, /* 718 */
+ { 26, 26, 12, 0, 0, }, /* 719 */
};
const pcre_uint8 PRIV(ucd_stage1)[] = { /* 8704 bytes */
@@ -742,38 +835,38 @@ const pcre_uint8 PRIV(ucd_stage1)[] = { /* 8704 bytes */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+E800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+F000 */
123,123, 95, 95,124,125,126,127,128,128,129,130,131,132,133,134, /* U+F800 */
-135,136,137,138, 79,139,140,141,142,143, 79, 79, 79, 79, 79, 79, /* U+10000 */
-144, 79,145,146,147, 79,148, 79,149, 79, 79, 79,150, 79, 79, 79, /* U+10800 */
-151,152,153,154, 79, 79, 79, 79, 79, 79, 79, 79, 79,155, 79, 79, /* U+11000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+11800 */
-156,156,156,156,156,156,157, 79,158, 79, 79, 79, 79, 79, 79, 79, /* U+12000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+12800 */
-159,159,159,159,159,159,159,159,160, 79, 79, 79, 79, 79, 79, 79, /* U+13000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+13800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+14000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+14800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+15000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+15800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+16000 */
-161,161,161,161,162, 79, 79, 79, 79, 79, 79, 79, 79, 79,163,164, /* U+16800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+17000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+17800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+18000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+18800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+19000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+19800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1A800 */
-165, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1C800 */
- 71,166,167,168,169, 79,170, 79,171,172,173,174,175,176,177,178, /* U+1D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,179,180, 79, 79, /* U+1E800 */
-181,182,183,184,185, 79,186,187,188,189,190,191,192,193,194, 79, /* U+1F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+1F800 */
+135,136,137,138,139,140,141,142,143,144,145,139,146,146,147,139, /* U+10000 */
+148,149,150,151,152,153,154,155,156,139,139,139,157,139,139,139, /* U+10800 */
+158,159,160,161,162,163,164,139,139,165,139,166,167,168,139,139, /* U+11000 */
+139,169,139,139,139,170,139,139,139,139,139,139,139,139,139,139, /* U+11800 */
+171,171,171,171,171,171,171,172,173,139,139,139,139,139,139,139, /* U+12000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+12800 */
+174,174,174,174,174,174,174,174,175,139,139,139,139,139,139,139, /* U+13000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+13800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+14000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+14800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+15000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+15800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+16000 */
+176,176,176,176,177,178,179,180,139,139,139,139,139,139,181,182, /* U+16800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+17000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+17800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+18000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+18800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+19000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+19800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1A800 */
+183,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1B000 */
+139,139,139,139,139,139,139,139,184,185,139,139,139,139,139,139, /* U+1B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1C800 */
+ 71,186,187,188,189,139,190,139,191,192,193,194,195,196,197,198, /* U+1D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1E000 */
+199,200,139,139,139,139,139,139,139,139,139,139,201,202,139,139, /* U+1E800 */
+203,204,205,206,207,139,208,209, 71,210,211,212,213,214,215,216, /* U+1F000 */
+217,218,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+1F800 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+20000 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+20800 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+21000 */
@@ -794,402 +887,402 @@ const pcre_uint8 PRIV(ucd_stage1)[] = { /* 8704 bytes */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+28800 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+29000 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+29800 */
- 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,195, 95, 95, /* U+2A000 */
+ 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,219, 95, 95, /* U+2A000 */
95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, /* U+2A800 */
- 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,196, 95, /* U+2B000 */
-197, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2F000 */
- 95, 95, 95, 95,197, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+2F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+30000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+30800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+31000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+31800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+32000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+32800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+33000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+33800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+34000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+34800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+35000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+35800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+36000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+36800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+37000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+37800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+38000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+38800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+39000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+39800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+3F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+40000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+40800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+41000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+41800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+42000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+42800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+43000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+43800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+44000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+44800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+45000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+45800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+46000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+46800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+47000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+47800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+48000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+48800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+49000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+49800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+4F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+50000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+50800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+51000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+51800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+52000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+52800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+53000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+53800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+54000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+54800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+55000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+55800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+56000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+56800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+57000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+57800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+58000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+58800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+59000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+59800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+5F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+60000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+60800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+61000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+61800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+62000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+62800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+63000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+63800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+64000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+64800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+65000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+65800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+66000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+66800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+67000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+67800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+68000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+68800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+69000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+69800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+6F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+70000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+70800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+71000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+71800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+72000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+72800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+73000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+73800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+74000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+74800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+75000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+75800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+76000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+76800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+77000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+77800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+78000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+78800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+79000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+79800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+7F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+80000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+80800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+81000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+81800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+82000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+82800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+83000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+83800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+84000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+84800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+85000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+85800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+86000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+86800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+87000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+87800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+88000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+88800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+89000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+89800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+8F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+90000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+90800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+91000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+91800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+92000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+92800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+93000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+93800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+94000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+94800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+95000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+95800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+96000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+96800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+97000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+97800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+98000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+98800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+99000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+99800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9A000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9A800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9B000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9B800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9C000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9C800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9D000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9D800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9E000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9E800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9F000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+9F800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A0000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A0800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A1000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A1800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A2000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A2800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A3000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A3800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A4000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A4800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A5000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A5800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A6000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A6800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A7000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A7800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A8000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A8800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A9000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+A9800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AA000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AA800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AB000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AB800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AC000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AC800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AD000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AD800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AE000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AE800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AF000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+AF800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B0000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B0800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B1000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B1800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B2000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B2800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B3000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B3800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B4000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B4800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B5000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B5800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B6000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B6800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B7000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B7800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B8000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B8800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B9000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+B9800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BA000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BA800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BB000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BB800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BC000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BC800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BD000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BD800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BE000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BE800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BF000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+BF800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C0000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C0800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C1000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C1800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C2000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C2800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C3000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C3800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C4000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C4800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C5000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C5800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C6000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C6800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C7000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C7800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C8000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C8800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C9000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+C9800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CA000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CA800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CB000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CB800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CC000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CC800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CD000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CD800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CE000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CE800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CF000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+CF800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D0000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D0800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D1000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D1800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D2000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D2800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D3000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D3800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D4000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D4800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D5000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D5800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D6000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D6800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D7000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D7800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D8000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D8800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D9000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+D9800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DA000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DA800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DB000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DB800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DC000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DC800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DD000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DD800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DE000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DE800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DF000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+DF800 */
-198,199,200,201,199,199,199,199,199,199,199,199,199,199,199,199, /* U+E0000 */
-199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199, /* U+E0800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E1000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E1800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E2000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E2800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E3000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E3800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E4000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E4800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E5000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E5800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E6000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E6800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E7000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E7800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E8000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E8800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E9000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+E9800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EA000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EA800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EB000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EB800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EC000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EC800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+ED000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+ED800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EE000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EE800 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EF000 */
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, /* U+EF800 */
+ 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,220, 95, /* U+2B000 */
+221,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+2F000 */
+ 95, 95, 95, 95,221,139,139,139,139,139,139,139,139,139,139,139, /* U+2F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+30000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+30800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+31000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+31800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+32000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+32800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+33000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+33800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+34000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+34800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+35000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+35800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+36000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+36800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+37000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+37800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+38000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+38800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+39000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+39800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+3F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+40000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+40800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+41000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+41800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+42000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+42800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+43000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+43800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+44000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+44800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+45000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+45800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+46000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+46800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+47000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+47800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+48000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+48800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+49000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+49800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+4F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+50000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+50800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+51000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+51800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+52000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+52800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+53000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+53800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+54000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+54800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+55000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+55800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+56000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+56800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+57000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+57800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+58000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+58800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+59000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+59800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+5F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+60000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+60800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+61000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+61800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+62000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+62800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+63000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+63800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+64000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+64800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+65000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+65800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+66000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+66800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+67000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+67800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+68000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+68800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+69000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+69800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+6F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+70000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+70800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+71000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+71800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+72000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+72800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+73000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+73800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+74000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+74800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+75000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+75800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+76000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+76800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+77000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+77800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+78000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+78800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+79000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+79800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+7F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+80000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+80800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+81000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+81800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+82000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+82800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+83000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+83800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+84000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+84800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+85000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+85800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+86000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+86800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+87000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+87800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+88000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+88800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+89000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+89800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+8F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+90000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+90800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+91000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+91800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+92000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+92800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+93000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+93800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+94000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+94800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+95000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+95800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+96000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+96800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+97000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+97800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+98000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+98800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+99000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+99800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9A000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9A800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9B000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9B800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9C000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9C800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9D000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9D800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9E000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9E800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9F000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+9F800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A0000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A0800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A1000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A1800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A2000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A2800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A3000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A3800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A4000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A4800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A5000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A5800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A6000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A6800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A7000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A7800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A8000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A8800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A9000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+A9800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AA000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AA800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AB000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AB800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AC000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AC800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AD000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AD800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AE000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AE800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AF000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+AF800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B0000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B0800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B1000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B1800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B2000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B2800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B3000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B3800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B4000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B4800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B5000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B5800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B6000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B6800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B7000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B7800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B8000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B8800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B9000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+B9800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BA000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BA800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BB000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BB800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BC000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BC800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BD000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BD800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BE000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BE800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BF000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+BF800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C0000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C0800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C1000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C1800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C2000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C2800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C3000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C3800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C4000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C4800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C5000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C5800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C6000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C6800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C7000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C7800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C8000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C8800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C9000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+C9800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CA000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CA800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CB000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CB800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CC000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CC800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CD000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CD800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CE000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CE800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CF000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+CF800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D0000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D0800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D1000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D1800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D2000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D2800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D3000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D3800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D4000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D4800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D5000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D5800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D6000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D6800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D7000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D7800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D8000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D8800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D9000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+D9800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DA000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DA800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DB000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DB800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DC000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DC800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DD000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DD800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DE000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DE800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DF000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+DF800 */
+222,223,224,225,223,223,223,223,223,223,223,223,223,223,223,223, /* U+E0000 */
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223, /* U+E0800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E1000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E1800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E2000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E2800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E3000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E3800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E4000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E4800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E5000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E5800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E6000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E6800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E7000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E7800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E8000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E8800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E9000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+E9800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EA000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EA800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EB000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EB800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EC000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EC800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+ED000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+ED800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EE000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EE800 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EF000 */
+139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, /* U+EF800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+F0000 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+F0800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+F1000 */
@@ -1221,7 +1314,7 @@ const pcre_uint8 PRIV(ucd_stage1)[] = { /* 8704 bytes */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+FE000 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+FE800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+FF000 */
-123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,202, /* U+FF800 */
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,226, /* U+FF800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+100000 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+100800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+101000 */
@@ -1253,10 +1346,10 @@ const pcre_uint8 PRIV(ucd_stage1)[] = { /* 8704 bytes */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+10E000 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+10E800 */
123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, /* U+10F000 */
-123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,202, /* U+10F800 */
+123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,226, /* U+10F800 */
};
-const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
+const pcre_uint16 PRIV(ucd_stage2)[] = { /* 58112 bytes, block = 128 */
/* block 0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1303,539 +1396,539 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
70, 33, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 33, 33, 33, 33, 33, 33, 71, 30, 31, 72, 73, 74,
74, 30, 31, 75, 76, 77, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 78, 79, 80, 81, 82, 33, 83, 83, 33, 84, 33, 85, 33, 33, 33, 33,
- 83, 33, 33, 86, 33, 87, 88, 33, 89, 90, 33, 91, 33, 33, 33, 90,
- 33, 92, 93, 33, 33, 94, 33, 33, 33, 33, 33, 33, 33, 95, 33, 33,
+ 78, 79, 80, 81, 82, 33, 83, 83, 33, 84, 33, 85, 86, 33, 33, 33,
+ 83, 87, 33, 88, 33, 89, 90, 33, 91, 92, 33, 93, 94, 33, 33, 92,
+ 33, 95, 96, 33, 33, 97, 33, 33, 33, 33, 33, 33, 33, 98, 33, 33,
/* block 5 */
- 96, 33, 33, 96, 33, 33, 33, 33, 96, 97, 98, 98, 99, 33, 33, 33,
- 33, 33,100, 33, 20, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+ 99, 33, 33, 99, 33, 33, 33,100, 99,101,102,102,103, 33, 33, 33,
+ 33, 33,104, 33, 20, 33, 33, 33, 33, 33, 33, 33, 33, 33,105, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
-101,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,
-102,102, 14, 14, 14, 14,102,102,102,102,102,102,102,102,102,102,
-102,102, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-101,101,101,101,101, 14, 14, 14, 14, 14,103,103,102, 14,102, 14,
+106,106,106,106,106,106,106,106,106,107,107,107,107,107,107,107,
+107,107, 14, 14, 14, 14,107,107,107,107,107,107,107,107,107,107,
+107,107, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+106,106,106,106,106, 14, 14, 14, 14, 14,108,108,107, 14,107, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
/* block 6 */
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,105,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-106,107,106,107,102,108,106,107,109,109,110,111,111,111, 4,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,110,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+111,112,111,112,107,113,111,112,114,114,115,116,116,116, 4,117,
/* block 7 */
-109,109,109,109,108, 14,112, 4,113,113,113,109,114,109,115,115,
-116,117,118,117,117,119,117,117,120,121,122,117,123,117,117,117,
-124,125,109,126,117,117,127,117,117,128,117,117,129,130,130,130,
-116,131,132,131,131,133,131,131,134,135,136,131,137,131,131,131,
-138,139,140,141,131,131,142,131,131,143,131,131,144,145,145,146,
-147,148,149,149,149,150,151,152,106,107,106,107,106,107,106,107,
-106,107,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-155,156,157,116,158,159,160,106,107,161,106,107,116,162,162,162,
+114,114,114,114,113, 14,118, 4,119,119,119,114,120,114,121,121,
+122,123,124,123,123,125,123,123,126,127,128,123,129,123,123,123,
+130,131,114,132,123,123,133,123,123,134,123,123,135,136,136,136,
+122,137,138,137,137,139,137,137,140,141,142,137,143,137,137,137,
+144,145,146,147,137,137,148,137,137,149,137,137,150,151,151,152,
+153,154,155,155,155,156,157,158,111,112,111,112,111,112,111,112,
+111,112,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+161,162,163,164,165,166,167,111,112,168,111,112,122,169,169,169,
/* block 8 */
-163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
-164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
-164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
-165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
-165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
-166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
+170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+172,172,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,173,173,173,173,173,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
/* block 9 */
-167,168,169,170,170,104,104,170,171,171,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-172,167,168,167,168,167,168,167,168,167,168,167,168,167,168,173,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
+174,175,176,177,177,109,109,177,178,178,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+179,174,175,174,175,174,175,174,175,174,175,174,175,174,175,180,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
/* block 10 */
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,109,109,109,109,109,109,109,109,
-109,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
-174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
-174,174,174,174,174,174,174,109,109,175,176,176,176,176,176,176,
-109,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
-177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
-
-/* block 11 */
-177,177,177,177,177,177,177,178,109, 4,179,109,109,109,109,180,
-109,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+114,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
-181,181,181,181,181,181,181,181,181,181,181,181,181,181,182,181,
-183,181,181,183,181,181,183,181,109,109,109,109,109,109,109,109,
+181,181,181,181,181,181,181,114,114,182,183,183,183,183,183,183,
+114,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
-184,184,184,184,184,184,184,184,184,184,184,109,109,109,109,109,
-184,184,184,183,183,109,109,109,109,109,109,109,109,109,109,109,
+
+/* block 11 */
+184,184,184,184,184,184,184,185,114, 4,186,114,114,187,187,188,
+114,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,189,
+191,189,189,191,189,189,191,189,114,114,114,114,114,114,114,114,
+192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
+192,192,192,192,192,192,192,192,192,192,192,114,114,114,114,114,
+192,192,192,191,191,114,114,114,114,114,114,114,114,114,114,114,
/* block 12 */
-185,185,185,185,185,109,186,186,186,187,187,188, 4,187,189,189,
-190,190,190,190,190,190,190,190,190,190,190, 4,185,109,187, 4,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-102,191,191,191,191,191,191,191,191,191,191,104,104,104,104,104,
-104,104,104,104,104,104,190,190,190,190,190,190,190,190,190,190,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,187,187,187,187,191,191,
-104,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+193,193,193,193,193, 22,194,194,194,195,195,196, 4,195,197,197,
+198,198,198,198,198,198,198,198,198,198,198, 4, 22,114,195, 4,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+107,199,199,199,199,199,199,199,199,199,199,109,109,109,109,109,
+109,109,109,109,109,109,198,198,198,198,198,198,198,198,198,198,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,195,195,195,195,199,199,
+109,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 13 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,187,191,190,190,190,190,190,190,190, 22,189,190,
-190,190,190,190,190,192,192,190,190,189,190,190,190,190,191,191,
-193,193,193,193,193,193,193,193,193,193,191,191,191,189,189,191,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,195,199,198,198,198,198,198,198,198, 22,197,198,
+198,198,198,198,198,200,200,198,198,197,198,198,198,198,199,199,
+201,201,201,201,201,201,201,201,201,201,199,199,199,197,197,199,
/* block 14 */
-194,194,194,194,194,194,194,194,194,194,194,194,194,194,109,195,
-196,197,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
-196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,
-197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,
-197,197,197,197,197,197,197,197,197,197,197,109,109,196,196,196,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+202,202,202,202,202,202,202,202,202,202,202,202,202,202,114,203,
+204,205,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,
+205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,
+205,205,205,205,205,205,205,205,205,205,205,114,114,204,204,204,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 15 */
-198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
-198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
-198,198,198,198,198,198,199,199,199,199,199,199,199,199,199,199,
-199,198,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-200,200,200,200,200,200,200,200,200,200,201,201,201,201,201,201,
-201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,
-201,201,201,201,201,201,201,201,201,201,201,202,202,202,202,202,
-202,202,202,202,203,203,204,205,205,205,203,109,109,109,109,109,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
+206,206,206,206,206,206,207,207,207,207,207,207,207,207,207,207,
+207,206,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+208,208,208,208,208,208,208,208,208,208,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,
+209,209,209,209,209,209,209,209,209,209,209,210,210,210,210,210,
+210,210,210,210,211,211,212,213,213,213,211,114,114,114,114,114,
/* block 16 */
-206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,
-206,206,206,206,206,206,207,207,207,207,208,207,207,207,207,207,
-207,207,207,207,208,207,207,207,208,207,207,207,207,207,109,109,
-209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,109,
-210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,
-210,210,210,210,210,210,210,210,210,211,211,211,109,109,212,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,
+214,214,214,214,214,214,215,215,215,215,216,215,215,215,215,215,
+215,215,215,215,216,215,215,215,216,215,215,215,215,215,114,114,
+217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,114,
+218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,
+218,218,218,218,218,218,218,218,218,219,219,219,114,114,220,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 17 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-191,109,191,191,191,191,191,191,191,191,191,191,191,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,190,190,190,190,190,190,190,190,190,190,190,190,
-190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,198,198,198,198,198,198,198,198,198,198,198,198,
+198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,
/* block 18 */
-213,213,213,214,215,215,215,215,215,215,215,215,215,215,215,215,
-215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
-215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,
-215,215,215,215,215,215,215,215,215,215,213,214,213,215,214,214,
-214,213,213,213,213,213,213,213,213,214,214,214,214,213,214,214,
-215,104,104,213,213,213,213,213,215,215,215,215,215,215,215,215,
-215,215,213,213, 4, 4,216,216,216,216,216,216,216,216,216,216,
-217,218,215,215,215,215,215,215,109,215,215,215,215,215,215,215,
+221,221,221,222,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
+223,223,223,223,223,223,223,223,223,223,221,222,221,223,222,222,
+222,221,221,221,221,221,221,221,221,222,222,222,222,221,222,222,
+223,109,109,221,221,221,221,221,223,223,223,223,223,223,223,223,
+223,223,221,221, 4, 4,224,224,224,224,224,224,224,224,224,224,
+225,226,223,223,223,223,223,223,223,223,223,223,223,223,223,223,
/* block 19 */
-109,219,220,220,109,221,221,221,221,221,221,221,221,109,109,221,
-221,109,109,221,221,221,221,221,221,221,221,221,221,221,221,221,
-221,221,221,221,221,221,221,221,221,109,221,221,221,221,221,221,
-221,109,221,109,109,109,221,221,221,221,109,109,219,221,222,220,
-220,219,219,219,219,109,109,220,220,109,109,220,220,219,221,109,
-109,109,109,109,109,109,109,222,109,109,109,109,221,221,109,221,
-221,221,219,219,109,109,223,223,223,223,223,223,223,223,223,223,
-221,221,224,224,225,225,225,225,225,225,226,224,109,109,109,109,
+227,228,229,229,114,227,227,227,227,227,227,227,227,114,114,227,
+227,114,114,227,227,227,227,227,227,227,227,227,227,227,227,227,
+227,227,227,227,227,227,227,227,227,114,227,227,227,227,227,227,
+227,114,227,114,114,114,227,227,227,227,114,114,228,227,230,229,
+229,228,228,228,228,114,114,229,229,114,114,229,229,228,227,114,
+114,114,114,114,114,114,114,230,114,114,114,114,227,227,114,227,
+227,227,228,228,114,114,231,231,231,231,231,231,231,231,231,231,
+227,227,232,232,233,233,233,233,233,233,234,232,114,114,114,114,
/* block 20 */
-109,227,227,228,109,229,229,229,229,229,229,109,109,109,109,229,
-229,109,109,229,229,229,229,229,229,229,229,229,229,229,229,229,
-229,229,229,229,229,229,229,229,229,109,229,229,229,229,229,229,
-229,109,229,229,109,229,229,109,229,229,109,109,227,109,228,228,
-228,227,227,109,109,109,109,227,227,109,109,227,227,227,109,109,
-109,227,109,109,109,109,109,109,109,229,229,229,229,109,229,109,
-109,109,109,109,109,109,230,230,230,230,230,230,230,230,230,230,
-227,227,229,229,229,227,109,109,109,109,109,109,109,109,109,109,
+114,235,235,236,114,237,237,237,237,237,237,114,114,114,114,237,
+237,114,114,237,237,237,237,237,237,237,237,237,237,237,237,237,
+237,237,237,237,237,237,237,237,237,114,237,237,237,237,237,237,
+237,114,237,237,114,237,237,114,237,237,114,114,235,114,236,236,
+236,235,235,114,114,114,114,235,235,114,114,235,235,235,114,114,
+114,235,114,114,114,114,114,114,114,237,237,237,237,114,237,114,
+114,114,114,114,114,114,238,238,238,238,238,238,238,238,238,238,
+235,235,237,237,237,235,114,114,114,114,114,114,114,114,114,114,
/* block 21 */
-109,231,231,232,109,233,233,233,233,233,233,233,233,233,109,233,
-233,233,109,233,233,233,233,233,233,233,233,233,233,233,233,233,
-233,233,233,233,233,233,233,233,233,109,233,233,233,233,233,233,
-233,109,233,233,109,233,233,233,233,233,109,109,231,233,232,232,
-232,231,231,231,231,231,109,231,231,232,109,232,232,231,109,109,
-233,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-233,233,231,231,109,109,234,234,234,234,234,234,234,234,234,234,
-235,236,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,239,239,240,114,241,241,241,241,241,241,241,241,241,114,241,
+241,241,114,241,241,241,241,241,241,241,241,241,241,241,241,241,
+241,241,241,241,241,241,241,241,241,114,241,241,241,241,241,241,
+241,114,241,241,114,241,241,241,241,241,114,114,239,241,240,240,
+240,239,239,239,239,239,114,239,239,240,114,240,240,239,114,114,
+241,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+241,241,239,239,114,114,242,242,242,242,242,242,242,242,242,242,
+243,244,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 22 */
-109,237,238,238,109,239,239,239,239,239,239,239,239,109,109,239,
-239,109,109,239,239,239,239,239,239,239,239,239,239,239,239,239,
-239,239,239,239,239,239,239,239,239,109,239,239,239,239,239,239,
-239,109,239,239,109,239,239,239,239,239,109,109,237,239,240,237,
-238,237,237,237,237,109,109,238,238,109,109,238,238,237,109,109,
-109,109,109,109,109,109,237,240,109,109,109,109,239,239,109,239,
-239,239,237,237,109,109,241,241,241,241,241,241,241,241,241,241,
-242,239,243,243,243,243,243,243,109,109,109,109,109,109,109,109,
+114,245,246,246,114,247,247,247,247,247,247,247,247,114,114,247,
+247,114,114,247,247,247,247,247,247,247,247,247,247,247,247,247,
+247,247,247,247,247,247,247,247,247,114,247,247,247,247,247,247,
+247,114,247,247,114,247,247,247,247,247,114,114,245,247,248,245,
+246,245,245,245,245,114,114,246,246,114,114,246,246,245,114,114,
+114,114,114,114,114,114,245,248,114,114,114,114,247,247,114,247,
+247,247,245,245,114,114,249,249,249,249,249,249,249,249,249,249,
+250,247,251,251,251,251,251,251,114,114,114,114,114,114,114,114,
/* block 23 */
-109,109,244,245,109,245,245,245,245,245,245,109,109,109,245,245,
-245,109,245,245,245,245,109,109,109,245,245,109,245,109,245,245,
-109,109,109,245,245,109,109,109,245,245,245,109,109,109,245,245,
-245,245,245,245,245,245,245,245,245,245,109,109,109,109,246,247,
-244,247,247,109,109,109,247,247,247,109,247,247,247,244,109,109,
-245,109,109,109,109,109,109,246,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,248,248,248,248,248,248,248,248,248,248,
-249,249,249,250,250,250,250,250,250,251,250,109,109,109,109,109,
+114,114,252,253,114,253,253,253,253,253,253,114,114,114,253,253,
+253,114,253,253,253,253,114,114,114,253,253,114,253,114,253,253,
+114,114,114,253,253,114,114,114,253,253,253,114,114,114,253,253,
+253,253,253,253,253,253,253,253,253,253,114,114,114,114,254,255,
+252,255,255,114,114,114,255,255,255,114,255,255,255,252,114,114,
+253,114,114,114,114,114,114,254,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,256,256,256,256,256,256,256,256,256,256,
+257,257,257,258,258,258,258,258,258,259,258,114,114,114,114,114,
/* block 24 */
-109,252,252,252,109,253,253,253,253,253,253,253,253,109,253,253,
-253,109,253,253,253,253,253,253,253,253,253,253,253,253,253,253,
-253,253,253,253,253,253,253,253,253,109,253,253,253,253,253,253,
-253,253,253,253,109,253,253,253,253,253,109,109,109,253,254,254,
-254,252,252,252,252,109,254,254,254,109,254,254,254,254,109,109,
-109,109,109,109,109,254,254,109,253,253,109,109,109,109,109,109,
-253,253,254,254,109,109,255,255,255,255,255,255,255,255,255,255,
-109,109,109,109,109,109,109,109,256,256,256,256,256,256,256,257,
+260,261,261,261,114,262,262,262,262,262,262,262,262,114,262,262,
+262,114,262,262,262,262,262,262,262,262,262,262,262,262,262,262,
+262,262,262,262,262,262,262,262,262,114,262,262,262,262,262,262,
+262,262,262,262,262,262,262,262,262,262,114,114,114,262,260,260,
+260,261,261,261,261,114,260,260,260,114,260,260,260,260,114,114,
+114,114,114,114,114,260,260,114,262,262,114,114,114,114,114,114,
+262,262,260,260,114,114,263,263,263,263,263,263,263,263,263,263,
+114,114,114,114,114,114,114,114,264,264,264,264,264,264,264,265,
/* block 25 */
-109,109,258,258,109,259,259,259,259,259,259,259,259,109,259,259,
-259,109,259,259,259,259,259,259,259,259,259,259,259,259,259,259,
-259,259,259,259,259,259,259,259,259,109,259,259,259,259,259,259,
-259,259,259,259,109,259,259,259,259,259,109,109,260,259,258,260,
-258,258,261,258,258,109,260,258,258,109,258,258,260,260,109,109,
-109,109,109,109,109,261,261,109,109,109,109,109,109,109,259,109,
-259,259,260,260,109,109,262,262,262,262,262,262,262,262,262,262,
-109,259,259,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,266,267,267,114,268,268,268,268,268,268,268,268,114,268,268,
+268,114,268,268,268,268,268,268,268,268,268,268,268,268,268,268,
+268,268,268,268,268,268,268,268,268,114,268,268,268,268,268,268,
+268,268,268,268,114,268,268,268,268,268,114,114,266,268,267,266,
+267,267,269,267,267,114,266,267,267,114,267,267,266,266,114,114,
+114,114,114,114,114,269,269,114,114,114,114,114,114,114,268,114,
+268,268,266,266,114,114,270,270,270,270,270,270,270,270,270,270,
+114,268,268,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 26 */
-109,109,263,263,109,264,264,264,264,264,264,264,264,109,264,264,
-264,109,264,264,264,264,264,264,264,264,264,264,264,264,264,264,
-264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,
-264,264,264,264,264,264,264,264,264,264,264,109,109,264,265,263,
-263,266,266,266,266,109,263,263,263,109,263,263,263,266,264,109,
-109,109,109,109,109,109,109,265,109,109,109,109,109,109,109,109,
-264,264,266,266,109,109,267,267,267,267,267,267,267,267,267,267,
-268,268,268,268,268,268,109,109,109,269,264,264,264,264,264,264,
+114,271,272,272,114,273,273,273,273,273,273,273,273,114,273,273,
+273,114,273,273,273,273,273,273,273,273,273,273,273,273,273,273,
+273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,
+273,273,273,273,273,273,273,273,273,273,273,114,114,273,274,272,
+272,271,271,271,271,114,272,272,272,114,272,272,272,271,273,114,
+114,114,114,114,114,114,114,274,114,114,114,114,114,114,114,114,
+273,273,271,271,114,114,275,275,275,275,275,275,275,275,275,275,
+276,276,276,276,276,276,114,114,114,277,273,273,273,273,273,273,
/* block 27 */
-109,109,270,270,109,271,271,271,271,271,271,271,271,271,271,271,
-271,271,271,271,271,271,271,109,109,109,271,271,271,271,271,271,
-271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,
-271,271,109,271,271,271,271,271,271,271,271,271,109,271,109,109,
-271,271,271,271,271,271,271,109,109,109,272,109,109,109,109,273,
-270,270,272,272,272,109,272,109,270,270,270,270,270,270,270,273,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,270,270,274,109,109,109,109,109,109,109,109,109,109,109,
+114,114,278,278,114,279,279,279,279,279,279,279,279,279,279,279,
+279,279,279,279,279,279,279,114,114,114,279,279,279,279,279,279,
+279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,
+279,279,114,279,279,279,279,279,279,279,279,279,114,279,114,114,
+279,279,279,279,279,279,279,114,114,114,280,114,114,114,114,281,
+278,278,280,280,280,114,280,114,278,278,278,278,278,278,278,281,
+114,114,114,114,114,114,282,282,282,282,282,282,282,282,282,282,
+114,114,278,278,283,114,114,114,114,114,114,114,114,114,114,114,
/* block 28 */
-109,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,
-275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,
-275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,
-275,276,275,277,276,276,276,276,276,276,276,109,109,109,109, 5,
-275,275,275,275,275,275,278,276,276,276,276,276,276,276,276,279,
-280,280,280,280,280,280,280,280,280,280,279,279,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,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,285,284,286,285,285,285,285,285,285,285,114,114,114,114, 5,
+284,284,284,284,284,284,287,285,285,285,285,285,285,285,285,288,
+289,289,289,289,289,289,289,289,289,289,288,288,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 29 */
-109,281,281,109,281,109,109,281,281,109,281,109,109,281,109,109,
-109,109,109,109,281,281,281,281,109,281,281,281,281,281,281,281,
-109,281,281,281,109,281,109,281,109,109,281,281,109,281,281,281,
-281,282,281,283,282,282,282,282,282,282,109,282,282,281,109,109,
-281,281,281,281,281,109,284,109,282,282,282,282,282,282,109,109,
-285,285,285,285,285,285,285,285,285,285,109,109,281,281,281,281,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,290,290,114,290,114,114,290,290,114,290,114,114,290,114,114,
+114,114,114,114,290,290,290,290,114,290,290,290,290,290,290,290,
+114,290,290,290,114,290,114,290,114,114,290,290,114,290,290,290,
+290,291,290,292,291,291,291,291,291,291,114,291,291,290,114,114,
+290,290,290,290,290,114,293,114,291,291,291,291,291,291,114,114,
+294,294,294,294,294,294,294,294,294,294,114,114,290,290,290,290,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 30 */
-286,287,287,287,288,288,288,288,288,288,288,288,288,288,288,288,
-288,288,288,287,288,287,287,287,289,289,287,287,287,287,287,287,
-290,290,290,290,290,290,290,290,290,290,291,291,291,291,291,291,
-291,291,291,291,287,289,287,289,287,289,292,293,292,293,294,294,
-286,286,286,286,286,286,286,286,109,286,286,286,286,286,286,286,
-286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,
-286,286,286,286,286,286,286,286,286,286,286,286,286,109,109,109,
-109,289,289,289,289,289,289,289,289,289,289,289,289,289,289,294,
+295,296,296,296,297,297,297,297,297,297,297,297,297,297,297,297,
+297,297,297,296,297,296,296,296,298,298,296,296,296,296,296,296,
+299,299,299,299,299,299,299,299,299,299,300,300,300,300,300,300,
+300,300,300,300,296,298,296,298,296,298,301,302,301,302,303,303,
+295,295,295,295,295,295,295,295,114,295,295,295,295,295,295,295,
+295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,
+295,295,295,295,295,295,295,295,295,295,295,295,295,114,114,114,
+114,298,298,298,298,298,298,298,298,298,298,298,298,298,298,303,
/* block 31 */
-289,289,289,289,289,288,289,289,286,286,286,286,286,289,289,289,
-289,289,289,289,289,289,289,289,109,289,289,289,289,289,289,289,
-289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,
-289,289,289,289,289,289,289,289,289,289,289,289,289,109,287,287,
-287,287,287,287,287,287,289,287,287,287,287,287,287,109,287,287,
-288,288,288,288,288, 19, 19, 19, 19,288,288,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+298,298,298,298,298,297,298,298,295,295,295,295,295,298,298,298,
+298,298,298,298,298,298,298,298,114,298,298,298,298,298,298,298,
+298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,
+298,298,298,298,298,298,298,298,298,298,298,298,298,114,296,296,
+296,296,296,296,296,296,298,296,296,296,296,296,296,114,296,296,
+297,297,297,297,297, 19, 19, 19, 19,297,297,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 32 */
-295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,
-295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,
-295,295,295,295,295,295,295,295,295,295,295,296,296,297,297,297,
-297,298,297,297,297,297,297,297,296,297,297,298,298,297,297,295,
-299,299,299,299,299,299,299,299,299,299,300,300,300,300,300,300,
-295,295,295,295,295,295,298,298,297,297,295,295,295,295,297,297,
-297,295,296,296,296,295,295,296,296,296,296,296,296,296,295,295,
-295,297,297,297,297,295,295,295,295,295,295,295,295,295,295,295,
+304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,
+304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,
+304,304,304,304,304,304,304,304,304,304,304,305,305,306,306,306,
+306,307,306,306,306,306,306,306,305,306,306,307,307,306,306,304,
+308,308,308,308,308,308,308,308,308,308,309,309,309,309,309,309,
+304,304,304,304,304,304,307,307,306,306,304,304,304,304,306,306,
+306,304,305,305,305,304,304,305,305,305,305,305,305,305,304,304,
+304,306,306,306,306,304,304,304,304,304,304,304,304,304,304,304,
/* block 33 */
-295,295,297,296,298,297,297,296,296,296,296,296,296,297,295,296,
-299,299,299,299,299,299,299,299,299,299,296,296,296,297,301,301,
-302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,
-302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,
-302,302,302,302,302,302,109,302,109,109,109,109,109,302,109,109,
-303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,
-303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,
-303,303,303,303,303,303,303,303,303,303,303, 4,304,303,303,303,
+304,304,306,305,307,306,306,305,305,305,305,305,305,306,304,305,
+308,308,308,308,308,308,308,308,308,308,305,305,305,306,310,310,
+311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,
+311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,
+311,311,311,311,311,311,114,311,114,114,114,114,114,311,114,114,
+312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,
+312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,
+312,312,312,312,312,312,312,312,312,312,312, 4,313,312,312,312,
/* block 34 */
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,
-306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
/* block 35 */
-306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,
-306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,
-306,306,306,306,306,306,306,306,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
+315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+315,315,315,315,315,315,315,315,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
/* block 36 */
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,109,308,308,308,308,109,109,
-308,308,308,308,308,308,308,109,308,109,308,308,308,308,109,109,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,114,317,317,317,317,114,114,
+317,317,317,317,317,317,317,114,317,114,317,317,317,317,114,114,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
/* block 37 */
-308,308,308,308,308,308,308,308,308,109,308,308,308,308,109,109,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,109,308,308,308,308,109,109,308,308,308,308,308,308,308,109,
-308,109,308,308,308,308,109,109,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
+317,317,317,317,317,317,317,317,317,114,317,317,317,317,114,114,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,114,317,317,317,317,114,114,317,317,317,317,317,317,317,114,
+317,114,317,317,317,317,114,114,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
/* block 38 */
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,109,308,308,308,308,109,109,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,308,308,308,308,109,109,309,309,309,
-310,310,310,310,310,310,310,310,310,311,311,311,311,311,311,311,
-311,311,311,311,311,311,311,311,311,311,311,311,311,109,109,109,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,114,317,317,317,317,114,114,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,317,317,317,317,114,114,318,318,318,
+319,319,319,319,319,319,319,319,319,320,320,320,320,320,320,320,
+320,320,320,320,320,320,320,320,320,320,320,320,320,114,114,114,
/* block 39 */
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-312,312,312,312,312,312,312,312,312,312,109,109,109,109,109,109,
-313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,
-313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,
-313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,
-313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,
-313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,
-313,313,313,313,313,109,109,109,109,109,109,109,109,109,109,109,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+321,321,321,321,321,321,321,321,321,321,114,114,114,114,114,114,
+322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,
+322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,
+322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,
+322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,
+322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,322,
+322,322,322,322,322,114,114,114,114,114,114,114,114,114,114,114,
/* block 40 */
-314,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+323,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
/* block 41 */
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
/* block 42 */
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,316,316,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,325,325,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
/* block 43 */
-317,318,318,318,318,318,318,318,318,318,318,318,318,318,318,318,
-318,318,318,318,318,318,318,318,318,318,318,319,320,109,109,109,
-321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,
-321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,
-321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,
-321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,
-321,321,321,321,321,321,321,321,321,321,321, 4, 4, 4,322,322,
-322,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+326,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,
+327,327,327,327,327,327,327,327,327,327,327,328,329,114,114,114,
+330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,
+330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,
+330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,
+330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,
+330,330,330,330,330,330,330,330,330,330,330, 4, 4, 4,331,331,
+331,330,330,330,330,330,330,330,330,114,114,114,114,114,114,114,
/* block 44 */
-323,323,323,323,323,323,323,323,323,323,323,323,323,109,323,323,
-323,323,324,324,324,109,109,109,109,109,109,109,109,109,109,109,
-325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,
-325,325,326,326,326, 4, 4,109,109,109,109,109,109,109,109,109,
-327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,
-327,327,328,328,109,109,109,109,109,109,109,109,109,109,109,109,
-329,329,329,329,329,329,329,329,329,329,329,329,329,109,329,329,
-329,109,330,330,109,109,109,109,109,109,109,109,109,109,109,109,
+332,332,332,332,332,332,332,332,332,332,332,332,332,114,332,332,
+332,332,333,333,333,114,114,114,114,114,114,114,114,114,114,114,
+334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,
+334,334,335,335,335, 4, 4,114,114,114,114,114,114,114,114,114,
+336,336,336,336,336,336,336,336,336,336,336,336,336,336,336,336,
+336,336,337,337,114,114,114,114,114,114,114,114,114,114,114,114,
+338,338,338,338,338,338,338,338,338,338,338,338,338,114,338,338,
+338,114,339,339,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 45 */
-331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,
-331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,
-331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,
-331,331,331,331,332,332,333,332,332,332,332,332,332,332,333,333,
-333,333,333,333,333,333,332,333,333,332,332,332,332,332,332,332,
-332,332,332,332,334,334,334,335,334,334,334,336,331,332,109,109,
-337,337,337,337,337,337,337,337,337,337,109,109,109,109,109,109,
-338,338,338,338,338,338,338,338,338,338,109,109,109,109,109,109,
+340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,
+340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,
+340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,
+340,340,340,340,341,341,342,341,341,341,341,341,341,341,342,342,
+342,342,342,342,342,342,341,342,342,341,341,341,341,341,341,341,
+341,341,341,341,343,343,343,344,343,343,343,345,340,341,114,114,
+346,346,346,346,346,346,346,346,346,346,114,114,114,114,114,114,
+347,347,347,347,347,347,347,347,347,347,114,114,114,114,114,114,
/* block 46 */
-339,339, 4, 4,339, 4,340,339,339,339,339,341,341,341,342,109,
-343,343,343,343,343,343,343,343,343,343,109,109,109,109,109,109,
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,345,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,109,109,109,109,109,109,109,109,
+348,348, 4, 4,348, 4,349,348,348,348,348,350,350,350,351,114,
+352,352,352,352,352,352,352,352,352,352,114,114,114,114,114,114,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,354,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,114,114,114,114,114,114,114,114,
/* block 47 */
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,
-344,344,344,344,344,344,344,344,344,341,344,109,109,109,109,109,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
-315,315,315,315,315,315,109,109,109,109,109,109,109,109,109,109,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
+353,353,353,353,353,353,353,353,353,350,353,114,114,114,114,114,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,324,
+324,324,324,324,324,324,114,114,114,114,114,114,114,114,114,114,
/* block 48 */
-346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,
-346,346,346,346,346,346,346,346,346,346,346,346,346,109,109,109,
-347,347,347,348,348,348,348,347,347,348,348,348,109,109,109,109,
-348,348,347,348,348,348,348,348,348,347,347,347,109,109,109,109,
-349,109,109,109,350,350,351,351,351,351,351,351,351,351,351,351,
-352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,
-352,352,352,352,352,352,352,352,352,352,352,352,352,352,109,109,
-352,352,352,352,352,109,109,109,109,109,109,109,109,109,109,109,
+355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,
+355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,114,
+356,356,356,357,357,357,357,356,356,357,357,357,114,114,114,114,
+357,357,356,357,357,357,357,357,357,356,356,356,114,114,114,114,
+358,114,114,114,359,359,360,360,360,360,360,360,360,360,360,360,
+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,114,114,
+361,361,361,361,361,114,114,114,114,114,114,114,114,114,114,114,
/* block 49 */
-353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
-353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,
-353,353,353,353,353,353,353,353,353,353,353,353,109,109,109,109,
-354,354,354,354,354,355,355,355,354,354,355,354,354,354,354,354,
-354,353,353,353,353,353,353,353,354,354,109,109,109,109,109,109,
-356,356,356,356,356,356,356,356,356,356,357,109,109,109,358,358,
-359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,
-359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,
+362,362,362,362,362,362,362,362,362,362,362,362,362,362,362,362,
+362,362,362,362,362,362,362,362,362,362,362,362,362,362,362,362,
+362,362,362,362,362,362,362,362,362,362,362,362,114,114,114,114,
+363,363,363,363,363,364,364,364,363,363,364,363,363,363,363,363,
+363,362,362,362,362,362,362,362,363,363,114,114,114,114,114,114,
+365,365,365,365,365,365,365,365,365,365,366,114,114,114,367,367,
+368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,
+368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,
/* block 50 */
-360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,
-360,360,360,360,360,360,360,361,361,362,362,361,109,109,363,363,
-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,365,366,365,366,366,366,366,366,366,366,109,
-366,367,366,367,367,366,366,366,366,366,366,366,366,365,365,365,
-365,365,365,366,366,366,366,366,366,366,366,366,366,109,109,366,
+369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,
+369,369,369,369,369,369,369,370,370,371,371,370,114,114,372,372,
+373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,
+373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,
+373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,
+373,373,373,373,373,374,375,374,375,375,375,375,375,375,375,114,
+375,376,375,376,376,375,375,375,375,375,375,375,375,374,374,374,
+374,374,374,375,375,375,375,375,375,375,375,375,375,114,114,375,
/* block 51 */
-368,368,368,368,368,368,368,368,368,368,109,109,109,109,109,109,
-368,368,368,368,368,368,368,368,368,368,109,109,109,109,109,109,
-369,369,369,369,369,369,369,370,369,369,369,369,369,369,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+377,377,377,377,377,377,377,377,377,377,114,114,114,114,114,114,
+377,377,377,377,377,377,377,377,377,377,114,114,114,114,114,114,
+378,378,378,378,378,378,378,379,378,378,378,378,378,378,114,114,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,380,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 52 */
-371,371,371,371,372,373,373,373,373,373,373,373,373,373,373,373,
-373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,
-373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,373,
-373,373,373,373,371,372,371,371,371,371,371,372,371,372,372,372,
-372,372,371,372,372,373,373,373,373,373,373,373,109,109,109,109,
-374,374,374,374,374,374,374,374,374,374,375,375,375,375,375,375,
-375,376,376,376,376,376,376,376,376,376,376,371,371,371,371,371,
-371,371,371,371,376,376,376,376,376,376,376,376,376,109,109,109,
+381,381,381,381,382,383,383,383,383,383,383,383,383,383,383,383,
+383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,
+383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,383,
+383,383,383,383,381,382,381,381,381,381,381,382,381,382,382,382,
+382,382,381,382,382,383,383,383,383,383,383,383,114,114,114,114,
+384,384,384,384,384,384,384,384,384,384,385,385,385,385,385,385,
+385,386,386,386,386,386,386,386,386,386,386,381,381,381,381,381,
+381,381,381,381,386,386,386,386,386,386,386,386,386,114,114,114,
/* block 53 */
-377,377,378,379,379,379,379,379,379,379,379,379,379,379,379,379,
-379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,379,
-379,378,377,377,377,377,378,378,377,377,378,377,378,378,379,379,
-380,380,380,380,380,380,380,380,380,380,379,379,379,379,379,379,
-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,383,382,382,383,383,383,382,383,382,
-382,382,383,383,109,109,109,109,109,109,109,109,384,384,384,384,
+387,387,388,389,389,389,389,389,389,389,389,389,389,389,389,389,
+389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,389,
+389,388,387,387,387,387,388,388,387,387,388,387,387,387,389,389,
+390,390,390,390,390,390,390,390,390,390,389,389,389,389,389,389,
+391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,
+391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,
+391,391,391,391,391,391,392,393,392,392,393,393,393,392,393,392,
+392,392,393,393,114,114,114,114,114,114,114,114,394,394,394,394,
/* block 54 */
-385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,
-385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,
-385,385,385,385,386,386,386,386,386,386,386,386,387,387,387,387,
-387,387,387,387,386,386,387,387,109,109,109,388,388,388,388,388,
-389,389,389,389,389,389,389,389,389,389,109,109,109,385,385,385,
-390,390,390,390,390,390,390,390,390,390,391,391,391,391,391,391,
-391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,
-391,391,391,391,391,391,391,391,392,392,392,392,392,392,393,393,
+395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,
+395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,
+395,395,395,395,396,396,396,396,396,396,396,396,397,397,397,397,
+397,397,397,397,396,396,397,397,114,114,114,398,398,398,398,398,
+399,399,399,399,399,399,399,399,399,399,114,114,114,395,395,395,
+400,400,400,400,400,400,400,400,400,400,401,401,401,401,401,401,
+401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,
+401,401,401,401,401,401,401,401,402,402,402,402,402,402,403,403,
/* block 55 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-394,394,394,394,394,394,394,394,109,109,109,109,109,109,109,109,
-104,104,104, 4,104,104,104,104,104,104,104,104,104,104,104,104,
-104,395,104,104,104,104,104,104,104,396,396,396,396,104,396,396,
-396,396,395,395,104,396,396,109,109,109,109,109,109,109,109,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+404,404,404,404,404,404,404,404,114,114,114,114,114,114,114,114,
+109,109,109, 4,109,109,109,109,109,109,109,109,109,109,109,109,
+109,405,109,109,109,109,109,109,109,406,406,406,406,109,406,406,
+406,406,405,405,109,406,406,114,109,109,114,114,114,114,114,114,
/* block 56 */
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33,116,116,116,116,116,397,101,101,101,101,
-101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
-101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
-101,101,101,101,101,101,101,101,101,101,101,101,101,110,110,110,
-110,110,101,101,101,101,110,110,110,110,110, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33,398,399, 33, 33, 33,400, 33, 33,
+ 33, 33, 33, 33, 33, 33,122,122,122,122,122,407,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,115,115,115,
+115,115,106,106,106,106,115,115,115,115,115, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,408,409, 33, 33, 33,410, 33, 33,
/* block 57 */
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,101,101,101,101,101,
-101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,
-101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,110,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,104,104,104,104,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,
+106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,115,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,114,114,114,114,114,114,109,109,109,109,
/* block 58 */
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
@@ -1844,12 +1937,12 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
-401,402, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+411,412, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
/* block 59 */
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
- 30, 31, 30, 31, 30, 31, 33, 33, 33, 33, 33,403, 33, 33,404, 33,
+ 30, 31, 30, 31, 30, 31, 33, 33, 33, 33, 33,413, 33, 33,414, 33,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
@@ -1858,57 +1951,57 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
/* block 60 */
-405,405,405,405,405,405,405,405,406,406,406,406,406,406,406,406,
-405,405,405,405,405,405,109,109,406,406,406,406,406,406,109,109,
-405,405,405,405,405,405,405,405,406,406,406,406,406,406,406,406,
-405,405,405,405,405,405,405,405,406,406,406,406,406,406,406,406,
-405,405,405,405,405,405,109,109,406,406,406,406,406,406,109,109,
-116,405,116,405,116,405,116,405,109,406,109,406,109,406,109,406,
-405,405,405,405,405,405,405,405,406,406,406,406,406,406,406,406,
-407,407,408,408,408,408,409,409,410,410,411,411,412,412,109,109,
+415,415,415,415,415,415,415,415,416,416,416,416,416,416,416,416,
+415,415,415,415,415,415,114,114,416,416,416,416,416,416,114,114,
+415,415,415,415,415,415,415,415,416,416,416,416,416,416,416,416,
+415,415,415,415,415,415,415,415,416,416,416,416,416,416,416,416,
+415,415,415,415,415,415,114,114,416,416,416,416,416,416,114,114,
+122,415,122,415,122,415,122,415,114,416,114,416,114,416,114,416,
+415,415,415,415,415,415,415,415,416,416,416,416,416,416,416,416,
+417,417,418,418,418,418,419,419,420,420,421,421,422,422,114,114,
/* block 61 */
-405,405,405,405,405,405,405,405,413,413,413,413,413,413,413,413,
-405,405,405,405,405,405,405,405,413,413,413,413,413,413,413,413,
-405,405,405,405,405,405,405,405,413,413,413,413,413,413,413,413,
-405,405,116,414,116,109,116,116,406,406,415,415,416,108,417,108,
-108,108,116,414,116,109,116,116,418,418,418,418,416,108,108,108,
-405,405,116,116,109,109,116,116,406,406,419,419,109,108,108,108,
-405,405,116,116,116,157,116,116,406,406,420,420,161,108,108,108,
-109,109,116,414,116,109,116,116,421,421,422,422,416,108,108,109,
+415,415,415,415,415,415,415,415,423,423,423,423,423,423,423,423,
+415,415,415,415,415,415,415,415,423,423,423,423,423,423,423,423,
+415,415,415,415,415,415,415,415,423,423,423,423,423,423,423,423,
+415,415,122,424,122,114,122,122,416,416,425,425,426,113,427,113,
+113,113,122,424,122,114,122,122,428,428,428,428,426,113,113,113,
+415,415,122,122,114,114,122,122,416,416,429,429,114,113,113,113,
+415,415,122,122,122,163,122,122,416,416,430,430,168,113,113,113,
+114,114,122,424,122,114,122,122,431,431,432,432,426,113,113,114,
/* block 62 */
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 22,423,423, 22, 22,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 22,433,433, 22, 22,
9, 9, 9, 9, 9, 9, 4, 4, 21, 25, 6, 21, 21, 25, 6, 21,
- 4, 4, 4, 4, 4, 4, 4, 4,424,425, 22, 22, 22, 22, 22, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4,434,435, 22, 22, 22, 22, 22, 3,
4, 4, 4, 4, 4, 4, 4, 4, 4, 21, 25, 4, 4, 4, 4, 15,
15, 4, 4, 4, 8, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 8, 4, 15, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3,
- 22, 22, 22, 22, 22,426, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 23,101,109,109, 23, 23, 23, 23, 23, 23, 8, 8, 8, 6, 7,101,
+ 22, 22, 22, 22, 22,436, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+ 23,106,114,114, 23, 23, 23, 23, 23, 23, 8, 8, 8, 6, 7,106,
/* block 63 */
- 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 8, 8, 8, 6, 7,109,
-101,101,101,101,101,101,101,101,101,101,101,101,101,109,109,109,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 8, 8, 8, 6, 7,114,
+106,106,106,106,106,106,106,106,106,106,106,106,106,114,114,114,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-104,104,104,104,104,104,104,104,104,104,104,104,104,427,427,427,
-427,104,427,427,427,104,104,104,104,104,104,104,104,104,104,104,
-104,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+109,109,109,109,109,109,109,109,109,109,109,109,109,380,380,380,
+380,109,380,380,380,109,109,109,109,109,109,109,109,109,109,109,
+109,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 64 */
- 19, 19,428, 19, 19, 19, 19,428, 19, 19,429,428,428,428,429,429,
-428,428,428,429, 19,428, 19, 19, 8,428,428,428,428,428, 19, 19,
- 19, 19, 19, 19,428, 19,430, 19,428, 19,431,432,428,428, 19,429,
-428,428,433,428,429,396,396,396,396,429, 19, 19,429,429,428,428,
- 8, 8, 8, 8, 8,428,429,429,429,429, 19, 8, 19, 19,434, 19,
+ 19, 19,437, 19, 19, 19, 19,437, 19, 19,438,437,437,437,438,438,
+437,437,437,438, 19,437, 19, 19, 8,437,437,437,437,437, 19, 19,
+ 19, 19, 19, 19,437, 19,439, 19,437, 19,440,441,437,437, 19,438,
+437,437,442,437,438,406,406,406,406,438, 19, 19,438,438,437,437,
+ 8, 8, 8, 8, 8,437,438,438,438,438, 19, 8, 19, 19,443, 19,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,
-436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,
+444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,
+445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,
/* block 65 */
-437,437,437, 30, 31,437,437,437,437, 23,109,109,109,109,109,109,
+446,446,446, 30, 31,446,446,446,446, 23,114,114,114,114,114,114,
8, 8, 8, 8, 8, 19, 19, 19, 19, 19, 8, 8, 19, 19, 19, 19,
8, 19, 19, 8, 19, 19, 8, 19, 19, 19, 19, 19, 19, 19, 8, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
@@ -1945,15 +2038,15 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 8, 8, 8, 8,
8, 8, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,
/* block 69 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
@@ -1961,10 +2054,10 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19,438,438,438,438,438,438,438,438,438,438,
-438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
-439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439,
-439,439,439,439,439,439,439,439,439,439, 23, 23, 23, 23, 23, 23,
+ 19, 19, 19, 19, 19, 19,447,447,447,447,447,447,447,447,447,447,
+447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,
+448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,
+448,448,448,448,448,448,448,448,448,448, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
/* block 71 */
@@ -1998,7 +2091,7 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
/* block 74 */
-109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
@@ -2018,14 +2111,14 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
/* block 76 */
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
-440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
+449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,449,
/* block 77 */
8, 8, 8, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6,
@@ -2042,150 +2135,150 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 19, 19, 8, 8, 8, 8, 8, 8,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 8, 8, 8, 8, 8, 19, 19, 8, 8, 8, 8, 8, 8, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19,114,114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
/* block 79 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19,114,114, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19,114, 19, 19, 19, 19, 19, 19,
+ 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 80 */
-441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,
-441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,
-441,441,441,441,441,441,441,441,441,441,441,441,441,441,441,109,
-442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,
-442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,
-442,442,442,442,442,442,442,442,442,442,442,442,442,442,442,109,
- 30, 31,443,444,445,446,447, 30, 31, 30, 31, 30, 31,448,449,450,
-451, 33, 30, 31, 33, 30, 31, 33, 33, 33, 33, 33,101,101,452,452,
+450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,
+450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,
+450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,114,
+451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,
+451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,
+451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,114,
+ 30, 31,452,453,454,455,456, 30, 31, 30, 31, 30, 31,457,458,459,
+460, 33, 30, 31, 33, 30, 31, 33, 33, 33, 33, 33,106,106,461,461,
/* block 81 */
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,153,154,153,154,153,154,153,154,153,154,153,154,
-153,154,153,154,453,454,454,454,454,454,454,153,154,153,154,455,
-455,455,153,154,109,109,109,109,109,456,456,456,456,457,456,456,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,159,160,159,160,159,160,159,160,159,160,159,160,
+159,160,159,160,462,463,463,463,463,463,463,159,160,159,160,464,
+464,464,159,160,114,114,114,114,114,465,465,465,465,466,465,465,
/* block 82 */
-458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,
-458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,458,
-458,458,458,458,458,458,109,458,109,109,109,109,109,458,109,109,
-459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,
-459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,
-459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,
-459,459,459,459,459,459,459,459,109,109,109,109,109,109,109,460,
-461,109,109,109,109,109,109,109,109,109,109,109,109,109,109,462,
+467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
+467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
+467,467,467,467,467,467,114,467,114,114,114,114,114,467,114,114,
+468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,
+468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,
+468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,
+468,468,468,468,468,468,468,468,114,114,114,114,114,114,114,469,
+470,114,114,114,114,114,114,114,114,114,114,114,114,114,114,471,
/* block 83 */
-308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,
-308,308,308,308,308,308,308,109,109,109,109,109,109,109,109,109,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,109,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,109,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,109,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,109,
-170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
-170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,
+317,317,317,317,317,317,317,114,114,114,114,114,114,114,114,114,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,114,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,114,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,114,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,114,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
/* block 84 */
4, 4, 21, 25, 21, 25, 4, 4, 4, 21, 25, 4, 21, 25, 4, 4,
4, 4, 4, 4, 4, 4, 4, 9, 4, 4, 9, 4, 21, 25, 4, 4,
- 21, 25, 6, 7, 6, 7, 6, 7, 6, 7, 4, 4, 4, 4, 4,102,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 9,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 21, 25, 6, 7, 6, 7, 6, 7, 6, 7, 4, 4, 4, 4, 4,107,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 9, 4, 4, 4, 4,
+ 9, 4, 6,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 85 */
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,109,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,109,109,109,109,109,109,109,109,109,109,109,109,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,114,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 86 */
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
/* block 87 */
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,
-463,463,463,463,463,463,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+472,472,472,472,472,472,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,
/* block 88 */
- 3, 4, 4, 4, 19,464,396,465, 6, 7, 6, 7, 6, 7, 6, 7,
+ 3, 4, 4, 4, 19,473,406,474, 6, 7, 6, 7, 6, 7, 6, 7,
6, 7, 19, 19, 6, 7, 6, 7, 6, 7, 6, 7, 9, 6, 7, 7,
- 19,465,465,465,465,465,465,465,465,465,104,104,104,104,466,466,
- 9,102,102,102,102,102, 19, 19,465,465,465,464,396, 4, 19, 19,
-109,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
-467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
-467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
-467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
+ 19,474,474,474,474,474,474,474,474,474,109,109,109,109,475,475,
+ 9,107,107,107,107,107, 19, 19,474,474,474,473,406, 4, 19, 19,
+114,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
/* block 89 */
-467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,
-467,467,467,467,467,467,467,109,109,104,104, 14, 14,468,468,467,
- 9,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469, 4,102,470,470,469,
+476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+476,476,476,476,476,476,476,114,114,109,109, 14, 14,477,477,476,
+ 9,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478, 4,107,479,479,478,
/* block 90 */
-109,109,109,109,109,471,471,471,471,471,471,471,471,471,471,471,
-471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,
-471,471,471,471,471,471,471,471,471,471,471,471,471,471,109,109,
-109,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
+114,114,114,114,114,480,480,480,480,480,480,480,480,480,480,480,
+480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,
+480,480,480,480,480,480,480,480,480,480,480,480,480,480,114,114,
+114,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
/* block 91 */
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,109,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,114,
19, 19, 23, 23, 23, 23, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,471,
-471,471,471,471,471,471,471,471,471,471,471,109,109,109,109,109,
+480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,
+480,480,480,480,480,480,480,480,480,480,480,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
+ 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
/* block 92 */
-473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,
-473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,109,
+482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
+482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,114,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 23, 23, 23, 23, 23, 23, 23, 23,
19, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
-473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,
-473,473,473,473,473,473,473,473,473,473,473,473,473,473,473, 19,
+482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
+482,482,482,482,482,482,482,482,482,482,482,482,482,482,482, 19,
/* block 93 */
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 19, 19, 19, 19, 19, 19,
@@ -2193,731 +2286,931 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,109,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,114,
/* block 94 */
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,
-474,474,474,474,474,474,474,474, 19, 19, 19, 19, 19, 19, 19, 19,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,483,
+483,483,483,483,483,483,483,483, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
/* block 95 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
/* block 96 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,109,109,109,109,109,109,109,109,109,109,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,114,114,114,114,114,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
/* block 97 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 98 */
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,477,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,486,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
/* block 99 */
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
-476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,476,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
+485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,
/* block 100 */
-476,476,476,476,476,476,476,476,476,476,476,476,476,109,109,109,
-478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
-478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
-478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
-478,478,478,478,478,478,478,109,109,109,109,109,109,109,109,109,
-479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,
-479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,
-479,479,479,479,479,479,479,479,480,480,480,480,480,480,481,481,
+485,485,485,485,485,485,485,485,485,485,485,485,485,114,114,114,
+487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,
+487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,
+487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,
+487,487,487,487,487,487,487,114,114,114,114,114,114,114,114,114,
+488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
+488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
+488,488,488,488,488,488,488,488,489,489,489,489,489,489,490,490,
/* block 101 */
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
/* block 102 */
-482,482,482,482,482,482,482,482,482,482,482,482,483,484,484,484,
-482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,482,
-485,485,485,485,485,485,485,485,485,485,482,482,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,486,170,
-171,171,171,487,170,170,170,170,170,170,170,170,170,170,487,398,
+491,491,491,491,491,491,491,491,491,491,491,491,492,493,493,493,
+491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,491,
+494,494,494,494,494,494,494,494,494,494,491,491,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,495,177,
+178,178,178,496,177,177,177,177,177,177,177,177,177,177,496,408,
/* block 103 */
-167,168,167,168,167,168,167,168,167,168,167,168,167,168,167,168,
-167,168,167,168,167,168,167,168,109,109,109,109,109,109,109,170,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,489,489,489,489,489,489,489,489,489,489,
-490,490,491,491,491,491,491,491,109,109,109,109,109,109,109,109,
+174,175,174,175,174,175,174,175,174,175,174,175,174,175,174,175,
+174,175,174,175,174,175,174,175,174,175,174,175,408,408,114,177,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,498,498,498,498,498,498,498,498,498,498,
+499,499,500,500,500,500,500,500,114,114,114,114,114,114,114,114,
/* block 104 */
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14,102,102,102,102,102,102,102,102,102,
+ 14, 14, 14, 14, 14, 14, 14,107,107,107,107,107,107,107,107,107,
14, 14, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
33, 33, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
-101, 33, 33, 33, 33, 33, 33, 33, 33, 30, 31, 30, 31,492, 30, 31,
+106, 33, 33, 33, 33, 33, 33, 33, 33, 30, 31, 30, 31,501, 30, 31,
/* block 105 */
- 30, 31, 30, 31, 30, 31, 30, 31,102, 14, 14, 30, 31,493, 33,109,
- 30, 31, 30, 31,109,109,109,109,109,109,109,109,109,109,109,109,
- 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,494,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,101,101, 33, 20, 20, 20, 20, 20,
+ 30, 31, 30, 31, 30, 31, 30, 31,107, 14, 14, 30, 31,502, 33,114,
+ 30, 31, 30, 31, 33, 33, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,
+ 30, 31, 30, 31, 30, 31, 30, 31, 30, 31,503,504,505,506,114,114,
+507,508,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114, 20,106,106, 33, 20, 20, 20, 20, 20,
/* block 106 */
-495,495,496,495,495,495,496,495,495,495,495,496,495,495,495,495,
-495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,
-495,495,495,497,497,496,496,497,498,498,498,498,109,109,109,109,
- 23, 23, 23, 23, 23, 23, 19, 19, 5, 19,109,109,109,109,109,109,
-499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,
-499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,
-499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,
-499,499,499,499,500,500,500,500,109,109,109,109,109,109,109,109,
+509,509,510,509,509,509,510,509,509,509,509,510,509,509,509,509,
+509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,
+509,509,509,511,511,510,510,511,512,512,512,512,114,114,114,114,
+ 23, 23, 23, 23, 23, 23, 19, 19, 5, 19,114,114,114,114,114,114,
+513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,
+513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,
+513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,
+513,513,513,513,514,514,514,514,114,114,114,114,114,114,114,114,
/* block 107 */
-501,501,502,502,502,502,502,502,502,502,502,502,502,502,502,502,
-502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,
-502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,502,
-502,502,502,502,501,501,501,501,501,501,501,501,501,501,501,501,
-501,501,501,501,503,109,109,109,109,109,109,109,109,109,504,504,
-505,505,505,505,505,505,505,505,505,505,109,109,109,109,109,109,
-213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,
-213,213,215,215,215,215,215,215,217,217,217,215,109,109,109,109,
+515,515,516,516,516,516,516,516,516,516,516,516,516,516,516,516,
+516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,
+516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,
+516,516,516,516,515,515,515,515,515,515,515,515,515,515,515,515,
+515,515,515,515,517,114,114,114,114,114,114,114,114,114,518,518,
+519,519,519,519,519,519,519,519,519,519,114,114,114,114,114,114,
+221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,
+221,221,223,223,223,223,223,223,225,225,225,223,114,114,114,114,
/* block 108 */
-506,506,506,506,506,506,506,506,506,506,507,507,507,507,507,507,
-507,507,507,507,507,507,507,507,507,507,507,507,507,507,507,507,
-507,507,507,507,507,507,508,508,508,508,508,508,508,508,509,509,
-510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,
-510,510,510,510,510,510,510,511,511,511,511,511,511,511,511,511,
-511,511,512,512,109,109,109,109,109,109,109,109,109,109,109,513,
-305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,
-305,305,305,305,305,305,305,305,305,305,305,305,305,109,109,109,
+520,520,520,520,520,520,520,520,520,520,521,521,521,521,521,521,
+521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,521,
+521,521,521,521,521,521,522,522,522,522,522,522,522,522, 4,523,
+524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,
+524,524,524,524,524,524,524,525,525,525,525,525,525,525,525,525,
+525,525,526,526,114,114,114,114,114,114,114,114,114,114,114,527,
+314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,
+314,314,314,314,314,314,314,314,314,314,314,314,314,114,114,114,
/* block 109 */
-514,514,514,515,516,516,516,516,516,516,516,516,516,516,516,516,
-516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,
-516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,516,
-516,516,516,514,515,515,514,514,514,514,515,515,514,515,515,515,
-515,517,517,517,517,517,517,517,517,517,517,517,517,517,109,102,
-518,518,518,518,518,518,518,518,518,518,109,109,109,109,517,517,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+528,528,528,529,530,530,530,530,530,530,530,530,530,530,530,530,
+530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,
+530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,
+530,530,530,528,529,529,528,528,528,528,529,529,528,529,529,529,
+529,531,531,531,531,531,531,531,531,531,531,531,531,531,114,107,
+532,532,532,532,532,532,532,532,532,532,114,114,114,114,531,531,
+304,304,304,304,304,306,533,304,304,304,304,304,304,304,304,304,
+308,308,308,308,308,308,308,308,308,308,304,304,304,304,304,114,
/* block 110 */
-519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,
-519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,
-519,519,519,519,519,519,519,519,519,520,520,520,520,520,520,521,
-521,520,520,521,521,520,520,109,109,109,109,109,109,109,109,109,
-519,519,519,520,519,519,519,519,519,519,519,519,520,521,109,109,
-522,522,522,522,522,522,522,522,522,522,109,109,523,523,523,523,
-295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,
-524,295,295,295,295,295,295,301,301,301,295,296,109,109,109,109,
+534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,
+534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,
+534,534,534,534,534,534,534,534,534,535,535,535,535,535,535,536,
+536,535,535,536,536,535,535,114,114,114,114,114,114,114,114,114,
+534,534,534,535,534,534,534,534,534,534,534,534,535,536,114,114,
+537,537,537,537,537,537,537,537,537,537,114,114,538,538,538,538,
+304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,
+533,304,304,304,304,304,304,310,310,310,304,305,306,305,304,304,
/* block 111 */
-525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,
-525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,
-525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,
-526,525,526,526,526,525,525,526,526,525,525,525,525,525,526,526,
-525,526,525,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,525,525,527,528,528,
-529,529,529,529,529,529,529,529,529,529,529,530,531,531,530,530,
-532,532,529,533,533,530,531,109,109,109,109,109,109,109,109,109,
+539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,
+539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,
+539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,
+540,539,540,540,540,539,539,540,540,539,539,539,539,539,540,540,
+539,540,539,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,539,539,541,542,542,
+543,543,543,543,543,543,543,543,543,543,543,544,545,545,544,544,
+546,546,543,547,547,544,545,114,114,114,114,114,114,114,114,114,
/* block 112 */
-109,308,308,308,308,308,308,109,109,308,308,308,308,308,308,109,
-109,308,308,308,308,308,308,109,109,109,109,109,109,109,109,109,
-308,308,308,308,308,308,308,109,308,308,308,308,308,308,308,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,317,317,317,317,317,317,114,114,317,317,317,317,317,317,114,
+114,317,317,317,317,317,317,114,114,114,114,114,114,114,114,114,
+317,317,317,317,317,317,317,114,317,317,317,317,317,317,317,114,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 14,106,106,106,106,
+114,114,114,114, 33,122,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 113 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,
-529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,
-529,529,529,530,530,531,530,530,531,530,530,532,530,531,109,109,
-534,534,534,534,534,534,534,534,534,534,109,109,109,109,109,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,
+543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,
+543,543,543,544,544,545,544,544,545,544,544,546,544,545,114,114,
+548,548,548,548,548,548,548,548,548,548,114,114,114,114,114,114,
/* block 114 */
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
/* block 115 */
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
/* block 116 */
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
/* block 117 */
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
/* block 118 */
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
/* block 119 */
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
/* block 120 */
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,535,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,535,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,549,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,549,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
/* block 121 */
-536,536,536,536,536,536,536,536,535,536,536,536,536,536,536,536,
-536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,
-536,536,536,536,109,109,109,109,109,109,109,109,109,109,109,109,
-306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,
-306,306,306,306,306,306,306,109,109,109,109,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,
-307,307,307,307,307,307,307,307,307,307,307,307,109,109,109,109,
+550,550,550,550,550,550,550,550,549,550,550,550,550,550,550,550,
+550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
+550,550,550,550,114,114,114,114,114,114,114,114,114,114,114,114,
+315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,
+315,315,315,315,315,315,315,114,114,114,114,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,
+316,316,316,316,316,316,316,316,316,316,316,316,114,114,114,114,
/* block 122 */
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
-537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,537,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
+551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,
/* block 123 */
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
/* block 124 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,109,109,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,114,114,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
/* block 125 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 126 */
- 33, 33, 33, 33, 33, 33, 33,109,109,109,109,109,109,109,109,109,
-109,109,109,178,178,178,178,178,109,109,109,109,109,184,181,184,
-184,184,184,184,184,184,184,184,184,539,184,184,184,184,184,184,
-184,184,184,184,184,184,184,109,184,184,184,184,184,109,184,109,
-184,184,109,184,184,109,184,184,184,184,184,184,184,184,184,184,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+ 33, 33, 33, 33, 33, 33, 33,114,114,114,114,114,114,114,114,114,
+114,114,114,185,185,185,185,185,114,114,114,114,114,192,189,192,
+192,192,192,192,192,192,192,192,192,553,192,192,192,192,192,192,
+192,192,192,192,192,192,192,114,192,192,192,192,192,114,192,114,
+192,192,114,192,192,114,192,192,192,192,192,192,192,192,192,192,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 127 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,540,540,540,540,540,540,540,540,540,540,540,540,540,540,
-540,540,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,554,554,554,554,554,554,554,554,554,554,554,554,554,554,
+554,554,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 128 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 129 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191, 6, 7,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199, 7, 6,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
/* block 130 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-109,109,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-191,191,191,191,191,191,191,191,191,191,191,191,188, 19,109,109,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+114,114,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+199,199,199,199,199,199,199,199,199,199,199,199,196,197,114,114,
/* block 131 */
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
- 4, 4, 4, 4, 4, 4, 4, 6, 7, 4,109,109,109,109,109,109,
-104,104,104,104,104,104,104,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 4, 4, 4, 4, 4, 4, 4, 6, 7, 4,114,114,114,114,114,114,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,114,114,
4, 9, 9, 15, 15, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6,
7, 6, 7, 6, 7, 4, 4, 6, 7, 4, 4, 4, 4, 15, 15, 15,
- 4, 4, 4,109, 4, 4, 4, 4, 9, 6, 7, 6, 7, 6, 7, 4,
- 4, 4, 8, 9, 8, 8, 8,109, 4, 5, 4, 4,109,109,109,109,
-191,191,191,191,191,109,191,191,191,191,191,191,191,191,191,191,
+ 4, 4, 4,114, 4, 4, 4, 4, 9, 6, 7, 6, 7, 6, 7, 4,
+ 4, 4, 8, 9, 8, 8, 8,114, 4, 5, 4, 4,114,114,114,114,
+199,199,199,199,199,114,199,199,199,199,199,199,199,199,199,199,
/* block 132 */
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,109,109, 22,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,114,114, 22,
/* block 133 */
-109, 4, 4, 4, 5, 4, 4, 4, 6, 7, 4, 8, 4, 9, 4, 4,
+114, 4, 4, 4, 5, 4, 4, 4, 6, 7, 4, 8, 4, 9, 4, 4,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 8, 8, 8, 4,
4, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 6, 4, 7, 14, 15,
14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 6, 8, 7, 8, 6,
- 7, 4, 6, 7, 4, 4,469,469,469,469,469,469,469,469,469,469,
-102,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
+ 7, 4, 6, 7, 4, 4,478,478,478,478,478,478,478,478,478,478,
+107,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
/* block 134 */
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,469,
-469,469,469,469,469,469,469,469,469,469,469,469,469,469,541,541,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,
-472,472,472,472,472,472,472,472,472,472,472,472,472,472,472,109,
-109,109,472,472,472,472,472,472,109,109,472,472,472,472,472,472,
-109,109,472,472,472,472,472,472,109,109,472,472,472,109,109,109,
- 5, 5, 8, 14, 19, 5, 5,109, 19, 8, 8, 8, 8, 19, 19,109,
-426,426,426,426,426,426,426,426,426, 22, 22, 22, 19, 19,109,109,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,
+478,478,478,478,478,478,478,478,478,478,478,478,478,478,555,555,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,
+481,481,481,481,481,481,481,481,481,481,481,481,481,481,481,114,
+114,114,481,481,481,481,481,481,114,114,481,481,481,481,481,481,
+114,114,481,481,481,481,481,481,114,114,481,481,481,114,114,114,
+ 5, 5, 8, 14, 19, 5, 5,114, 19, 8, 8, 8, 8, 19, 19,114,
+436,436,436,436,436,436,436,436,436, 22, 22, 22, 19, 19,114,114,
/* block 135 */
-542,542,542,542,542,542,542,542,542,542,542,542,109,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,109,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,109,542,542,109,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,109,109,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+556,556,556,556,556,556,556,556,556,556,556,556,114,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,114,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,114,556,556,114,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,114,114,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 136 */
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,
-542,542,542,542,542,542,542,542,542,542,542,109,109,109,109,109,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,556,
+556,556,556,556,556,556,556,556,556,556,556,114,114,114,114,114,
/* block 137 */
- 4, 4, 4,109,109,109,109, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 4, 4, 4,114,114,114,114, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
- 23, 23, 23, 23,109,109,109, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,
-543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,
-543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,
-543,543,543,543,543,544,544,544,544,545,545,545,545,545,545,545,
+ 23, 23, 23, 23,114,114,114, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,
+557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,
+557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,
+557,557,557,557,557,558,558,558,558,559,559,559,559,559,559,559,
/* block 138 */
-545,545,545,545,545,545,545,545,545,545,544,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+559,559,559,559,559,559,559,559,559,559,558,558,559,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,
+559,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,104,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,114,114,
/* block 139 */
-546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,
-546,546,546,546,546,546,546,546,546,546,546,546,546,109,109,109,
-547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,
-547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,
-547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,547,
-547,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 140 */
-548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,
-548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,109,
-549,549,549,549,109,109,109,109,109,109,109,109,109,109,109,109,
-550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,
-550,551,550,550,550,550,550,550,550,550,551,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,
+560,560,560,560,560,560,560,560,560,560,560,560,560,114,114,114,
+561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,
+561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,
+561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,
+561,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+109, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,114,114,114,114,
/* block 141 */
-552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
-552,552,552,552,552,552,552,552,552,552,552,552,552,552,109,553,
-554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,
-554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,
-554,554,554,554,109,109,109,109,554,554,554,554,554,554,554,554,
-555,556,556,556,556,556,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,
+562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,
+563,563,563,563,114,114,114,114,114,114,114,114,114,114,114,114,
+564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,
+564,565,564,564,564,564,564,564,564,564,565,114,114,114,114,114,
+566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,
+566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,
+566,566,566,566,566,566,567,567,567,567,567,114,114,114,114,114,
/* block 142 */
-557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,
-557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,
-557,557,557,557,557,557,557,557,558,558,558,558,558,558,558,558,
-558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,
-558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,558,
-559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
-559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
-559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
+568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,
+568,568,568,568,568,568,568,568,568,568,568,568,568,568,114,569,
+570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,
+570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,
+570,570,570,570,114,114,114,114,570,570,570,570,570,570,570,570,
+571,572,572,572,572,572,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 143 */
-560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,
-560,560,560,560,560,560,560,560,560,560,560,560,560,560,109,109,
-561,561,561,561,561,561,561,561,561,561,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,
+573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,
+573,573,573,573,573,573,573,573,574,574,574,574,574,574,574,574,
+574,574,574,574,574,574,574,574,574,574,574,574,574,574,574,574,
+574,574,574,574,574,574,574,574,574,574,574,574,574,574,574,574,
+575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,
+575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,
+575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,
/* block 144 */
-562,562,562,562,562,562,109,109,562,109,562,562,562,562,562,562,
-562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,
-562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,562,
-562,562,562,562,562,562,109,562,562,109,109,109,562,109,109,562,
-563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,
-563,563,563,563,563,563,109,564,565,565,565,565,565,565,565,565,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,
+576,576,576,576,576,576,576,576,576,576,576,576,576,576,114,114,
+577,577,577,577,577,577,577,577,577,577,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 145 */
-566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,
-566,566,566,566,566,566,567,567,567,567,567,567,109,109,109,568,
-569,569,569,569,569,569,569,569,569,569,569,569,569,569,569,569,
-569,569,569,569,569,569,569,569,569,569,109,109,109,109,109,570,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,
+578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,
+578,578,578,578,578,578,578,578,114,114,114,114,114,114,114,114,
+579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,
+579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,
+579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,
+579,579,579,579,114,114,114,114,114,114,114,114,114,114,114,580,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 146 */
-571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,
-571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,
-572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,
-572,572,572,572,572,572,572,572,109,109,109,109,109,109,572,572,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
/* block 147 */
-573,574,574,574,109,574,574,109,109,109,109,109,574,574,574,574,
-573,573,573,573,109,573,573,573,109,573,573,573,573,573,573,573,
-573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,
-573,573,573,573,109,109,109,109,574,574,574,109,109,109,109,574,
-575,575,575,575,575,575,575,575,109,109,109,109,109,109,109,109,
-576,576,576,576,576,576,576,576,576,109,109,109,109,109,109,109,
-577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,
-577,577,577,577,577,577,577,577,577,577,577,577,577,578,578,579,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,581,114,114,114,114,114,114,114,114,114,
+581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,
+581,581,581,581,581,581,114,114,114,114,114,114,114,114,114,114,
+581,581,581,581,581,581,581,581,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 148 */
-580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,
-580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,
-580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,
-580,580,580,580,580,580,109,109,109,581,581,581,581,581,581,581,
+582,582,582,582,582,582,114,114,582,114,582,582,582,582,582,582,
+582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,
582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,
-582,582,582,582,582,582,109,109,583,583,583,583,583,583,583,583,
-584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,
-584,584,584,109,109,109,109,109,585,585,585,585,585,585,585,585,
+582,582,582,582,582,582,114,582,582,114,114,114,582,114,114,582,
+583,583,583,583,583,583,583,583,583,583,583,583,583,583,583,583,
+583,583,583,583,583,583,114,584,585,585,585,585,585,585,585,585,
+586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,
+586,586,586,586,586,586,586,587,587,588,588,588,588,588,588,588,
/* block 149 */
-586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,
-586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,
-586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,
-586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,586,
-586,586,586,586,586,586,586,586,586,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,
+589,589,589,589,589,589,589,589,589,589,589,589,589,589,589,114,
+114,114,114,114,114,114,114,590,590,590,590,590,590,590,590,590,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 150 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,
-587,587,587,587,587,587,587,587,587,587,587,587,587,587,587,109,
+591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,
+591,591,591,591,591,591,592,592,592,592,592,592,114,114,114,593,
+594,594,594,594,594,594,594,594,594,594,594,594,594,594,594,594,
+594,594,594,594,594,594,594,594,594,594,114,114,114,114,114,595,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 151 */
-588,589,588,590,590,590,590,590,590,590,590,590,590,590,590,590,
-590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,
-590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,
-590,590,590,590,590,590,590,590,589,589,589,589,589,589,589,589,
-589,589,589,589,589,589,589,591,591,591,591,591,591,591,109,109,
-109,109,592,592,592,592,592,592,592,592,592,592,592,592,592,592,
-592,592,592,592,592,592,593,593,593,593,593,593,593,593,593,593,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-
-/* block 152 */
-594,594,595,596,596,596,596,596,596,596,596,596,596,596,596,596,
596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,
596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,
-595,595,595,594,594,594,594,595,595,594,594,597,597,598,597,597,
-597,597,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,599,
-599,599,599,599,599,599,599,599,599,109,109,109,109,109,109,109,
-600,600,600,600,600,600,600,600,600,600,109,109,109,109,109,109,
+597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,
+597,597,597,597,597,597,597,597,114,114,114,114,114,114,597,597,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 153 */
-601,601,601,602,602,602,602,602,602,602,602,602,602,602,602,602,
+/* block 152 */
+598,599,599,599,114,599,599,114,114,114,114,114,599,599,599,599,
+598,598,598,598,114,598,598,598,114,598,598,598,598,598,598,598,
+598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,598,
+598,598,598,598,114,114,114,114,599,599,599,114,114,114,114,599,
+600,600,600,600,600,600,600,600,114,114,114,114,114,114,114,114,
+601,601,601,601,601,601,601,601,601,114,114,114,114,114,114,114,
602,602,602,602,602,602,602,602,602,602,602,602,602,602,602,602,
-602,602,602,602,602,602,602,601,601,601,601,601,603,601,601,601,
-601,601,601,601,601,109,604,604,604,604,604,604,604,604,604,604,
-605,605,605,605,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+602,602,602,602,602,602,602,602,602,602,602,602,602,603,603,604,
+
+/* block 153 */
+605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,605,
+605,605,605,605,605,605,605,605,605,605,605,605,605,606,606,606,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+607,607,607,607,607,607,607,607,608,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,609,609,114,114,114,114,610,610,610,610,610,
+611,611,611,611,611,611,611,114,114,114,114,114,114,114,114,114,
/* block 154 */
-606,606,607,608,608,608,608,608,608,608,608,608,608,608,608,608,
-608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,
-608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,
-608,608,608,607,607,607,606,606,606,606,606,606,606,606,606,607,
-607,608,608,608,608,609,609,609,609,109,109,109,109,109,109,109,
-610,610,610,610,610,610,610,610,610,610,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,
+612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,
+612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,
+612,612,612,612,612,612,114,114,114,613,613,613,613,613,613,613,
+614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,614,
+614,614,614,614,614,614,114,114,615,615,615,615,615,615,615,615,
+616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
+616,616,616,114,114,114,114,114,617,617,617,617,617,617,617,617,
/* block 155 */
-611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,
-611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,
-611,611,611,611,611,611,611,611,611,611,611,612,613,612,613,613,
-612,612,612,612,612,612,613,612,109,109,109,109,109,109,109,109,
-614,614,614,614,614,614,614,614,614,614,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
+618,618,114,114,114,114,114,114,114,619,619,619,619,114,114,114,
+114,114,114,114,114,114,114,114,114,620,620,620,620,620,620,620,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 156 */
-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,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,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,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,615,615,615,615,615,615,615,615,
+621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,
+621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,
+621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,
+621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,
+621,621,621,621,621,621,621,621,621,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 157 */
-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,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,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,615,615,615,615,615,615,
-615,615,615,615,615,615,615,615,615,615,615,615,615,615,615,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,
+622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,114,
/* block 158 */
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,
-616,616,616,109,109,109,109,109,109,109,109,109,109,109,109,109,
-617,617,617,617,109,109,109,109,109,109,109,109,109,109,109,109,
+623,624,623,625,625,625,625,625,625,625,625,625,625,625,625,625,
+625,625,625,625,625,625,625,625,625,625,625,625,625,625,625,625,
+625,625,625,625,625,625,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,626,626,626,626,626,626,626,114,114,
+114,114,627,627,627,627,627,627,627,627,627,627,627,627,627,627,
+627,627,627,627,627,627,628,628,628,628,628,628,628,628,628,628,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,624,
/* block 159 */
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
+629,629,630,631,631,631,631,631,631,631,631,631,631,631,631,631,
+631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,
+631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,631,
+630,630,630,629,629,629,629,630,630,629,629,632,632,633,632,632,
+632,632,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,
+634,634,634,634,634,634,634,634,634,114,114,114,114,114,114,114,
+635,635,635,635,635,635,635,635,635,635,114,114,114,114,114,114,
/* block 160 */
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,
-618,618,618,618,618,618,618,618,618,618,618,618,618,618,618,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+636,636,636,637,637,637,637,637,637,637,637,637,637,637,637,637,
+637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,637,
+637,637,637,637,637,637,637,636,636,636,636,636,638,636,636,636,
+636,636,636,636,636,114,639,639,639,639,639,639,639,639,639,639,
+640,640,640,640,114,114,114,114,114,114,114,114,114,114,114,114,
+641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,
+641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,641,
+641,641,641,642,643,643,641,114,114,114,114,114,114,114,114,114,
/* block 161 */
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
+644,644,645,646,646,646,646,646,646,646,646,646,646,646,646,646,
+646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,
+646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,646,
+646,646,646,645,645,645,644,644,644,644,644,644,644,644,644,645,
+645,646,646,646,646,647,647,647,647,114,114,114,114,647,114,114,
+648,648,648,648,648,648,648,648,648,648,646,114,114,114,114,114,
+114,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,
+649,649,649,649,649,114,114,114,114,114,114,114,114,114,114,114,
/* block 162 */
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,
-488,488,488,488,488,488,488,488,488,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,650,
+650,650,114,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,651,651,651,652,
+652,652,651,651,652,651,652,652,653,653,653,653,653,653,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 163 */
-619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,
-619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,
-619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,
-619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,
-619,619,619,619,619,109,109,109,109,109,109,109,109,109,109,109,
-619,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,
-620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,
-620,620,620,620,620,620,620,620,620,620,620,620,620,620,620,109,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+654,654,654,654,654,654,654,654,654,654,654,654,654,654,654,654,
+654,654,654,654,654,654,654,654,654,654,654,654,654,654,654,654,
+654,654,654,654,654,654,654,654,654,654,654,654,654,654,654,655,
+656,656,656,655,655,655,655,655,655,655,655,114,114,114,114,114,
+657,657,657,657,657,657,657,657,657,657,114,114,114,114,114,114,
/* block 164 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,621,
-621,621,621,622,622,622,622,622,622,622,622,622,622,622,622,622,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+114,658,659,659,114,660,660,660,660,660,660,660,660,114,114,660,
+660,114,114,660,660,660,660,660,660,660,660,660,660,660,660,660,
+660,660,660,660,660,660,660,660,660,114,660,660,660,660,660,660,
+660,114,660,660,114,660,660,660,660,660,114,114,658,660,661,659,
+658,659,659,659,659,114,114,659,659,114,114,659,659,659,114,114,
+114,114,114,114,114,114,114,661,114,114,114,114,114,660,660,660,
+660,660,659,659,114,114,658,658,658,658,658,658,658,114,114,114,
+658,658,658,658,658,114,114,114,114,114,114,114,114,114,114,114,
/* block 165 */
-469,467,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,
+662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,
+662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,662,
+663,664,664,665,665,665,665,665,665,664,665,664,664,663,664,665,
+665,664,665,665,662,662,666,662,114,114,114,114,114,114,114,114,
+667,667,667,667,667,667,667,667,667,667,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
/* block 166 */
+668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,
+668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,
+668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,669,
+670,670,671,671,671,671,114,114,670,670,670,670,671,671,670,671,
+671,672,672,672,672,672,672,672,672,672,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 167 */
+673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,
+673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,
+673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,
+674,674,674,675,675,675,675,675,675,675,675,674,674,675,674,675,
+675,676,676,676,673,114,114,114,114,114,114,114,114,114,114,114,
+677,677,677,677,677,677,677,677,677,677,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 168 */
+678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,
+678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,
+678,678,678,678,678,678,678,678,678,678,678,679,680,679,680,680,
+679,679,679,679,679,679,680,679,114,114,114,114,114,114,114,114,
+681,681,681,681,681,681,681,681,681,681,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 169 */
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,
+682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,682,
+683,683,683,683,683,683,683,683,683,683,683,683,683,683,683,683,
+683,683,683,683,683,683,683,683,683,683,683,683,683,683,683,683,
+684,684,684,684,684,684,684,684,684,684,685,685,685,685,685,685,
+685,685,685,114,114,114,114,114,114,114,114,114,114,114,114,686,
+
+/* block 170 */
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,
+687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,
+687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,687,
+687,687,687,687,687,687,687,687,687,114,114,114,114,114,114,114,
+
+/* block 171 */
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+
+/* block 172 */
+688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,688,
+688,688,688,688,688,688,688,688,688,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 173 */
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,
+689,689,689,689,689,689,689,689,689,689,689,689,689,689,689,114,
+690,690,690,690,690,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 174 */
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+
+/* block 175 */
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,
+691,691,691,691,691,691,691,691,691,691,691,691,691,691,691,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 176 */
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+
+/* block 177 */
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,497,
+497,497,497,497,497,497,497,497,497,114,114,114,114,114,114,114,
+692,692,692,692,692,692,692,692,692,692,692,692,692,692,692,692,
+692,692,692,692,692,692,692,692,692,692,692,692,692,692,692,114,
+693,693,693,693,693,693,693,693,693,693,114,114,114,114,694,694,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 178 */
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+695,695,695,695,695,695,695,695,695,695,695,695,695,695,695,695,
+695,695,695,695,695,695,695,695,695,695,695,695,695,695,114,114,
+696,696,696,696,696,697,114,114,114,114,114,114,114,114,114,114,
+
+/* block 179 */
+698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,
+698,698,698,698,698,698,698,698,698,698,698,698,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,699,699,700,700,700,700,700,701,701,701,701,
+702,702,702,702,700,701,114,114,114,114,114,114,114,114,114,114,
+703,703,703,703,703,703,703,703,703,703,114,704,704,704,704,704,
+704,704,114,698,698,698,698,698,698,698,698,698,698,698,698,698,
+698,698,698,698,698,698,698,698,114,114,114,114,114,698,698,698,
+
+/* block 180 */
+698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 181 */
+705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,
+705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,
+705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,
+705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,
+705,705,705,705,705,114,114,114,114,114,114,114,114,114,114,114,
+705,706,706,706,706,706,706,706,706,706,706,706,706,706,706,706,
+706,706,706,706,706,706,706,706,706,706,706,706,706,706,706,706,
+706,706,706,706,706,706,706,706,706,706,706,706,706,706,706,114,
+
+/* block 182 */
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,707,
+707,707,707,708,708,708,708,708,708,708,708,708,708,708,708,708,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 183 */
+478,476,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 184 */
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,
+709,709,709,709,709,709,709,709,709,709,709,114,114,114,114,114,
+709,709,709,709,709,709,709,709,709,709,709,709,709,114,114,114,
+
+/* block 185 */
+709,709,709,709,709,709,709,709,709,114,114,114,114,114,114,114,
+709,709,709,709,709,709,709,709,709,709,114,114,710,711,711,712,
+ 22, 22, 22, 22,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 186 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
@@ -2925,321 +3218,361 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,
-/* block 167 */
+/* block 187 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19,109,109, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19,114,114, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19,623,395,104,104,104, 19, 19, 19,395,623,623,
-623,623,623, 22, 22, 22, 22, 22, 22, 22, 22,104,104,104,104,104,
+ 19, 19, 19, 19, 19,713,405,109,109,109, 19, 19, 19,405,713,713,
+713,713,713, 22, 22, 22, 22, 22, 22, 22, 22,109,109,109,109,109,
-/* block 168 */
-104,104,104, 19, 19,104,104,104,104,104,104,104, 19, 19, 19, 19,
+/* block 188 */
+109,109,109, 19, 19,109,109,109,109,109,109,109, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,104,104,104,104, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 169 */
-545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,
-545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,
-545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,
-545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,
-545,545,624,624,624,545,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+/* block 189 */
+559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
+559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
+559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
+559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,
+559,559,714,714,714,559,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 170 */
+/* block 190 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
- 23, 23,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 23, 23,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 171 */
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,429,
-429,429,429,429,429,109,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
+/* block 191 */
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,438,438,
+438,438,438,438,438,114,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
-/* block 172 */
-428,428,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,428,109,428,428,
-109,109,428,109,109,428,428,109,109,428,428,428,428,109,428,428,
-428,428,428,428,428,428,429,429,429,429,109,429,109,429,429,429,
-429,429,429,429,109,429,429,429,429,429,429,429,429,429,429,429,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
+/* block 192 */
+437,437,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,437,114,437,437,
+114,114,437,114,114,437,437,114,114,437,437,437,437,114,437,437,
+437,437,437,437,437,437,438,438,438,438,114,438,114,438,438,438,
+438,438,438,438,114,438,438,438,438,438,438,438,438,438,438,438,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
-/* block 173 */
-429,429,429,429,428,428,109,428,428,428,428,109,109,428,428,428,
-428,428,428,428,428,109,428,428,428,428,428,428,428,109,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,428,428,109,428,428,428,428,109,
-428,428,428,428,428,109,428,109,109,109,428,428,428,428,428,428,
-428,109,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
+/* block 193 */
+438,438,438,438,437,437,114,437,437,437,437,114,114,437,437,437,
+437,437,437,437,437,114,437,437,437,437,437,437,437,114,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,437,437,114,437,437,437,437,114,
+437,437,437,437,437,114,437,114,114,114,437,437,437,437,437,437,
+437,114,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
-/* block 174 */
-428,428,428,428,428,428,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
+/* block 194 */
+437,437,437,437,437,437,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
-/* block 175 */
-429,429,429,429,429,429,429,429,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
+/* block 195 */
+438,438,438,438,438,438,438,438,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
-/* block 176 */
-428,428,428,428,428,428,428,428,428,428,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,109,109,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428, 8,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429, 8,429,429,429,429,
-429,429,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428, 8,429,429,429,429,
+/* block 196 */
+437,437,437,437,437,437,437,437,437,437,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,114,114,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437, 8,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438, 8,438,438,438,438,
+438,438,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437, 8,438,438,438,438,
-/* block 177 */
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429, 8,429,429,429,429,429,429,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428, 8,429,429,429,429,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429, 8,
-429,429,429,429,429,429,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428, 8,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
+/* block 197 */
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438, 8,438,438,438,438,438,438,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437, 8,438,438,438,438,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438, 8,
+438,438,438,438,438,438,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437, 8,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
-/* block 178 */
-429,429,429,429,429,429,429,429,429, 8,429,429,429,429,429,429,
-428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,428,
-428,428,428,428,428,428,428,428,428, 8,429,429,429,429,429,429,
-429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,429,
-429,429,429, 8,429,429,429,429,429,429,428,429,109,109, 10, 10,
+/* block 198 */
+438,438,438,438,438,438,438,438,438, 8,438,438,438,438,438,438,
+437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,
+437,437,437,437,437,437,437,437,437, 8,438,438,438,438,438,438,
+438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,
+438,438,438, 8,438,438,438,438,438,438,437,438,114,114, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-/* block 179 */
-191,191,191,191,109,191,191,191,191,191,191,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
-109,191,191,109,191,109,109,191,109,191,191,191,191,191,191,191,
-191,191,191,109,191,191,191,191,109,191,109,191,109,109,109,109,
-109,109,191,109,109,109,109,191,109,191,109,191,109,191,191,191,
-109,191,191,109,191,109,109,191,109,191,109,191,109,191,109,191,
-109,191,191,109,191,109,109,191,191,191,191,109,191,191,191,191,
-191,191,191,109,191,191,191,191,109,191,191,191,191,109,191,109,
+/* block 199 */
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
-/* block 180 */
-191,191,191,191,191,191,191,191,191,191,109,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,109,109,109,109,
-109,191,191,191,109,191,191,191,191,191,109,191,191,191,191,191,
-191,191,191,191,191,191,191,191,191,191,191,191,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-186,186,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+/* block 200 */
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,715,
+715,715,715,715,715,114,114,716,716,716,716,716,716,716,716,716,
+717,717,717,717,717,717,717,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 181 */
+/* block 201 */
+199,199,199,199,114,199,199,199,199,199,199,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,
+114,199,199,114,199,114,114,199,114,199,199,199,199,199,199,199,
+199,199,199,114,199,199,199,199,114,199,114,199,114,114,114,114,
+114,114,199,114,114,114,114,199,114,199,114,199,114,199,199,199,
+114,199,199,114,199,114,114,199,114,199,114,199,114,199,114,199,
+114,199,199,114,199,114,114,199,199,199,199,114,199,199,199,199,
+199,199,199,114,199,199,199,199,114,199,199,199,199,114,199,114,
+
+/* block 202 */
+199,199,199,199,199,199,199,199,199,199,114,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,114,114,114,114,
+114,199,199,199,114,199,199,199,199,199,114,199,199,199,199,199,
+199,199,199,199,199,199,199,199,199,199,199,199,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+194,194,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 203 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-/* block 182 */
+/* block 204 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,
-109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,
-109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,
+114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,
-/* block 183 */
- 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,109,109,109,109,109,
+/* block 205 */
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-/* block 184 */
+/* block 206 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,625,625,625,625,625,625,625,625,625,625,
-625,625,625,625,625,625,625,625,625,625,625,625,625,625,625,625,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,718,718,718,718,718,718,718,718,718,718,
+718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,
-/* block 185 */
-626, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,109,
+/* block 207 */
+719, 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,
- 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,
+ 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 186 */
+/* block 208 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
- 19, 19, 19, 19, 19, 19,109, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,
-/* block 187 */
+/* block 209 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19,109, 19, 19, 19, 19, 19,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,
+114,114,114,114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,
-/* block 188 */
+/* block 210 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,
- 19,109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-
-/* block 189 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,
+
+/* block 211 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,109, 19, 19, 19, 19,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114, 19, 19, 19, 19, 19,
-/* block 190 */
+/* block 212 */
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19,114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,109,109,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-/* block 191 */
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109, 19, 19, 19, 19, 19,
+/* block 213 */
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19,114,114, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-/* block 192 */
+/* block 214 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19,109,109,109,109, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,
+ 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 193 */
+/* block 215 */
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 194 */
+/* block 216 */
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 217 */
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19,109,109,109,109,109,109,109,109,109,109,109,109,
-/* block 195 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+/* block 218 */
+ 19, 19, 19, 19, 19, 19, 19, 19,114,114,114,114,114,114,114,114,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 196 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,109,109,109,109,109,109,109,109,109,109,109,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
+/* block 219 */
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
-/* block 197 */
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,
-475,475,475,475,475,475,475,475,475,475,475,475,475,475,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+/* block 220 */
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,114,114,114,114,114,114,114,114,114,114,114,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
-/* block 198 */
-426, 22,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
+/* block 221 */
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,
+484,484,484,484,484,484,484,484,484,484,484,484,484,484,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,
+
+/* block 222 */
+436, 22,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,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
@@ -3247,45 +3580,45 @@ const pcre_uint16 PRIV(ucd_stage2)[] = { /* 51968 bytes, block = 128 */
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-/* block 199 */
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
+/* block 223 */
+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,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,
-/* block 200 */
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
+/* block 224 */
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
-/* block 201 */
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,
-426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,
+/* block 225 */
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,
+436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,
-/* block 202 */
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,
-538,538,538,538,538,538,538,538,538,538,538,538,538,538,109,109,
+/* block 226 */
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,
+552,552,552,552,552,552,552,552,552,552,552,552,552,552,114,114,
};
diff --git a/src/3rdparty/pcre/sljit/sljitConfig.h b/src/3rdparty/pcre/sljit/sljitConfig.h
index 4d93f4f78c..10364c3b60 100644
--- a/src/3rdparty/pcre/sljit/sljitConfig.h
+++ b/src/3rdparty/pcre/sljit/sljitConfig.h
@@ -96,13 +96,19 @@
#define SLJIT_EXECUTABLE_ALLOCATOR 1
#endif
+/* Return with error when an invalid argument is passed. */
+#ifndef SLJIT_ARGUMENT_CHECKS
+/* Disabled by default */
+#define SLJIT_ARGUMENT_CHECKS 0
+#endif
+
/* Debug checks (assertions, etc.). */
#ifndef SLJIT_DEBUG
/* Enabled by default */
#define SLJIT_DEBUG 1
#endif
-/* Verbose operations */
+/* Verbose operations. */
#ifndef SLJIT_VERBOSE
/* Enabled by default */
#define SLJIT_VERBOSE 1
diff --git a/src/3rdparty/pcre/sljit/sljitConfigInternal.h b/src/3rdparty/pcre/sljit/sljitConfigInternal.h
index 89be38bd46..3284012f19 100644
--- a/src/3rdparty/pcre/sljit/sljitConfigInternal.h
+++ b/src/3rdparty/pcre/sljit/sljitConfigInternal.h
@@ -28,32 +28,50 @@
#define _SLJIT_CONFIG_INTERNAL_H_
/*
- SLJIT defines the following macros depending on the target architecture:
-
- Feature detection (boolean) macros:
- SLJIT_32BIT_ARCHITECTURE : 32 bit architecture
- SLJIT_64BIT_ARCHITECTURE : 64 bit architecture
- SLJIT_WORD_SHIFT : the shift required to apply when accessing a sljit_sw/sljit_uw array by index
- SLJIT_DOUBLE_SHIFT : the shift required to apply when accessing a double array by index
- SLJIT_LITTLE_ENDIAN : little endian architecture
- SLJIT_BIG_ENDIAN : big endian architecture
- SLJIT_UNALIGNED : allows unaligned memory accesses for non-fpu operations (only!)
- SLJIT_INDIRECT_CALL : see SLJIT_FUNC_OFFSET() for more information
- SLJIT_RETURN_ADDRESS_OFFSET : a return instruction always adds this offset to the return address
-
- Types and useful macros:
- sljit_sb, sljit_ub : signed and unsigned 8 bit byte
- sljit_sh, sljit_uh : signed and unsigned 16 bit half-word (short) type
- sljit_si, sljit_ui : signed and unsigned 32 bit integer type
- sljit_sw, sljit_uw : signed and unsigned machine word, enough to store a pointer
- sljit_p : unsgined pointer value (usually the same as sljit_uw, but
- some 64 bit ABIs may use 32 bit pointers)
- sljit_s : single precision floating point value
- sljit_d : double precision floating point value
- SLJIT_CALL : C calling convention define for both calling JIT form C and C callbacks for JIT
- SLJIT_W(number) : defining 64 bit constants on 64 bit architectures (compiler independent helper)
+ SLJIT defines the following architecture dependent types and macros:
+
+ Types:
+ sljit_sb, sljit_ub : signed and unsigned 8 bit byte
+ sljit_sh, sljit_uh : signed and unsigned 16 bit half-word (short) type
+ sljit_si, sljit_ui : signed and unsigned 32 bit integer type
+ sljit_sw, sljit_uw : signed and unsigned machine word, enough to store a pointer
+ sljit_p : unsgined pointer value (usually the same as sljit_uw, but
+ some 64 bit ABIs may use 32 bit pointers)
+ sljit_s : single precision floating point value
+ sljit_d : double precision floating point value
+
+ Macros for feature detection (boolean):
+ SLJIT_32BIT_ARCHITECTURE : 32 bit architecture
+ SLJIT_64BIT_ARCHITECTURE : 64 bit architecture
+ SLJIT_LITTLE_ENDIAN : little endian architecture
+ SLJIT_BIG_ENDIAN : big endian architecture
+ SLJIT_UNALIGNED : allows unaligned memory accesses for non-fpu operations (only!)
+ SLJIT_INDIRECT_CALL : see SLJIT_FUNC_OFFSET() for more information
+
+ Constants:
+ SLJIT_NUMBER_OF_REGISTERS : number of available registers
+ SLJIT_NUMBER_OF_SCRATCH_REGISTERS : number of available scratch registers
+ SLJIT_NUMBER_OF_SAVED_REGISTERS : number of available saved registers
+ SLJIT_NUMBER_OF_FLOAT_REGISTERS : number of available floating point registers
+ SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS : number of available floating point scratch registers
+ SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS : number of available floating point saved registers
+ SLJIT_WORD_SHIFT : the shift required to apply when accessing a sljit_sw/sljit_uw array by index
+ SLJIT_DOUBLE_SHIFT : the shift required to apply when accessing
+ a double precision floating point array by index
+ SLJIT_SINGLE_SHIFT : the shift required to apply when accessing
+ a single precision floating point array by index
+ SLJIT_LOCALS_OFFSET : local space starting offset (SLJIT_SP + SLJIT_LOCALS_OFFSET)
+ SLJIT_RETURN_ADDRESS_OFFSET : a return instruction always adds this offset to the return address
+
+ Other macros:
+ SLJIT_CALL : C calling convention define for both calling JIT form C and C callbacks for JIT
+ SLJIT_W(number) : defining 64 bit constants on 64 bit architectures (compiler independent helper)
*/
+/*****************/
+/* Sanity check. */
+/*****************/
+
#if !((defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) \
|| (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) \
|| (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) \
@@ -71,7 +89,6 @@
#error "An architecture must be selected"
#endif
-/* Sanity check. */
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) \
+ (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) \
+ (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) \
@@ -89,7 +106,10 @@
#error "Multiple architectures are selected"
#endif
-/* Auto select option (requires compiler support) */
+/********************************************************/
+/* Automatic CPU detection (requires compiler support). */
+/********************************************************/
+
#if (defined SLJIT_CONFIG_AUTO && SLJIT_CONFIG_AUTO)
#ifndef _WIN32
@@ -142,26 +162,52 @@
#undef SLJIT_EXECUTABLE_ALLOCATOR
#endif
+/******************************/
+/* CPU family type detection. */
+/******************************/
+
+#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) \
+ || (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2)
+#define SLJIT_CONFIG_ARM_32 1
+#endif
+
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#define SLJIT_CONFIG_X86 1
+#elif (defined SLJIT_CONFIG_ARM_32 && SLJIT_CONFIG_ARM_32) || (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
+#define SLJIT_CONFIG_ARM 1
+#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#define SLJIT_CONFIG_PPC 1
+#elif (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) || (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#define SLJIT_CONFIG_MIPS 1
+#elif (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32) || (defined SLJIT_CONFIG_SPARC_64 && SLJIT_CONFIG_SPARC_64)
+#define SLJIT_CONFIG_SPARC 1
+#endif
+
+/**********************************/
+/* External function definitions. */
+/**********************************/
+
#if !(defined SLJIT_STD_MACROS_DEFINED && SLJIT_STD_MACROS_DEFINED)
/* These libraries are needed for the macros below. */
#include <stdlib.h>
#include <string.h>
-#endif /* STD_MACROS_DEFINED */
+#endif /* SLJIT_STD_MACROS_DEFINED */
/* General macros:
Note: SLJIT is designed to be independent from them as possible.
- In release mode (SLJIT_DEBUG is not defined) only the following macros are needed:
+ In release mode (SLJIT_DEBUG is not defined) only the following
+ external functions are needed:
*/
#ifndef SLJIT_MALLOC
-#define SLJIT_MALLOC(size) malloc(size)
+#define SLJIT_MALLOC(size, allocator_data) malloc(size)
#endif
#ifndef SLJIT_FREE
-#define SLJIT_FREE(ptr) free(ptr)
+#define SLJIT_FREE(ptr, allocator_data) free(ptr)
#endif
#ifndef SLJIT_MEMMOVE
@@ -172,6 +218,10 @@
#define SLJIT_ZEROMEM(dest, len) memset(dest, 0, len)
#endif
+/***************************/
+/* Compiler helper macros. */
+/***************************/
+
#if !defined(SLJIT_LIKELY) && !defined(SLJIT_UNLIKELY)
#if defined(__GNUC__) && (__GNUC__ >= 3)
@@ -193,6 +243,15 @@
#endif
#endif /* !SLJIT_INLINE */
+#ifndef SLJIT_NOINLINE
+/* Not inline functions. */
+#if defined(__GNUC__)
+#define SLJIT_NOINLINE __attribute__ ((noinline))
+#else
+#define SLJIT_NOINLINE
+#endif
+#endif /* !SLJIT_INLINE */
+
#ifndef SLJIT_CONST
/* Const variables. */
#define SLJIT_CONST const
@@ -203,6 +262,10 @@
#define SLJIT_UNUSED_ARG(arg) (void)arg
#endif
+/*********************************/
+/* Type of public API functions. */
+/*********************************/
+
#if (defined SLJIT_CONFIG_STATIC && SLJIT_CONFIG_STATIC)
/* Static ABI functions. For all-in-one programs. */
@@ -217,9 +280,13 @@
#define SLJIT_API_FUNC_ATTRIBUTE
#endif /* (defined SLJIT_CONFIG_STATIC && SLJIT_CONFIG_STATIC) */
+/****************************/
+/* Instruction cache flush. */
+/****************************/
+
#ifndef SLJIT_CACHE_FLUSH
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
/* Not required to implement on archs with unified caches. */
#define SLJIT_CACHE_FLUSH(from, to)
@@ -240,7 +307,7 @@
#define SLJIT_CACHE_FLUSH(from, to) \
cacheflush((long)(from), (long)(to), 0)
-#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC)
/* The __clear_cache() implementation of GCC is a dummy function on PowerPC. */
#define SLJIT_CACHE_FLUSH(from, to) \
@@ -262,6 +329,10 @@
#endif /* !SLJIT_CACHE_FLUSH */
+/******************************************************/
+/* Byte/half/int/word/single/double type definitions. */
+/******************************************************/
+
/* 8 bit byte type. */
typedef unsigned char sljit_ub;
typedef signed char sljit_sb;
@@ -274,7 +345,7 @@ typedef signed short int sljit_sh;
typedef unsigned int sljit_ui;
typedef signed int sljit_si;
-/* Machine word type. Can encapsulate a pointer.
+/* Machine word type. Enough for storing a pointer.
32 bit for 32 bit machines.
64 bit for 64 bit machines. */
#if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
@@ -314,6 +385,7 @@ typedef double sljit_d;
/* Shift for double precision sized data. */
#define SLJIT_DOUBLE_SHIFT 3
+#define SLJIT_SINGLE_SHIFT 2
#ifndef SLJIT_W
@@ -326,44 +398,13 @@ typedef double sljit_d;
#endif /* !SLJIT_W */
-#ifndef SLJIT_CALL
-
-/* ABI (Application Binary Interface) types. */
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
-
-#if defined(__GNUC__) && !defined(__APPLE__)
-
-#define SLJIT_CALL __attribute__ ((fastcall))
-#define SLJIT_X86_32_FASTCALL 1
-
-#elif defined(_MSC_VER)
-
-#define SLJIT_CALL __fastcall
-#define SLJIT_X86_32_FASTCALL 1
-
-#elif defined(__BORLANDC__)
-
-#define SLJIT_CALL __msfastcall
-#define SLJIT_X86_32_FASTCALL 1
-
-#else /* Unknown compiler. */
-
-/* The cdecl attribute is the default. */
-#define SLJIT_CALL
-
-#endif
-
-#else /* Non x86-32 architectures. */
-
-#define SLJIT_CALL
-
-#endif /* SLJIT_CONFIG_X86_32 */
-
-#endif /* !SLJIT_CALL */
+/*************************/
+/* Endianness detection. */
+/*************************/
#if !defined(SLJIT_BIG_ENDIAN) && !defined(SLJIT_LITTLE_ENDIAN)
-/* These macros are useful for the applications. */
+/* These macros are mostly useful for the applications. */
#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) \
|| (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
@@ -401,6 +442,64 @@ typedef double sljit_d;
#error "Exactly one endianness must be selected"
#endif
+#ifndef SLJIT_UNALIGNED
+
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) \
+ || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) \
+ || (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) \
+ || (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2) \
+ || (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) \
+ || (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) \
+ || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#define SLJIT_UNALIGNED 1
+#endif
+
+#endif /* !SLJIT_UNALIGNED */
+
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
+/* Auto detect SSE2 support using CPUID.
+ On 64 bit x86 cpus, sse2 must be present. */
+#define SLJIT_DETECT_SSE2 1
+#endif
+
+/*****************************************************************************************/
+/* Calling convention of functions generated by SLJIT or called from the generated code. */
+/*****************************************************************************************/
+
+#ifndef SLJIT_CALL
+
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
+
+#if defined(__GNUC__) && !defined(__APPLE__)
+
+#define SLJIT_CALL __attribute__ ((fastcall))
+#define SLJIT_X86_32_FASTCALL 1
+
+#elif defined(_MSC_VER)
+
+#define SLJIT_CALL __fastcall
+#define SLJIT_X86_32_FASTCALL 1
+
+#elif defined(__BORLANDC__)
+
+#define SLJIT_CALL __msfastcall
+#define SLJIT_X86_32_FASTCALL 1
+
+#else /* Unknown compiler. */
+
+/* The cdecl attribute is the default. */
+#define SLJIT_CALL
+
+#endif
+
+#else /* Non x86-32 architectures. */
+
+#define SLJIT_CALL
+
+#endif /* SLJIT_CONFIG_X86_32 */
+
+#endif /* !SLJIT_CALL */
+
#ifndef SLJIT_INDIRECT_CALL
#if ((defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) && (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN)) \
|| ((defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) && defined _AIX)
@@ -410,6 +509,8 @@ typedef double sljit_d;
#endif
#endif /* SLJIT_INDIRECT_CALL */
+/* The offset which needs to be substracted from the return address to
+determine the next executed instruction after return. */
#ifndef SLJIT_RETURN_ADDRESS_OFFSET
#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
#define SLJIT_RETURN_ADDRESS_OFFSET 8
@@ -418,44 +519,122 @@ typedef double sljit_d;
#endif
#endif /* SLJIT_RETURN_ADDRESS_OFFSET */
-#ifndef SLJIT_SSE2
+/***************************************************/
+/* Functions of the built-in executable allocator. */
+/***************************************************/
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
-/* Turn on SSE2 support on x86. */
-#define SLJIT_SSE2 1
+#if (defined SLJIT_EXECUTABLE_ALLOCATOR && SLJIT_EXECUTABLE_ALLOCATOR)
+SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size);
+SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void* ptr);
+SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void);
+#define SLJIT_MALLOC_EXEC(size) sljit_malloc_exec(size)
+#define SLJIT_FREE_EXEC(ptr) sljit_free_exec(ptr)
+#endif
+
+/**********************************************/
+/* Registers and locals offset determination. */
+/**********************************************/
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
-/* Auto detect SSE2 support using CPUID.
- On 64 bit x86 cpus, sse2 must be present. */
-#define SLJIT_DETECT_SSE2 1
+
+#define SLJIT_NUMBER_OF_REGISTERS 10
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 7
+#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
+#define SLJIT_LOCALS_OFFSET_BASE ((2 + 4) * sizeof(sljit_sw))
+#else
+/* Maximum 3 arguments are passed on the stack, +1 for double alignment. */
+#define SLJIT_LOCALS_OFFSET_BASE ((3 + 1 + 4) * sizeof(sljit_sw))
+#endif /* SLJIT_X86_32_FASTCALL */
+
+#elif (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+
+#ifndef _WIN64
+#define SLJIT_NUMBER_OF_REGISTERS 12
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 6
+#define SLJIT_LOCALS_OFFSET_BASE (sizeof(sljit_sw))
+#else
+#define SLJIT_NUMBER_OF_REGISTERS 12
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 8
+#define SLJIT_LOCALS_OFFSET_BASE ((4 + 2) * sizeof(sljit_sw))
+#endif /* _WIN64 */
+
+#elif (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7)
+
+#define SLJIT_NUMBER_OF_REGISTERS 11
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 8
+#define SLJIT_LOCALS_OFFSET_BASE 0
+
+#elif (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2)
+
+#define SLJIT_NUMBER_OF_REGISTERS 11
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 7
+#define SLJIT_LOCALS_OFFSET_BASE 0
+
+#elif (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
+
+#define SLJIT_NUMBER_OF_REGISTERS 25
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 10
+#define SLJIT_LOCALS_OFFSET_BASE (2 * sizeof(sljit_sw))
+
+#elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC)
+
+#define SLJIT_NUMBER_OF_REGISTERS 22
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 17
+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) || (defined _AIX)
+#define SLJIT_LOCALS_OFFSET_BASE ((6 + 8) * sizeof(sljit_sw))
+#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32)
+/* Add +1 for double alignment. */
+#define SLJIT_LOCALS_OFFSET_BASE ((3 + 1) * sizeof(sljit_sw))
+#else
+#define SLJIT_LOCALS_OFFSET_BASE (3 * sizeof(sljit_sw))
+#endif /* SLJIT_CONFIG_PPC_64 || _AIX */
+
+#elif (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
+
+#define SLJIT_NUMBER_OF_REGISTERS 17
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 8
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+#define SLJIT_LOCALS_OFFSET_BASE (4 * sizeof(sljit_sw))
+#else
+#define SLJIT_LOCALS_OFFSET_BASE 0
#endif
-#endif /* (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) */
+#elif (defined SLJIT_CONFIG_SPARC && SLJIT_CONFIG_SPARC)
-#endif /* !SLJIT_SSE2 */
+#define SLJIT_NUMBER_OF_REGISTERS 18
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 14
+#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
+/* Add +1 for double alignment. */
+#define SLJIT_LOCALS_OFFSET_BASE ((23 + 1) * sizeof(sljit_sw))
+#endif
-#ifndef SLJIT_UNALIGNED
+#elif (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
+
+#define SLJIT_NUMBER_OF_REGISTERS 0
+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 0
+#define SLJIT_LOCALS_OFFSET_BASE 0
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) \
- || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) \
- || (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7) \
- || (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2) \
- || (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) \
- || (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) \
- || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
-#define SLJIT_UNALIGNED 1
#endif
-#endif /* !SLJIT_UNALIGNED */
+#define SLJIT_LOCALS_OFFSET (SLJIT_LOCALS_OFFSET_BASE)
-#if (defined SLJIT_EXECUTABLE_ALLOCATOR && SLJIT_EXECUTABLE_ALLOCATOR)
-SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size);
-SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void* ptr);
-SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void);
-#define SLJIT_MALLOC_EXEC(size) sljit_malloc_exec(size)
-#define SLJIT_FREE_EXEC(ptr) sljit_free_exec(ptr)
+#define SLJIT_NUMBER_OF_SCRATCH_REGISTERS \
+ (SLJIT_NUMBER_OF_REGISTERS - SLJIT_NUMBER_OF_SAVED_REGISTERS)
+
+#define SLJIT_NUMBER_OF_FLOAT_REGISTERS 6
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) && (defined _WIN64)
+#define SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS 1
+#else
+#define SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS 0
#endif
+#define SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS \
+ (SLJIT_NUMBER_OF_FLOAT_REGISTERS - SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS)
+
+/*************************************/
+/* Debug and verbose related macros. */
+/*************************************/
+
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
#include <stdio.h>
#endif
diff --git a/src/3rdparty/pcre/sljit/sljitLir.c b/src/3rdparty/pcre/sljit/sljitLir.c
index 1acecba8b4..8112e8da6e 100644
--- a/src/3rdparty/pcre/sljit/sljitLir.c
+++ b/src/3rdparty/pcre/sljit/sljitLir.c
@@ -38,12 +38,6 @@
return NULL; \
} while (0)
-#define CHECK_ERROR_VOID() \
- do { \
- if (SLJIT_UNLIKELY(compiler->error)) \
- return; \
- } while (0)
-
#define FAIL_IF(expr) \
do { \
if (SLJIT_UNLIKELY(expr)) \
@@ -117,7 +111,7 @@
#define JUMP_ADDR 0x2
/* SLJIT_REWRITABLE_JUMP is 0x1000. */
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
# define PATCH_MB 0x4
# define PATCH_MW 0x8
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
@@ -162,7 +156,7 @@
# define PATCH_ABS64 0x100
#endif
-#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#if (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC)
# define IS_COND 0x004
# define IS_CALL 0x008
# define PATCH_B 0x010
@@ -174,7 +168,7 @@
# define REMOVE_COND 0x100
#endif
-#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) || (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
# define IS_MOVABLE 0x004
# define IS_JAL 0x008
# define IS_CALL 0x010
@@ -229,102 +223,111 @@
# define FCC_IS_SET (1 << 24)
#endif
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
-#define SLJIT_HAS_VARIABLE_LOCALS_OFFSET 1
-#if !(defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
-#define FIXED_LOCALS_OFFSET (3 * sizeof(sljit_sw))
-#endif
-#endif
+/* Stack management. */
-#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#ifdef _WIN64
-#define FIXED_LOCALS_OFFSET ((4 + 2) * sizeof(sljit_sw))
-#else
-#define FIXED_LOCALS_OFFSET (sizeof(sljit_sw))
-#endif
-#endif
+#define GET_SAVED_REGISTERS_SIZE(scratches, saveds, extra) \
+ (((scratches < SLJIT_NUMBER_OF_SCRATCH_REGISTERS ? 0 : (scratches - SLJIT_NUMBER_OF_SCRATCH_REGISTERS)) + \
+ (saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? saveds : SLJIT_NUMBER_OF_SAVED_REGISTERS) + \
+ extra) * sizeof(sljit_sw))
-#if (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
-#define SLJIT_HAS_VARIABLE_LOCALS_OFFSET 1
-#endif
+#define ADJUST_LOCAL_OFFSET(p, i) \
+ if ((p) == (SLJIT_MEM1(SLJIT_SP))) \
+ (i) += SLJIT_LOCALS_OFFSET;
-#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#ifdef _AIX
-#define FIXED_LOCALS_OFFSET ((6 + 8) * sizeof(sljit_sw))
-#else
-#define FIXED_LOCALS_OFFSET (2 * sizeof(sljit_sw))
-#endif
-#endif
+#endif /* !(defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) */
-#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#define FIXED_LOCALS_OFFSET ((6 + 8) * sizeof(sljit_sw))
-#endif
+/* Utils can still be used even if SLJIT_CONFIG_UNSUPPORTED is set. */
+#include "sljitUtils.c"
-#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#define FIXED_LOCALS_OFFSET (4 * sizeof(sljit_sw))
-#endif
+#if !(defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
-#if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#define FIXED_LOCALS_OFFSET 0
+#if (defined SLJIT_EXECUTABLE_ALLOCATOR && SLJIT_EXECUTABLE_ALLOCATOR)
+#include "sljitExecAllocator.c"
#endif
-#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
-#define SLJIT_HAS_FIXED_LOCALS_OFFSET 1
-#define FIXED_LOCALS_OFFSET (23 * sizeof(sljit_sw))
-#endif
+/* Argument checking features. */
-#if (defined SLJIT_HAS_VARIABLE_LOCALS_OFFSET && SLJIT_HAS_VARIABLE_LOCALS_OFFSET)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
-#define ADJUST_LOCAL_OFFSET(p, i) \
- if ((p) == (SLJIT_MEM1(SLJIT_LOCALS_REG))) \
- (i) += compiler->locals_offset;
+/* Returns with error when an invalid argument is passed. */
-#elif (defined SLJIT_HAS_FIXED_LOCALS_OFFSET && SLJIT_HAS_FIXED_LOCALS_OFFSET)
+#define CHECK_ARGUMENT(x) \
+ do { \
+ if (SLJIT_UNLIKELY(!(x))) \
+ return 1; \
+ } while (0)
-#define ADJUST_LOCAL_OFFSET(p, i) \
- if ((p) == (SLJIT_MEM1(SLJIT_LOCALS_REG))) \
- (i) += FIXED_LOCALS_OFFSET;
+#define CHECK_RETURN_TYPE sljit_si
+#define CHECK_RETURN_OK return 0
-#else
+#define CHECK(x) \
+ do { \
+ if (SLJIT_UNLIKELY(x)) { \
+ compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
+ return SLJIT_ERR_BAD_ARGUMENT; \
+ } \
+ } while (0)
+
+#define CHECK_PTR(x) \
+ do { \
+ if (SLJIT_UNLIKELY(x)) { \
+ compiler->error = SLJIT_ERR_BAD_ARGUMENT; \
+ return NULL; \
+ } \
+ } while (0)
-#define ADJUST_LOCAL_OFFSET(p, i)
+#define CHECK_REG_INDEX(x) \
+ do { \
+ if (SLJIT_UNLIKELY(x)) { \
+ return -2; \
+ } \
+ } while (0)
-#endif
+#elif (defined SLJIT_DEBUG && SLJIT_DEBUG)
-#endif /* !(defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) */
+/* Assertion failure occures if an invalid argument is passed. */
+#undef SLJIT_ARGUMENT_CHECKS
+#define SLJIT_ARGUMENT_CHECKS 1
-/* Utils can still be used even if SLJIT_CONFIG_UNSUPPORTED is set. */
-#include "sljitUtils.c"
+#define CHECK_ARGUMENT(x) SLJIT_ASSERT(x)
+#define CHECK_RETURN_TYPE void
+#define CHECK_RETURN_OK return
+#define CHECK(x) x
+#define CHECK_PTR(x) x
+#define CHECK_REG_INDEX(x) x
-#if !(defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
+#elif (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
-#if (defined SLJIT_EXECUTABLE_ALLOCATOR && SLJIT_EXECUTABLE_ALLOCATOR)
-#include "sljitExecAllocator.c"
-#endif
+/* Arguments are not checked. */
+#define CHECK_RETURN_TYPE void
+#define CHECK_RETURN_OK return
+#define CHECK(x) x
+#define CHECK_PTR(x) x
+#define CHECK_REG_INDEX(x) x
-#if (defined SLJIT_SSE2_AUTO && SLJIT_SSE2_AUTO) && !(defined SLJIT_SSE2 && SLJIT_SSE2)
-#error SLJIT_SSE2_AUTO cannot be enabled without SLJIT_SSE2
-#endif
+#else
+
+/* Arguments are not checked. */
+#define CHECK(x)
+#define CHECK_PTR(x)
+#define CHECK_REG_INDEX(x)
+
+#endif /* SLJIT_ARGUMENT_CHECKS */
/* --------------------------------------------------------------------- */
/* Public functions */
/* --------------------------------------------------------------------- */
-#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || ((defined SLJIT_SSE2 && SLJIT_SSE2) && ((defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)))
+#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
#define SLJIT_NEEDS_COMPILER_INIT 1
static sljit_si compiler_initialized = 0;
/* A thread safe initialization. */
static void init_compiler(void);
#endif
-SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)
+SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void *allocator_data)
{
- struct sljit_compiler *compiler = (struct sljit_compiler*)SLJIT_MALLOC(sizeof(struct sljit_compiler));
+ struct sljit_compiler *compiler = (struct sljit_compiler*)SLJIT_MALLOC(sizeof(struct sljit_compiler), allocator_data);
if (!compiler)
return NULL;
SLJIT_ZEROMEM(compiler, sizeof(struct sljit_compiler));
@@ -346,15 +349,16 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)
/* Only the non-zero members must be set. */
compiler->error = SLJIT_SUCCESS;
- compiler->buf = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE);
- compiler->abuf = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE);
+ compiler->allocator_data = allocator_data;
+ compiler->buf = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, allocator_data);
+ compiler->abuf = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, allocator_data);
if (!compiler->buf || !compiler->abuf) {
if (compiler->buf)
- SLJIT_FREE(compiler->buf);
+ SLJIT_FREE(compiler->buf, allocator_data);
if (compiler->abuf)
- SLJIT_FREE(compiler->abuf);
- SLJIT_FREE(compiler);
+ SLJIT_FREE(compiler->abuf, allocator_data);
+ SLJIT_FREE(compiler, allocator_data);
return NULL;
}
@@ -365,24 +369,28 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void)
compiler->scratches = -1;
compiler->saveds = -1;
+ compiler->fscratches = -1;
+ compiler->fsaveds = -1;
+ compiler->local_size = -1;
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
compiler->args = -1;
#endif
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
- compiler->cpool = (sljit_uw*)SLJIT_MALLOC(CPOOL_SIZE * sizeof(sljit_uw) + CPOOL_SIZE * sizeof(sljit_ub));
+ compiler->cpool = (sljit_uw*)SLJIT_MALLOC(CPOOL_SIZE * sizeof(sljit_uw)
+ + CPOOL_SIZE * sizeof(sljit_ub), allocator_data);
if (!compiler->cpool) {
- SLJIT_FREE(compiler->buf);
- SLJIT_FREE(compiler->abuf);
- SLJIT_FREE(compiler);
+ SLJIT_FREE(compiler->buf, allocator_data);
+ SLJIT_FREE(compiler->abuf, allocator_data);
+ SLJIT_FREE(compiler, allocator_data);
return NULL;
}
compiler->cpool_unique = (sljit_ub*)(compiler->cpool + CPOOL_SIZE);
compiler->cpool_diff = 0xffffffff;
#endif
-#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) || (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
compiler->delay_slot = UNMOVABLE_INS;
#endif
@@ -404,25 +412,27 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compile
{
struct sljit_memory_fragment *buf;
struct sljit_memory_fragment *curr;
+ void *allocator_data = compiler->allocator_data;
+ SLJIT_UNUSED_ARG(allocator_data);
buf = compiler->buf;
while (buf) {
curr = buf;
buf = buf->next;
- SLJIT_FREE(curr);
+ SLJIT_FREE(curr, allocator_data);
}
buf = compiler->abuf;
while (buf) {
curr = buf;
buf = buf->next;
- SLJIT_FREE(curr);
+ SLJIT_FREE(curr, allocator_data);
}
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
- SLJIT_FREE(compiler->cpool);
+ SLJIT_FREE(compiler->cpool, allocator_data);
#endif
- SLJIT_FREE(compiler);
+ SLJIT_FREE(compiler, allocator_data);
}
#if (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2)
@@ -478,7 +488,7 @@ static void* ensure_buf(struct sljit_compiler *compiler, sljit_uw size)
compiler->buf->used_size += size;
return ret;
}
- new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE);
+ new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(BUF_SIZE, compiler->allocator_data);
PTR_FAIL_IF_NULL(new_frag);
new_frag->next = compiler->buf;
compiler->buf = new_frag;
@@ -497,7 +507,7 @@ static void* ensure_abuf(struct sljit_compiler *compiler, sljit_uw size)
compiler->abuf->used_size += size;
return ret;
}
- new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE);
+ new_frag = (struct sljit_memory_fragment*)SLJIT_MALLOC(ABUF_SIZE, compiler->allocator_data);
PTR_FAIL_IF_NULL(new_frag);
new_frag->next = compiler->abuf;
compiler->abuf = new_frag;
@@ -537,6 +547,40 @@ static SLJIT_INLINE void reverse_buf(struct sljit_compiler *compiler)
compiler->buf = prev;
}
+static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
+{
+ SLJIT_UNUSED_ARG(args);
+ SLJIT_UNUSED_ARG(local_size);
+
+ compiler->options = options;
+ compiler->scratches = scratches;
+ compiler->saveds = saveds;
+ compiler->fscratches = fscratches;
+ compiler->fsaveds = fsaveds;
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ compiler->logical_local_size = local_size;
+#endif
+}
+
+static SLJIT_INLINE void set_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
+{
+ SLJIT_UNUSED_ARG(args);
+ SLJIT_UNUSED_ARG(local_size);
+
+ compiler->options = options;
+ compiler->scratches = scratches;
+ compiler->saveds = saveds;
+ compiler->fscratches = fscratches;
+ compiler->fsaveds = fsaveds;
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ compiler->logical_local_size = local_size;
+#endif
+}
+
static SLJIT_INLINE void set_label(struct sljit_label *label, struct sljit_compiler *compiler)
{
label->next = NULL;
@@ -573,9 +617,9 @@ static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_comp
#define ADDRESSING_DEPENDS_ON(exp, reg) \
(((exp) & SLJIT_MEM) && (((exp) & REG_MASK) == reg || OFFS_REG(exp) == reg))
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
#define FUNCTION_CHECK_OP() \
- SLJIT_ASSERT(!GET_FLAGS(op) || !(op & SLJIT_KEEP_FLAGS)); \
+ CHECK_ARGUMENT(!GET_FLAGS(op) || !(op & SLJIT_KEEP_FLAGS)); \
switch (GET_OPCODE(op)) { \
case SLJIT_NOT: \
case SLJIT_CLZ: \
@@ -585,31 +629,27 @@ static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_comp
case SLJIT_SHL: \
case SLJIT_LSHR: \
case SLJIT_ASHR: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C))); \
break; \
case SLJIT_NEG: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_C))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_C))); \
break; \
case SLJIT_MUL: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_C))); \
- break; \
- case SLJIT_CMPD: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_U | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
- SLJIT_ASSERT((op & (SLJIT_SET_E | SLJIT_SET_S))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_C))); \
break; \
case SLJIT_ADD: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_U | SLJIT_SET_S))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_U | SLJIT_SET_S))); \
break; \
case SLJIT_SUB: \
break; \
case SLJIT_ADDC: \
case SLJIT_SUBC: \
- SLJIT_ASSERT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O))); \
break; \
case SLJIT_BREAKPOINT: \
case SLJIT_NOP: \
- case SLJIT_UMUL: \
- case SLJIT_SMUL: \
+ case SLJIT_LUMUL: \
+ case SLJIT_LSMUL: \
case SLJIT_MOV: \
case SLJIT_MOV_UI: \
case SLJIT_MOV_P: \
@@ -617,79 +657,112 @@ static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_comp
case SLJIT_MOVU_UI: \
case SLJIT_MOVU_P: \
/* Nothing allowed */ \
- SLJIT_ASSERT(!(op & (SLJIT_INT_OP | SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_INT_OP | SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
+ break; \
+ default: \
+ /* Only SLJIT_INT_OP or SLJIT_SINGLE_OP is allowed. */ \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
+ break; \
+ }
+
+#define FUNCTION_CHECK_FOP() \
+ CHECK_ARGUMENT(!GET_FLAGS(op) || !(op & SLJIT_KEEP_FLAGS)); \
+ switch (GET_OPCODE(op)) { \
+ case SLJIT_DCMP: \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_U | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
+ CHECK_ARGUMENT((op & (SLJIT_SET_E | SLJIT_SET_S))); \
break; \
default: \
/* Only SLJIT_INT_OP or SLJIT_SINGLE_OP is allowed. */ \
- SLJIT_ASSERT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
+ CHECK_ARGUMENT(!(op & (SLJIT_SET_E | SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C | SLJIT_KEEP_FLAGS))); \
break; \
}
#define FUNCTION_CHECK_IS_REG(r) \
+ (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) || \
+ ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
+
+#define FUNCTION_CHECK_IS_REG_OR_UNUSED(r) \
((r) == SLJIT_UNUSED || \
- ((r) >= SLJIT_SCRATCH_REG1 && (r) <= SLJIT_SCRATCH_REG1 - 1 + compiler->scratches) || \
- ((r) >= SLJIT_SAVED_REG1 && (r) <= SLJIT_SAVED_REG1 - 1 + compiler->saveds))
+ ((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) || \
+ ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
+
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
+#define CHECK_NOT_VIRTUAL_REGISTER(p) \
+ CHECK_ARGUMENT((p) < SLJIT_R3 || (p) > SLJIT_R6);
+#else
+#define CHECK_NOT_VIRTUAL_REGISTER(p)
+#endif
#define FUNCTION_CHECK_SRC(p, i) \
- SLJIT_ASSERT(compiler->scratches != -1 && compiler->saveds != -1); \
+ CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); \
if (FUNCTION_CHECK_IS_REG(p)) \
- SLJIT_ASSERT((i) == 0 && (p) != SLJIT_UNUSED); \
+ CHECK_ARGUMENT((i) == 0); \
else if ((p) == SLJIT_IMM) \
; \
- else if ((p) == (SLJIT_MEM1(SLJIT_LOCALS_REG))) \
- SLJIT_ASSERT((i) >= 0 && (i) < compiler->logical_local_size); \
- else if ((p) & SLJIT_MEM) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG((p) & REG_MASK)); \
+ else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \
+ CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \
+ else { \
+ CHECK_ARGUMENT((p) & SLJIT_MEM); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \
+ CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \
if ((p) & OFFS_REG_MASK) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
- SLJIT_ASSERT(!((i) & ~0x3)); \
+ CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
+ CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \
+ CHECK_ARGUMENT(!((i) & ~0x3)); \
} \
- SLJIT_ASSERT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
- } \
- else \
- SLJIT_ASSERT_STOP();
+ CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
+ }
#define FUNCTION_CHECK_DST(p, i) \
- SLJIT_ASSERT(compiler->scratches != -1 && compiler->saveds != -1); \
- if (FUNCTION_CHECK_IS_REG(p)) \
- SLJIT_ASSERT((i) == 0); \
- else if ((p) == (SLJIT_MEM1(SLJIT_LOCALS_REG))) \
- SLJIT_ASSERT((i) >= 0 && (i) < compiler->logical_local_size); \
- else if ((p) & SLJIT_MEM) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG((p) & REG_MASK)); \
+ CHECK_ARGUMENT(compiler->scratches != -1 && compiler->saveds != -1); \
+ if (FUNCTION_CHECK_IS_REG_OR_UNUSED(p)) \
+ CHECK_ARGUMENT((i) == 0); \
+ else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \
+ CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \
+ else { \
+ CHECK_ARGUMENT((p) & SLJIT_MEM); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \
+ CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \
if ((p) & OFFS_REG_MASK) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
- SLJIT_ASSERT(!((i) & ~0x3)); \
+ CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
+ CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \
+ CHECK_ARGUMENT(!((i) & ~0x3)); \
} \
- SLJIT_ASSERT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
- } \
- else \
- SLJIT_ASSERT_STOP();
+ CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
+ }
#define FUNCTION_FCHECK(p, i) \
- if ((p) >= SLJIT_FLOAT_REG1 && (p) <= SLJIT_FLOAT_REG6) \
- SLJIT_ASSERT(i == 0); \
- else if ((p) & SLJIT_MEM) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG((p) & REG_MASK)); \
+ CHECK_ARGUMENT(compiler->fscratches != -1 && compiler->fsaveds != -1); \
+ if (((p) >= SLJIT_FR0 && (p) < (SLJIT_FR0 + compiler->fscratches)) || \
+ ((p) > (SLJIT_FS0 - compiler->fsaveds) && (p) <= SLJIT_FS0)) \
+ CHECK_ARGUMENT(i == 0); \
+ else if ((p) == (SLJIT_MEM1(SLJIT_SP))) \
+ CHECK_ARGUMENT((i) >= 0 && (i) < compiler->logical_local_size); \
+ else { \
+ CHECK_ARGUMENT((p) & SLJIT_MEM); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG_OR_UNUSED((p) & REG_MASK)); \
+ CHECK_NOT_VIRTUAL_REGISTER((p) & REG_MASK); \
if ((p) & OFFS_REG_MASK) { \
- SLJIT_ASSERT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
- SLJIT_ASSERT(((p) & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_LOCALS_REG) && !(i & ~0x3)); \
- } else \
- SLJIT_ASSERT(OFFS_REG(p) == 0); \
- SLJIT_ASSERT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
- } \
- else \
- SLJIT_ASSERT_STOP();
+ CHECK_ARGUMENT(((p) & REG_MASK) != SLJIT_UNUSED); \
+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(OFFS_REG(p))); \
+ CHECK_NOT_VIRTUAL_REGISTER(OFFS_REG(p)); \
+ CHECK_ARGUMENT(((p) & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_SP) && !(i & ~0x3)); \
+ } \
+ CHECK_ARGUMENT(!((p) & ~(SLJIT_MEM | SLJIT_IMM | REG_MASK | OFFS_REG_MASK))); \
+ }
#define FUNCTION_CHECK_OP1() \
if (GET_OPCODE(op) >= SLJIT_MOVU && GET_OPCODE(op) <= SLJIT_MOVU_P) { \
- SLJIT_ASSERT(!(src & SLJIT_MEM) || (src & REG_MASK) != SLJIT_LOCALS_REG); \
- SLJIT_ASSERT(!(dst & SLJIT_MEM) || (dst & REG_MASK) != SLJIT_LOCALS_REG); \
+ CHECK_ARGUMENT(!(src & SLJIT_MEM) || (src & REG_MASK) != SLJIT_SP); \
+ CHECK_ARGUMENT(!(dst & SLJIT_MEM) || (dst & REG_MASK) != SLJIT_SP); \
if ((src & SLJIT_MEM) && (src & REG_MASK)) \
- SLJIT_ASSERT((dst & REG_MASK) != (src & REG_MASK) && OFFS_REG(dst) != (src & REG_MASK)); \
+ CHECK_ARGUMENT((dst & REG_MASK) != (src & REG_MASK) && OFFS_REG(dst) != (src & REG_MASK)); \
}
-#endif
+#endif /* SLJIT_ARGUMENT_CHECKS */
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
@@ -698,17 +771,6 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_compiler_verbose(struct sljit_compiler *comp
compiler->verbose = verbose;
}
-static char* reg_names[] = {
- (char*)"unused", (char*)"s1", (char*)"s2", (char*)"s3",
- (char*)"se1", (char*)"se2", (char*)"p1", (char*)"p2",
- (char*)"p3", (char*)"pe1", (char*)"pe2", (char*)"lc"
-};
-
-static char* freg_names[] = {
- (char*)"unused", (char*)"f1", (char*)"f2", (char*)"f3",
- (char*)"f4", (char*)"f5", (char*)"f6"
-};
-
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
#ifdef _WIN64
# define SLJIT_PRINT_D "I64"
@@ -719,69 +781,96 @@ static char* freg_names[] = {
# define SLJIT_PRINT_D ""
#endif
-#define sljit_verbose_param(p, i) \
+#define sljit_verbose_reg(compiler, r) \
+ do { \
+ if ((r) < (SLJIT_R0 + compiler->scratches)) \
+ fprintf(compiler->verbose, "r%d", (r) - SLJIT_R0); \
+ else \
+ fprintf(compiler->verbose, "s%d", SLJIT_NUMBER_OF_REGISTERS - (r)); \
+ } while (0)
+
+#define sljit_verbose_param(compiler, p, i) \
if ((p) & SLJIT_IMM) \
fprintf(compiler->verbose, "#%" SLJIT_PRINT_D "d", (i)); \
else if ((p) & SLJIT_MEM) { \
if ((p) & REG_MASK) { \
- if (i) { \
- if ((p) & OFFS_REG_MASK) \
- fprintf(compiler->verbose, "[%s + %s * %d]", reg_names[(p) & REG_MASK], reg_names[OFFS_REG(p)], 1 << (i)); \
- else \
- fprintf(compiler->verbose, "[%s + #%" SLJIT_PRINT_D "d]", reg_names[(p) & REG_MASK], (i)); \
- } \
- else { \
- if ((p) & OFFS_REG_MASK) \
- fprintf(compiler->verbose, "[%s + %s]", reg_names[(p) & REG_MASK], reg_names[OFFS_REG(p)]); \
- else \
- fprintf(compiler->verbose, "[%s]", reg_names[(p) & REG_MASK]); \
+ fputc('[', compiler->verbose); \
+ sljit_verbose_reg(compiler, (p) & REG_MASK); \
+ if ((p) & OFFS_REG_MASK) { \
+ fprintf(compiler->verbose, " + "); \
+ sljit_verbose_reg(compiler, OFFS_REG(p)); \
+ if (i) \
+ fprintf(compiler->verbose, " * %d", 1 << (i)); \
} \
+ else if (i) \
+ fprintf(compiler->verbose, " + %" SLJIT_PRINT_D "d", (i)); \
+ fputc(']', compiler->verbose); \
} \
else \
fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); \
- } else \
- fprintf(compiler->verbose, "%s", reg_names[p]);
-#define sljit_verbose_fparam(p, i) \
+ } else if (p) \
+ sljit_verbose_reg(compiler, p); \
+ else \
+ fprintf(compiler->verbose, "unused");
+
+#define sljit_verbose_fparam(compiler, p, i) \
if ((p) & SLJIT_MEM) { \
if ((p) & REG_MASK) { \
- if (i) { \
- if ((p) & OFFS_REG_MASK) \
- fprintf(compiler->verbose, "[%s + %s * %d]", reg_names[(p) & REG_MASK], reg_names[OFFS_REG(p)], 1 << (i)); \
- else \
- fprintf(compiler->verbose, "[%s + #%" SLJIT_PRINT_D "d]", reg_names[(p) & REG_MASK], (i)); \
- } \
- else { \
- if ((p) & OFFS_REG_MASK) \
- fprintf(compiler->verbose, "[%s + %s]", reg_names[(p) & REG_MASK], reg_names[OFFS_REG(p)]); \
- else \
- fprintf(compiler->verbose, "[%s]", reg_names[(p) & REG_MASK]); \
+ fputc('[', compiler->verbose); \
+ sljit_verbose_reg(compiler, (p) & REG_MASK); \
+ if ((p) & OFFS_REG_MASK) { \
+ fprintf(compiler->verbose, " + "); \
+ sljit_verbose_reg(compiler, OFFS_REG(p)); \
+ if (i) \
+ fprintf(compiler->verbose, "%d", 1 << (i)); \
} \
+ else if (i) \
+ fprintf(compiler->verbose, "%" SLJIT_PRINT_D "d", (i)); \
+ fputc(']', compiler->verbose); \
} \
else \
fprintf(compiler->verbose, "[#%" SLJIT_PRINT_D "d]", (i)); \
- } else \
- fprintf(compiler->verbose, "%s", freg_names[p]);
+ } \
+ else { \
+ if ((p) < (SLJIT_FR0 + compiler->fscratches)) \
+ fprintf(compiler->verbose, "fr%d", (p) - SLJIT_FR0); \
+ else \
+ fprintf(compiler->verbose, "fs%d", SLJIT_NUMBER_OF_FLOAT_REGISTERS - (p)); \
+ }
-static SLJIT_CONST char* op_names[] = {
- /* op0 */
+static SLJIT_CONST char* op0_names[] = {
(char*)"breakpoint", (char*)"nop",
- (char*)"umul", (char*)"smul", (char*)"udiv", (char*)"sdiv",
- /* op1 */
- (char*)"mov", (char*)"mov.ub", (char*)"mov.sb", (char*)"mov.uh",
- (char*)"mov.sh", (char*)"mov.ui", (char*)"mov.si", (char*)"mov.p",
- (char*)"movu", (char*)"movu.ub", (char*)"movu.sb", (char*)"movu.uh",
- (char*)"movu.sh", (char*)"movu.ui", (char*)"movu.si", (char*)"movu.p",
+ (char*)"lumul", (char*)"lsmul", (char*)"ludiv", (char*)"lsdiv",
+};
+
+static SLJIT_CONST char* op1_names[] = {
+ (char*)"mov", (char*)"mov_ub", (char*)"mov_sb", (char*)"mov_uh",
+ (char*)"mov_sh", (char*)"mov_ui", (char*)"mov_si", (char*)"mov_p",
+ (char*)"movu", (char*)"movu_ub", (char*)"movu_sb", (char*)"movu_uh",
+ (char*)"movu_sh", (char*)"movu_ui", (char*)"movu_si", (char*)"movu_p",
(char*)"not", (char*)"neg", (char*)"clz",
- /* op2 */
+};
+
+static SLJIT_CONST char* op2_names[] = {
(char*)"add", (char*)"addc", (char*)"sub", (char*)"subc",
(char*)"mul", (char*)"and", (char*)"or", (char*)"xor",
(char*)"shl", (char*)"lshr", (char*)"ashr",
- /* fop1 */
- (char*)"cmp", (char*)"mov", (char*)"neg", (char*)"abs",
- /* fop2 */
+};
+
+static SLJIT_CONST char* fop1_names[] = {
+ (char*)"mov", (char*)"conv", (char*)"conv", (char*)"conv",
+ (char*)"conv", (char*)"conv", (char*)"cmp", (char*)"neg",
+ (char*)"abs",
+};
+
+static SLJIT_CONST char* fop2_names[] = {
(char*)"add", (char*)"sub", (char*)"mul", (char*)"div"
};
+#define JUMP_PREFIX(type) \
+ ((type & 0xff) <= SLJIT_MUL_NOT_OVERFLOW ? ((type & SLJIT_INT_OP) ? "i_" : "") \
+ : ((type & 0xff) <= SLJIT_D_ORDERED ? ((type & SLJIT_SINGLE_OP) ? "s_" : "d_") : ""))
+
static char* jump_names[] = {
(char*)"equal", (char*)"not_equal",
(char*)"less", (char*)"greater_equal",
@@ -790,188 +879,178 @@ static char* jump_names[] = {
(char*)"sig_greater", (char*)"sig_less_equal",
(char*)"overflow", (char*)"not_overflow",
(char*)"mul_overflow", (char*)"mul_not_overflow",
- (char*)"float_equal", (char*)"float_not_equal",
- (char*)"float_less", (char*)"float_greater_equal",
- (char*)"float_greater", (char*)"float_less_equal",
- (char*)"float_unordered", (char*)"float_ordered",
+ (char*)"equal", (char*)"not_equal",
+ (char*)"less", (char*)"greater_equal",
+ (char*)"greater", (char*)"less_equal",
+ (char*)"unordered", (char*)"ordered",
(char*)"jump", (char*)"fast_call",
(char*)"call0", (char*)"call1", (char*)"call2", (char*)"call3"
};
-#endif
+#endif /* SLJIT_VERBOSE */
/* --------------------------------------------------------------------- */
/* Arch dependent */
/* --------------------------------------------------------------------- */
-static SLJIT_INLINE void check_sljit_generate_code(struct sljit_compiler *compiler)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) \
+ || (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_compiler *compiler)
{
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
struct sljit_jump *jump;
#endif
- /* If debug and verbose are disabled, all arguments are unused. */
+
SLJIT_UNUSED_ARG(compiler);
- SLJIT_ASSERT(compiler->size > 0);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(compiler->size > 0);
jump = compiler->jumps;
while (jump) {
/* All jumps have target. */
- SLJIT_ASSERT(jump->flags & (JUMP_LABEL | JUMP_ADDR));
+ CHECK_ARGUMENT(jump->flags & (JUMP_LABEL | JUMP_ADDR));
jump = jump->next;
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- /* If debug and verbose are disabled, all arguments are unused. */
SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(args);
- SLJIT_UNUSED_ARG(scratches);
- SLJIT_UNUSED_ARG(saveds);
- SLJIT_UNUSED_ARG(local_size);
- SLJIT_ASSERT(args >= 0 && args <= 3);
- SLJIT_ASSERT(scratches >= 0 && scratches <= SLJIT_NO_TMP_REGISTERS);
- SLJIT_ASSERT(saveds >= 0 && saveds <= SLJIT_NO_GEN_REGISTERS);
- SLJIT_ASSERT(args <= saveds);
- SLJIT_ASSERT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE);
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(!(options & ~SLJIT_DOUBLE_ALIGNMENT));
+ CHECK_ARGUMENT(args >= 0 && args <= 3);
+ CHECK_ARGUMENT(scratches >= 0 && scratches <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(saveds >= 0 && saveds <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(scratches + saveds <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(args <= saveds);
+ CHECK_ARGUMENT(fscratches >= 0 && fscratches <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(fsaveds >= 0 && fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(fscratches + fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE);
+#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose))
- fprintf(compiler->verbose, " enter args=%d scratches=%d saveds=%d local_size=%d\n", args, scratches, saveds, local_size);
+ fprintf(compiler->verbose, " enter options:none args:%d scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n",
+ args, scratches, saveds, fscratches, fsaveds, local_size);
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(args);
- SLJIT_UNUSED_ARG(scratches);
- SLJIT_UNUSED_ARG(saveds);
- SLJIT_UNUSED_ARG(local_size);
-
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
}
-#endif
- SLJIT_ASSERT(args >= 0 && args <= 3);
- SLJIT_ASSERT(scratches >= 0 && scratches <= SLJIT_NO_TMP_REGISTERS);
- SLJIT_ASSERT(saveds >= 0 && saveds <= SLJIT_NO_GEN_REGISTERS);
- SLJIT_ASSERT(args <= saveds);
- SLJIT_ASSERT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE);
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(!(options & ~SLJIT_DOUBLE_ALIGNMENT));
+ CHECK_ARGUMENT(args >= 0 && args <= 3);
+ CHECK_ARGUMENT(scratches >= 0 && scratches <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(saveds >= 0 && saveds <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(scratches + saveds <= SLJIT_NUMBER_OF_REGISTERS);
+ CHECK_ARGUMENT(args <= saveds);
+ CHECK_ARGUMENT(fscratches >= 0 && fscratches <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(fsaveds >= 0 && fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(fscratches + fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+ CHECK_ARGUMENT(local_size >= 0 && local_size <= SLJIT_MAX_LOCAL_SIZE);
+#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose))
- fprintf(compiler->verbose, " set_context args=%d scratches=%d saveds=%d local_size=%d\n", args, scratches, saveds, local_size);
+ fprintf(compiler->verbose, " set_context options:none args:%d scratches:%d saveds:%d fscratches:%d fsaveds:%d local_size:%d\n",
+ args, scratches, saveds, fscratches, fsaveds, local_size);
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
-
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(compiler->scratches >= 0);
if (op != SLJIT_UNUSED) {
- SLJIT_ASSERT(op >= SLJIT_MOV && op <= SLJIT_MOV_P);
+ CHECK_ARGUMENT(op >= SLJIT_MOV && op <= SLJIT_MOV_P);
FUNCTION_CHECK_SRC(src, srcw);
}
else
- SLJIT_ASSERT(src == 0 && srcw == 0);
+ CHECK_ARGUMENT(src == 0 && srcw == 0);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
if (op == SLJIT_UNUSED)
fprintf(compiler->verbose, " return\n");
else {
- fprintf(compiler->verbose, " return %s ", op_names[op]);
- sljit_verbose_param(src, srcw);
+ fprintf(compiler->verbose, " return.%s ", op1_names[op - SLJIT_OP1_BASE]);
+ sljit_verbose_param(compiler, src, srcw);
fprintf(compiler->verbose, "\n");
}
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
-
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
FUNCTION_CHECK_DST(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " fast_enter ");
- sljit_verbose_param(dst, dstw);
+ sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
-
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
FUNCTION_CHECK_SRC(src, srcw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " fast_return ");
- sljit_verbose_param(src, srcw);
+ sljit_verbose_param(compiler, src, srcw);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
-
- SLJIT_ASSERT((op >= SLJIT_BREAKPOINT && op <= SLJIT_SMUL)
- || ((op & ~SLJIT_INT_OP) >= SLJIT_UDIV && (op & ~SLJIT_INT_OP) <= SLJIT_SDIV));
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT((op >= SLJIT_BREAKPOINT && op <= SLJIT_LSMUL)
+ || ((op & ~SLJIT_INT_OP) >= SLJIT_LUDIV && (op & ~SLJIT_INT_OP) <= SLJIT_LSDIV));
+ CHECK_ARGUMENT(op < SLJIT_LUMUL || compiler->scratches >= 2);
+#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose))
- fprintf(compiler->verbose, " %s%s\n", !(op & SLJIT_INT_OP) ? "" : "i", op_names[GET_OPCODE(op)]);
+ fprintf(compiler->verbose, " %s%s\n", !(op & SLJIT_INT_OP) ? "" : "i", op0_names[GET_OPCODE(op) - SLJIT_OP0_BASE]);
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
-
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
}
-#endif
- SLJIT_ASSERT(GET_OPCODE(op) >= SLJIT_MOV && GET_OPCODE(op) <= SLJIT_CLZ);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_MOV && GET_OPCODE(op) <= SLJIT_CLZ);
FUNCTION_CHECK_OP();
FUNCTION_CHECK_SRC(src, srcw);
FUNCTION_CHECK_DST(dst, dstw);
@@ -979,41 +1058,30 @@ static SLJIT_INLINE void check_sljit_emit_op1(struct sljit_compiler *compiler, s
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %s%s%s%s%s%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i", op_names[GET_OPCODE(op)],
+ fprintf(compiler->verbose, " %s%s%s%s%s%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i", op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE],
!(op & SLJIT_SET_E) ? "" : ".e", !(op & SLJIT_SET_U) ? "" : ".u", !(op & SLJIT_SET_S) ? "" : ".s",
!(op & SLJIT_SET_O) ? "" : ".o", !(op & SLJIT_SET_C) ? "" : ".c", !(op & SLJIT_KEEP_FLAGS) ? "" : ".k");
- sljit_verbose_param(dst, dstw);
+ sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, ", ");
- sljit_verbose_param(src, srcw);
+ sljit_verbose_param(compiler, src, srcw);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(src1);
- SLJIT_UNUSED_ARG(src1w);
- SLJIT_UNUSED_ARG(src2);
- SLJIT_UNUSED_ARG(src2w);
-
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
}
-#endif
- SLJIT_ASSERT(GET_OPCODE(op) >= SLJIT_ADD && GET_OPCODE(op) <= SLJIT_ASHR);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_ADD && GET_OPCODE(op) <= SLJIT_ASHR);
FUNCTION_CHECK_OP();
FUNCTION_CHECK_SRC(src1, src1w);
FUNCTION_CHECK_SRC(src2, src2w);
@@ -1021,312 +1089,413 @@ static SLJIT_INLINE void check_sljit_emit_op2(struct sljit_compiler *compiler, s
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %s%s%s%s%s%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i", op_names[GET_OPCODE(op)],
+ fprintf(compiler->verbose, " %s%s%s%s%s%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i", op2_names[GET_OPCODE(op) - SLJIT_OP2_BASE],
!(op & SLJIT_SET_E) ? "" : ".e", !(op & SLJIT_SET_U) ? "" : ".u", !(op & SLJIT_SET_S) ? "" : ".s",
!(op & SLJIT_SET_O) ? "" : ".o", !(op & SLJIT_SET_C) ? "" : ".c", !(op & SLJIT_KEEP_FLAGS) ? "" : ".k");
- sljit_verbose_param(dst, dstw);
+ sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, ", ");
- sljit_verbose_param(src1, src1w);
+ sljit_verbose_param(compiler, src1, src1w);
fprintf(compiler->verbose, ", ");
- sljit_verbose_param(src2, src2w);
+ sljit_verbose_param(compiler, src2, src2w);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_get_register_index(sljit_si reg)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_register_index(sljit_si reg)
{
SLJIT_UNUSED_ARG(reg);
- SLJIT_ASSERT(reg > 0 && reg <= SLJIT_NO_REGISTERS);
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(reg > 0 && reg <= SLJIT_NUMBER_OF_REGISTERS);
+#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_get_float_register_index(sljit_si reg)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_float_register_index(sljit_si reg)
{
SLJIT_UNUSED_ARG(reg);
- SLJIT_ASSERT(reg > 0 && reg <= SLJIT_NO_FLOAT_REGISTERS);
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(reg > 0 && reg <= SLJIT_NUMBER_OF_FLOAT_REGISTERS);
+#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_op_custom(struct sljit_compiler *compiler,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_custom(struct sljit_compiler *compiler,
void *instruction, sljit_si size)
{
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+ int i;
+#endif
+
SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(instruction);
- SLJIT_UNUSED_ARG(size);
- SLJIT_ASSERT(instruction);
+
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(instruction);
+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
+ CHECK_ARGUMENT(size > 0 && size < 16);
+#elif (defined SLJIT_CONFIG_ARM_THUMB2 && SLJIT_CONFIG_ARM_THUMB2)
+ CHECK_ARGUMENT((size == 2 && (((sljit_sw)instruction) & 0x1) == 0)
+ || (size == 4 && (((sljit_sw)instruction) & 0x3) == 0));
+#else
+ CHECK_ARGUMENT(size == 4 && (((sljit_sw)instruction) & 0x3) == 0);
+#endif
+
+#endif
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+ if (SLJIT_UNLIKELY(!!compiler->verbose)) {
+ fprintf(compiler->verbose, " op_custom");
+ for (i = 0; i < size; i++)
+ fprintf(compiler->verbose, " 0x%x", ((sljit_ub*)instruction)[i]);
+ fprintf(compiler->verbose, "\n");
+ }
+#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
+ if (SLJIT_UNLIKELY(compiler->skip_checks)) {
+ compiler->skip_checks = 0;
+ CHECK_RETURN_OK;
+ }
+
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_DMOV && GET_OPCODE(op) <= SLJIT_DABS);
+ FUNCTION_CHECK_FOP();
+ FUNCTION_FCHECK(src, srcw);
+ FUNCTION_FCHECK(dst, dstw);
+#endif
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+ if (SLJIT_UNLIKELY(!!compiler->verbose)) {
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMS)
+ fprintf(compiler->verbose, " %s%s ", fop1_names[SLJIT_CONVD_FROMS - SLJIT_FOP1_BASE],
+ (op & SLJIT_SINGLE_OP) ? "s.fromd" : "d.froms");
+ else
+ fprintf(compiler->verbose, " %s%s ", (op & SLJIT_SINGLE_OP) ? "s" : "d",
+ fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE]);
+
+ sljit_verbose_fparam(compiler, dst, dstw);
+ fprintf(compiler->verbose, ", ");
+ sljit_verbose_fparam(compiler, src, srcw);
+ fprintf(compiler->verbose, "\n");
+ }
+#endif
+ CHECK_RETURN_OK;
+}
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
+ }
+
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(GET_OPCODE(op) == SLJIT_DCMP);
+ FUNCTION_CHECK_FOP();
+ FUNCTION_FCHECK(src1, src1w);
+ FUNCTION_FCHECK(src2, src2w);
+#endif
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+ if (SLJIT_UNLIKELY(!!compiler->verbose)) {
+ fprintf(compiler->verbose, " %s%s%s%s ", (op & SLJIT_SINGLE_OP) ? "s" : "d", fop1_names[SLJIT_DCMP - SLJIT_FOP1_BASE],
+ (op & SLJIT_SET_E) ? ".e" : "", (op & SLJIT_SET_S) ? ".s" : "");
+ sljit_verbose_fparam(compiler, src1, src1w);
+ fprintf(compiler->verbose, ", ");
+ sljit_verbose_fparam(compiler, src2, src2w);
+ fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
+}
- SLJIT_ASSERT(sljit_is_fpu_available());
- SLJIT_ASSERT(GET_OPCODE(op) >= SLJIT_CMPD && GET_OPCODE(op) <= SLJIT_ABSD);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- FUNCTION_CHECK_OP();
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ if (SLJIT_UNLIKELY(compiler->skip_checks)) {
+ compiler->skip_checks = 0;
+ CHECK_RETURN_OK;
+ }
+
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_CONVW_FROMD && GET_OPCODE(op) <= SLJIT_CONVI_FROMD);
+ FUNCTION_CHECK_FOP();
FUNCTION_FCHECK(src, srcw);
+ FUNCTION_CHECK_DST(dst, dstw);
+#endif
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
+ if (SLJIT_UNLIKELY(!!compiler->verbose)) {
+ fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE],
+ (GET_OPCODE(op) == SLJIT_CONVI_FROMD) ? "i" : "w",
+ (op & SLJIT_SINGLE_OP) ? "s" : "d");
+ sljit_verbose_param(compiler, dst, dstw);
+ fprintf(compiler->verbose, ", ");
+ sljit_verbose_fparam(compiler, src, srcw);
+ fprintf(compiler->verbose, "\n");
+ }
+#endif
+ CHECK_RETURN_OK;
+}
+
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ if (SLJIT_UNLIKELY(compiler->skip_checks)) {
+ compiler->skip_checks = 0;
+ CHECK_RETURN_OK;
+ }
+
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_CONVD_FROMW && GET_OPCODE(op) <= SLJIT_CONVD_FROMI);
+ FUNCTION_CHECK_FOP();
+ FUNCTION_CHECK_SRC(src, srcw);
FUNCTION_FCHECK(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %s%s%s%s ", op_names[GET_OPCODE(op)], (op & SLJIT_SINGLE_OP) ? "s" : "d",
- !(op & SLJIT_SET_E) ? "" : ".e", !(op & SLJIT_SET_S) ? "" : ".s");
- sljit_verbose_fparam(dst, dstw);
+ fprintf(compiler->verbose, " %s%s.from%s ", fop1_names[GET_OPCODE(op) - SLJIT_FOP1_BASE],
+ (op & SLJIT_SINGLE_OP) ? "s" : "d",
+ (GET_OPCODE(op) == SLJIT_CONVD_FROMI) ? "i" : "w");
+ sljit_verbose_fparam(compiler, dst, dstw);
fprintf(compiler->verbose, ", ");
- sljit_verbose_fparam(src, srcw);
+ sljit_verbose_param(compiler, src, srcw);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(src1);
- SLJIT_UNUSED_ARG(src1w);
- SLJIT_UNUSED_ARG(src2);
- SLJIT_UNUSED_ARG(src2w);
-
- SLJIT_ASSERT(sljit_is_fpu_available());
- SLJIT_ASSERT(GET_OPCODE(op) >= SLJIT_ADDD && GET_OPCODE(op) <= SLJIT_DIVD);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- FUNCTION_CHECK_OP();
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(GET_OPCODE(op) >= SLJIT_DADD && GET_OPCODE(op) <= SLJIT_DDIV);
+ FUNCTION_CHECK_FOP();
FUNCTION_FCHECK(src1, src1w);
FUNCTION_FCHECK(src2, src2w);
FUNCTION_FCHECK(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %s%s ", op_names[GET_OPCODE(op)], (op & SLJIT_SINGLE_OP) ? "s" : "d");
- sljit_verbose_fparam(dst, dstw);
+ fprintf(compiler->verbose, " %s%s ", (op & SLJIT_SINGLE_OP) ? "s" : "d", fop2_names[GET_OPCODE(op) - SLJIT_FOP2_BASE]);
+ sljit_verbose_fparam(compiler, dst, dstw);
fprintf(compiler->verbose, ", ");
- sljit_verbose_fparam(src1, src1w);
+ sljit_verbose_fparam(compiler, src1, src1w);
fprintf(compiler->verbose, ", ");
- sljit_verbose_fparam(src2, src2w);
+ sljit_verbose_fparam(compiler, src2, src2w);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_label(struct sljit_compiler *compiler)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_label(struct sljit_compiler *compiler)
{
- /* If debug and verbose are disabled, all arguments are unused. */
SLJIT_UNUSED_ARG(compiler);
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose))
fprintf(compiler->verbose, "label:\n");
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_jump(struct sljit_compiler *compiler, sljit_si type)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compiler *compiler, sljit_si type)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(type);
-
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
}
-#endif
- SLJIT_ASSERT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP)));
- SLJIT_ASSERT((type & 0xff) >= SLJIT_C_EQUAL && (type & 0xff) <= SLJIT_CALL3);
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_INT_OP)));
+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_CALL3);
+ CHECK_ARGUMENT((type & 0xff) < SLJIT_JUMP || !(type & SLJIT_INT_OP));
+ CHECK_ARGUMENT((type & 0xff) <= SLJIT_CALL0 || ((type & 0xff) - SLJIT_CALL0) <= compiler->scratches);
+#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose))
- fprintf(compiler->verbose, " jump%s.%s\n", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", jump_names[type & 0xff]);
+ fprintf(compiler->verbose, " jump%s.%s%s\n", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r",
+ JUMP_PREFIX(type), jump_names[type & 0xff]);
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_si type,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler *compiler, sljit_si type,
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(type);
- SLJIT_UNUSED_ARG(src1);
- SLJIT_UNUSED_ARG(src1w);
- SLJIT_UNUSED_ARG(src2);
- SLJIT_UNUSED_ARG(src2w);
-
- SLJIT_ASSERT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_INT_OP)));
- SLJIT_ASSERT((type & 0xff) >= SLJIT_C_EQUAL && (type & 0xff) <= SLJIT_C_SIG_LESS_EQUAL);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_INT_OP)));
+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_SIG_LESS_EQUAL);
FUNCTION_CHECK_SRC(src1, src1w);
FUNCTION_CHECK_SRC(src2, src2w);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %scmp%s.%s ", !(type & SLJIT_INT_OP) ? "" : "i", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", jump_names[type & 0xff]);
- sljit_verbose_param(src1, src1w);
+ fprintf(compiler->verbose, " cmp%s.%s%s ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r",
+ (type & SLJIT_INT_OP) ? "i_" : "", jump_names[type & 0xff]);
+ sljit_verbose_param(compiler, src1, src1w);
fprintf(compiler->verbose, ", ");
- sljit_verbose_param(src2, src2w);
+ sljit_verbose_param(compiler, src2, src2w);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_si type,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_si type,
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(type);
- SLJIT_UNUSED_ARG(src1);
- SLJIT_UNUSED_ARG(src1w);
- SLJIT_UNUSED_ARG(src2);
- SLJIT_UNUSED_ARG(src2w);
-
- SLJIT_ASSERT(sljit_is_fpu_available());
- SLJIT_ASSERT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_SINGLE_OP)));
- SLJIT_ASSERT((type & 0xff) >= SLJIT_C_FLOAT_EQUAL && (type & 0xff) <= SLJIT_C_FLOAT_ORDERED);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(sljit_is_fpu_available());
+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_REWRITABLE_JUMP | SLJIT_SINGLE_OP)));
+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_D_EQUAL && (type & 0xff) <= SLJIT_D_ORDERED);
FUNCTION_FCHECK(src1, src1w);
FUNCTION_FCHECK(src2, src2w);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %scmp%s.%s ", (type & SLJIT_SINGLE_OP) ? "s" : "d",
- !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r", jump_names[type & 0xff]);
- sljit_verbose_fparam(src1, src1w);
+ fprintf(compiler->verbose, " fcmp%s.%s%s ", !(type & SLJIT_REWRITABLE_JUMP) ? "" : ".r",
+ (type & SLJIT_SINGLE_OP) ? "s_" : "d_", jump_names[type & 0xff]);
+ sljit_verbose_fparam(compiler, src1, src1w);
fprintf(compiler->verbose, ", ");
- sljit_verbose_fparam(src2, src2w);
+ sljit_verbose_fparam(compiler, src2, src2w);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit_si type, sljit_si src, sljit_sw srcw)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler *compiler, sljit_si type, sljit_si src, sljit_sw srcw)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(type);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
-
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
if (SLJIT_UNLIKELY(compiler->skip_checks)) {
compiler->skip_checks = 0;
- return;
+ CHECK_RETURN_OK;
}
-#endif
- SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL3);
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(type >= SLJIT_JUMP && type <= SLJIT_CALL3);
+ CHECK_ARGUMENT(type <= SLJIT_CALL0 || (type - SLJIT_CALL0) <= compiler->scratches);
FUNCTION_CHECK_SRC(src, srcw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " ijump.%s ", jump_names[type]);
- sljit_verbose_param(src, srcw);
+ sljit_verbose_param(compiler, src, srcw);
fprintf(compiler->verbose, "\n");
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw,
sljit_si type)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(op);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(src);
- SLJIT_UNUSED_ARG(srcw);
- SLJIT_UNUSED_ARG(type);
-
- SLJIT_ASSERT(type >= SLJIT_C_EQUAL && type < SLJIT_JUMP);
- SLJIT_ASSERT(op == SLJIT_MOV || GET_OPCODE(op) == SLJIT_MOV_UI || GET_OPCODE(op) == SLJIT_MOV_SI
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_INT_OP)));
+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_D_ORDERED);
+ CHECK_ARGUMENT(op == SLJIT_MOV || GET_OPCODE(op) == SLJIT_MOV_UI || GET_OPCODE(op) == SLJIT_MOV_SI
|| (GET_OPCODE(op) >= SLJIT_AND && GET_OPCODE(op) <= SLJIT_XOR));
- SLJIT_ASSERT((op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C)) == 0);
- SLJIT_ASSERT((op & (SLJIT_SET_E | SLJIT_KEEP_FLAGS)) != (SLJIT_SET_E | SLJIT_KEEP_FLAGS));
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+ CHECK_ARGUMENT((op & (SLJIT_SET_U | SLJIT_SET_S | SLJIT_SET_O | SLJIT_SET_C)) == 0);
+ CHECK_ARGUMENT((op & (SLJIT_SET_E | SLJIT_KEEP_FLAGS)) != (SLJIT_SET_E | SLJIT_KEEP_FLAGS));
if (GET_OPCODE(op) < SLJIT_ADD) {
- SLJIT_ASSERT(src == SLJIT_UNUSED && srcw == 0);
+ CHECK_ARGUMENT(src == SLJIT_UNUSED && srcw == 0);
} else {
- SLJIT_ASSERT(src == dst && srcw == dstw);
+ CHECK_ARGUMENT(src == dst && srcw == dstw);
}
FUNCTION_CHECK_DST(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
- fprintf(compiler->verbose, " %sflags.%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i",
- op_names[GET_OPCODE(op)], !(op & SLJIT_SET_E) ? "" : ".e", !(op & SLJIT_KEEP_FLAGS) ? "" : ".k");
- sljit_verbose_param(dst, dstw);
+ fprintf(compiler->verbose, " flags.%s%s%s%s ", !(op & SLJIT_INT_OP) ? "" : "i",
+ GET_OPCODE(op) >= SLJIT_OP2_BASE ? op2_names[GET_OPCODE(op) - SLJIT_OP2_BASE] : op1_names[GET_OPCODE(op) - SLJIT_OP1_BASE],
+ !(op & SLJIT_SET_E) ? "" : ".e", !(op & SLJIT_KEEP_FLAGS) ? "" : ".k");
+ sljit_verbose_param(compiler, dst, dstw);
if (src != SLJIT_UNUSED) {
fprintf(compiler->verbose, ", ");
- sljit_verbose_param(src, srcw);
+ sljit_verbose_param(compiler, src, srcw);
}
- fprintf(compiler->verbose, ", %s\n", jump_names[type]);
+ fprintf(compiler->verbose, ", %s%s\n", JUMP_PREFIX(type), jump_names[type & 0xff]);
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset)
{
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(offset);
-
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
FUNCTION_CHECK_DST(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " local_base ");
- sljit_verbose_param(dst, dstw);
+ sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", offset);
}
#endif
+ CHECK_RETURN_OK;
}
-static SLJIT_INLINE void check_sljit_emit_const(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw init_value)
+static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw init_value)
{
- /* If debug and verbose are disabled, all arguments are unused. */
- SLJIT_UNUSED_ARG(compiler);
- SLJIT_UNUSED_ARG(dst);
- SLJIT_UNUSED_ARG(dstw);
- SLJIT_UNUSED_ARG(init_value);
-
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
FUNCTION_CHECK_DST(dst, dstw);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " const ");
- sljit_verbose_param(dst, dstw);
+ sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value);
}
#endif
+ CHECK_RETURN_OK;
}
+#endif /* SLJIT_ARGUMENT_CHECKS || SLJIT_VERBOSE */
+
+#define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \
+ SLJIT_COMPILE_ASSERT(!(SLJIT_CONVW_FROMD & 0x1) && !(SLJIT_CONVD_FROMW & 0x1), \
+ invalid_float_opcodes); \
+ if (GET_OPCODE(op) >= SLJIT_CONVW_FROMD && GET_OPCODE(op) <= SLJIT_DCMP) { \
+ if (GET_OPCODE(op) == SLJIT_DCMP) { \
+ CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \
+ ADJUST_LOCAL_OFFSET(dst, dstw); \
+ ADJUST_LOCAL_OFFSET(src, srcw); \
+ return sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw); \
+ } \
+ if ((GET_OPCODE(op) | 0x1) == SLJIT_CONVI_FROMD) { \
+ CHECK(check_sljit_emit_fop1_convw_fromd(compiler, op, dst, dstw, src, srcw)); \
+ ADJUST_LOCAL_OFFSET(dst, dstw); \
+ ADJUST_LOCAL_OFFSET(src, srcw); \
+ return sljit_emit_fop1_convw_fromd(compiler, op, dst, dstw, src, srcw); \
+ } \
+ CHECK(check_sljit_emit_fop1_convd_fromw(compiler, op, dst, dstw, src, srcw)); \
+ ADJUST_LOCAL_OFFSET(dst, dstw); \
+ ADJUST_LOCAL_OFFSET(src, srcw); \
+ return sljit_emit_fop1_convd_fromw(compiler, op, dst, dstw, src, srcw); \
+ } \
+ CHECK(check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw)); \
+ ADJUST_LOCAL_OFFSET(dst, dstw); \
+ ADJUST_LOCAL_OFFSET(src, srcw);
+
static SLJIT_INLINE sljit_si emit_mov_before_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
/* Return if don't need to do anything. */
@@ -1342,7 +1511,8 @@ static SLJIT_INLINE sljit_si emit_mov_before_return(struct sljit_compiler *compi
return SLJIT_SUCCESS;
#endif
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) \
+ || (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
compiler->skip_checks = 1;
#endif
return sljit_emit_op1(compiler, op, SLJIT_RETURN_REG, 0, src, srcw);
@@ -1374,9 +1544,7 @@ static SLJIT_INLINE sljit_si emit_mov_before_return(struct sljit_compiler *compi
#define SLJIT_CPUINFO SLJIT_CPUINFO_PART1 SLJIT_CPUINFO_PART2 SLJIT_CPUINFO_PART3
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
-# include "sljitNativeX86_common.c"
-#elif (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
# include "sljitNativeX86_common.c"
#elif (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
# include "sljitNativeARM_32.c"
@@ -1386,21 +1554,17 @@ static SLJIT_INLINE sljit_si emit_mov_before_return(struct sljit_compiler *compi
# include "sljitNativeARM_T2_32.c"
#elif (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
# include "sljitNativeARM_64.c"
-#elif (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32)
+#elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC)
# include "sljitNativePPC_common.c"
-#elif (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
-# include "sljitNativePPC_common.c"
-#elif (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
-# include "sljitNativeMIPS_common.c"
-#elif (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#elif (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
# include "sljitNativeMIPS_common.c"
-#elif (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
+#elif (defined SLJIT_CONFIG_SPARC && SLJIT_CONFIG_SPARC)
# include "sljitNativeSPARC_common.c"
#elif (defined SLJIT_CONFIG_TILEGX && SLJIT_CONFIG_TILEGX)
# include "sljitNativeTILEGX_64.c"
#endif
-#if !(defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) && !(defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#if !(defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_si type,
sljit_si src1, sljit_sw src1w,
@@ -1411,11 +1575,11 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
sljit_sw tmp_srcw;
CHECK_ERROR_PTR();
- check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w);
+ CHECK_PTR(check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w));
condition = type & 0xff;
#if (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
- if ((condition == SLJIT_C_EQUAL || condition == SLJIT_C_NOT_EQUAL)) {
+ if ((condition == SLJIT_EQUAL || condition == SLJIT_NOT_EQUAL)) {
if ((src1 & SLJIT_IMM) && !src1w) {
src1 = src2;
src1w = src2w;
@@ -1430,29 +1594,29 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
if (SLJIT_UNLIKELY((src1 & SLJIT_IMM) && !(src2 & SLJIT_IMM))) {
/* Immediate is prefered as second argument by most architectures. */
switch (condition) {
- case SLJIT_C_LESS:
- condition = SLJIT_C_GREATER;
+ case SLJIT_LESS:
+ condition = SLJIT_GREATER;
break;
- case SLJIT_C_GREATER_EQUAL:
- condition = SLJIT_C_LESS_EQUAL;
+ case SLJIT_GREATER_EQUAL:
+ condition = SLJIT_LESS_EQUAL;
break;
- case SLJIT_C_GREATER:
- condition = SLJIT_C_LESS;
+ case SLJIT_GREATER:
+ condition = SLJIT_LESS;
break;
- case SLJIT_C_LESS_EQUAL:
- condition = SLJIT_C_GREATER_EQUAL;
+ case SLJIT_LESS_EQUAL:
+ condition = SLJIT_GREATER_EQUAL;
break;
- case SLJIT_C_SIG_LESS:
- condition = SLJIT_C_SIG_GREATER;
+ case SLJIT_SIG_LESS:
+ condition = SLJIT_SIG_GREATER;
break;
- case SLJIT_C_SIG_GREATER_EQUAL:
- condition = SLJIT_C_SIG_LESS_EQUAL;
+ case SLJIT_SIG_GREATER_EQUAL:
+ condition = SLJIT_SIG_LESS_EQUAL;
break;
- case SLJIT_C_SIG_GREATER:
- condition = SLJIT_C_SIG_LESS;
+ case SLJIT_SIG_GREATER:
+ condition = SLJIT_SIG_LESS;
break;
- case SLJIT_C_SIG_LESS_EQUAL:
- condition = SLJIT_C_SIG_GREATER_EQUAL;
+ case SLJIT_SIG_LESS_EQUAL:
+ condition = SLJIT_SIG_GREATER_EQUAL;
break;
}
type = condition | (type & (SLJIT_INT_OP | SLJIT_REWRITABLE_JUMP));
@@ -1464,19 +1628,21 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
src2w = tmp_srcw;
}
- if (condition <= SLJIT_C_NOT_ZERO)
+ if (condition <= SLJIT_NOT_ZERO)
flags = SLJIT_SET_E;
- else if (condition <= SLJIT_C_LESS_EQUAL)
+ else if (condition <= SLJIT_LESS_EQUAL)
flags = SLJIT_SET_U;
else
flags = SLJIT_SET_S;
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
PTR_FAIL_IF(sljit_emit_op2(compiler, SLJIT_SUB | flags | (type & SLJIT_INT_OP),
SLJIT_UNUSED, 0, src1, src1w, src2, src2w));
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_jump(compiler, condition | (type & SLJIT_REWRITABLE_JUMP));
@@ -1488,19 +1654,22 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compile
{
sljit_si flags, condition;
- check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w);
+ CHECK_ERROR_PTR();
+ CHECK_PTR(check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w));
condition = type & 0xff;
- flags = (condition <= SLJIT_C_FLOAT_NOT_EQUAL) ? SLJIT_SET_E : SLJIT_SET_S;
+ flags = (condition <= SLJIT_D_NOT_EQUAL) ? SLJIT_SET_E : SLJIT_SET_S;
if (type & SLJIT_SINGLE_OP)
flags |= SLJIT_SINGLE_OP;
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
- sljit_emit_fop1(compiler, SLJIT_CMPD | flags, src1, src1w, src2, src2w);
+ sljit_emit_fop1(compiler, SLJIT_DCMP | flags, src1, src1w, src2, src2w);
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_jump(compiler, condition | (type & SLJIT_REWRITABLE_JUMP));
@@ -1508,20 +1677,21 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compile
#endif
-#if !(defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) && !(defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#if !(defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset)
{
CHECK_ERROR();
- check_sljit_get_local_base(compiler, dst, dstw, offset);
+ CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset));
- ADJUST_LOCAL_OFFSET(SLJIT_MEM1(SLJIT_LOCALS_REG), offset);
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+ ADJUST_LOCAL_OFFSET(SLJIT_MEM1(SLJIT_SP), offset);
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
if (offset != 0)
- return sljit_emit_op2(compiler, SLJIT_ADD | SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_LOCALS_REG, 0, SLJIT_IMM, offset);
- return sljit_emit_op1(compiler, SLJIT_MOV, dst, dstw, SLJIT_LOCALS_REG, 0);
+ return sljit_emit_op2(compiler, SLJIT_ADD | SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_SP, 0, SLJIT_IMM, offset);
+ return sljit_emit_op1(compiler, SLJIT_MOV, dst, dstw, SLJIT_SP, 0);
}
#endif
@@ -1577,25 +1747,36 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_code(void* code)
SLJIT_ASSERT_STOP();
}
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
SLJIT_UNUSED_ARG(compiler);
+ SLJIT_UNUSED_ARG(options);
SLJIT_UNUSED_ARG(args);
SLJIT_UNUSED_ARG(scratches);
SLJIT_UNUSED_ARG(saveds);
+ SLJIT_UNUSED_ARG(fscratches);
+ SLJIT_UNUSED_ARG(fsaveds);
SLJIT_UNUSED_ARG(local_size);
SLJIT_ASSERT_STOP();
return SLJIT_ERR_UNSUPPORTED;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
SLJIT_UNUSED_ARG(compiler);
+ SLJIT_UNUSED_ARG(options);
SLJIT_UNUSED_ARG(args);
SLJIT_UNUSED_ARG(scratches);
SLJIT_UNUSED_ARG(saveds);
+ SLJIT_UNUSED_ARG(fscratches);
+ SLJIT_UNUSED_ARG(fsaveds);
SLJIT_UNUSED_ARG(local_size);
SLJIT_ASSERT_STOP();
+ return SLJIT_ERR_UNSUPPORTED;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
diff --git a/src/3rdparty/pcre/sljit/sljitLir.h b/src/3rdparty/pcre/sljit/sljitLir.h
index e2cd21846d..79f1d102c1 100644
--- a/src/3rdparty/pcre/sljit/sljitLir.h
+++ b/src/3rdparty/pcre/sljit/sljitLir.h
@@ -56,8 +56,6 @@
Disadvantages:
- No automatic register allocation, and temporary results are
not stored on the stack. (hence the name comes)
- - Limited number of registers (only 6+4 integer registers, max 3+2
- scratch, max 3+2 saved and 6 floating point registers)
In practice:
- This approach is very effective for interpreters
- One of the saved registers typically points to a stack interface
@@ -97,83 +95,178 @@ of sljitConfigInternal.h */
/* Cannot allocate executable memory.
Only for sljit_generate_code() */
#define SLJIT_ERR_EX_ALLOC_FAILED 3
-/* return value for SLJIT_CONFIG_UNSUPPORTED empty architecture. */
+/* Return value for SLJIT_CONFIG_UNSUPPORTED placeholder architecture. */
#define SLJIT_ERR_UNSUPPORTED 4
+/* An ivalid argument is passed to any SLJIT function. */
+#define SLJIT_ERR_BAD_ARGUMENT 5
/* --------------------------------------------------------------------- */
/* Registers */
/* --------------------------------------------------------------------- */
+/*
+ Scratch (R) registers: registers whose may not preserve their values
+ across function calls.
+
+ Saved (S) registers: registers whose preserve their values across
+ function calls.
+
+ The scratch and saved register sets are overlap. The last scratch register
+ is the first saved register, the one before the last is the second saved
+ register, and so on.
+
+ If an architecture provides two scratch and three saved registers,
+ its scratch and saved register sets are the following:
+
+ R0 | [S4] | R0 and S4 represent the same physical register
+ R1 | [S3] | R1 and S3 represent the same physical register
+ [R2] | S2 | R2 and S2 represent the same physical register
+ [R3] | S1 | R3 and S1 represent the same physical register
+ [R4] | S0 | R4 and S0 represent the same physical register
+
+ Note: SLJIT_NUMBER_OF_SCRATCH_REGISTERS would be 2 and
+ SLJIT_NUMBER_OF_SAVED_REGISTERS would be 3 for this architecture.
+
+ Note: On all supported architectures SLJIT_NUMBER_OF_REGISTERS >= 10
+ and SLJIT_NUMBER_OF_SAVED_REGISTERS >= 5. However, 4 registers
+ are virtual on x86-32. See below.
+
+ The purpose of this definition is convenience. Although a register
+ is either scratch register or saved register, SLJIT allows accessing
+ them from the other set. For example, four registers can be used as
+ scratch registers and the fifth one as saved register on the architecture
+ above. Of course the last two scratch registers (R2 and R3) from this
+ four will be saved on the stack, because they are defined as saved
+ registers in the application binary interface. Still R2 and R3 can be
+ used for referencing to these registers instead of S2 and S1, which
+ makes easier to write platform independent code. Scratch registers
+ can be saved registers in a similar way, but these extra saved
+ registers will not be preserved across function calls! Hence the
+ application must save them on those platforms, where the number of
+ saved registers is too low. This can be done by copy them onto
+ the stack and restore them after a function call.
+
+ Note: To emphasize that registers assigned to R2-R4 are saved
+ registers, they are enclosed by square brackets. S3-S4
+ are marked in a similar way.
+
+ Note: sljit_emit_enter and sljit_set_context defines whether a register
+ is S or R register. E.g: when 3 scratches and 1 saved is mapped
+ by sljit_emit_enter, the allowed register set will be: R0-R2 and
+ S0. Although S2 is mapped to the same position as R2, it does not
+ available in the current configuration. Furthermore the R3 (S1)
+ register does not available as well.
+*/
+
+/* When SLJIT_UNUSED is specified as destination, the result is discarded. */
#define SLJIT_UNUSED 0
-/* Scratch (temporary) registers whose may not preserve their values
- across function calls. */
-#define SLJIT_SCRATCH_REG1 1
-#define SLJIT_SCRATCH_REG2 2
-#define SLJIT_SCRATCH_REG3 3
-/* Note: extra registers cannot be used for memory addressing. */
-/* Note: on x86-32, these registers are emulated (using stack
- loads & stores). */
-#define SLJIT_TEMPORARY_EREG1 4
-#define SLJIT_TEMPORARY_EREG2 5
-
-/* Saved registers whose preserve their values across function calls. */
-#define SLJIT_SAVED_REG1 6
-#define SLJIT_SAVED_REG2 7
-#define SLJIT_SAVED_REG3 8
-/* Note: extra registers cannot be used for memory addressing. */
-/* Note: on x86-32, these registers are emulated (using stack
- loads & stores). */
-#define SLJIT_SAVED_EREG1 9
-#define SLJIT_SAVED_EREG2 10
-
-/* Read-only register (cannot be the destination of an operation).
- Only SLJIT_MEM1(SLJIT_LOCALS_REG) addressing mode is allowed since
- several ABIs has certain limitations about the stack layout. However
- sljit_get_local_base() can be used to obtain the offset of a value
- on the stack. */
-#define SLJIT_LOCALS_REG 11
-
-/* Number of registers. */
-#define SLJIT_NO_TMP_REGISTERS 5
-#define SLJIT_NO_GEN_REGISTERS 5
-#define SLJIT_NO_REGISTERS 11
+/* Scratch registers. */
+#define SLJIT_R0 1
+#define SLJIT_R1 2
+#define SLJIT_R2 3
+/* Note: on x86-32, R3 - R6 (same as S3 - S6) are emulated (they
+ are allocated on the stack). These registers are called virtual
+ and cannot be used for memory addressing (cannot be part of
+ any SLJIT_MEM1, SLJIT_MEM2 construct). There is no such
+ limitation on other CPUs. See sljit_get_register_index(). */
+#define SLJIT_R3 4
+#define SLJIT_R4 5
+#define SLJIT_R5 6
+#define SLJIT_R6 7
+#define SLJIT_R7 8
+#define SLJIT_R8 9
+#define SLJIT_R9 10
+/* All R registers provided by the architecture can be accessed by SLJIT_R(i)
+ The i parameter must be >= 0 and < SLJIT_NUMBER_OF_REGISTERS. */
+#define SLJIT_R(i) (1 + (i))
+
+/* Saved registers. */
+#define SLJIT_S0 (SLJIT_NUMBER_OF_REGISTERS)
+#define SLJIT_S1 (SLJIT_NUMBER_OF_REGISTERS - 1)
+#define SLJIT_S2 (SLJIT_NUMBER_OF_REGISTERS - 2)
+/* Note: on x86-32, S3 - S6 (same as R3 - R6) are emulated (they
+ are allocated on the stack). These registers are called virtual
+ and cannot be used for memory addressing (cannot be part of
+ any SLJIT_MEM1, SLJIT_MEM2 construct). There is no such
+ limitation on other CPUs. See sljit_get_register_index(). */
+#define SLJIT_S3 (SLJIT_NUMBER_OF_REGISTERS - 3)
+#define SLJIT_S4 (SLJIT_NUMBER_OF_REGISTERS - 4)
+#define SLJIT_S5 (SLJIT_NUMBER_OF_REGISTERS - 5)
+#define SLJIT_S6 (SLJIT_NUMBER_OF_REGISTERS - 6)
+#define SLJIT_S7 (SLJIT_NUMBER_OF_REGISTERS - 7)
+#define SLJIT_S8 (SLJIT_NUMBER_OF_REGISTERS - 8)
+#define SLJIT_S9 (SLJIT_NUMBER_OF_REGISTERS - 9)
+/* All S registers provided by the architecture can be accessed by SLJIT_S(i)
+ The i parameter must be >= 0 and < SLJIT_NUMBER_OF_SAVED_REGISTERS. */
+#define SLJIT_S(i) (SLJIT_NUMBER_OF_REGISTERS - (i))
+
+/* Registers >= SLJIT_FIRST_SAVED_REG are saved registers. */
+#define SLJIT_FIRST_SAVED_REG (SLJIT_S0 - SLJIT_NUMBER_OF_SAVED_REGISTERS + 1)
+
+/* The SLJIT_SP provides direct access to the linear stack space allocated by
+ sljit_emit_enter. It can only be used in the following form: SLJIT_MEM1(SLJIT_SP).
+ The immediate offset is extended by the relative stack offset automatically.
+ The sljit_get_local_base can be used to obtain the absolute offset. */
+#define SLJIT_SP (SLJIT_NUMBER_OF_REGISTERS + 1)
/* Return with machine word. */
-#define SLJIT_RETURN_REG SLJIT_SCRATCH_REG1
+#define SLJIT_RETURN_REG SLJIT_R0
/* x86 prefers specific registers for special purposes. In case of shift
- by register it supports only SLJIT_SCRATCH_REG3 for shift argument
+ by register it supports only SLJIT_R2 for shift argument
(which is the src2 argument of sljit_emit_op2). If another register is
used, sljit must exchange data between registers which cause a minor
slowdown. Other architectures has no such limitation. */
-#define SLJIT_PREF_SHIFT_REG SLJIT_SCRATCH_REG3
+#define SLJIT_PREF_SHIFT_REG SLJIT_R2
/* --------------------------------------------------------------------- */
/* Floating point registers */
/* --------------------------------------------------------------------- */
-/* Note: SLJIT_UNUSED as destination is not valid for floating point
- operations, since they cannot be used for setting flags. */
-
-/* Floating point operations are performed on double or
- single precision values. */
-
-#define SLJIT_FLOAT_REG1 1
-#define SLJIT_FLOAT_REG2 2
-#define SLJIT_FLOAT_REG3 3
-#define SLJIT_FLOAT_REG4 4
-#define SLJIT_FLOAT_REG5 5
-#define SLJIT_FLOAT_REG6 6
+/* Each floating point register can store a double or single precision
+ value. The FR and FS register sets are overlap in the same way as R
+ and S register sets. See above. */
-#define SLJIT_NO_FLOAT_REGISTERS 6
+/* Note: SLJIT_UNUSED as destination is not valid for floating point
+ operations, since they cannot be used for setting flags. */
+
+/* Floating point scratch registers. */
+#define SLJIT_FR0 1
+#define SLJIT_FR1 2
+#define SLJIT_FR2 3
+#define SLJIT_FR3 4
+#define SLJIT_FR4 5
+#define SLJIT_FR5 6
+/* All FR registers provided by the architecture can be accessed by SLJIT_FR(i)
+ The i parameter must be >= 0 and < SLJIT_NUMBER_OF_FLOAT_REGISTERS. */
+#define SLJIT_FR(i) (1 + (i))
+
+/* Floating point saved registers. */
+#define SLJIT_FS0 (SLJIT_NUMBER_OF_FLOAT_REGISTERS)
+#define SLJIT_FS1 (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 1)
+#define SLJIT_FS2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 2)
+#define SLJIT_FS3 (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 3)
+#define SLJIT_FS4 (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 4)
+#define SLJIT_FS5 (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 5)
+/* All S registers provided by the architecture can be accessed by SLJIT_FS(i)
+ The i parameter must be >= 0 and < SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS. */
+#define SLJIT_FS(i) (SLJIT_NUMBER_OF_FLOAT_REGISTERS - (i))
+
+/* Float registers >= SLJIT_FIRST_SAVED_FLOAT_REG are saved registers. */
+#define SLJIT_FIRST_SAVED_FLOAT_REG (SLJIT_FS0 - SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS + 1)
/* --------------------------------------------------------------------- */
/* Main structures and functions */
/* --------------------------------------------------------------------- */
+/*
+ The following structures are private, and can be changed in the
+ future. Keeping them here allows code inlining.
+*/
+
struct sljit_memory_fragment {
struct sljit_memory_fragment *next;
sljit_uw used_size;
@@ -205,6 +298,7 @@ struct sljit_const {
struct sljit_compiler {
sljit_si error;
+ sljit_si options;
struct sljit_label *labels;
struct sljit_jump *jumps;
@@ -213,13 +307,18 @@ struct sljit_compiler {
struct sljit_jump *last_jump;
struct sljit_const *last_const;
+ void *allocator_data;
struct sljit_memory_fragment *buf;
struct sljit_memory_fragment *abuf;
- /* Used local registers. */
+ /* Used scratch registers. */
sljit_si scratches;
/* Used saved registers. */
sljit_si saveds;
+ /* Used float scratch registers. */
+ sljit_si fscratches;
+ /* Used float saved registers. */
+ sljit_si fsaveds;
/* Local stack size. */
sljit_si local_size;
/* Code size. */
@@ -229,16 +328,13 @@ struct sljit_compiler {
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
sljit_si args;
- sljit_si locals_offset;
- sljit_si scratches_start;
- sljit_si saveds_start;
#endif
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
sljit_si mode32;
#endif
-#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
sljit_si flags_saved;
#endif
@@ -266,18 +362,17 @@ struct sljit_compiler {
#endif
#if (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64)
- sljit_si locals_offset;
sljit_si cache_arg;
sljit_sw cache_argw;
#endif
-#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32) || (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#if (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC)
sljit_sw imm;
sljit_si cache_arg;
sljit_sw cache_argw;
#endif
-#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32) || (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
+#if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
sljit_si delay_slot;
sljit_si cache_arg;
sljit_sw cache_argw;
@@ -298,12 +393,15 @@ struct sljit_compiler {
FILE* verbose;
#endif
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) \
+ || (defined SLJIT_DEBUG && SLJIT_DEBUG)
/* Local size passed to the functions. */
sljit_si logical_local_size;
#endif
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) \
+ || (defined SLJIT_DEBUG && SLJIT_DEBUG) \
+ || (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
sljit_si skip_checks;
#endif
};
@@ -312,11 +410,16 @@ struct sljit_compiler {
/* Main functions */
/* --------------------------------------------------------------------- */
-/* Creates an sljit compiler.
+/* Creates an sljit compiler. The allocator_data is required by some
+ custom memory managers. This pointer is passed to SLJIT_MALLOC
+ and SLJIT_FREE macros. Most allocators (including the default
+ one) ignores this value, and it is recommended to pass NULL
+ as a dummy value for allocator_data.
+
Returns NULL if failed. */
-SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void);
+SLJIT_API_FUNC_ATTRIBUTE struct sljit_compiler* sljit_create_compiler(void *allocator_data);
-/* Free everything except the compiled machine code. */
+/* Frees everything except the compiled machine code. */
SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compiler);
/* Returns the current error code. If an error is occurred, future sljit
@@ -326,6 +429,12 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_compiler(struct sljit_compiler *compile
these checks increases the performance of the compiling process. */
static SLJIT_INLINE sljit_si sljit_get_compiler_error(struct sljit_compiler *compiler) { return compiler->error; }
+/* Sets the compiler error code to SLJIT_ERR_ALLOC_FAILED. After
+ the error code is set, the compiler behaves as if itself detected
+ an allocation failure. This can greatly simplify error management,
+ since only the compiler needs to be checked after compilation. */
+static SLJIT_INLINE void sljit_set_compiler_memory_error(struct sljit_compiler *compiler) { compiler->error = SLJIT_ERR_ALLOC_FAILED; }
+
/*
Allocate a small amount of memory. The size must be <= 64 bytes on 32 bit,
and <= 128 bytes on 64 bit architectures. The memory area is owned by the
@@ -361,46 +470,69 @@ static SLJIT_INLINE sljit_uw sljit_get_generated_code_size(struct sljit_compiler
error, they return with SLJIT_SUCCESS. */
/*
- The executable code is basically a function call from the viewpoint of
- the C language. The function calls must obey to the ABI (Application
- Binary Interface) of the platform, which specify the purpose of machine
- registers and stack handling among other things. The sljit_emit_enter
- function emits the necessary instructions for setting up a new context
- for the executable code and moves function arguments to the saved
- registers. The number of arguments are specified in the "args"
- parameter and the first argument goes to SLJIT_SAVED_REG1, the second
- goes to SLJIT_SAVED_REG2 and so on. The number of scratch and
- saved registers are passed in "scratches" and "saveds" arguments
- respectively. Since the saved registers contains the arguments,
- "args" must be less or equal than "saveds". The sljit_emit_enter
- is also capable of allocating a stack space for local variables. The
- "local_size" argument contains the size in bytes of this local area
- and its staring address is stored in SLJIT_LOCALS_REG. However
- the SLJIT_LOCALS_REG is not necessary the machine stack pointer.
- The memory bytes between SLJIT_LOCALS_REG (inclusive) and
- SLJIT_LOCALS_REG + local_size (exclusive) can be modified freely
- until the function returns. The stack space is uninitialized.
+ The executable code is a function call from the viewpoint of the C
+ language. The function calls must obey to the ABI (Application
+ Binary Interface) of the platform, which specify the purpose of
+ all machine registers and stack handling among other things. The
+ sljit_emit_enter function emits the necessary instructions for
+ setting up a new context for the executable code and moves function
+ arguments to the saved registers. Furthermore the options argument
+ can be used to pass configuration options to the compiler. The
+ available options are listed before sljit_emit_enter.
+
+ The number of sljit_sw arguments passed to the generated function
+ are specified in the "args" parameter. The number of arguments must
+ be less than or equal to 3. The first argument goes to SLJIT_S0,
+ the second goes to SLJIT_S1 and so on. The register set used by
+ the function must be declared as well. The number of scratch and
+ saved registers used by the function must be passed to sljit_emit_enter.
+ Only R registers between R0 and "scratches" argument can be used
+ later. E.g. if "scratches" is set to 2, the register set will be
+ limited to R0 and R1. The S registers and the floating point
+ registers ("fscratches" and "fsaveds") are specified in a similar
+ way. The sljit_emit_enter is also capable of allocating a stack
+ space for local variables. The "local_size" argument contains the
+ size in bytes of this local area and its staring address is stored
+ in SLJIT_SP. The memory area between SLJIT_SP (inclusive) and
+ SLJIT_SP + local_size (exclusive) can be modified freely until
+ the function returns. The stack space is not initialized.
+
+ Note: the following conditions must met:
+ 0 <= scratches <= SLJIT_NUMBER_OF_REGISTERS
+ 0 <= saveds <= SLJIT_NUMBER_OF_REGISTERS
+ scratches + saveds <= SLJIT_NUMBER_OF_REGISTERS
+ 0 <= fscratches <= SLJIT_NUMBER_OF_FLOAT_REGISTERS
+ 0 <= fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS
+ fscratches + fsaveds <= SLJIT_NUMBER_OF_FLOAT_REGISTERS
Note: every call of sljit_emit_enter and sljit_set_context
- overwrites the previous context. */
+ overwrites the previous context.
+*/
+
+/* The absolute address returned by sljit_get_local_base with
+offset 0 is aligned to sljit_d. Otherwise it is aligned to sljit_uw. */
+#define SLJIT_DOUBLE_ALIGNMENT 0x00000001
+/* The local_size must be >= 0 and <= SLJIT_MAX_LOCAL_SIZE. */
#define SLJIT_MAX_LOCAL_SIZE 65536
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
- sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size);
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size);
/* The machine code has a context (which contains the local stack space size,
number of used registers, etc.) which initialized by sljit_emit_enter. Several
functions (like sljit_emit_return) requres this context to be able to generate
the appropriate code. However, some code fragments (like inline cache) may have
- no normal entry point so their context is unknown for the compiler. Using the
- function below we can specify their context.
+ no normal entry point so their context is unknown for the compiler. Their context
+ can be provided to the compiler by the sljit_set_context function.
Note: every call of sljit_emit_enter and sljit_set_context overwrites
the previous context. */
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler,
- sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size);
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size);
/* Return from machine code. The op argument can be SLJIT_UNUSED which means the
function does not return with anything or any opcode between SLJIT_MOV and
@@ -549,37 +681,43 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
the instruction does not set flags (See: SLJIT_KEEP_FLAGS).
- flag combinations: '|' means 'logical or'. */
+/* Starting index of opcodes for sljit_emit_op0. */
+#define SLJIT_OP0_BASE 0
+
/* Flags: - (never set any flags)
Note: breakpoint instruction is not supported by all architectures (namely ppc)
It falls back to SLJIT_NOP in those cases. */
-#define SLJIT_BREAKPOINT 0
+#define SLJIT_BREAKPOINT (SLJIT_OP0_BASE + 0)
/* Flags: - (never set any flags)
Note: may or may not cause an extra cycle wait
it can even decrease the runtime in a few cases. */
-#define SLJIT_NOP 1
+#define SLJIT_NOP (SLJIT_OP0_BASE + 1)
/* Flags: - (may destroy flags)
- Unsigned multiplication of SLJIT_SCRATCH_REG1 and SLJIT_SCRATCH_REG2.
- Result goes to SLJIT_SCRATCH_REG2:SLJIT_SCRATCH_REG1 (high:low) word */
-#define SLJIT_UMUL 2
+ Unsigned multiplication of SLJIT_R0 and SLJIT_R1.
+ Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */
+#define SLJIT_LUMUL (SLJIT_OP0_BASE + 2)
/* Flags: - (may destroy flags)
- Signed multiplication of SLJIT_SCRATCH_REG1 and SLJIT_SCRATCH_REG2.
- Result goes to SLJIT_SCRATCH_REG2:SLJIT_SCRATCH_REG1 (high:low) word */
-#define SLJIT_SMUL 3
+ Signed multiplication of SLJIT_R0 and SLJIT_R1.
+ Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */
+#define SLJIT_LSMUL (SLJIT_OP0_BASE + 3)
/* Flags: I - (may destroy flags)
- Unsigned divide of the value in SLJIT_SCRATCH_REG1 by the value in SLJIT_SCRATCH_REG2.
- The result is placed in SLJIT_SCRATCH_REG1 and the remainder goes to SLJIT_SCRATCH_REG2.
- Note: if SLJIT_SCRATCH_REG2 contains 0, the behaviour is undefined. */
-#define SLJIT_UDIV 4
-#define SLJIT_IUDIV (SLJIT_UDIV | SLJIT_INT_OP)
+ Unsigned divide of the value in SLJIT_R0 by the value in SLJIT_R1.
+ The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1.
+ Note: if SLJIT_R1 contains 0, the behaviour is undefined. */
+#define SLJIT_LUDIV (SLJIT_OP0_BASE + 4)
+#define SLJIT_ILUDIV (SLJIT_LUDIV | SLJIT_INT_OP)
/* Flags: I - (may destroy flags)
- Signed divide of the value in SLJIT_SCRATCH_REG1 by the value in SLJIT_SCRATCH_REG2.
- The result is placed in SLJIT_SCRATCH_REG1 and the remainder goes to SLJIT_SCRATCH_REG2.
- Note: if SLJIT_SCRATCH_REG2 contains 0, the behaviour is undefined. */
-#define SLJIT_SDIV 5
-#define SLJIT_ISDIV (SLJIT_SDIV | SLJIT_INT_OP)
+ Signed divide of the value in SLJIT_R0 by the value in SLJIT_R1.
+ The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1.
+ Note: if SLJIT_R1 contains 0, the behaviour is undefined. */
+#define SLJIT_LSDIV (SLJIT_OP0_BASE + 5)
+#define SLJIT_ILSDIV (SLJIT_LSDIV | SLJIT_INT_OP)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op);
+/* Starting index of opcodes for sljit_emit_op1. */
+#define SLJIT_OP1_BASE 32
+
/* Notes for MOV instructions:
U = Mov with update (pre form). If source or destination defined as SLJIT_MEM1(r1)
or SLJIT_MEM2(r1, r2), r1 is increased by the sum of r2 and the constant argument
@@ -592,115 +730,118 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
P = pointer (sljit_p) size */
/* Flags: - (never set any flags) */
-#define SLJIT_MOV 6
+#define SLJIT_MOV (SLJIT_OP1_BASE + 0)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOV_UB 7
+#define SLJIT_MOV_UB (SLJIT_OP1_BASE + 1)
#define SLJIT_IMOV_UB (SLJIT_MOV_UB | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOV_SB 8
+#define SLJIT_MOV_SB (SLJIT_OP1_BASE + 2)
#define SLJIT_IMOV_SB (SLJIT_MOV_SB | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOV_UH 9
+#define SLJIT_MOV_UH (SLJIT_OP1_BASE + 3)
#define SLJIT_IMOV_UH (SLJIT_MOV_UH | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOV_SH 10
+#define SLJIT_MOV_SH (SLJIT_OP1_BASE + 4)
#define SLJIT_IMOV_SH (SLJIT_MOV_SH | SLJIT_INT_OP)
/* Flags: I - (never set any flags)
Note: see SLJIT_INT_OP for further details. */
-#define SLJIT_MOV_UI 11
+#define SLJIT_MOV_UI (SLJIT_OP1_BASE + 5)
/* No SLJIT_INT_OP form, since it is the same as SLJIT_IMOV. */
/* Flags: I - (never set any flags)
Note: see SLJIT_INT_OP for further details. */
-#define SLJIT_MOV_SI 12
+#define SLJIT_MOV_SI (SLJIT_OP1_BASE + 6)
#define SLJIT_IMOV (SLJIT_MOV_SI | SLJIT_INT_OP)
/* Flags: - (never set any flags) */
-#define SLJIT_MOV_P 13
+#define SLJIT_MOV_P (SLJIT_OP1_BASE + 7)
/* Flags: - (never set any flags) */
-#define SLJIT_MOVU 14
+#define SLJIT_MOVU (SLJIT_OP1_BASE + 8)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOVU_UB 15
+#define SLJIT_MOVU_UB (SLJIT_OP1_BASE + 9)
#define SLJIT_IMOVU_UB (SLJIT_MOVU_UB | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOVU_SB 16
+#define SLJIT_MOVU_SB (SLJIT_OP1_BASE + 10)
#define SLJIT_IMOVU_SB (SLJIT_MOVU_SB | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOVU_UH 17
+#define SLJIT_MOVU_UH (SLJIT_OP1_BASE + 11)
#define SLJIT_IMOVU_UH (SLJIT_MOVU_UH | SLJIT_INT_OP)
/* Flags: I - (never set any flags) */
-#define SLJIT_MOVU_SH 18
+#define SLJIT_MOVU_SH (SLJIT_OP1_BASE + 12)
#define SLJIT_IMOVU_SH (SLJIT_MOVU_SH | SLJIT_INT_OP)
/* Flags: I - (never set any flags)
Note: see SLJIT_INT_OP for further details. */
-#define SLJIT_MOVU_UI 19
+#define SLJIT_MOVU_UI (SLJIT_OP1_BASE + 13)
/* No SLJIT_INT_OP form, since it is the same as SLJIT_IMOVU. */
/* Flags: I - (never set any flags)
Note: see SLJIT_INT_OP for further details. */
-#define SLJIT_MOVU_SI 20
+#define SLJIT_MOVU_SI (SLJIT_OP1_BASE + 14)
#define SLJIT_IMOVU (SLJIT_MOVU_SI | SLJIT_INT_OP)
/* Flags: - (never set any flags) */
-#define SLJIT_MOVU_P 21
+#define SLJIT_MOVU_P (SLJIT_OP1_BASE + 15)
/* Flags: I | E | K */
-#define SLJIT_NOT 22
+#define SLJIT_NOT (SLJIT_OP1_BASE + 16)
#define SLJIT_INOT (SLJIT_NOT | SLJIT_INT_OP)
/* Flags: I | E | O | K */
-#define SLJIT_NEG 23
+#define SLJIT_NEG (SLJIT_OP1_BASE + 17)
#define SLJIT_INEG (SLJIT_NEG | SLJIT_INT_OP)
/* Count leading zeroes
Flags: I | E | K
Important note! Sparc 32 does not support K flag, since
the required popc instruction is introduced only in sparc 64. */
-#define SLJIT_CLZ 24
+#define SLJIT_CLZ (SLJIT_OP1_BASE + 18)
#define SLJIT_ICLZ (SLJIT_CLZ | SLJIT_INT_OP)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw);
+/* Starting index of opcodes for sljit_emit_op2. */
+#define SLJIT_OP2_BASE 96
+
/* Flags: I | E | O | C | K */
-#define SLJIT_ADD 25
+#define SLJIT_ADD (SLJIT_OP2_BASE + 0)
#define SLJIT_IADD (SLJIT_ADD | SLJIT_INT_OP)
/* Flags: I | C | K */
-#define SLJIT_ADDC 26
+#define SLJIT_ADDC (SLJIT_OP2_BASE + 1)
#define SLJIT_IADDC (SLJIT_ADDC | SLJIT_INT_OP)
/* Flags: I | E | U | S | O | C | K */
-#define SLJIT_SUB 27
+#define SLJIT_SUB (SLJIT_OP2_BASE + 2)
#define SLJIT_ISUB (SLJIT_SUB | SLJIT_INT_OP)
/* Flags: I | C | K */
-#define SLJIT_SUBC 28
+#define SLJIT_SUBC (SLJIT_OP2_BASE + 3)
#define SLJIT_ISUBC (SLJIT_SUBC | SLJIT_INT_OP)
/* Note: integer mul
Flags: I | O (see SLJIT_C_MUL_*) | K */
-#define SLJIT_MUL 29
+#define SLJIT_MUL (SLJIT_OP2_BASE + 4)
#define SLJIT_IMUL (SLJIT_MUL | SLJIT_INT_OP)
/* Flags: I | E | K */
-#define SLJIT_AND 30
+#define SLJIT_AND (SLJIT_OP2_BASE + 5)
#define SLJIT_IAND (SLJIT_AND | SLJIT_INT_OP)
/* Flags: I | E | K */
-#define SLJIT_OR 31
+#define SLJIT_OR (SLJIT_OP2_BASE + 6)
#define SLJIT_IOR (SLJIT_OR | SLJIT_INT_OP)
/* Flags: I | E | K */
-#define SLJIT_XOR 32
+#define SLJIT_XOR (SLJIT_OP2_BASE + 7)
#define SLJIT_IXOR (SLJIT_XOR | SLJIT_INT_OP)
/* Flags: I | E | K
Let bit_length be the length of the shift operation: 32 or 64.
If src2 is immediate, src2w is masked by (bit_length - 1).
Otherwise, if the content of src2 is outside the range from 0
- to bit_length - 1, the operation is undefined. */
-#define SLJIT_SHL 33
+ to bit_length - 1, the result is undefined. */
+#define SLJIT_SHL (SLJIT_OP2_BASE + 8)
#define SLJIT_ISHL (SLJIT_SHL | SLJIT_INT_OP)
/* Flags: I | E | K
Let bit_length be the length of the shift operation: 32 or 64.
If src2 is immediate, src2w is masked by (bit_length - 1).
Otherwise, if the content of src2 is outside the range from 0
- to bit_length - 1, the operation is undefined. */
-#define SLJIT_LSHR 34
+ to bit_length - 1, the result is undefined. */
+#define SLJIT_LSHR (SLJIT_OP2_BASE + 9)
#define SLJIT_ILSHR (SLJIT_LSHR | SLJIT_INT_OP)
/* Flags: I | E | K
Let bit_length be the length of the shift operation: 32 or 64.
If src2 is immediate, src2w is masked by (bit_length - 1).
Otherwise, if the content of src2 is outside the range from 0
- to bit_length - 1, the operation is undefined. */
-#define SLJIT_ASHR 35
+ to bit_length - 1, the result is undefined. */
+#define SLJIT_ASHR (SLJIT_OP2_BASE + 10)
#define SLJIT_IASHR (SLJIT_ASHR | SLJIT_INT_OP)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op,
@@ -709,15 +850,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si src2, sljit_sw src2w);
/* The following function is a helper function for sljit_emit_op_custom.
- It returns with the real machine register index of any SLJIT_SCRATCH
- SLJIT_SAVED or SLJIT_LOCALS register.
- Note: it returns with -1 for virtual registers (all EREGs on x86-32). */
+ It returns with the real machine register index ( >=0 ) of any SLJIT_R,
+ SLJIT_S and SLJIT_SP registers.
+
+ Note: it returns with -1 for virtual registers (only on x86-32). */
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg);
/* The following function is a helper function for sljit_emit_op_custom.
It returns with the real machine register index of any SLJIT_FLOAT register.
- Note: the index is divided by 2 on ARM 32 bit architectures. */
+
+ Note: the index is always an even number on ARM (except ARM-64), MIPS, and SPARC. */
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg);
@@ -738,38 +881,62 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void);
-/* Note: dst is the left and src is the right operand for SLJIT_FCMP.
- Note: NaN check is always performed. If SLJIT_C_FLOAT_UNORDERED is set,
- the comparison result is unpredictable.
- Flags: SP | E | S (see SLJIT_C_FLOAT_*) */
-#define SLJIT_CMPD 36
-#define SLJIT_CMPS (SLJIT_CMPD | SLJIT_SINGLE_OP)
+/* Starting index of opcodes for sljit_emit_fop1. */
+#define SLJIT_FOP1_BASE 128
+
+/* Flags: SP - (never set any flags) */
+#define SLJIT_DMOV (SLJIT_FOP1_BASE + 0)
+#define SLJIT_SMOV (SLJIT_DMOV | SLJIT_SINGLE_OP)
+/* Convert opcodes: CONV[DST_TYPE].FROM[SRC_TYPE]
+ SRC/DST TYPE can be: D - double, S - single, W - signed word, I - signed int
+ Rounding mode when the destination is W or I: round towards zero. */
+/* Flags: SP - (never set any flags) */
+#define SLJIT_CONVD_FROMS (SLJIT_FOP1_BASE + 1)
+#define SLJIT_CONVS_FROMD (SLJIT_CONVD_FROMS | SLJIT_SINGLE_OP)
+/* Flags: SP - (never set any flags) */
+#define SLJIT_CONVW_FROMD (SLJIT_FOP1_BASE + 2)
+#define SLJIT_CONVW_FROMS (SLJIT_CONVW_FROMD | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_MOVD 37
-#define SLJIT_MOVS (SLJIT_MOVD | SLJIT_SINGLE_OP)
+#define SLJIT_CONVI_FROMD (SLJIT_FOP1_BASE + 3)
+#define SLJIT_CONVI_FROMS (SLJIT_CONVI_FROMD | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_NEGD 38
-#define SLJIT_NEGS (SLJIT_NEGD | SLJIT_SINGLE_OP)
+#define SLJIT_CONVD_FROMW (SLJIT_FOP1_BASE + 4)
+#define SLJIT_CONVS_FROMW (SLJIT_CONVD_FROMW | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_ABSD 39
-#define SLJIT_ABSS (SLJIT_ABSD | SLJIT_SINGLE_OP)
+#define SLJIT_CONVD_FROMI (SLJIT_FOP1_BASE + 5)
+#define SLJIT_CONVS_FROMI (SLJIT_CONVD_FROMI | SLJIT_SINGLE_OP)
+/* Note: dst is the left and src is the right operand for SLJIT_CMPD.
+ Note: NaN check is always performed. If SLJIT_C_FLOAT_UNORDERED flag
+ is set, the comparison result is unpredictable.
+ Flags: SP | E | S (see SLJIT_C_FLOAT_*) */
+#define SLJIT_DCMP (SLJIT_FOP1_BASE + 6)
+#define SLJIT_SCMP (SLJIT_DCMP | SLJIT_SINGLE_OP)
+/* Flags: SP - (never set any flags) */
+#define SLJIT_DNEG (SLJIT_FOP1_BASE + 7)
+#define SLJIT_SNEG (SLJIT_DNEG | SLJIT_SINGLE_OP)
+/* Flags: SP - (never set any flags) */
+#define SLJIT_DABS (SLJIT_FOP1_BASE + 8)
+#define SLJIT_SABS (SLJIT_DABS | SLJIT_SINGLE_OP)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw);
+/* Starting index of opcodes for sljit_emit_fop2. */
+#define SLJIT_FOP2_BASE 160
+
/* Flags: SP - (never set any flags) */
-#define SLJIT_ADDD 40
-#define SLJIT_ADDS (SLJIT_ADDD | SLJIT_SINGLE_OP)
+#define SLJIT_DADD (SLJIT_FOP2_BASE + 0)
+#define SLJIT_SADD (SLJIT_DADD | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_SUBD 41
-#define SLJIT_SUBS (SLJIT_SUBD | SLJIT_SINGLE_OP)
+#define SLJIT_DSUB (SLJIT_FOP2_BASE + 1)
+#define SLJIT_SSUB (SLJIT_DSUB | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_MULD 42
-#define SLJIT_MULS (SLJIT_MULD | SLJIT_SINGLE_OP)
+#define SLJIT_DMUL (SLJIT_FOP2_BASE + 2)
+#define SLJIT_SMUL (SLJIT_DMUL | SLJIT_SINGLE_OP)
/* Flags: SP - (never set any flags) */
-#define SLJIT_DIVD 43
-#define SLJIT_DIVS (SLJIT_DIVD | SLJIT_SINGLE_OP)
+#define SLJIT_DDIV (SLJIT_FOP2_BASE + 3)
+#define SLJIT_SDIV (SLJIT_DDIV | SLJIT_SINGLE_OP)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
@@ -780,36 +947,64 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler);
-/* Invert conditional instruction: xor (^) with 0x1 */
-#define SLJIT_C_EQUAL 0
-#define SLJIT_C_ZERO 0
-#define SLJIT_C_NOT_EQUAL 1
-#define SLJIT_C_NOT_ZERO 1
-
-#define SLJIT_C_LESS 2
-#define SLJIT_C_GREATER_EQUAL 3
-#define SLJIT_C_GREATER 4
-#define SLJIT_C_LESS_EQUAL 5
-#define SLJIT_C_SIG_LESS 6
-#define SLJIT_C_SIG_GREATER_EQUAL 7
-#define SLJIT_C_SIG_GREATER 8
-#define SLJIT_C_SIG_LESS_EQUAL 9
-
-#define SLJIT_C_OVERFLOW 10
-#define SLJIT_C_NOT_OVERFLOW 11
-
-#define SLJIT_C_MUL_OVERFLOW 12
-#define SLJIT_C_MUL_NOT_OVERFLOW 13
-
-#define SLJIT_C_FLOAT_EQUAL 14
-#define SLJIT_C_FLOAT_NOT_EQUAL 15
-#define SLJIT_C_FLOAT_LESS 16
-#define SLJIT_C_FLOAT_GREATER_EQUAL 17
-#define SLJIT_C_FLOAT_GREATER 18
-#define SLJIT_C_FLOAT_LESS_EQUAL 19
-#define SLJIT_C_FLOAT_UNORDERED 20
-#define SLJIT_C_FLOAT_ORDERED 21
-
+/* Invert (negate) conditional type: xor (^) with 0x1 */
+
+/* Integer comparison types. */
+#define SLJIT_EQUAL 0
+#define SLJIT_I_EQUAL (SLJIT_EQUAL | SLJIT_INT_OP)
+#define SLJIT_ZERO 0
+#define SLJIT_I_ZERO (SLJIT_ZERO | SLJIT_INT_OP)
+#define SLJIT_NOT_EQUAL 1
+#define SLJIT_I_NOT_EQUAL (SLJIT_NOT_EQUAL | SLJIT_INT_OP)
+#define SLJIT_NOT_ZERO 1
+#define SLJIT_I_NOT_ZERO (SLJIT_NOT_ZERO | SLJIT_INT_OP)
+
+#define SLJIT_LESS 2
+#define SLJIT_I_LESS (SLJIT_LESS | SLJIT_INT_OP)
+#define SLJIT_GREATER_EQUAL 3
+#define SLJIT_I_GREATER_EQUAL (SLJIT_GREATER_EQUAL | SLJIT_INT_OP)
+#define SLJIT_GREATER 4
+#define SLJIT_I_GREATER (SLJIT_GREATER | SLJIT_INT_OP)
+#define SLJIT_LESS_EQUAL 5
+#define SLJIT_I_LESS_EQUAL (SLJIT_LESS_EQUAL | SLJIT_INT_OP)
+#define SLJIT_SIG_LESS 6
+#define SLJIT_I_SIG_LESS (SLJIT_SIG_LESS | SLJIT_INT_OP)
+#define SLJIT_SIG_GREATER_EQUAL 7
+#define SLJIT_I_SIG_GREATER_EQUAL (SLJIT_SIG_GREATER_EQUAL | SLJIT_INT_OP)
+#define SLJIT_SIG_GREATER 8
+#define SLJIT_I_SIG_GREATER (SLJIT_SIG_GREATER | SLJIT_INT_OP)
+#define SLJIT_SIG_LESS_EQUAL 9
+#define SLJIT_I_SIG_LESS_EQUAL (SLJIT_SIG_LESS_EQUAL | SLJIT_INT_OP)
+
+#define SLJIT_OVERFLOW 10
+#define SLJIT_I_OVERFLOW (SLJIT_OVERFLOW | SLJIT_INT_OP)
+#define SLJIT_NOT_OVERFLOW 11
+#define SLJIT_I_NOT_OVERFLOW (SLJIT_NOT_OVERFLOW | SLJIT_INT_OP)
+
+#define SLJIT_MUL_OVERFLOW 12
+#define SLJIT_I_MUL_OVERFLOW (SLJIT_MUL_OVERFLOW | SLJIT_INT_OP)
+#define SLJIT_MUL_NOT_OVERFLOW 13
+#define SLJIT_I_MUL_NOT_OVERFLOW (SLJIT_MUL_NOT_OVERFLOW | SLJIT_INT_OP)
+
+/* Floating point comparison types. */
+#define SLJIT_D_EQUAL 14
+#define SLJIT_S_EQUAL (SLJIT_D_EQUAL | SLJIT_SINGLE_OP)
+#define SLJIT_D_NOT_EQUAL 15
+#define SLJIT_S_NOT_EQUAL (SLJIT_D_NOT_EQUAL | SLJIT_SINGLE_OP)
+#define SLJIT_D_LESS 16
+#define SLJIT_S_LESS (SLJIT_D_LESS | SLJIT_SINGLE_OP)
+#define SLJIT_D_GREATER_EQUAL 17
+#define SLJIT_S_GREATER_EQUAL (SLJIT_D_GREATER_EQUAL | SLJIT_SINGLE_OP)
+#define SLJIT_D_GREATER 18
+#define SLJIT_S_GREATER (SLJIT_D_GREATER | SLJIT_SINGLE_OP)
+#define SLJIT_D_LESS_EQUAL 19
+#define SLJIT_S_LESS_EQUAL (SLJIT_D_LESS_EQUAL | SLJIT_SINGLE_OP)
+#define SLJIT_D_UNORDERED 20
+#define SLJIT_S_UNORDERED (SLJIT_D_UNORDERED | SLJIT_SINGLE_OP)
+#define SLJIT_D_ORDERED 21
+#define SLJIT_S_ORDERED (SLJIT_D_ORDERED | SLJIT_SINGLE_OP)
+
+/* Unconditional jump types. */
#define SLJIT_JUMP 22
#define SLJIT_FAST_CALL 23
#define SLJIT_CALL0 24
@@ -823,7 +1018,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
#define SLJIT_REWRITABLE_JUMP 0x1000
/* Emit a jump instruction. The destination is not set, only the type of the jump.
- type must be between SLJIT_C_EQUAL and SLJIT_CALL3
+ type must be between SLJIT_EQUAL and SLJIT_CALL3
type can be combined (or'ed) with SLJIT_REWRITABLE_JUMP
Flags: - (never set any flags) for both conditional and unconditional jumps.
Flags: destroy all flags for calls. */
@@ -832,10 +1027,10 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
/* Basic arithmetic comparison. In most architectures it is implemented as
an SLJIT_SUB operation (with SLJIT_UNUSED destination and setting
appropriate flags) followed by a sljit_emit_jump. However some
- architectures (i.e: MIPS) may employ special optimizations here. It is
- suggested to use this comparison form when appropriate.
- type must be between SLJIT_C_EQUAL and SLJIT_C_SIG_LESS_EQUAL
- type can be combined (or'ed) with SLJIT_REWRITABLE_JUMP or SLJIT_INT_OP
+ architectures (i.e: ARM64 or MIPS) may employ special optimizations here.
+ It is suggested to use this comparison form when appropriate.
+ type must be between SLJIT_EQUAL and SLJIT_I_SIG_LESS_EQUAL
+ type can be combined (or'ed) with SLJIT_REWRITABLE_JUMP
Flags: destroy flags. */
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler *compiler, sljit_si type,
sljit_si src1, sljit_sw src1w,
@@ -846,11 +1041,11 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
sljit_emit_jump. However some architectures (i.e: MIPS) may employ
special optimizations here. It is suggested to use this comparison form
when appropriate.
- type must be between SLJIT_C_FLOAT_EQUAL and SLJIT_C_FLOAT_ORDERED
- type can be combined (or'ed) with SLJIT_REWRITABLE_JUMP and SLJIT_SINGLE_OP
+ type must be between SLJIT_D_EQUAL and SLJIT_S_ORDERED
+ type can be combined (or'ed) with SLJIT_REWRITABLE_JUMP
Flags: destroy flags.
Note: if either operand is NaN, the behaviour is undefined for
- type <= SLJIT_C_FLOAT_LESS_EQUAL. */
+ types up to SLJIT_S_LESS_EQUAL. */
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compiler *compiler, sljit_si type,
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w);
@@ -869,8 +1064,8 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_set_target(struct sljit_jump *jump, sljit_uw
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compiler, sljit_si type, sljit_si src, sljit_sw srcw);
/* Perform the operation using the conditional flags as the second argument.
- Type must always be between SLJIT_C_EQUAL and SLJIT_C_FLOAT_ORDERED. The
- value represented by the type is 1, if the condition represented by the type
+ Type must always be between SLJIT_EQUAL and SLJIT_S_ORDERED. The value
+ represented by the type is 1, if the condition represented by the type
is fulfilled, and 0 otherwise.
If op == SLJIT_MOV, SLJIT_MOV_SI, SLJIT_MOV_UI:
@@ -888,7 +1083,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_si src, sljit_sw srcw,
sljit_si type);
-/* Copies the base address of SLJIT_LOCALS_REG+offset to dst.
+/* Copies the base address of SLJIT_SP + offset to dst.
Flags: - (never set any flags) */
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset);
@@ -912,7 +1107,7 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_consta
/* --------------------------------------------------------------------- */
#define SLJIT_MAJOR_VERSION 0
-#define SLJIT_MINOR_VERSION 91
+#define SLJIT_MINOR_VERSION 93
/* Get the human readable name of the platform. Can be useful on platforms
like ARM, where ARM and Thumb2 functions can be mixed, and
@@ -958,10 +1153,11 @@ struct sljit_stack {
};
/* Returns NULL if unsuccessful.
- Note: limit and max_limit contains the size for stack allocation
- Note: the top field is initialized to base. */
-SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(sljit_uw limit, sljit_uw max_limit);
-SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack* stack);
+ Note: limit and max_limit contains the size for stack allocation.
+ Note: the top field is initialized to base.
+ Note: see sljit_create_compiler for the explanation of allocator_data. */
+SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(sljit_uw limit, sljit_uw max_limit, void *allocator_data);
+SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack *stack, void *allocator_data);
/* Can be used to increase (allocate) or decrease (free) the memory area.
Returns with a non-zero value if unsuccessful. If new_limit is greater than
@@ -969,7 +1165,7 @@ SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack* st
since the growth ratio can be added to the current limit, and sljit_stack_resize
will do all the necessary checks. The fields of the stack are not changed if
sljit_stack_resize fails. */
-SLJIT_API_FUNC_ATTRIBUTE sljit_sw SLJIT_CALL sljit_stack_resize(struct sljit_stack* stack, sljit_uw new_limit);
+SLJIT_API_FUNC_ATTRIBUTE sljit_sw SLJIT_CALL sljit_stack_resize(struct sljit_stack *stack, sljit_uw new_limit);
#endif /* (defined SLJIT_UTIL_STACK && SLJIT_UTIL_STACK) */
diff --git a/src/3rdparty/pcre/sljit/sljitNativeARM_32.c b/src/3rdparty/pcre/sljit/sljitNativeARM_32.c
index 6747c4f617..aca1d31fdf 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeARM_32.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeARM_32.c
@@ -36,13 +36,13 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
}
/* Last register + 1. */
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
-#define TMP_PC (SLJIT_NO_REGISTERS + 4)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
+#define TMP_PC (SLJIT_NUMBER_OF_REGISTERS + 5)
#define TMP_FREG1 (0)
-#define TMP_FREG2 (SLJIT_FLOAT_REG6 + 1)
+#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
/* In ARM instruction words.
Cache lines are usually 32 byte aligned. */
@@ -55,8 +55,8 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
(((max_diff) / (sljit_si)sizeof(sljit_uw)) - (CONST_POOL_ALIGNMENT - 1))
/* See sljit_emit_enter and sljit_emit_op0 if you want to change them. */
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = {
- 0, 0, 1, 2, 10, 11, 4, 5, 6, 7, 8, 13, 3, 12, 14, 15
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = {
+ 0, 0, 1, 2, 11, 10, 9, 8, 7, 6, 5, 4, 13, 3, 12, 14, 15
};
#define RM(rm) (reg_map[rm])
@@ -102,8 +102,12 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = {
#define VABS_F32 0xeeb00ac0
#define VADD_F32 0xee300a00
#define VCMP_F32 0xeeb40a40
+#define VCVT_F32_S32 0xeeb80ac0
+#define VCVT_F64_F32 0xeeb70ac0
+#define VCVT_S32_F32 0xeebd0ac0
#define VDIV_F32 0xee800a00
#define VMOV_F32 0xeeb00a40
+#define VMOV 0xee000a10
#define VMRS 0xeef1fa10
#define VMUL_F32 0xee200a00
#define VNEG_F32 0xeeb10a40
@@ -311,11 +315,13 @@ struct future_patch {
sljit_si value;
};
-static SLJIT_INLINE sljit_si resolve_const_pool_index(struct future_patch **first_patch, sljit_uw cpool_current_index, sljit_uw *cpool_start_address, sljit_uw *buf_ptr)
+static sljit_si resolve_const_pool_index(struct sljit_compiler *compiler, struct future_patch **first_patch, sljit_uw cpool_current_index, sljit_uw *cpool_start_address, sljit_uw *buf_ptr)
{
sljit_si value;
struct future_patch *curr_patch, *prev_patch;
+ SLJIT_UNUSED_ARG(compiler);
+
/* Using the values generated by patch_pc_relative_loads. */
if (!*first_patch)
value = (sljit_si)cpool_start_address[cpool_current_index];
@@ -333,7 +339,7 @@ static SLJIT_INLINE sljit_si resolve_const_pool_index(struct future_patch **firs
prev_patch->next = curr_patch->next;
else
*first_patch = curr_patch->next;
- SLJIT_FREE(curr_patch);
+ SLJIT_FREE(curr_patch, compiler->allocator_data);
break;
}
prev_patch = curr_patch;
@@ -343,12 +349,12 @@ static SLJIT_INLINE sljit_si resolve_const_pool_index(struct future_patch **firs
if (value >= 0) {
if ((sljit_uw)value > cpool_current_index) {
- curr_patch = (struct future_patch*)SLJIT_MALLOC(sizeof(struct future_patch));
+ curr_patch = (struct future_patch*)SLJIT_MALLOC(sizeof(struct future_patch), compiler->allocator_data);
if (!curr_patch) {
while (*first_patch) {
curr_patch = *first_patch;
*first_patch = (*first_patch)->next;
- SLJIT_FREE(curr_patch);
+ SLJIT_FREE(curr_patch, compiler->allocator_data);
}
return SLJIT_ERR_ALLOC_FAILED;
}
@@ -570,7 +576,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
/* Second code generation pass. */
@@ -619,7 +625,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
cpool_skip_alignment--;
}
else {
- if (SLJIT_UNLIKELY(resolve_const_pool_index(&first_patch, cpool_current_index, cpool_start_address, buf_ptr))) {
+ if (SLJIT_UNLIKELY(resolve_const_pool_index(compiler, &first_patch, cpool_current_index, cpool_start_address, buf_ptr))) {
SLJIT_FREE_EXEC(code);
compiler->error = SLJIT_ERR_ALLOC_FAILED;
return NULL;
@@ -709,7 +715,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
buf_end = buf_ptr + compiler->cpool_fill;
cpool_current_index = 0;
while (buf_ptr < buf_end) {
- if (SLJIT_UNLIKELY(resolve_const_pool_index(&first_patch, cpool_current_index, cpool_start_address, buf_ptr))) {
+ if (SLJIT_UNLIKELY(resolve_const_pool_index(compiler, &first_patch, cpool_current_index, cpool_start_address, buf_ptr))) {
SLJIT_FREE_EXEC(code);
compiler->error = SLJIT_ERR_ALLOC_FAILED;
return NULL;
@@ -810,9 +816,6 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
#define SIGNED_DATA 0x40
#define LOAD_DATA 0x80
-#define EMIT_INSTRUCTION(inst) \
- FAIL_IF(push_inst(compiler, (inst)))
-
/* Condition: AL. */
#define EMIT_DATA_PROCESS_INS(opcode, set_flags, dst, src1, src2) \
(0xe0000000 | ((opcode) << 21) | (set_flags) | RD(dst) | RN(src1) | (src2))
@@ -822,111 +825,85 @@ static sljit_si emit_op(struct sljit_compiler *compiler, sljit_si op, sljit_si i
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w);
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- sljit_si size;
+ sljit_si size, i, tmp;
sljit_uw push;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
/* Push saved registers, temporary registers
stmdb sp!, {..., lr} */
push = PUSH | (1 << 14);
- if (scratches >= 5)
- push |= 1 << 11;
- if (scratches >= 4)
- push |= 1 << 10;
- if (saveds >= 5)
- push |= 1 << 8;
- if (saveds >= 4)
- push |= 1 << 7;
- if (saveds >= 3)
- push |= 1 << 6;
- if (saveds >= 2)
- push |= 1 << 5;
- if (saveds >= 1)
- push |= 1 << 4;
- EMIT_INSTRUCTION(push);
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--)
+ push |= 1 << reg_map[i];
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--)
+ push |= 1 << reg_map[i];
+
+ FAIL_IF(push_inst(compiler, push));
/* Stack must be aligned to 8 bytes: */
- size = (1 + saveds) * sizeof(sljit_uw);
- if (scratches >= 4)
- size += (scratches - 3) * sizeof(sljit_uw);
- local_size += size;
- local_size = (local_size + 7) & ~7;
- local_size -= size;
+ size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1);
+ local_size = ((size + local_size + 7) & ~7) - size;
compiler->local_size = local_size;
if (local_size > 0)
- FAIL_IF(emit_op(compiler, SLJIT_SUB, ALLOW_IMM, SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, local_size));
+ FAIL_IF(emit_op(compiler, SLJIT_SUB, ALLOW_IMM, SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size));
if (args >= 1)
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_SAVED_REG1, SLJIT_UNUSED, RM(SLJIT_SCRATCH_REG1)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S0, SLJIT_UNUSED, RM(SLJIT_R0))));
if (args >= 2)
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_SAVED_REG2, SLJIT_UNUSED, RM(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S1, SLJIT_UNUSED, RM(SLJIT_R1))));
if (args >= 3)
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_SAVED_REG3, SLJIT_UNUSED, RM(SLJIT_SCRATCH_REG3)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, SLJIT_S2, SLJIT_UNUSED, RM(SLJIT_R2))));
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
sljit_si size;
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- size = (1 + saveds) * sizeof(sljit_uw);
- if (scratches >= 4)
- size += (scratches - 3) * sizeof(sljit_uw);
- local_size += size;
- local_size = (local_size + 7) & ~7;
- local_size -= size;
- compiler->local_size = local_size;
+ size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1);
+ compiler->local_size = ((size + local_size + 7) & ~7) - size;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
+ sljit_si i, tmp;
sljit_uw pop;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
if (compiler->local_size > 0)
- FAIL_IF(emit_op(compiler, SLJIT_ADD, ALLOW_IMM, SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, compiler->local_size));
+ FAIL_IF(emit_op(compiler, SLJIT_ADD, ALLOW_IMM, SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, compiler->local_size));
- pop = POP | (1 << 15);
/* Push saved registers, temporary registers
ldmia sp!, {..., pc} */
- if (compiler->scratches >= 5)
- pop |= 1 << 11;
- if (compiler->scratches >= 4)
- pop |= 1 << 10;
- if (compiler->saveds >= 5)
- pop |= 1 << 8;
- if (compiler->saveds >= 4)
- pop |= 1 << 7;
- if (compiler->saveds >= 3)
- pop |= 1 << 6;
- if (compiler->saveds >= 2)
- pop |= 1 << 5;
- if (compiler->saveds >= 1)
- pop |= 1 << 4;
+ pop = POP | (1 << 15);
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--)
+ pop |= 1 << reg_map[i];
+
+ for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--)
+ pop |= 1 << reg_map[i];
return push_inst(compiler, pop);
}
@@ -1031,7 +1008,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
if (op == SLJIT_MOV_UB)
return push_inst(compiler, EMIT_DATA_PROCESS_INS(AND_DP, 0, dst, src2, SRC2_IMM | 0xff));
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (24 << 7) | reg_map[src2]));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (24 << 7) | reg_map[src2])));
return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (24 << 7) | (op == SLJIT_MOV_UB ? 0x20 : 0x40) | reg_map[dst]));
#else
return push_inst(compiler, (op == SLJIT_MOV_UB ? UXTB : SXTB) | RD(dst) | RM(src2));
@@ -1050,7 +1027,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & ARGS_SWAPPED));
if ((flags & (REG_DEST | REG_SOURCE)) == (REG_DEST | REG_SOURCE)) {
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (16 << 7) | reg_map[src2]));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (16 << 7) | reg_map[src2])));
return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst, SLJIT_UNUSED, (16 << 7) | (op == SLJIT_MOV_UH ? 0x20 : 0x40) | reg_map[dst]));
#else
return push_inst(compiler, (op == SLJIT_MOV_UH ? UXTH : SXTH) | RD(dst) | RM(src2));
@@ -1303,8 +1280,8 @@ static sljit_si generate_int(struct sljit_compiler *compiler, sljit_si reg, slji
return 0;
}
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(positive ? MOV_DP : MVN_DP, 0, reg, SLJIT_UNUSED, imm1));
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(positive ? ORR_DP : BIC_DP, 0, reg, reg, imm2));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(positive ? MOV_DP : MVN_DP, 0, reg, SLJIT_UNUSED, imm1)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(positive ? ORR_DP : BIC_DP, 0, reg, reg, imm2)));
return 1;
}
#endif
@@ -1320,16 +1297,12 @@ static sljit_si load_immediate(struct sljit_compiler *compiler, sljit_si reg, sl
/* Create imm by 1 inst. */
tmp = get_imm(imm);
- if (tmp) {
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, reg, SLJIT_UNUSED, tmp));
- return SLJIT_SUCCESS;
- }
+ if (tmp)
+ return push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, reg, SLJIT_UNUSED, tmp));
tmp = get_imm(~imm);
- if (tmp) {
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MVN_DP, 0, reg, SLJIT_UNUSED, tmp));
- return SLJIT_SUCCESS;
- }
+ if (tmp)
+ return push_inst(compiler, EMIT_DATA_PROCESS_INS(MVN_DP, 0, reg, SLJIT_UNUSED, tmp));
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
/* Create imm by 2 inst. */
@@ -1369,14 +1342,14 @@ static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si inp_fl
if (imm) {
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, reg, SLJIT_UNUSED, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, reg, SLJIT_UNUSED, imm)));
return -1;
}
imm = get_imm(~argw);
if (imm) {
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MVN_DP, 0, reg, SLJIT_UNUSED, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MVN_DP, 0, reg, SLJIT_UNUSED, imm)));
return -1;
}
return 0;
@@ -1394,8 +1367,8 @@ static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si inp_fl
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK,
- RM(OFFS_REG(arg)) | (IS_TYPE1_TRANSFER(inp_flags) ? SRC2_IMM : 0) | ((argw & 0x3) << 7)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK,
+ RM(OFFS_REG(arg)) | (IS_TYPE1_TRANSFER(inp_flags) ? SRC2_IMM : 0) | ((argw & 0x3) << 7))));
return -1;
}
@@ -1403,13 +1376,13 @@ static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si inp_fl
if (argw >= 0 && argw <= 0xfff) {
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, argw));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, argw)));
return -1;
}
if (argw < 0 && argw >= -0xfff) {
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 0, inp_flags & WRITE_BACK, reg, arg & REG_MASK, -argw));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 0, inp_flags & WRITE_BACK, reg, arg & REG_MASK, -argw)));
return -1;
}
}
@@ -1417,14 +1390,14 @@ static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si inp_fl
if (argw >= 0 && argw <= 0xff) {
if (inp_flags & ARG_TEST)
return 1;
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, TYPE2_TRANSFER_IMM(argw)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, TYPE2_TRANSFER_IMM(argw))));
return -1;
}
if (argw < 0 && argw >= -0xff) {
if (inp_flags & ARG_TEST)
return 1;
argw = -argw;
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 0, inp_flags & WRITE_BACK, reg, arg & REG_MASK, TYPE2_TRANSFER_IMM(argw)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 0, inp_flags & WRITE_BACK, reg, arg & REG_MASK, TYPE2_TRANSFER_IMM(argw))));
return -1;
}
}
@@ -1477,7 +1450,7 @@ static sljit_si can_cache(sljit_si arg, sljit_sw argw, sljit_si next_arg, sljit_
/* This can only happen for stores */ \
/* since ldr reg, [reg, ...]! has no meaning */ \
SLJIT_ASSERT(!(inp_flags & LOAD_DATA)); \
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(reg))); \
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(reg)))); \
reg = TMP_REG3; \
} \
}
@@ -1537,9 +1510,8 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
SLJIT_ASSERT((argw & 0x3) && !(max_delta & 0xf00));
if (inp_flags & WRITE_BACK)
tmp_r = arg & REG_MASK;
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, tmp_r, arg & REG_MASK, RM(OFFS_REG(arg)) | ((argw & 0x3) << 7)));
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, 0, reg, tmp_r, TYPE2_TRANSFER_IMM(0)));
- return SLJIT_SUCCESS;
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, tmp_r, arg & REG_MASK, RM(OFFS_REG(arg)) | ((argw & 0x3) << 7))));
+ return push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, 0, reg, tmp_r, TYPE2_TRANSFER_IMM(0)));
}
imm = (sljit_uw)(argw - compiler->cache_argw);
@@ -1558,7 +1530,7 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
imm = get_imm(argw & ~max_delta);
if (imm) {
TEST_WRITE_BACK();
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, tmp_r, arg & REG_MASK, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, tmp_r, arg & REG_MASK, imm)));
GETPUT_ARG_DATA_TRANSFER(1, inp_flags & WRITE_BACK, reg, tmp_r, argw & max_delta);
return SLJIT_SUCCESS;
}
@@ -1567,15 +1539,14 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
if (imm) {
argw = -argw;
TEST_WRITE_BACK();
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(SUB_DP, 0, tmp_r, arg & REG_MASK, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(SUB_DP, 0, tmp_r, arg & REG_MASK, imm)));
GETPUT_ARG_DATA_TRANSFER(0, inp_flags & WRITE_BACK, reg, tmp_r, argw & max_delta);
return SLJIT_SUCCESS;
}
if ((compiler->cache_arg & SLJIT_IMM) && compiler->cache_argw == argw) {
TEST_WRITE_BACK();
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, RM(TMP_REG3) | (max_delta & 0xf00 ? SRC2_IMM : 0)));
- return SLJIT_SUCCESS;
+ return push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, RM(TMP_REG3) | (max_delta & 0xf00 ? SRC2_IMM : 0)));
}
if (argw == next_argw && (next_arg & SLJIT_MEM)) {
@@ -1586,15 +1557,14 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
compiler->cache_argw = argw;
TEST_WRITE_BACK();
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, RM(TMP_REG3) | (max_delta & 0xf00 ? SRC2_IMM : 0)));
- return SLJIT_SUCCESS;
+ return push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, RM(TMP_REG3) | (max_delta & 0xf00 ? SRC2_IMM : 0)));
}
imm = (sljit_uw)(argw - next_argw);
if (arg == next_arg && !(inp_flags & WRITE_BACK) && (imm <= (sljit_uw)max_delta || imm >= (sljit_uw)-max_delta)) {
SLJIT_ASSERT(inp_flags & LOAD_DATA);
FAIL_IF(load_immediate(compiler, TMP_REG3, argw));
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG3, TMP_REG3, reg_map[arg & REG_MASK]));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG3, TMP_REG3, reg_map[arg & REG_MASK])));
compiler->cache_arg = arg;
compiler->cache_argw = argw;
@@ -1610,8 +1580,7 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
}
FAIL_IF(load_immediate(compiler, tmp_r, argw));
- EMIT_INSTRUCTION(EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, reg_map[tmp_r] | (max_delta & 0xf00 ? SRC2_IMM : 0)));
- return SLJIT_SUCCESS;
+ return push_inst(compiler, EMIT_DATA_TRANSFER(inp_flags, 1, inp_flags & WRITE_BACK, reg, arg & REG_MASK, reg_map[tmp_r] | (max_delta & 0xf00 ? SRC2_IMM : 0)));
}
static SLJIT_INLINE sljit_si emit_op_mem(struct sljit_compiler *compiler, sljit_si flags, sljit_si reg, sljit_si arg, sljit_sw argw)
@@ -1838,39 +1807,39 @@ extern int __aeabi_idivmod(int numerator, int denominator);
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
{
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
case SLJIT_BREAKPOINT:
- EMIT_INSTRUCTION(BKPT);
+ FAIL_IF(push_inst(compiler, BKPT));
break;
case SLJIT_NOP:
- EMIT_INSTRUCTION(NOP);
+ FAIL_IF(push_inst(compiler, NOP));
break;
- case SLJIT_UMUL:
- case SLJIT_SMUL:
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
#if (defined SLJIT_CONFIG_ARM_V7 && SLJIT_CONFIG_ARM_V7)
- return push_inst(compiler, (op == SLJIT_UMUL ? UMULL : SMULL)
- | (reg_map[SLJIT_SCRATCH_REG2] << 16)
- | (reg_map[SLJIT_SCRATCH_REG1] << 12)
- | (reg_map[SLJIT_SCRATCH_REG1] << 8)
- | reg_map[SLJIT_SCRATCH_REG2]);
+ return push_inst(compiler, (op == SLJIT_LUMUL ? UMULL : SMULL)
+ | (reg_map[SLJIT_R1] << 16)
+ | (reg_map[SLJIT_R0] << 12)
+ | (reg_map[SLJIT_R0] << 8)
+ | reg_map[SLJIT_R1]);
#else
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG1, SLJIT_UNUSED, RM(SLJIT_SCRATCH_REG2)));
- return push_inst(compiler, (op == SLJIT_UMUL ? UMULL : SMULL)
- | (reg_map[SLJIT_SCRATCH_REG2] << 16)
- | (reg_map[SLJIT_SCRATCH_REG1] << 12)
- | (reg_map[SLJIT_SCRATCH_REG1] << 8)
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG1, SLJIT_UNUSED, RM(SLJIT_R1))));
+ return push_inst(compiler, (op == SLJIT_LUMUL ? UMULL : SMULL)
+ | (reg_map[SLJIT_R1] << 16)
+ | (reg_map[SLJIT_R0] << 12)
+ | (reg_map[SLJIT_R0] << 8)
| reg_map[TMP_REG1]);
#endif
- case SLJIT_UDIV:
- case SLJIT_SDIV:
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
if (compiler->scratches >= 3)
- EMIT_INSTRUCTION(0xe52d2008 /* str r2, [sp, #-8]! */);
+ FAIL_IF(push_inst(compiler, 0xe52d2008 /* str r2, [sp, #-8]! */));
#if defined(__GNUC__)
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM,
- (op == SLJIT_UDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
+ (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
#else
#error "Software divmod functions are needed"
#endif
@@ -1887,7 +1856,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1932,7 +1901,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
return emit_op(compiler, op, ALLOW_ANY_IMM, dst, dstw, TMP_REG1, 0, src, srcw);
case SLJIT_NEG:
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_op2(compiler, SLJIT_SUB | GET_ALL_FLAGS(op), dst, dstw, SLJIT_IMM, 0, src, srcw);
@@ -1950,7 +1920,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si src2, sljit_sw src2w)
{
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1988,22 +1958,21 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
- return reg;
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
+ return reg << 1;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler,
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
return push_inst(compiler, *(sljit_uw*)instruction);
}
@@ -2064,7 +2033,7 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
SLJIT_ASSERT(arg & SLJIT_MEM);
if (SLJIT_UNLIKELY(arg & OFFS_REG_MASK)) {
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG1, arg & REG_MASK, RM(OFFS_REG(arg)) | ((argw & 0x3) << 7)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG1, arg & REG_MASK, RM(OFFS_REG(arg)) | ((argw & 0x3) << 7))));
arg = SLJIT_MEM | TMP_REG1;
argw = 0;
}
@@ -2097,13 +2066,13 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
}
imm = get_imm(argw & ~0x3fc);
if (imm) {
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG1, arg & REG_MASK, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG1, arg & REG_MASK, imm)));
return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, TMP_REG1, reg, (argw & 0x3fc) >> 2));
}
imm = get_imm(-argw & ~0x3fc);
if (imm) {
argw = -argw;
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(SUB_DP, 0, TMP_REG1, arg & REG_MASK, imm));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(SUB_DP, 0, TMP_REG1, arg & REG_MASK, imm)));
return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 0, TMP_REG1, reg, (argw & 0x3fc) >> 2));
}
}
@@ -2112,7 +2081,7 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
compiler->cache_argw = argw;
if (arg & REG_MASK) {
FAIL_IF(load_immediate(compiler, TMP_REG1, argw));
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG3, arg & REG_MASK, reg_map[TMP_REG1]));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(ADD_DP, 0, TMP_REG3, arg & REG_MASK, reg_map[TMP_REG1])));
}
else
FAIL_IF(load_immediate(compiler, TMP_REG3, argw));
@@ -2120,60 +2089,114 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
return push_inst(compiler, EMIT_FPU_DATA_TRANSFER(inst, 1, TMP_REG3, reg, 0));
}
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ if (src & SLJIT_MEM) {
+ FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, src, srcw));
+ src = TMP_FREG1;
+ }
+
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_S32_F32, op & SLJIT_SINGLE_OP, TMP_FREG1, src, 0)));
+
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
+
+ if (FAST_IS_REG(dst))
+ return push_inst(compiler, VMOV | (1 << 20) | RD(dst) | (TMP_FREG1 << 16));
+
+ /* Store the integer value from a VFP register. */
+ return emit_fop_mem(compiler, 0, TMP_FREG1, dst, dstw);
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+
+ if (FAST_IS_REG(src))
+ FAIL_IF(push_inst(compiler, VMOV | RD(src) | (TMP_FREG1 << 16)));
+ else if (src & SLJIT_MEM) {
+ /* Load the integer value into a VFP register. */
+ FAIL_IF(emit_fop_mem(compiler, FPU_LOAD, TMP_FREG1, src, srcw));
+ }
+ else {
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw));
+ FAIL_IF(push_inst(compiler, VMOV | RD(TMP_REG1) | (TMP_FREG1 << 16)));
+ }
+
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_F32_S32, op & SLJIT_SINGLE_OP, dst_r, TMP_FREG1, 0)));
+
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), TMP_FREG1, dst, dstw);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ if (src1 & SLJIT_MEM) {
+ FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, src1, src1w));
+ src1 = TMP_FREG1;
+ }
+
+ if (src2 & SLJIT_MEM) {
+ FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG2, src2, src2w));
+ src2 = TMP_FREG2;
+ }
+
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCMP_F32, op & SLJIT_SINGLE_OP, src1, src2, 0)));
+ return push_inst(compiler, VMRS);
+}
+
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- sljit_si dst_fr;
+ sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100), float_transfer_bit_error);
-
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- op ^= SLJIT_SINGLE_OP;
+ if (GET_OPCODE(op) != SLJIT_CONVD_FROMS)
+ op ^= SLJIT_SINGLE_OP;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, dst, dstw));
- dst = TMP_FREG1;
- }
- if (src & SLJIT_MEM) {
- FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG2, src, srcw));
- src = TMP_FREG2;
- }
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VCMP_F32, op & SLJIT_SINGLE_OP, dst, src, 0));
- EMIT_INSTRUCTION(VMRS);
- return SLJIT_SUCCESS;
- }
+ SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100), float_transfer_bit_error);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
- dst_fr = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
if (src & SLJIT_MEM) {
- FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, dst_fr, src, srcw));
- src = dst_fr;
+ FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, dst_r, src, srcw));
+ src = dst_r;
}
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_fr && dst_fr != TMP_FREG1)
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VMOV_F32, op & SLJIT_SINGLE_OP, dst_fr, src, 0));
- break;
- case SLJIT_NEGD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VNEG_F32, op & SLJIT_SINGLE_OP, dst_fr, src, 0));
- break;
- case SLJIT_ABSD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VABS_F32, op & SLJIT_SINGLE_OP, dst_fr, src, 0));
- break;
- }
-
- if (dst_fr == TMP_FREG1) {
- if (GET_OPCODE(op) == SLJIT_MOVD)
- dst_fr = src;
- FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), dst_fr, dst, dstw));
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1)
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMOV_F32, op & SLJIT_SINGLE_OP, dst_r, src, 0)));
+ else
+ dst_r = src;
+ }
+ break;
+ case SLJIT_DNEG:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VNEG_F32, op & SLJIT_SINGLE_OP, dst_r, src, 0)));
+ break;
+ case SLJIT_DABS:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VABS_F32, op & SLJIT_SINGLE_OP, dst_r, src, 0)));
+ break;
+ case SLJIT_CONVD_FROMS:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VCVT_F64_F32, op & SLJIT_SINGLE_OP, dst_r, src, 0)));
+ op ^= SLJIT_SINGLE_OP;
+ break;
}
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), dst_r, dst, dstw);
return SLJIT_SUCCESS;
}
@@ -2182,16 +2205,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- sljit_si dst_fr;
+ sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
op ^= SLJIT_SINGLE_OP;
- dst_fr = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
if (src2 & SLJIT_MEM) {
FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG2, src2, src2w));
@@ -2204,24 +2230,24 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
}
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VADD_F32, op & SLJIT_SINGLE_OP, dst_fr, src2, src1));
+ case SLJIT_DADD:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VADD_F32, op & SLJIT_SINGLE_OP, dst_r, src2, src1)));
break;
- case SLJIT_SUBD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VSUB_F32, op & SLJIT_SINGLE_OP, dst_fr, src2, src1));
+ case SLJIT_DSUB:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VSUB_F32, op & SLJIT_SINGLE_OP, dst_r, src2, src1)));
break;
- case SLJIT_MULD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VMUL_F32, op & SLJIT_SINGLE_OP, dst_fr, src2, src1));
+ case SLJIT_DMUL:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VMUL_F32, op & SLJIT_SINGLE_OP, dst_r, src2, src1)));
break;
- case SLJIT_DIVD:
- EMIT_INSTRUCTION(EMIT_FPU_OPERATION(VDIV_F32, op & SLJIT_SINGLE_OP, dst_fr, src2, src1));
+ case SLJIT_DDIV:
+ FAIL_IF(push_inst(compiler, EMIT_FPU_OPERATION(VDIV_F32, op & SLJIT_SINGLE_OP, dst_r, src2, src1)));
break;
}
- if (dst_fr == TMP_FREG1)
+ if (dst_r == TMP_FREG1)
FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), TMP_FREG1, dst, dstw));
return SLJIT_SUCCESS;
@@ -2238,7 +2264,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
@@ -2252,7 +2278,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
if (getput_arg_fast(compiler, WORD_DATA, TMP_REG3, dst, dstw))
return compiler->error;
/* TMP_REG3 is used for caching. */
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG2, SLJIT_UNUSED, RM(TMP_REG3)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG2, SLJIT_UNUSED, RM(TMP_REG3))));
compiler->cache_arg = 0;
compiler->cache_argw = 0;
return getput_arg(compiler, WORD_DATA, TMP_REG2, dst, dstw, 0, 0);
@@ -2261,11 +2287,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src))
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(src)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(src))));
else if (src & SLJIT_MEM) {
if (getput_arg_fast(compiler, WORD_DATA | LOAD_DATA, TMP_REG3, src, srcw))
FAIL_IF(compiler->error);
@@ -2273,7 +2299,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
compiler->cache_arg = 0;
compiler->cache_argw = 0;
FAIL_IF(getput_arg(compiler, WORD_DATA | LOAD_DATA, TMP_REG2, src, srcw, 0, 0));
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(TMP_REG2)));
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, TMP_REG3, SLJIT_UNUSED, RM(TMP_REG2))));
}
}
else if (src & SLJIT_IMM)
@@ -2288,53 +2314,54 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
static sljit_uw get_cc(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_MUL_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_EQUAL:
+ case SLJIT_MUL_NOT_OVERFLOW:
+ case SLJIT_D_EQUAL:
return 0x00000000;
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_MUL_OVERFLOW:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_MUL_OVERFLOW:
+ case SLJIT_D_NOT_EQUAL:
return 0x10000000;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
return 0x30000000;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
return 0x20000000;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
return 0x80000000;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return 0x90000000;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return 0xb0000000;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return 0xa0000000;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return 0xc0000000;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return 0xd0000000;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_OVERFLOW:
+ case SLJIT_D_UNORDERED:
return 0x60000000;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_D_ORDERED:
return 0x70000000;
- default: /* SLJIT_JUMP */
+ default:
+ SLJIT_ASSERT(type >= SLJIT_JUMP && type <= SLJIT_CALL3);
return 0xe0000000;
}
}
@@ -2344,7 +2371,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -2360,7 +2387,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
struct sljit_jump *jump;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
PTR_FAIL_IF(!jump);
@@ -2401,7 +2428,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
struct sljit_jump *jump;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
/* In ARM, we don't need to touch the arguments. */
@@ -2442,7 +2469,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_uw cc, ins;
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -2450,18 +2477,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
return SLJIT_SUCCESS;
op = GET_OPCODE(op);
- cc = get_cc(type);
+ cc = get_cc(type & 0xff);
dst_r = FAST_IS_REG(dst) ? dst : TMP_REG2;
if (op < SLJIT_ADD) {
- EMIT_INSTRUCTION(EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 0));
- EMIT_INSTRUCTION((EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 1) & ~COND_MASK) | cc);
+ FAIL_IF(push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 0)));
+ FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_r, SLJIT_UNUSED, SRC2_IMM | 1) & ~COND_MASK) | cc));
return (dst_r == TMP_REG2) ? emit_op_mem(compiler, WORD_DATA, TMP_REG2, dst, dstw) : SLJIT_SUCCESS;
}
ins = (op == SLJIT_AND ? AND_DP : (op == SLJIT_OR ? ORR_DP : EOR_DP));
if ((op == SLJIT_OR || op == SLJIT_XOR) && FAST_IS_REG(dst) && dst == src) {
- EMIT_INSTRUCTION((EMIT_DATA_PROCESS_INS(ins, 0, dst, dst, SRC2_IMM | 1) & ~COND_MASK) | cc);
+ FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(ins, 0, dst, dst, SRC2_IMM | 1) & ~COND_MASK) | cc));
/* The condition must always be set, even if the ORR/EOR is not executed above. */
return (flags & SLJIT_SET_E) ? push_inst(compiler, EMIT_DATA_PROCESS_INS(MOV_DP, SET_FLAGS, TMP_REG1, SLJIT_UNUSED, RM(dst))) : SLJIT_SUCCESS;
}
@@ -2478,8 +2505,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
srcw = 0;
}
- EMIT_INSTRUCTION((EMIT_DATA_PROCESS_INS(ins, 0, dst_r, src, SRC2_IMM | 1) & ~COND_MASK) | cc);
- EMIT_INSTRUCTION((EMIT_DATA_PROCESS_INS(ins, 0, dst_r, src, SRC2_IMM | 0) & ~COND_MASK) | (cc ^ 0x10000000));
+ FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(ins, 0, dst_r, src, SRC2_IMM | 1) & ~COND_MASK) | cc));
+ FAIL_IF(push_inst(compiler, (EMIT_DATA_PROCESS_INS(ins, 0, dst_r, src, SRC2_IMM | 0) & ~COND_MASK) | (cc ^ 0x10000000)));
if (dst_r == TMP_REG2)
FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG2, dst, dstw, 0, 0));
@@ -2492,7 +2519,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
sljit_si reg;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeARM_64.c b/src/3rdparty/pcre/sljit/sljitNativeARM_64.c
index cfd1a38242..c5251be53d 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeARM_64.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeARM_64.c
@@ -32,20 +32,19 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
/* Length of an instruction word */
typedef sljit_ui sljit_ins;
-#define TMP_ZERO 0
+#define TMP_ZERO (0)
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
-#define TMP_REG4 (SLJIT_NO_REGISTERS + 4)
-#define TMP_LR (SLJIT_NO_REGISTERS + 5)
-#define TMP_SP (SLJIT_NO_REGISTERS + 6)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
+#define TMP_LR (SLJIT_NUMBER_OF_REGISTERS + 5)
+#define TMP_SP (SLJIT_NUMBER_OF_REGISTERS + 6)
#define TMP_FREG1 (0)
-#define TMP_FREG2 (SLJIT_FLOAT_REG6 + 1)
+#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 7] = {
- 31, 0, 1, 2, 3, 4, 19, 20, 21, 22, 23, 29, 9, 10, 11, 12, 30, 31
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 8] = {
+ 31, 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, 16, 17, 8, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 29, 9, 10, 11, 30, 31
};
#define W_OP (1 << 31)
@@ -83,6 +82,8 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 7] = {
#define FABS 0x1e60c000
#define FADD 0x1e602800
#define FCMP 0x1e602000
+#define FCVT 0x1e224000
+#define FCVTZS 0x9e780000
#define FDIV 0x1e601800
#define FMOV 0x1e604000
#define FMUL 0x1e600800
@@ -104,6 +105,7 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 7] = {
#define RET 0xd65f0000
#define SBC 0xda000000
#define SBFM 0x93000000
+#define SCVTF 0x9e620000
#define SDIV 0x9ac00c00
#define SMADDL 0x9b200000
#define SMULH 0x9b403c00
@@ -217,7 +219,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
code = (sljit_ins*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins));
@@ -727,12 +729,12 @@ static sljit_si emit_op_imm(struct sljit_compiler *compiler, sljit_si flags, slj
return push_inst(compiler, (MADD ^ inv_bits) | RD(dst) | RN(arg1) | RM(arg2) | RT2(TMP_ZERO));
if (flags & INT_OP) {
FAIL_IF(push_inst(compiler, SMADDL | RD(dst) | RN(arg1) | RM(arg2) | (31 << 10)));
- FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG4) | RN(TMP_ZERO) | RM(dst) | (2 << 22) | (31 << 10)));
- return push_inst(compiler, SUBS | RD(TMP_ZERO) | RN(TMP_REG4) | RM(dst) | (2 << 22) | (63 << 10));
+ FAIL_IF(push_inst(compiler, ADD | RD(TMP_LR) | RN(TMP_ZERO) | RM(dst) | (2 << 22) | (31 << 10)));
+ return push_inst(compiler, SUBS | RD(TMP_ZERO) | RN(TMP_LR) | RM(dst) | (2 << 22) | (63 << 10));
}
- FAIL_IF(push_inst(compiler, SMULH | RD(TMP_REG4) | RN(arg1) | RM(arg2)));
+ FAIL_IF(push_inst(compiler, SMULH | RD(TMP_LR) | RN(arg1) | RM(arg2)));
FAIL_IF(push_inst(compiler, MADD | RD(dst) | RN(arg1) | RM(arg2) | RT2(TMP_ZERO)));
- return push_inst(compiler, SUBS | RD(TMP_ZERO) | RN(TMP_REG4) | RM(dst) | (2 << 22) | (63 << 10));
+ return push_inst(compiler, SUBS | RD(TMP_ZERO) | RN(TMP_LR) | RM(dst) | (2 << 22) | (63 << 10));
case SLJIT_AND:
CHECK_FLAGS(3 << 29);
return push_inst(compiler, (AND ^ inv_bits) | RD(dst) | RN(arg1) | RM(arg2));
@@ -973,9 +975,9 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si flags, slji
FAIL_IF(push_inst(compiler, ADD | RD(arg) | RN(arg) | RM(other_r) | (argw << 10)));
return push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(arg));
}
- FAIL_IF(push_inst(compiler, ADD | RD(TMP_REG4) | RN(arg) | RM(other_r) | (argw << 10)));
- FAIL_IF(push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(TMP_REG4)));
- return push_inst(compiler, ORR | RD(arg) | RN(TMP_ZERO) | RM(TMP_REG4));
+ FAIL_IF(push_inst(compiler, ADD | RD(TMP_LR) | RN(arg) | RM(other_r) | (argw << 10)));
+ FAIL_IF(push_inst(compiler, sljit_mem_imm[flags & 0x3] | (shift << 30) | RT(reg) | RN(TMP_LR)));
+ return push_inst(compiler, ORR | RD(arg) | RN(TMP_ZERO) | RM(TMP_LR));
}
if (arg & OFFS_REG_MASK) {
@@ -1058,109 +1060,153 @@ static SLJIT_INLINE sljit_si emit_op_mem2(struct sljit_compiler *compiler, sljit
/* Entry, exit */
/* --------------------------------------------------------------------- */
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
+ sljit_si i, tmp, offs, prev, saved_regs_size;
+
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
- compiler->locals_offset = (2 + saveds) * sizeof(sljit_sw);
- local_size = (compiler->locals_offset + local_size + 15) & ~15;
+ saved_regs_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 0);
+ local_size += saved_regs_size + SLJIT_LOCALS_OFFSET;
+ local_size = (local_size + 15) & ~0xf;
compiler->local_size = local_size;
- if (local_size <= (64 << 3))
+ if (local_size <= (63 * sizeof(sljit_sw))) {
FAIL_IF(push_inst(compiler, STP_PRE | 29 | RT2(TMP_LR)
| RN(TMP_SP) | ((-(local_size >> 3) & 0x7f) << 15)));
- else {
- local_size -= (64 << 3);
+ FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_SP) | (0 << 10)));
+ offs = (local_size - saved_regs_size) << (15 - 3);
+ } else {
+ compiler->local_size += 2 * sizeof(sljit_sw);
+ local_size -= saved_regs_size;
+ saved_regs_size += 2 * sizeof(sljit_sw);
+ FAIL_IF(push_inst(compiler, STP_PRE | 29 | RT2(TMP_LR)
+ | RN(TMP_SP) | ((-(saved_regs_size >> 3) & 0x7f) << 15)));
+ offs = 2 << 15;
+ }
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ prev = -1;
+ for (i = SLJIT_S0; i >= tmp; i--) {
+ if (prev == -1) {
+ prev = i;
+ continue;
+ }
+ FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs));
+ offs += 2 << 15;
+ prev = -1;
+ }
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
+ if (prev == -1) {
+ prev = i;
+ continue;
+ }
+ FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs));
+ offs += 2 << 15;
+ prev = -1;
+ }
+
+ if (prev != -1)
+ FAIL_IF(push_inst(compiler, STRI | RT(prev) | RN(TMP_SP) | (offs >> 5)));
+
+ if (compiler->local_size > (63 * sizeof(sljit_sw))) {
+ /* The local_size is already adjusted by the saved registers. */
if (local_size > 0xfff) {
FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | ((local_size >> 12) << 10) | (1 << 22)));
local_size &= 0xfff;
}
if (local_size)
FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (local_size << 10)));
- FAIL_IF(push_inst(compiler, STP_PRE | 29 | RT2(TMP_LR) | RN(TMP_SP) | (0x40 << 15)));
+ FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_SP) | RN(TMP_SP) | (0 << 10)));
}
- FAIL_IF(push_inst(compiler, ADDI | RD(SLJIT_LOCALS_REG) | RN(TMP_SP)));
-
- if (saveds >= 2)
- FAIL_IF(push_inst(compiler, STP | RT(SLJIT_SAVED_REG1) | RT2(SLJIT_SAVED_REG2) | RN(TMP_SP) | (2 << 15)));
- if (saveds >= 4)
- FAIL_IF(push_inst(compiler, STP | RT(SLJIT_SAVED_REG3) | RT2(SLJIT_SAVED_EREG1) | RN(TMP_SP) | (4 << 15)));
- if (saveds == 1)
- FAIL_IF(push_inst(compiler, STRI | RT(SLJIT_SAVED_REG1) | RN(TMP_SP) | (2 << 10)));
- if (saveds == 3)
- FAIL_IF(push_inst(compiler, STRI | RT(SLJIT_SAVED_REG3) | RN(TMP_SP) | (4 << 10)));
- if (saveds == 5)
- FAIL_IF(push_inst(compiler, STRI | RT(SLJIT_SAVED_EREG2) | RN(TMP_SP) | (6 << 10)));
-
if (args >= 1)
- FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_SAVED_REG1) | RN(TMP_ZERO) | RM(SLJIT_SCRATCH_REG1)));
+ FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_S0) | RN(TMP_ZERO) | RM(SLJIT_R0)));
if (args >= 2)
- FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_SAVED_REG2) | RN(TMP_ZERO) | RM(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_S1) | RN(TMP_ZERO) | RM(SLJIT_R1)));
if (args >= 3)
- FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_SAVED_REG3) | RN(TMP_ZERO) | RM(SLJIT_SCRATCH_REG3)));
+ FAIL_IF(push_inst(compiler, ORR | RD(SLJIT_S2) | RN(TMP_ZERO) | RM(SLJIT_R2)));
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
- compiler->locals_offset = (2 + saveds) * sizeof(sljit_sw);
- compiler->local_size = (compiler->locals_offset + local_size + 15) & ~15;
+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 0) + SLJIT_LOCALS_OFFSET;
+ local_size = (local_size + 15) & ~0xf;
+ if (local_size > (63 * sizeof(sljit_sw)))
+ local_size += 2 * sizeof(sljit_sw);
+ compiler->local_size = local_size;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
- sljit_si saveds, local_size;
+ sljit_si local_size;
+ sljit_si i, tmp, offs, prev, saved_regs_size;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
- saveds = compiler->saveds;
-
- if (saveds >= 2)
- FAIL_IF(push_inst(compiler, LDP | RT(SLJIT_SAVED_REG1) | RT2(SLJIT_SAVED_REG2) | RN(TMP_SP) | (2 << 15)));
- if (saveds >= 4)
- FAIL_IF(push_inst(compiler, LDP | RT(SLJIT_SAVED_REG3) | RT2(SLJIT_SAVED_EREG1) | RN(TMP_SP) | (4 << 15)));
- if (saveds == 1)
- FAIL_IF(push_inst(compiler, LDRI | RT(SLJIT_SAVED_REG1) | RN(TMP_SP) | (2 << 10)));
- if (saveds == 3)
- FAIL_IF(push_inst(compiler, LDRI | RT(SLJIT_SAVED_REG3) | RN(TMP_SP) | (4 << 10)));
- if (saveds == 5)
- FAIL_IF(push_inst(compiler, LDRI | RT(SLJIT_SAVED_EREG2) | RN(TMP_SP) | (6 << 10)));
-
local_size = compiler->local_size;
- if (local_size <= (62 << 3))
- FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR)
- | RN(TMP_SP) | (((local_size >> 3) & 0x7f) << 15)));
+ saved_regs_size = GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 0);
+ if (local_size <= (63 * sizeof(sljit_sw)))
+ offs = (local_size - saved_regs_size) << (15 - 3);
else {
- FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR) | RN(TMP_SP) | (0x3e << 15)));
- local_size -= (62 << 3);
+ saved_regs_size += 2 * sizeof(sljit_sw);
+ local_size -= saved_regs_size;
if (local_size > 0xfff) {
FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | ((local_size >> 12) << 10) | (1 << 22)));
local_size &= 0xfff;
}
if (local_size)
FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | (local_size << 10)));
+ local_size = saved_regs_size;
+ offs = 2 << 15;
+ }
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ prev = -1;
+ for (i = SLJIT_S0; i >= tmp; i--) {
+ if (prev == -1) {
+ prev = i;
+ continue;
+ }
+ FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs));
+ offs += 2 << 15;
+ prev = -1;
}
+ for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
+ if (prev == -1) {
+ prev = i;
+ continue;
+ }
+ FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs));
+ offs += 2 << 15;
+ prev = -1;
+ }
+
+ if (prev != -1)
+ FAIL_IF(push_inst(compiler, LDRI | RT(prev) | RN(TMP_SP) | (offs >> 5)));
+
+ FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR)
+ | RN(TMP_SP) | (((local_size >> 3) & 0x7f) << 15)));
+
FAIL_IF(push_inst(compiler, RET | RN(TMP_LR)));
return SLJIT_SUCCESS;
}
@@ -1174,7 +1220,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
sljit_ins inv_bits = (op & SLJIT_INT_OP) ? (1 << 31) : 0;
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
@@ -1182,17 +1228,17 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
return push_inst(compiler, BRK);
case SLJIT_NOP:
return push_inst(compiler, NOP);
- case SLJIT_UMUL:
- case SLJIT_SMUL:
- FAIL_IF(push_inst(compiler, ORR | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_SCRATCH_REG1)));
- FAIL_IF(push_inst(compiler, MADD | RD(SLJIT_SCRATCH_REG1) | RN(SLJIT_SCRATCH_REG1) | RM(SLJIT_SCRATCH_REG2) | RT2(TMP_ZERO)));
- return push_inst(compiler, (op == SLJIT_SMUL ? SMULH : UMULH) | RD(SLJIT_SCRATCH_REG2) | RN(TMP_REG1) | RM(SLJIT_SCRATCH_REG2));
- case SLJIT_UDIV:
- case SLJIT_SDIV:
- FAIL_IF(push_inst(compiler, (ORR ^ inv_bits) | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_SCRATCH_REG1)));
- FAIL_IF(push_inst(compiler, ((op == SLJIT_SDIV ? SDIV : UDIV) ^ inv_bits) | RD(SLJIT_SCRATCH_REG1) | RN(SLJIT_SCRATCH_REG1) | RM(SLJIT_SCRATCH_REG2)));
- FAIL_IF(push_inst(compiler, (MADD ^ inv_bits) | RD(SLJIT_SCRATCH_REG2) | RN(SLJIT_SCRATCH_REG1) | RM(SLJIT_SCRATCH_REG2) | RT2(TMP_ZERO)));
- return push_inst(compiler, (SUB ^ inv_bits) | RD(SLJIT_SCRATCH_REG2) | RN(TMP_REG1) | RM(SLJIT_SCRATCH_REG2));
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
+ FAIL_IF(push_inst(compiler, ORR | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0)));
+ FAIL_IF(push_inst(compiler, MADD | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO)));
+ return push_inst(compiler, (op == SLJIT_LUMUL ? UMULH : SMULH) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1));
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
+ FAIL_IF(push_inst(compiler, (ORR ^ inv_bits) | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0)));
+ FAIL_IF(push_inst(compiler, ((op == SLJIT_LUDIV ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1)));
+ FAIL_IF(push_inst(compiler, (MADD ^ inv_bits) | RD(SLJIT_R1) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO)));
+ return push_inst(compiler, (SUB ^ inv_bits) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1));
}
return SLJIT_SUCCESS;
@@ -1206,7 +1252,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
sljit_si op_flags = GET_ALL_FLAGS(op);
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1358,7 +1404,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si dst_r, flags, mem_flags;
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1437,13 +1483,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
return reg;
}
@@ -1451,8 +1497,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
return push_inst(compiler, *(sljit_ins*)instruction);
}
@@ -1524,53 +1569,122 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
return push_inst(compiler, STR_FI | ins_bits | VT(reg) | RN(TMP_REG3));
}
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = SLOW_IS_REG(dst) ? dst : TMP_REG1;
+ sljit_ins inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
+
+ if (GET_OPCODE(op) == SLJIT_CONVI_FROMD)
+ inv_bits |= (1 << 31);
+
+ if (src & SLJIT_MEM) {
+ emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) ? INT_SIZE : WORD_SIZE, TMP_FREG1, src, srcw);
+ src = TMP_FREG1;
+ }
+
+ FAIL_IF(push_inst(compiler, (FCVTZS ^ inv_bits) | RD(dst_r) | VN(src)));
+
+ if (dst_r == TMP_REG1 && dst != SLJIT_UNUSED)
+ return emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONVI_FROMD) ? INT_SIZE : WORD_SIZE) | STORE, TMP_REG1, dst, dstw);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+ sljit_ins inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
+
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ inv_bits |= (1 << 31);
+
+ if (src & SLJIT_MEM) {
+ emit_op_mem(compiler, ((GET_OPCODE(op) == SLJIT_CONVD_FROMI) ? INT_SIZE : WORD_SIZE), TMP_REG1, src, srcw);
+ src = TMP_REG1;
+ } else if (src & SLJIT_IMM) {
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ srcw = (sljit_si)srcw;
+#endif
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw));
+ src = TMP_REG1;
+ }
+
+ FAIL_IF(push_inst(compiler, (SCVTF ^ inv_bits) | VD(dst_r) | RN(src)));
+
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, ((op & SLJIT_SINGLE_OP) ? INT_SIZE : WORD_SIZE) | STORE, TMP_FREG1, dst, dstw);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ sljit_si mem_flags = (op & SLJIT_SINGLE_OP) ? INT_SIZE : WORD_SIZE;
+ sljit_ins inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
+
+ if (src1 & SLJIT_MEM) {
+ emit_fop_mem(compiler, mem_flags, TMP_FREG1, src1, src1w);
+ src1 = TMP_FREG1;
+ }
+
+ if (src2 & SLJIT_MEM) {
+ emit_fop_mem(compiler, mem_flags, TMP_FREG2, src2, src2w);
+ src2 = TMP_FREG2;
+ }
+
+ return push_inst(compiler, (FCMP ^ inv_bits) | VN(src1) | VM(src2));
+}
+
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
sljit_si dst_r, mem_flags = (op & SLJIT_SINGLE_OP) ? INT_SIZE : WORD_SIZE;
- sljit_ins inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
+ sljit_ins inv_bits;
CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
-
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- emit_fop_mem(compiler, mem_flags, TMP_FREG1, dst, dstw);
- dst = TMP_FREG1;
- }
- if (src & SLJIT_MEM) {
- emit_fop_mem(compiler, mem_flags, TMP_FREG2, src, srcw);
- src = TMP_FREG2;
- }
- return push_inst(compiler, (FCMP ^ inv_bits) | VN(dst) | VM(src));
- }
+ SLJIT_COMPILE_ASSERT((INT_SIZE ^ 0x100) == WORD_SIZE, must_be_one_bit_difference);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
+
+ inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
- dst_r = (dst <= REG_MASK) ? dst : TMP_FREG1;
if (src & SLJIT_MEM) {
- emit_fop_mem(compiler, mem_flags, dst_r, src, srcw);
+ emit_fop_mem(compiler, (GET_OPCODE(op) == SLJIT_CONVD_FROMS) ? (mem_flags ^ 0x100) : mem_flags, dst_r, src, srcw);
src = dst_r;
}
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_r)
- FAIL_IF(push_inst(compiler, (FMOV ^ inv_bits) | VD(dst_r) | VN(src)));
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1)
+ FAIL_IF(push_inst(compiler, (FMOV ^ inv_bits) | VD(dst_r) | VN(src)));
+ else
+ dst_r = src;
+ }
break;
- case SLJIT_NEGD:
+ case SLJIT_DNEG:
FAIL_IF(push_inst(compiler, (FNEG ^ inv_bits) | VD(dst_r) | VN(src)));
break;
- case SLJIT_ABSD:
+ case SLJIT_DABS:
FAIL_IF(push_inst(compiler, (FABS ^ inv_bits) | VD(dst_r) | VN(src)));
break;
+ case SLJIT_CONVD_FROMS:
+ FAIL_IF(push_inst(compiler, FCVT | ((op & SLJIT_SINGLE_OP) ? (1 << 22) : (1 << 15)) | VD(dst_r) | VN(src)));
+ break;
}
- if (!(dst & SLJIT_MEM))
- return SLJIT_SUCCESS;
- return emit_fop_mem(compiler, mem_flags | STORE, TMP_FREG1, dst, dstw);
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, mem_flags | STORE, dst_r, dst, dstw);
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
@@ -1582,12 +1696,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_ins inv_bits = (op & SLJIT_SINGLE_OP) ? (1 << 22) : 0;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- dst_r = (dst <= REG_MASK) ? dst : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
if (src1 & SLJIT_MEM) {
emit_fop_mem(compiler, mem_flags, TMP_FREG1, src1, src1w);
src1 = TMP_FREG1;
@@ -1598,16 +1715,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
}
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
+ case SLJIT_DADD:
FAIL_IF(push_inst(compiler, (FADD ^ inv_bits) | VD(dst_r) | VN(src1) | VM(src2)));
break;
- case SLJIT_SUBD:
+ case SLJIT_DSUB:
FAIL_IF(push_inst(compiler, (FSUB ^ inv_bits) | VD(dst_r) | VN(src1) | VM(src2)));
break;
- case SLJIT_MULD:
+ case SLJIT_DMUL:
FAIL_IF(push_inst(compiler, (FMUL ^ inv_bits) | VD(dst_r) | VN(src1) | VM(src2)));
break;
- case SLJIT_DIVD:
+ case SLJIT_DDIV:
FAIL_IF(push_inst(compiler, (FDIV ^ inv_bits) | VD(dst_r) | VN(src1) | VM(src2)));
break;
}
@@ -1624,14 +1741,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
if (dst == SLJIT_UNUSED)
return SLJIT_SUCCESS;
- if (dst <= REG_MASK)
+ if (FAST_IS_REG(dst))
return push_inst(compiler, ORR | RD(dst) | RN(TMP_ZERO) | RM(TMP_LR));
/* Memory. */
@@ -1641,10 +1758,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
- if (src <= REG_MASK)
+ if (FAST_IS_REG(src))
FAIL_IF(push_inst(compiler, ORR | RD(TMP_LR) | RN(TMP_ZERO) | RM(src)));
else if (src & SLJIT_MEM)
FAIL_IF(emit_op_mem(compiler, WORD_SIZE, TMP_LR, src, srcw));
@@ -1661,50 +1778,50 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
static sljit_uw get_cc(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_MUL_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_EQUAL:
+ case SLJIT_MUL_NOT_OVERFLOW:
+ case SLJIT_D_EQUAL:
return 0x1;
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_MUL_OVERFLOW:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_MUL_OVERFLOW:
+ case SLJIT_D_NOT_EQUAL:
return 0x0;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
return 0x2;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
return 0x3;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
return 0x9;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return 0x8;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return 0xa;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return 0xb;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return 0xd;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return 0xc;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_OVERFLOW:
+ case SLJIT_D_UNORDERED:
return 0x7;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_D_ORDERED:
return 0x6;
default:
@@ -1718,7 +1835,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -1734,7 +1851,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
struct sljit_jump *jump;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
PTR_FAIL_IF(!jump);
@@ -1761,7 +1878,7 @@ static SLJIT_INLINE struct sljit_jump* emit_cmp_to0(struct sljit_compiler *compi
struct sljit_jump *jump;
sljit_ins inv_bits = (type & SLJIT_INT_OP) ? (1 << 31) : 0;
- SLJIT_ASSERT((type & 0xff) == SLJIT_C_EQUAL || (type & 0xff) == SLJIT_C_NOT_EQUAL);
+ SLJIT_ASSERT((type & 0xff) == SLJIT_EQUAL || (type & 0xff) == SLJIT_NOT_EQUAL);
ADJUST_LOCAL_OFFSET(src, srcw);
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
@@ -1779,7 +1896,7 @@ static SLJIT_INLINE struct sljit_jump* emit_cmp_to0(struct sljit_compiler *compi
}
SLJIT_ASSERT(FAST_IS_REG(src));
- if ((type & 0xff) == SLJIT_C_EQUAL)
+ if ((type & 0xff) == SLJIT_EQUAL)
inv_bits |= 1 << 24;
PTR_FAIL_IF(push_inst(compiler, (CBZ ^ inv_bits) | (6 << 5) | RT(src)));
@@ -1794,7 +1911,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
struct sljit_jump *jump;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
/* In ARM, we don't need to touch the arguments. */
@@ -1825,15 +1942,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_ins cc;
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
if (dst == SLJIT_UNUSED)
return SLJIT_SUCCESS;
- cc = get_cc(type);
- dst_r = (dst <= REG_MASK) ? dst : TMP_REG1;
+ cc = get_cc(type & 0xff);
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_REG1;
if (GET_OPCODE(op) < SLJIT_ADD) {
FAIL_IF(push_inst(compiler, CSINC | (cc << 12) | RD(dst_r) | RN(TMP_ZERO) | RM(TMP_ZERO)));
@@ -1872,7 +1989,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
sljit_si dst_r;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeARM_T2_32.c b/src/3rdparty/pcre/sljit/sljitNativeARM_T2_32.c
index 682f964e35..6e38cec899 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeARM_T2_32.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeARM_T2_32.c
@@ -33,17 +33,17 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
typedef sljit_ui sljit_ins;
/* Last register + 1. */
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
-#define TMP_PC (SLJIT_NO_REGISTERS + 4)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
+#define TMP_PC (SLJIT_NUMBER_OF_REGISTERS + 5)
#define TMP_FREG1 (0)
-#define TMP_FREG2 (SLJIT_FLOAT_REG6 + 1)
+#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
/* See sljit_emit_enter and sljit_emit_op0 if you want to change them. */
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = {
- 0, 0, 1, 2, 12, 5, 6, 7, 8, 10, 11, 13, 3, 4, 14, 15
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = {
+ 0, 0, 1, 2, 12, 11, 10, 9, 8, 7, 6, 5, 13, 3, 4, 14, 15
};
#define COPY_BITS(src, from, to, bits) \
@@ -138,9 +138,9 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = {
#define ORRI 0xf0400000
#define ORRS 0x4300
#define ORR_W 0xea400000
-#define POP 0xbd00
+#define POP 0xbc00
#define POP_W 0xe8bd0000
-#define PUSH 0xb500
+#define PUSH 0xb400
#define PUSH_W 0xe92d0000
#define RSB_WI 0xf1c00000
#define RSBSI 0x4240
@@ -169,8 +169,12 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = {
#define VABS_F32 0xeeb00ac0
#define VADD_F32 0xee300a00
#define VCMP_F32 0xeeb40a40
+#define VCVT_F32_S32 0xeeb80ac0
+#define VCVT_F64_F32 0xeeb70ac0
+#define VCVT_S32_F32 0xeebd0ac0
#define VDIV_F32 0xee800a00
#define VMOV_F32 0xeeb00a40
+#define VMOV 0xee000a10
#define VMRS 0xeef1fa10
#define VMUL_F32 0xee200a00
#define VNEG_F32 0xeeb10a40
@@ -349,7 +353,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
code = (sljit_uh*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_uh));
@@ -956,7 +960,7 @@ static sljit_si getput_arg_fast(struct sljit_compiler *compiler, sljit_si flags,
}
/* SP based immediate. */
- if (SLJIT_UNLIKELY(arg == SLJIT_LOCALS_REG) && OFFSET_CHECK(0xff, 2) && IS_WORD_SIZE(flags) && reg_map[reg] <= 7) {
+ if (SLJIT_UNLIKELY(arg == SLJIT_SP) && OFFSET_CHECK(0xff, 2) && IS_WORD_SIZE(flags) && reg_map[reg] <= 7) {
FAIL_IF(push_inst16(compiler, STR_SP | ((flags & STORE) ? 0 : 0x800) | RDN3(reg) | (argw >> 2)));
return -1;
}
@@ -1123,86 +1127,73 @@ static SLJIT_INLINE sljit_si emit_op_mem2(struct sljit_compiler *compiler, sljit
/* Entry, exit */
/* --------------------------------------------------------------------- */
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- sljit_si size;
+ sljit_si size, i, tmp;
sljit_ins push;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
push = (1 << 4);
- if (saveds >= 5)
- push |= 1 << 11;
- if (saveds >= 4)
- push |= 1 << 10;
- if (saveds >= 3)
- push |= 1 << 8;
- if (saveds >= 2)
- push |= 1 << 7;
- if (saveds >= 1)
- push |= 1 << 6;
- if (scratches >= 5)
- push |= 1 << 5;
- FAIL_IF(saveds >= 3
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--)
+ push |= 1 << reg_map[i];
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--)
+ push |= 1 << reg_map[i];
+
+ FAIL_IF((push & 0xff00)
? push_inst32(compiler, PUSH_W | (1 << 14) | push)
- : push_inst16(compiler, PUSH | push));
+ : push_inst16(compiler, PUSH | (1 << 8) | push));
- /* Stack must be aligned to 8 bytes: */
- size = (3 + saveds) * sizeof(sljit_uw);
- local_size += size;
- local_size = (local_size + 7) & ~7;
- local_size -= size;
+ /* Stack must be aligned to 8 bytes: (LR, R4) */
+ size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2);
+ local_size = ((size + local_size + 7) & ~7) - size;
compiler->local_size = local_size;
if (local_size > 0) {
if (local_size <= (127 << 2))
FAIL_IF(push_inst16(compiler, SUB_SP | (local_size >> 2)));
else
- FAIL_IF(emit_op_imm(compiler, SLJIT_SUB | ARG2_IMM, SLJIT_LOCALS_REG, SLJIT_LOCALS_REG, local_size));
+ FAIL_IF(emit_op_imm(compiler, SLJIT_SUB | ARG2_IMM, SLJIT_SP, SLJIT_SP, local_size));
}
if (args >= 1)
- FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_SAVED_REG1, SLJIT_SCRATCH_REG1)));
+ FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S0, SLJIT_R0)));
if (args >= 2)
- FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_SAVED_REG2, SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S1, SLJIT_R1)));
if (args >= 3)
- FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_SAVED_REG3, SLJIT_SCRATCH_REG3)));
+ FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(SLJIT_S2, SLJIT_R2)));
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
sljit_si size;
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- size = (3 + saveds) * sizeof(sljit_uw);
- local_size += size;
- local_size = (local_size + 7) & ~7;
- local_size -= size;
- compiler->local_size = local_size;
+ size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 2);
+ compiler->local_size = ((size + local_size + 7) & ~7) - size;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
+ sljit_si i, tmp;
sljit_ins pop;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
@@ -1210,25 +1201,21 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compi
if (compiler->local_size <= (127 << 2))
FAIL_IF(push_inst16(compiler, ADD_SP | (compiler->local_size >> 2)));
else
- FAIL_IF(emit_op_imm(compiler, SLJIT_ADD | ARG2_IMM, SLJIT_LOCALS_REG, SLJIT_LOCALS_REG, compiler->local_size));
+ FAIL_IF(emit_op_imm(compiler, SLJIT_ADD | ARG2_IMM, SLJIT_SP, SLJIT_SP, compiler->local_size));
}
pop = (1 << 4);
- if (compiler->saveds >= 5)
- pop |= 1 << 11;
- if (compiler->saveds >= 4)
- pop |= 1 << 10;
- if (compiler->saveds >= 3)
- pop |= 1 << 8;
- if (compiler->saveds >= 2)
- pop |= 1 << 7;
- if (compiler->saveds >= 1)
- pop |= 1 << 6;
- if (compiler->scratches >= 5)
- pop |= 1 << 5;
- return compiler->saveds >= 3
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--)
+ pop |= 1 << reg_map[i];
+
+ for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--)
+ pop |= 1 << reg_map[i];
+
+ return (pop & 0xff00)
? push_inst32(compiler, POP_W | (1 << 15) | pop)
- : push_inst16(compiler, POP | pop);
+ : push_inst16(compiler, POP | (1 << 8) | pop);
}
/* --------------------------------------------------------------------- */
@@ -1253,7 +1240,7 @@ extern int __aeabi_idivmod(int numerator, int denominator);
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
{
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
@@ -1261,15 +1248,15 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
return push_inst16(compiler, BKPT);
case SLJIT_NOP:
return push_inst16(compiler, NOP);
- case SLJIT_UMUL:
- case SLJIT_SMUL:
- return push_inst32(compiler, (op == SLJIT_UMUL ? UMULL : SMULL)
- | (reg_map[SLJIT_SCRATCH_REG2] << 8)
- | (reg_map[SLJIT_SCRATCH_REG1] << 12)
- | (reg_map[SLJIT_SCRATCH_REG1] << 16)
- | reg_map[SLJIT_SCRATCH_REG2]);
- case SLJIT_UDIV:
- case SLJIT_SDIV:
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
+ return push_inst32(compiler, (op == SLJIT_LUMUL ? UMULL : SMULL)
+ | (reg_map[SLJIT_R1] << 8)
+ | (reg_map[SLJIT_R0] << 12)
+ | (reg_map[SLJIT_R0] << 16)
+ | reg_map[SLJIT_R1]);
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
if (compiler->scratches >= 4) {
FAIL_IF(push_inst32(compiler, 0xf84d2d04 /* str r2, [sp, #-4]! */));
FAIL_IF(push_inst32(compiler, 0xf84dcd04 /* str ip, [sp, #-4]! */));
@@ -1277,7 +1264,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
FAIL_IF(push_inst32(compiler, 0xf84d2d08 /* str r2, [sp, #-8]! */));
#if defined(__GNUC__)
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM,
- (op == SLJIT_UDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
+ (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod))));
#else
#error "Software divmod functions are needed"
#endif
@@ -1300,7 +1287,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
sljit_si op_flags = GET_ALL_FLAGS(op);
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1393,7 +1380,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
}
if (op == SLJIT_NEG) {
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_op2(compiler, SLJIT_SUB | op_flags, dst, dstw, SLJIT_IMM, 0, src, srcw);
@@ -1432,7 +1420,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si dst_r, flags;
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1505,22 +1493,21 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
- return reg;
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
+ return reg << 1;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler,
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 2 || size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
if (size == 2)
return push_inst16(compiler, *(sljit_uh*)instruction);
@@ -1607,6 +1594,69 @@ static sljit_si emit_fop_mem(struct sljit_compiler *compiler, sljit_si flags, sl
return push_inst32(compiler, inst | 0x800000 | RN4(TMP_REG3) | DD4(reg));
}
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ if (src & SLJIT_MEM) {
+ FAIL_IF(emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, src, srcw));
+ src = TMP_FREG1;
+ }
+
+ FAIL_IF(push_inst32(compiler, VCVT_S32_F32 | (op & SLJIT_SINGLE_OP) | DD4(TMP_FREG1) | DM4(src)));
+
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
+
+ if (FAST_IS_REG(dst))
+ return push_inst32(compiler, VMOV | (1 << 20) | RT4(dst) | DN4(TMP_FREG1));
+
+ /* Store the integer value from a VFP register. */
+ return emit_fop_mem(compiler, 0, TMP_FREG1, dst, dstw);
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+
+ if (FAST_IS_REG(src))
+ FAIL_IF(push_inst32(compiler, VMOV | RT4(src) | DN4(TMP_FREG1)));
+ else if (src & SLJIT_MEM) {
+ /* Load the integer value into a VFP register. */
+ FAIL_IF(emit_fop_mem(compiler, FPU_LOAD, TMP_FREG1, src, srcw));
+ }
+ else {
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw));
+ FAIL_IF(push_inst32(compiler, VMOV | RT4(TMP_REG1) | DN4(TMP_FREG1)));
+ }
+
+ FAIL_IF(push_inst32(compiler, VCVT_F32_S32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(TMP_FREG1)));
+
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), TMP_FREG1, dst, dstw);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ if (src1 & SLJIT_MEM) {
+ emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, src1, src1w);
+ src1 = TMP_FREG1;
+ }
+
+ if (src2 & SLJIT_MEM) {
+ emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG2, src2, src2w);
+ src2 = TMP_FREG2;
+ }
+
+ FAIL_IF(push_inst32(compiler, VCMP_F32 | (op & SLJIT_SINGLE_OP) | DD4(src1) | DM4(src2)));
+ return push_inst32(compiler, VMRS);
+}
+
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
@@ -1614,48 +1664,45 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compile
sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100), float_transfer_bit_error);
-
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- op ^= SLJIT_SINGLE_OP;
+ if (GET_OPCODE(op) != SLJIT_CONVD_FROMS)
+ op ^= SLJIT_SINGLE_OP;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, dst, dstw);
- dst = TMP_FREG1;
- }
- if (src & SLJIT_MEM) {
- emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG2, src, srcw);
- src = TMP_FREG2;
- }
- FAIL_IF(push_inst32(compiler, VCMP_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst) | DM4(src)));
- return push_inst32(compiler, VMRS);
- }
+ SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100), float_transfer_bit_error);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
+
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
- dst_r = (dst <= REG_MASK) ? dst : TMP_FREG1;
if (src & SLJIT_MEM) {
emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, dst_r, src, srcw);
src = dst_r;
}
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_r)
- FAIL_IF(push_inst32(compiler, VMOV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1)
+ FAIL_IF(push_inst32(compiler, VMOV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
+ else
+ dst_r = src;
+ }
break;
- case SLJIT_NEGD:
+ case SLJIT_DNEG:
FAIL_IF(push_inst32(compiler, VNEG_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
break;
- case SLJIT_ABSD:
+ case SLJIT_DABS:
FAIL_IF(push_inst32(compiler, VABS_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
break;
+ case SLJIT_CONVD_FROMS:
+ FAIL_IF(push_inst32(compiler, VCVT_F64_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DM4(src)));
+ op ^= SLJIT_SINGLE_OP;
+ break;
}
- if (!(dst & SLJIT_MEM))
- return SLJIT_SUCCESS;
- return emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), TMP_FREG1, dst, dstw);
+ if (dst & SLJIT_MEM)
+ return emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP), dst_r, dst, dstw);
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
@@ -1666,13 +1713,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
op ^= SLJIT_SINGLE_OP;
- dst_r = (dst <= REG_MASK) ? dst : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
if (src1 & SLJIT_MEM) {
emit_fop_mem(compiler, (op & SLJIT_SINGLE_OP) | FPU_LOAD, TMP_FREG1, src1, src1w);
src1 = TMP_FREG1;
@@ -1683,16 +1733,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
}
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
+ case SLJIT_DADD:
FAIL_IF(push_inst32(compiler, VADD_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
break;
- case SLJIT_SUBD:
+ case SLJIT_DSUB:
FAIL_IF(push_inst32(compiler, VSUB_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
break;
- case SLJIT_MULD:
+ case SLJIT_DMUL:
FAIL_IF(push_inst32(compiler, VMUL_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
break;
- case SLJIT_DIVD:
+ case SLJIT_DDIV:
FAIL_IF(push_inst32(compiler, VDIV_F32 | (op & SLJIT_SINGLE_OP) | DD4(dst_r) | DN4(src1) | DM4(src2)));
break;
}
@@ -1711,14 +1761,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
if (dst == SLJIT_UNUSED)
return SLJIT_SUCCESS;
- if (dst <= REG_MASK)
+ if (FAST_IS_REG(dst))
return push_inst16(compiler, MOV | SET_REGS44(dst, TMP_REG3));
/* Memory. */
@@ -1734,10 +1784,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
- if (src <= REG_MASK)
+ if (FAST_IS_REG(src))
FAIL_IF(push_inst16(compiler, MOV | SET_REGS44(TMP_REG3, src)));
else if (src & SLJIT_MEM) {
if (getput_arg_fast(compiler, WORD_SIZE, TMP_REG3, src, srcw))
@@ -1761,53 +1811,54 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
static sljit_uw get_cc(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_MUL_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_EQUAL:
+ case SLJIT_MUL_NOT_OVERFLOW:
+ case SLJIT_D_EQUAL:
return 0x0;
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_MUL_OVERFLOW:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_MUL_OVERFLOW:
+ case SLJIT_D_NOT_EQUAL:
return 0x1;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
return 0x3;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
return 0x2;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
return 0x8;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return 0x9;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return 0xb;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return 0xa;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return 0xc;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return 0xd;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_OVERFLOW:
+ case SLJIT_D_UNORDERED:
return 0x6;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_D_ORDERED:
return 0x7;
default: /* SLJIT_JUMP */
+ SLJIT_ASSERT_STOP();
return 0xe;
}
}
@@ -1817,7 +1868,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -1834,7 +1885,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
sljit_ins cc;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
PTR_FAIL_IF(!jump);
@@ -1866,7 +1917,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
struct sljit_jump *jump;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
/* In ARM, we don't need to touch the arguments. */
@@ -1898,7 +1949,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_ins cc, ins;
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1906,7 +1957,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
return SLJIT_SUCCESS;
op = GET_OPCODE(op);
- cc = get_cc(type);
+ cc = get_cc(type & 0xff);
dst_r = FAST_IS_REG(dst) ? dst : TMP_REG2;
if (op < SLJIT_ADD) {
@@ -1977,7 +2028,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
sljit_si dst_r;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeMIPS_32.c b/src/3rdparty/pcre/sljit/sljitNativeMIPS_32.c
index cb7c695168..b2b60d7a4c 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeMIPS_32.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeMIPS_32.c
@@ -84,7 +84,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM));
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
if (op == SLJIT_MOV_SB) {
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
return push_inst(compiler, SEB | T(src2) | D(dst), DR(dst));
#else
FAIL_IF(push_inst(compiler, SLL | T(src2) | D(dst) | SH_IMM(24), DR(dst)));
@@ -102,7 +102,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM));
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
if (op == SLJIT_MOV_SH) {
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
return push_inst(compiler, SEH | T(src2) | D(dst), DR(dst));
#else
FAIL_IF(push_inst(compiler, SLL | T(src2) | D(dst) | SH_IMM(16), DR(dst)));
@@ -125,7 +125,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
case SLJIT_CLZ:
SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM));
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, CLZ | S(src2) | TA(EQUAL_FLAG) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (CHECK_FLAGS(SLJIT_SET_E))
@@ -154,9 +154,9 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_O) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
else
- FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, ADDIU | S(src1) | TA(EQUAL_FLAG) | IMM(src2), EQUAL_FLAG));
@@ -174,7 +174,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
}
else {
if (op & SLJIT_SET_O)
- FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, ADDU | S(src1) | T(src2) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (op & (SLJIT_SET_C | SLJIT_SET_O))
@@ -189,8 +189,8 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG));
if (!(op & SLJIT_SET_O))
return SLJIT_SUCCESS;
- FAIL_IF(push_inst(compiler, SLL | TA(ULESS_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG));
- FAIL_IF(push_inst(compiler, XOR | SA(TMP_EREG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, SLL | TA(ULESS_FLAG) | D(TMP_REG1) | SH_IMM(31), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, XOR | S(TMP_REG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, XOR | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
return push_inst(compiler, SLL | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG);
@@ -198,21 +198,21 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_C) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, ORI | S(src1) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, ORI | S(src1) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
else {
- FAIL_IF(push_inst(compiler, ADDIU | SA(0) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
- FAIL_IF(push_inst(compiler, OR | S(src1) | TA(TMP_EREG1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, ADDIU | SA(0) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
}
FAIL_IF(push_inst(compiler, ADDIU | S(src1) | T(dst) | IMM(src2), DR(dst)));
} else {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, ADDU | S(src1) | T(src2) | D(dst), DR(dst)));
}
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(TMP_EREG1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, ADDU | S(dst) | TA(ULESS_FLAG) | D(dst), DR(dst)));
if (!(op & SLJIT_SET_C))
@@ -221,7 +221,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
/* Set ULESS_FLAG (dst == 0) && (ULESS_FLAG == 1). */
FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG));
/* Set carry flag. */
- return push_inst(compiler, OR | SA(ULESS_FLAG) | TA(TMP_EREG1) | DA(ULESS_FLAG), ULESS_FLAG);
+ return push_inst(compiler, OR | SA(ULESS_FLAG) | TA(OVERFLOW_FLAG) | DA(ULESS_FLAG), ULESS_FLAG);
case SLJIT_SUB:
if ((flags & SRC2_IMM) && ((op & (SLJIT_SET_U | SLJIT_SET_S)) || src2 == SIMM_MIN)) {
@@ -233,9 +233,9 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_O) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
else
- FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, ADDIU | S(src1) | TA(EQUAL_FLAG) | IMM(-src2), EQUAL_FLAG));
@@ -247,7 +247,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
}
else {
if (op & SLJIT_SET_O)
- FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SUBU | S(src1) | T(src2) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (op & (SLJIT_SET_U | SLJIT_SET_C | SLJIT_SET_O))
@@ -265,8 +265,8 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (!(op & SLJIT_SET_O))
return SLJIT_SUCCESS;
- FAIL_IF(push_inst(compiler, SLL | TA(ULESS_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG));
- FAIL_IF(push_inst(compiler, XOR | SA(TMP_EREG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, SLL | TA(ULESS_FLAG) | D(TMP_REG1) | SH_IMM(31), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, XOR | S(TMP_REG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, XOR | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
return push_inst(compiler, SRL | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG);
@@ -279,27 +279,27 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTIU | S(src1) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTIU | S(src1) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, ADDIU | S(src1) | T(dst) | IMM(-src2), DR(dst)));
}
else {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTU | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, SUBU | S(src1) | T(src2) | D(dst), DR(dst)));
}
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(TMP_EREG2), TMP_EREG2));
+ FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(LESS_FLAG), LESS_FLAG));
FAIL_IF(push_inst(compiler, SUBU | S(dst) | TA(ULESS_FLAG) | D(dst), DR(dst)));
- return (op & SLJIT_SET_C) ? push_inst(compiler, OR | SA(TMP_EREG1) | TA(TMP_EREG2) | DA(ULESS_FLAG), ULESS_FLAG) : SLJIT_SUCCESS;
+ return (op & SLJIT_SET_C) ? push_inst(compiler, OR | SA(OVERFLOW_FLAG) | TA(LESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG) : SLJIT_SUCCESS;
case SLJIT_MUL:
SLJIT_ASSERT(!(flags & SRC2_IMM));
if (!(op & SLJIT_SET_O)) {
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
return push_inst(compiler, MUL | S(src1) | T(src2) | D(dst), DR(dst));
#else
FAIL_IF(push_inst(compiler, MULT | S(src1) | T(src2), MOVABLE_INS));
@@ -307,10 +307,10 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
#endif
}
FAIL_IF(push_inst(compiler, MULT | S(src1) | T(src2), MOVABLE_INS));
- FAIL_IF(push_inst(compiler, MFHI | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, MFHI | DA(ULESS_FLAG), ULESS_FLAG));
FAIL_IF(push_inst(compiler, MFLO | D(dst), DR(dst)));
- FAIL_IF(push_inst(compiler, SRA | T(dst) | DA(TMP_EREG2) | SH_IMM(31), TMP_EREG2));
- return push_inst(compiler, SUBU | SA(TMP_EREG1) | TA(TMP_EREG2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG);
+ FAIL_IF(push_inst(compiler, SRA | T(dst) | DA(UGREATER_FLAG) | SH_IMM(31), UGREATER_FLAG));
+ return push_inst(compiler, SUBU | SA(ULESS_FLAG) | TA(UGREATER_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG);
case SLJIT_AND:
EMIT_LOGICAL(ANDI, AND);
diff --git a/src/3rdparty/pcre/sljit/sljitNativeMIPS_64.c b/src/3rdparty/pcre/sljit/sljitNativeMIPS_64.c
index df22ebaf55..185fb5768e 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeMIPS_64.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeMIPS_64.c
@@ -217,7 +217,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
case SLJIT_CLZ:
SLJIT_ASSERT(src1 == TMP_REG1 && !(flags & SRC2_IMM));
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SELECT_OP(DCLZ, CLZ) | S(src2) | TA(EQUAL_FLAG) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (CHECK_FLAGS(SLJIT_SET_E))
@@ -246,9 +246,9 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_O) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
else
- FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | S(src1) | TA(EQUAL_FLAG) | IMM(src2), EQUAL_FLAG));
@@ -266,7 +266,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
}
else {
if (op & SLJIT_SET_O)
- FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SELECT_OP(DADDU, ADDU) | S(src1) | T(src2) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (op & (SLJIT_SET_C | SLJIT_SET_O))
@@ -281,8 +281,8 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG));
if (!(op & SLJIT_SET_O))
return SLJIT_SUCCESS;
- FAIL_IF(push_inst(compiler, SELECT_OP(DSLL32, SLL) | TA(ULESS_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG));
- FAIL_IF(push_inst(compiler, XOR | SA(TMP_EREG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, SELECT_OP(DSLL32, SLL) | TA(ULESS_FLAG) | D(TMP_REG1) | SH_IMM(31), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, XOR | S(TMP_REG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, XOR | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
return push_inst(compiler, SELECT_OP(DSRL32, SLL) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG);
@@ -290,21 +290,21 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_C) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, ORI | S(src1) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, ORI | S(src1) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
else {
- FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | SA(0) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
- FAIL_IF(push_inst(compiler, OR | S(src1) | TA(TMP_EREG1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | SA(0) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
}
FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | S(src1) | T(dst) | IMM(src2), DR(dst)));
} else {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, SELECT_OP(DADDU, ADDU) | S(src1) | T(src2) | D(dst), DR(dst)));
}
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(TMP_EREG1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, SELECT_OP(DADDU, ADDU) | S(dst) | TA(ULESS_FLAG) | D(dst), DR(dst)));
if (!(op & SLJIT_SET_C))
@@ -313,7 +313,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
/* Set ULESS_FLAG (dst == 0) && (ULESS_FLAG == 1). */
FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG));
/* Set carry flag. */
- return push_inst(compiler, OR | SA(ULESS_FLAG) | TA(TMP_EREG1) | DA(ULESS_FLAG), ULESS_FLAG);
+ return push_inst(compiler, OR | SA(ULESS_FLAG) | TA(OVERFLOW_FLAG) | DA(ULESS_FLAG), ULESS_FLAG);
case SLJIT_SUB:
if ((flags & SRC2_IMM) && ((op & (SLJIT_SET_U | SLJIT_SET_S)) || src2 == SIMM_MIN)) {
@@ -325,9 +325,9 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_O) {
if (src2 >= 0)
- FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, OR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
else
- FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, NOR | S(src1) | T(src1) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
}
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | S(src1) | TA(EQUAL_FLAG) | IMM(-src2), EQUAL_FLAG));
@@ -339,7 +339,7 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
}
else {
if (op & SLJIT_SET_O)
- FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, XOR | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
if (op & SLJIT_SET_E)
FAIL_IF(push_inst(compiler, SELECT_OP(DSUBU, SUBU) | S(src1) | T(src2) | DA(EQUAL_FLAG), EQUAL_FLAG));
if (op & (SLJIT_SET_U | SLJIT_SET_C | SLJIT_SET_O))
@@ -357,8 +357,8 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (!(op & SLJIT_SET_O))
return SLJIT_SUCCESS;
- FAIL_IF(push_inst(compiler, SELECT_OP(DSLL32, SLL) | TA(ULESS_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG));
- FAIL_IF(push_inst(compiler, XOR | SA(TMP_EREG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
+ FAIL_IF(push_inst(compiler, SELECT_OP(DSLL32, SLL) | TA(ULESS_FLAG) | D(TMP_REG1) | SH_IMM(31), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, XOR | S(TMP_REG1) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
FAIL_IF(push_inst(compiler, XOR | S(dst) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
return push_inst(compiler, SELECT_OP(DSRL32, SRL) | TA(OVERFLOW_FLAG) | DA(OVERFLOW_FLAG) | SH_IMM(31), OVERFLOW_FLAG);
@@ -371,27 +371,27 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (flags & SRC2_IMM) {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTIU | S(src1) | TA(TMP_EREG1) | IMM(src2), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTIU | S(src1) | TA(OVERFLOW_FLAG) | IMM(src2), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, SELECT_OP(DADDIU, ADDIU) | S(src1) | T(dst) | IMM(-src2), DR(dst)));
}
else {
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(src1) | T(src2) | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, SLTU | S(src1) | T(src2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG));
/* dst may be the same as src1 or src2. */
FAIL_IF(push_inst(compiler, SELECT_OP(DSUBU, SUBU) | S(src1) | T(src2) | D(dst), DR(dst)));
}
if (op & SLJIT_SET_C)
- FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(TMP_EREG2), TMP_EREG2));
+ FAIL_IF(push_inst(compiler, SLTU | S(dst) | TA(ULESS_FLAG) | DA(LESS_FLAG), LESS_FLAG));
FAIL_IF(push_inst(compiler, SELECT_OP(DSUBU, SUBU) | S(dst) | TA(ULESS_FLAG) | D(dst), DR(dst)));
- return (op & SLJIT_SET_C) ? push_inst(compiler, OR | SA(TMP_EREG1) | TA(TMP_EREG2) | DA(ULESS_FLAG), ULESS_FLAG) : SLJIT_SUCCESS;
+ return (op & SLJIT_SET_C) ? push_inst(compiler, OR | SA(OVERFLOW_FLAG) | TA(LESS_FLAG) | DA(ULESS_FLAG), ULESS_FLAG) : SLJIT_SUCCESS;
case SLJIT_MUL:
SLJIT_ASSERT(!(flags & SRC2_IMM));
if (!(op & SLJIT_SET_O)) {
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
if (op & SLJIT_INT_OP)
return push_inst(compiler, MUL | S(src1) | T(src2) | D(dst), DR(dst));
FAIL_IF(push_inst(compiler, DMULT | S(src1) | T(src2), MOVABLE_INS));
@@ -402,10 +402,10 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
#endif
}
FAIL_IF(push_inst(compiler, SELECT_OP(DMULT, MULT) | S(src1) | T(src2), MOVABLE_INS));
- FAIL_IF(push_inst(compiler, MFHI | DA(TMP_EREG1), TMP_EREG1));
+ FAIL_IF(push_inst(compiler, MFHI | DA(ULESS_FLAG), ULESS_FLAG));
FAIL_IF(push_inst(compiler, MFLO | D(dst), DR(dst)));
- FAIL_IF(push_inst(compiler, SELECT_OP(DSRA32, SRA) | T(dst) | DA(TMP_EREG2) | SH_IMM(31), TMP_EREG2));
- return push_inst(compiler, SELECT_OP(DSUBU, SUBU) | SA(TMP_EREG1) | TA(TMP_EREG2) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG);
+ FAIL_IF(push_inst(compiler, SELECT_OP(DSRA32, SRA) | T(dst) | DA(UGREATER_FLAG) | SH_IMM(31), UGREATER_FLAG));
+ return push_inst(compiler, SELECT_OP(DSUBU, SUBU) | SA(ULESS_FLAG) | TA(UGREATER_FLAG) | DA(OVERFLOW_FLAG), OVERFLOW_FLAG);
case SLJIT_AND:
EMIT_LOGICAL(ANDI, AND);
diff --git a/src/3rdparty/pcre/sljit/sljitNativeMIPS_common.c b/src/3rdparty/pcre/sljit/sljitNativeMIPS_common.c
index 011d8874c2..3e2c9f0232 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeMIPS_common.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeMIPS_common.c
@@ -25,13 +25,17 @@
*/
/* Latest MIPS architecture. */
-/* Automatically detect SLJIT_MIPS_32_64 */
+/* Automatically detect SLJIT_MIPS_R1 */
SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
{
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
- return "MIPS V" SLJIT_CPUINFO;
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+ return "MIPS32-R1" SLJIT_CPUINFO;
#else
+ return "MIPS64-R1" SLJIT_CPUINFO;
+#endif
+#else /* SLJIT_MIPS_R1 */
return "MIPS III" SLJIT_CPUINFO;
#endif
}
@@ -40,35 +44,32 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
Both for mips-32 and mips-64 */
typedef sljit_ui sljit_ins;
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
/* For position independent code, t9 must contain the function address. */
#define PIC_ADDR_REG TMP_REG2
-/* TMP_EREGs are used mainly for arithmetic operations. */
-#define TMP_EREG1 15
-#define TMP_EREG2 24
/* Floating point status register. */
#define FCSR_REG 31
/* Return address register. */
#define RETURN_ADDR_REG 31
-/* Flags are keept in volatile registers. */
-#define EQUAL_FLAG 7
+/* Flags are kept in volatile registers. */
+#define EQUAL_FLAG 12
/* And carry flag as well. */
-#define ULESS_FLAG 10
-#define UGREATER_FLAG 11
-#define LESS_FLAG 12
-#define GREATER_FLAG 13
-#define OVERFLOW_FLAG 14
+#define ULESS_FLAG 13
+#define UGREATER_FLAG 14
+#define LESS_FLAG 15
+#define GREATER_FLAG 31
+#define OVERFLOW_FLAG 1
#define TMP_FREG1 (0)
-#define TMP_FREG2 ((SLJIT_FLOAT_REG6 + 1) << 1)
+#define TMP_FREG2 ((SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) << 1)
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
- 0, 2, 5, 6, 3, 8, 16, 17, 18, 19, 20, 29, 4, 25, 9
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = {
+ 0, 2, 5, 6, 7, 8, 9, 10, 11, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29, 3, 25, 4
};
/* --------------------------------------------------------------------- */
@@ -92,10 +93,10 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
#define HI(opcode) ((opcode) << 26)
#define LO(opcode) (opcode)
/* S = (16 << 21) D = (17 << 21) */
-#define FMT_SD (16 << 21)
+#define FMT_S (16 << 21)
-#define ABS_fmt (HI(17) | FMT_SD | LO(5))
-#define ADD_fmt (HI(17) | FMT_SD | LO(0))
+#define ABS_S (HI(17) | FMT_S | LO(5))
+#define ADD_S (HI(17) | FMT_S | LO(0))
#define ADDIU (HI(9))
#define ADDU (HI(0) | LO(33))
#define AND (HI(0) | LO(36))
@@ -112,17 +113,18 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
#define BNE (HI(5))
#define BREAK (HI(0) | LO(13))
#define CFC1 (HI(17) | (2 << 21))
-#define C_UN_fmt (HI(17) | FMT_SD | LO(49))
-#define C_UEQ_fmt (HI(17) | FMT_SD | LO(51))
-#define C_ULE_fmt (HI(17) | FMT_SD | LO(55))
-#define C_ULT_fmt (HI(17) | FMT_SD | LO(53))
+#define C_UN_S (HI(17) | FMT_S | LO(49))
+#define C_UEQ_S (HI(17) | FMT_S | LO(51))
+#define C_ULE_S (HI(17) | FMT_S | LO(55))
+#define C_ULT_S (HI(17) | FMT_S | LO(53))
+#define CVT_S_S (HI(17) | FMT_S | LO(32))
#define DADDIU (HI(25))
#define DADDU (HI(0) | LO(45))
#define DDIV (HI(0) | LO(30))
#define DDIVU (HI(0) | LO(31))
#define DIV (HI(0) | LO(26))
#define DIVU (HI(0) | LO(27))
-#define DIV_fmt (HI(17) | FMT_SD | LO(3))
+#define DIV_S (HI(17) | FMT_S | LO(3))
#define DMULT (HI(0) | LO(28))
#define DMULTU (HI(0) | LO(29))
#define DSLL (HI(0) | LO(56))
@@ -142,13 +144,15 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
#define LD (HI(55))
#define LUI (HI(15))
#define LW (HI(35))
+#define MFC1 (HI(17))
#define MFHI (HI(0) | LO(16))
#define MFLO (HI(0) | LO(18))
-#define MOV_fmt (HI(17) | FMT_SD | LO(6))
-#define MUL_fmt (HI(17) | FMT_SD | LO(2))
+#define MOV_S (HI(17) | FMT_S | LO(6))
+#define MTC1 (HI(17) | (4 << 21))
+#define MUL_S (HI(17) | FMT_S | LO(2))
#define MULT (HI(0) | LO(24))
#define MULTU (HI(0) | LO(25))
-#define NEG_fmt (HI(17) | FMT_SD | LO(7))
+#define NEG_S (HI(17) | FMT_S | LO(7))
#define NOP (HI(0) | LO(0))
#define NOR (HI(0) | LO(39))
#define OR (HI(0) | LO(37))
@@ -164,13 +168,14 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
#define SRLV (HI(0) | LO(6))
#define SRA (HI(0) | LO(3))
#define SRAV (HI(0) | LO(7))
-#define SUB_fmt (HI(17) | FMT_SD | LO(1))
+#define SUB_S (HI(17) | FMT_S | LO(1))
#define SUBU (HI(0) | LO(35))
#define SW (HI(43))
+#define TRUNC_W_S (HI(17) | FMT_S | LO(13))
#define XOR (HI(0) | LO(38))
#define XORI (HI(14))
-#if (defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+#if (defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
#define CLZ (HI(28) | LO(32))
#define DCLZ (HI(28) | LO(36))
#define MUL (HI(28) | LO(2))
@@ -366,7 +371,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
code = (sljit_ins*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins));
@@ -495,6 +500,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
/* Separates integer and floating point registers */
#define GPR_REG 0x0f
#define DOUBLE_DATA 0x10
+#define SINGLE_DATA 0x12
#define MEM_MASK 0x1f
@@ -532,20 +538,18 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
#include "sljitNativeMIPS_64.c"
#endif
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
sljit_ins base;
+ sljit_si i, tmp, offs;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- local_size += (saveds + 1 + 4) * sizeof(sljit_sw);
+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET;
#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
local_size = (local_size + 15) & ~0xf;
#else
@@ -555,95 +559,100 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
if (local_size <= SIMM_MAX) {
/* Frequent case. */
- FAIL_IF(push_inst(compiler, ADDIU_W | S(SLJIT_LOCALS_REG) | T(SLJIT_LOCALS_REG) | IMM(-local_size), DR(SLJIT_LOCALS_REG)));
- base = S(SLJIT_LOCALS_REG);
+ FAIL_IF(push_inst(compiler, ADDIU_W | S(SLJIT_SP) | T(SLJIT_SP) | IMM(-local_size), DR(SLJIT_SP)));
+ base = S(SLJIT_SP);
}
else {
FAIL_IF(load_immediate(compiler, DR(TMP_REG1), local_size));
- FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_LOCALS_REG) | TA(0) | D(TMP_REG2), DR(TMP_REG2)));
- FAIL_IF(push_inst(compiler, SUBU_W | S(SLJIT_LOCALS_REG) | T(TMP_REG1) | D(SLJIT_LOCALS_REG), DR(SLJIT_LOCALS_REG)));
+ FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_SP) | TA(0) | D(TMP_REG2), DR(TMP_REG2)));
+ FAIL_IF(push_inst(compiler, SUBU_W | S(SLJIT_SP) | T(TMP_REG1) | D(SLJIT_SP), DR(SLJIT_SP)));
base = S(TMP_REG2);
local_size = 0;
}
- FAIL_IF(push_inst(compiler, STACK_STORE | base | TA(RETURN_ADDR_REG) | IMM(local_size - 1 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
- if (saveds >= 1)
- FAIL_IF(push_inst(compiler, STACK_STORE | base | T(SLJIT_SAVED_REG1) | IMM(local_size - 2 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
- if (saveds >= 2)
- FAIL_IF(push_inst(compiler, STACK_STORE | base | T(SLJIT_SAVED_REG2) | IMM(local_size - 3 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
- if (saveds >= 3)
- FAIL_IF(push_inst(compiler, STACK_STORE | base | T(SLJIT_SAVED_REG3) | IMM(local_size - 4 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
- if (saveds >= 4)
- FAIL_IF(push_inst(compiler, STACK_STORE | base | T(SLJIT_SAVED_EREG1) | IMM(local_size - 5 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
- if (saveds >= 5)
- FAIL_IF(push_inst(compiler, STACK_STORE | base | T(SLJIT_SAVED_EREG2) | IMM(local_size - 6 * (sljit_si)sizeof(sljit_sw)), MOVABLE_INS));
+ offs = local_size - (sljit_sw)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | base | TA(RETURN_ADDR_REG) | IMM(offs), MOVABLE_INS));
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--) {
+ offs -= (sljit_si)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | base | T(i) | IMM(offs), MOVABLE_INS));
+ }
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
+ offs -= (sljit_si)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | base | T(i) | IMM(offs), MOVABLE_INS));
+ }
if (args >= 1)
- FAIL_IF(push_inst(compiler, ADDU_W | SA(4) | TA(0) | D(SLJIT_SAVED_REG1), DR(SLJIT_SAVED_REG1)));
+ FAIL_IF(push_inst(compiler, ADDU_W | SA(4) | TA(0) | D(SLJIT_S0), DR(SLJIT_S0)));
if (args >= 2)
- FAIL_IF(push_inst(compiler, ADDU_W | SA(5) | TA(0) | D(SLJIT_SAVED_REG2), DR(SLJIT_SAVED_REG2)));
+ FAIL_IF(push_inst(compiler, ADDU_W | SA(5) | TA(0) | D(SLJIT_S1), DR(SLJIT_S1)));
if (args >= 3)
- FAIL_IF(push_inst(compiler, ADDU_W | SA(6) | TA(0) | D(SLJIT_SAVED_REG3), DR(SLJIT_SAVED_REG3)));
+ FAIL_IF(push_inst(compiler, ADDU_W | SA(6) | TA(0) | D(SLJIT_S2), DR(SLJIT_S2)));
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- local_size += (saveds + 1 + 4) * sizeof(sljit_sw);
+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET;
#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
compiler->local_size = (local_size + 15) & ~0xf;
#else
compiler->local_size = (local_size + 31) & ~0x1f;
#endif
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
- sljit_si local_size;
+ sljit_si local_size, i, tmp, offs;
sljit_ins base;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
local_size = compiler->local_size;
if (local_size <= SIMM_MAX)
- base = S(SLJIT_LOCALS_REG);
+ base = S(SLJIT_SP);
else {
FAIL_IF(load_immediate(compiler, DR(TMP_REG1), local_size));
- FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_LOCALS_REG) | T(TMP_REG1) | D(TMP_REG1), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_SP) | T(TMP_REG1) | D(TMP_REG1), DR(TMP_REG1)));
base = S(TMP_REG1);
local_size = 0;
}
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | TA(RETURN_ADDR_REG) | IMM(local_size - 1 * (sljit_si)sizeof(sljit_sw)), RETURN_ADDR_REG));
- if (compiler->saveds >= 5)
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(SLJIT_SAVED_EREG2) | IMM(local_size - 6 * (sljit_si)sizeof(sljit_sw)), DR(SLJIT_SAVED_EREG2)));
- if (compiler->saveds >= 4)
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(SLJIT_SAVED_EREG1) | IMM(local_size - 5 * (sljit_si)sizeof(sljit_sw)), DR(SLJIT_SAVED_EREG1)));
- if (compiler->saveds >= 3)
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(SLJIT_SAVED_REG3) | IMM(local_size - 4 * (sljit_si)sizeof(sljit_sw)), DR(SLJIT_SAVED_REG3)));
- if (compiler->saveds >= 2)
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(SLJIT_SAVED_REG2) | IMM(local_size - 3 * (sljit_si)sizeof(sljit_sw)), DR(SLJIT_SAVED_REG2)));
- if (compiler->saveds >= 1)
- FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(SLJIT_SAVED_REG1) | IMM(local_size - 2 * (sljit_si)sizeof(sljit_sw)), DR(SLJIT_SAVED_REG1)));
+ FAIL_IF(push_inst(compiler, STACK_LOAD | base | TA(RETURN_ADDR_REG) | IMM(local_size - (sljit_si)sizeof(sljit_sw)), RETURN_ADDR_REG));
+ offs = local_size - (sljit_si)GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1);
+
+ tmp = compiler->scratches;
+ for (i = SLJIT_FIRST_SAVED_REG; i <= tmp; i++) {
+ FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(i) | IMM(offs), DR(i)));
+ offs += (sljit_si)(sizeof(sljit_sw));
+ }
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = tmp; i <= SLJIT_S0; i++) {
+ FAIL_IF(push_inst(compiler, STACK_LOAD | base | T(i) | IMM(offs), DR(i)));
+ offs += (sljit_si)(sizeof(sljit_sw));
+ }
+
+ SLJIT_ASSERT(offs == local_size - (sljit_sw)(sizeof(sljit_sw)));
FAIL_IF(push_inst(compiler, JR | SA(RETURN_ADDR_REG), UNMOVABLE_INS));
if (compiler->local_size <= SIMM_MAX)
- return push_inst(compiler, ADDIU_W | S(SLJIT_LOCALS_REG) | T(SLJIT_LOCALS_REG) | IMM(compiler->local_size), UNMOVABLE_INS);
+ return push_inst(compiler, ADDIU_W | S(SLJIT_SP) | T(SLJIT_SP) | IMM(compiler->local_size), UNMOVABLE_INS);
else
- return push_inst(compiler, ADDU_W | S(TMP_REG1) | TA(0) | D(SLJIT_LOCALS_REG), UNMOVABLE_INS);
+ return push_inst(compiler, ADDU_W | S(TMP_REG1) | TA(0) | D(SLJIT_SP), UNMOVABLE_INS);
}
#undef STACK_STORE
@@ -1027,7 +1036,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
@@ -1035,33 +1044,33 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
return push_inst(compiler, BREAK, UNMOVABLE_INS);
case SLJIT_NOP:
return push_inst(compiler, NOP, UNMOVABLE_INS);
- case SLJIT_UMUL:
- case SLJIT_SMUL:
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
#if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
- FAIL_IF(push_inst(compiler, (op == SLJIT_UMUL ? DMULTU : DMULT) | S(SLJIT_SCRATCH_REG1) | T(SLJIT_SCRATCH_REG2), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUMUL ? DMULTU : DMULT) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS));
#else
- FAIL_IF(push_inst(compiler, (op == SLJIT_UMUL ? MULTU : MULT) | S(SLJIT_SCRATCH_REG1) | T(SLJIT_SCRATCH_REG2), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUMUL ? MULTU : MULT) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS));
#endif
- FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_SCRATCH_REG1), DR(SLJIT_SCRATCH_REG1)));
- return push_inst(compiler, MFHI | D(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG2));
- case SLJIT_UDIV:
- case SLJIT_SDIV:
-#if !(defined SLJIT_MIPS_32_64 && SLJIT_MIPS_32_64)
+ FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0)));
+ return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1));
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
+#if !(defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1)
FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS));
FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS));
#endif
#if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
if (int_op)
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVU : DIV) | S(SLJIT_SCRATCH_REG1) | T(SLJIT_SCRATCH_REG2), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS));
else
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DDIVU : DDIV) | S(SLJIT_SCRATCH_REG1) | T(SLJIT_SCRATCH_REG2), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DDIVU : DDIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS));
#else
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVU : DIV) | S(SLJIT_SCRATCH_REG1) | T(SLJIT_SCRATCH_REG2), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS));
#endif
- FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_SCRATCH_REG1), DR(SLJIT_SCRATCH_REG1)));
- return push_inst(compiler, MFHI | D(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG2));
+ FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0)));
+ return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1));
}
return SLJIT_SUCCESS;
@@ -1078,7 +1087,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1180,7 +1189,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1238,13 +1247,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
return reg << 1;
}
@@ -1252,8 +1261,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
return push_inst(compiler, *(sljit_ins*)instruction, UNMOVABLE_INS);
}
@@ -1278,83 +1286,164 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void)
#define FLOAT_DATA(op) (DOUBLE_DATA | ((op & SLJIT_SINGLE_OP) >> 7))
#define FMT(op) (((op & SLJIT_SINGLE_OP) ^ SLJIT_SINGLE_OP) << (21 - 8))
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+# define flags 0
+#else
+ sljit_si flags = (GET_OPCODE(op) == SLJIT_CONVW_FROMD) << 21;
+#endif
+
+ if (src & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+ src = TMP_FREG1;
+ }
+ else
+ src <<= 1;
+
+ FAIL_IF(push_inst(compiler, (TRUNC_W_S ^ (flags >> 19)) | FMT(op) | FS(src) | FD(TMP_FREG1), MOVABLE_INS));
+
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
+
+ if (FAST_IS_REG(dst))
+ return push_inst(compiler, MFC1 | flags | T(dst) | FS(TMP_FREG1), MOVABLE_INS);
+
+ /* Store the integer value from a VFP register. */
+ return emit_op_mem2(compiler, flags ? DOUBLE_DATA : SINGLE_DATA, TMP_FREG1, dst, dstw, 0, 0);
+
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+# undef is_long
+#endif
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+# define flags 0
+#else
+ sljit_si flags = (GET_OPCODE(op) == SLJIT_CONVD_FROMW) << 21;
+#endif
+
+ sljit_si dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
+
+ if (FAST_IS_REG(src))
+ FAIL_IF(push_inst(compiler, MTC1 | flags | T(src) | FS(TMP_FREG1), MOVABLE_INS));
+ else if (src & SLJIT_MEM) {
+ /* Load the integer value into a VFP register. */
+ FAIL_IF(emit_op_mem2(compiler, ((flags) ? DOUBLE_DATA : SINGLE_DATA) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+ }
+ else {
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ srcw = (sljit_si)srcw;
+#endif
+ FAIL_IF(load_immediate(compiler, DR(TMP_REG1), srcw));
+ FAIL_IF(push_inst(compiler, MTC1 | flags | T(TMP_REG1) | FS(TMP_FREG1), MOVABLE_INS));
+ }
+
+ FAIL_IF(push_inst(compiler, CVT_S_S | flags | (4 << 21) | (((op & SLJIT_SINGLE_OP) ^ SLJIT_SINGLE_OP) >> 8) | FS(TMP_FREG1) | FD(dst_r), MOVABLE_INS));
+
+ if (dst & SLJIT_MEM)
+ return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0);
+ return SLJIT_SUCCESS;
+
+#if (defined SLJIT_CONFIG_MIPS_32 && SLJIT_CONFIG_MIPS_32)
+# undef flags
+#endif
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ if (src1 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w));
+ src1 = TMP_FREG1;
+ }
+ else
+ src1 <<= 1;
+
+ if (src2 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0));
+ src2 = TMP_FREG2;
+ }
+ else
+ src2 <<= 1;
+
+ /* src2 and src1 are swapped. */
+ if (op & SLJIT_SET_E) {
+ FAIL_IF(push_inst(compiler, C_UEQ_S | FMT(op) | FT(src2) | FS(src1), UNMOVABLE_INS));
+ FAIL_IF(push_inst(compiler, CFC1 | TA(EQUAL_FLAG) | DA(FCSR_REG), EQUAL_FLAG));
+ FAIL_IF(push_inst(compiler, SRL | TA(EQUAL_FLAG) | DA(EQUAL_FLAG) | SH_IMM(23), EQUAL_FLAG));
+ FAIL_IF(push_inst(compiler, ANDI | SA(EQUAL_FLAG) | TA(EQUAL_FLAG) | IMM(1), EQUAL_FLAG));
+ }
+ if (op & SLJIT_SET_S) {
+ /* Mixing the instructions for the two checks. */
+ FAIL_IF(push_inst(compiler, C_ULT_S | FMT(op) | FT(src2) | FS(src1), UNMOVABLE_INS));
+ FAIL_IF(push_inst(compiler, CFC1 | TA(ULESS_FLAG) | DA(FCSR_REG), ULESS_FLAG));
+ FAIL_IF(push_inst(compiler, C_ULT_S | FMT(op) | FT(src1) | FS(src2), UNMOVABLE_INS));
+ FAIL_IF(push_inst(compiler, SRL | TA(ULESS_FLAG) | DA(ULESS_FLAG) | SH_IMM(23), ULESS_FLAG));
+ FAIL_IF(push_inst(compiler, ANDI | SA(ULESS_FLAG) | TA(ULESS_FLAG) | IMM(1), ULESS_FLAG));
+ FAIL_IF(push_inst(compiler, CFC1 | TA(UGREATER_FLAG) | DA(FCSR_REG), UGREATER_FLAG));
+ FAIL_IF(push_inst(compiler, SRL | TA(UGREATER_FLAG) | DA(UGREATER_FLAG) | SH_IMM(23), UGREATER_FLAG));
+ FAIL_IF(push_inst(compiler, ANDI | SA(UGREATER_FLAG) | TA(UGREATER_FLAG) | IMM(1), UGREATER_FLAG));
+ }
+ return push_inst(compiler, C_UN_S | FMT(op) | FT(src2) | FS(src1), FCSR_FCC);
+}
+
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- sljit_si dst_fr;
+ sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x2), float_transfer_bit_error);
-
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, dst, dstw, src, srcw));
- dst = TMP_FREG1;
- }
- else
- dst <<= 1;
+ SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x2), float_transfer_bit_error);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
- if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src, srcw, 0, 0));
- src = TMP_FREG2;
- }
- else
- src <<= 1;
-
- /* src and dst are swapped. */
- if (op & SLJIT_SET_E) {
- FAIL_IF(push_inst(compiler, C_UEQ_fmt | FMT(op) | FT(src) | FS(dst), UNMOVABLE_INS));
- FAIL_IF(push_inst(compiler, CFC1 | TA(EQUAL_FLAG) | DA(FCSR_REG), EQUAL_FLAG));
- FAIL_IF(push_inst(compiler, SRL | TA(EQUAL_FLAG) | DA(EQUAL_FLAG) | SH_IMM(23), EQUAL_FLAG));
- FAIL_IF(push_inst(compiler, ANDI | SA(EQUAL_FLAG) | TA(EQUAL_FLAG) | IMM(1), EQUAL_FLAG));
- }
- if (op & SLJIT_SET_S) {
- /* Mixing the instructions for the two checks. */
- FAIL_IF(push_inst(compiler, C_ULT_fmt | FMT(op) | FT(src) | FS(dst), UNMOVABLE_INS));
- FAIL_IF(push_inst(compiler, CFC1 | TA(ULESS_FLAG) | DA(FCSR_REG), ULESS_FLAG));
- FAIL_IF(push_inst(compiler, C_ULT_fmt | FMT(op) | FT(dst) | FS(src), UNMOVABLE_INS));
- FAIL_IF(push_inst(compiler, SRL | TA(ULESS_FLAG) | DA(ULESS_FLAG) | SH_IMM(23), ULESS_FLAG));
- FAIL_IF(push_inst(compiler, ANDI | SA(ULESS_FLAG) | TA(ULESS_FLAG) | IMM(1), ULESS_FLAG));
- FAIL_IF(push_inst(compiler, CFC1 | TA(UGREATER_FLAG) | DA(FCSR_REG), UGREATER_FLAG));
- FAIL_IF(push_inst(compiler, SRL | TA(UGREATER_FLAG) | DA(UGREATER_FLAG) | SH_IMM(23), UGREATER_FLAG));
- FAIL_IF(push_inst(compiler, ANDI | SA(UGREATER_FLAG) | TA(UGREATER_FLAG) | IMM(1), UGREATER_FLAG));
- }
- return push_inst(compiler, C_UN_fmt | FMT(op) | FT(src) | FS(dst), FCSR_FCC);
- }
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMS)
+ op ^= SLJIT_SINGLE_OP;
- dst_fr = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_fr, src, srcw, dst, dstw));
- src = dst_fr;
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw));
+ src = dst_r;
}
else
src <<= 1;
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_fr && dst_fr != TMP_FREG1)
- FAIL_IF(push_inst(compiler, MOV_fmt | FMT(op) | FS(src) | FD(dst_fr), MOVABLE_INS));
- break;
- case SLJIT_NEGD:
- FAIL_IF(push_inst(compiler, NEG_fmt | FMT(op) | FS(src) | FD(dst_fr), MOVABLE_INS));
- break;
- case SLJIT_ABSD:
- FAIL_IF(push_inst(compiler, ABS_fmt | FMT(op) | FS(src) | FD(dst_fr), MOVABLE_INS));
- break;
- }
-
- if (dst_fr == TMP_FREG1) {
- if (GET_OPCODE(op) == SLJIT_MOVD)
- dst_fr = src;
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_fr, dst, dstw, 0, 0));
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1)
+ FAIL_IF(push_inst(compiler, MOV_S | FMT(op) | FS(src) | FD(dst_r), MOVABLE_INS));
+ else
+ dst_r = src;
+ }
+ break;
+ case SLJIT_DNEG:
+ FAIL_IF(push_inst(compiler, NEG_S | FMT(op) | FS(src) | FD(dst_r), MOVABLE_INS));
+ break;
+ case SLJIT_DABS:
+ FAIL_IF(push_inst(compiler, ABS_S | FMT(op) | FS(src) | FD(dst_r), MOVABLE_INS));
+ break;
+ case SLJIT_CONVD_FROMS:
+ FAIL_IF(push_inst(compiler, CVT_S_S | ((op & SLJIT_SINGLE_OP) ? 1 : (1 << 21)) | FS(src) | FD(dst_r), MOVABLE_INS));
+ op ^= SLJIT_SINGLE_OP;
+ break;
}
+ if (dst & SLJIT_MEM)
+ return emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0);
return SLJIT_SUCCESS;
}
@@ -1363,15 +1452,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- sljit_si dst_fr, flags = 0;
+ sljit_si dst_r, flags = 0;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- dst_fr = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2;
+ dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2;
if (src1 & SLJIT_MEM) {
if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) {
@@ -1414,24 +1506,24 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
src2 = TMP_FREG2;
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
- FAIL_IF(push_inst(compiler, ADD_fmt | FMT(op) | FT(src2) | FS(src1) | FD(dst_fr), MOVABLE_INS));
+ case SLJIT_DADD:
+ FAIL_IF(push_inst(compiler, ADD_S | FMT(op) | FT(src2) | FS(src1) | FD(dst_r), MOVABLE_INS));
break;
- case SLJIT_SUBD:
- FAIL_IF(push_inst(compiler, SUB_fmt | FMT(op) | FT(src2) | FS(src1) | FD(dst_fr), MOVABLE_INS));
+ case SLJIT_DSUB:
+ FAIL_IF(push_inst(compiler, SUB_S | FMT(op) | FT(src2) | FS(src1) | FD(dst_r), MOVABLE_INS));
break;
- case SLJIT_MULD:
- FAIL_IF(push_inst(compiler, MUL_fmt | FMT(op) | FT(src2) | FS(src1) | FD(dst_fr), MOVABLE_INS));
+ case SLJIT_DMUL:
+ FAIL_IF(push_inst(compiler, MUL_S | FMT(op) | FT(src2) | FS(src1) | FD(dst_r), MOVABLE_INS));
break;
- case SLJIT_DIVD:
- FAIL_IF(push_inst(compiler, DIV_fmt | FMT(op) | FT(src2) | FS(src1) | FD(dst_fr), MOVABLE_INS));
+ case SLJIT_DDIV:
+ FAIL_IF(push_inst(compiler, DIV_S | FMT(op) | FT(src2) | FS(src1) | FD(dst_r), MOVABLE_INS));
break;
}
- if (dst_fr == TMP_FREG2)
+ if (dst_r == TMP_FREG2)
FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0));
return SLJIT_SUCCESS;
@@ -1444,7 +1536,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
@@ -1461,7 +1553,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src))
@@ -1484,7 +1576,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -1530,7 +1622,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
sljit_si delay_check = UNMOVABLE_INS;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
PTR_FAIL_IF(!jump);
@@ -1538,54 +1630,54 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
type &= 0xff;
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_EQUAL:
+ case SLJIT_D_NOT_EQUAL:
BR_NZ(EQUAL_FLAG);
break;
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_D_EQUAL:
BR_Z(EQUAL_FLAG);
break;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
BR_Z(ULESS_FLAG);
break;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
BR_NZ(ULESS_FLAG);
break;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
BR_Z(UGREATER_FLAG);
break;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
BR_NZ(UGREATER_FLAG);
break;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
BR_Z(LESS_FLAG);
break;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
BR_NZ(LESS_FLAG);
break;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
BR_Z(GREATER_FLAG);
break;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
BR_NZ(GREATER_FLAG);
break;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_MUL_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_MUL_OVERFLOW:
BR_Z(OVERFLOW_FLAG);
break;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_MUL_NOT_OVERFLOW:
BR_NZ(OVERFLOW_FLAG);
break;
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_D_UNORDERED:
BR_F();
break;
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_D_ORDERED:
BR_T();
break;
default:
@@ -1613,7 +1705,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
PTR_FAIL_IF(push_inst(compiler, JALR | S(TMP_REG2) | DA(RETURN_ADDR_REG), UNMOVABLE_INS));
jump->addr = compiler->size;
/* A NOP if type < CALL1. */
- PTR_FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_SCRATCH_REG1) | TA(0) | DA(4), UNMOVABLE_INS));
+ PTR_FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), UNMOVABLE_INS));
}
return jump;
}
@@ -1647,7 +1739,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
sljit_ins inst;
CHECK_ERROR_PTR();
- check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w);
+ CHECK_PTR(check_sljit_emit_cmp(compiler, type, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1668,32 +1760,32 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP);
type &= 0xff;
- if (type <= SLJIT_C_NOT_EQUAL) {
+ if (type <= SLJIT_NOT_EQUAL) {
RESOLVE_IMM1();
RESOLVE_IMM2();
jump->flags |= IS_BIT26_COND;
if (compiler->delay_slot == MOVABLE_INS || (compiler->delay_slot != UNMOVABLE_INS && compiler->delay_slot != DR(src1) && compiler->delay_slot != DR(src2)))
jump->flags |= IS_MOVABLE;
- PTR_FAIL_IF(push_inst(compiler, (type == SLJIT_C_EQUAL ? BNE : BEQ) | S(src1) | T(src2) | JUMP_LENGTH, UNMOVABLE_INS));
+ PTR_FAIL_IF(push_inst(compiler, (type == SLJIT_EQUAL ? BNE : BEQ) | S(src1) | T(src2) | JUMP_LENGTH, UNMOVABLE_INS));
}
- else if (type >= SLJIT_C_SIG_LESS && (((src1 & SLJIT_IMM) && (src1w == 0)) || ((src2 & SLJIT_IMM) && (src2w == 0)))) {
+ else if (type >= SLJIT_SIG_LESS && (((src1 & SLJIT_IMM) && (src1w == 0)) || ((src2 & SLJIT_IMM) && (src2w == 0)))) {
inst = NOP;
if ((src1 & SLJIT_IMM) && (src1w == 0)) {
RESOLVE_IMM2();
switch (type) {
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
inst = BLEZ;
jump->flags |= IS_BIT26_COND;
break;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
inst = BGTZ;
jump->flags |= IS_BIT26_COND;
break;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
inst = BGEZ;
jump->flags |= IS_BIT16_COND;
break;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
inst = BLTZ;
jump->flags |= IS_BIT16_COND;
break;
@@ -1703,19 +1795,19 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
else {
RESOLVE_IMM1();
switch (type) {
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
inst = BGEZ;
jump->flags |= IS_BIT16_COND;
break;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
inst = BLTZ;
jump->flags |= IS_BIT16_COND;
break;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
inst = BLEZ;
jump->flags |= IS_BIT26_COND;
break;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
inst = BGTZ;
jump->flags |= IS_BIT26_COND;
break;
@@ -1724,29 +1816,29 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_cmp(struct sljit_compiler
PTR_FAIL_IF(push_inst(compiler, inst | S(src1) | JUMP_LENGTH, UNMOVABLE_INS));
}
else {
- if (type == SLJIT_C_LESS || type == SLJIT_C_GREATER_EQUAL || type == SLJIT_C_SIG_LESS || type == SLJIT_C_SIG_GREATER_EQUAL) {
+ if (type == SLJIT_LESS || type == SLJIT_GREATER_EQUAL || type == SLJIT_SIG_LESS || type == SLJIT_SIG_GREATER_EQUAL) {
RESOLVE_IMM1();
if ((src2 & SLJIT_IMM) && src2w <= SIMM_MAX && src2w >= SIMM_MIN)
- PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_C_LESS_EQUAL ? SLTIU : SLTI) | S(src1) | T(TMP_REG1) | IMM(src2w), DR(TMP_REG1)));
+ PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_LESS_EQUAL ? SLTIU : SLTI) | S(src1) | T(TMP_REG1) | IMM(src2w), DR(TMP_REG1)));
else {
RESOLVE_IMM2();
- PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_C_LESS_EQUAL ? SLTU : SLT) | S(src1) | T(src2) | D(TMP_REG1), DR(TMP_REG1)));
+ PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_LESS_EQUAL ? SLTU : SLT) | S(src1) | T(src2) | D(TMP_REG1), DR(TMP_REG1)));
}
- type = (type == SLJIT_C_LESS || type == SLJIT_C_SIG_LESS) ? SLJIT_C_NOT_EQUAL : SLJIT_C_EQUAL;
+ type = (type == SLJIT_LESS || type == SLJIT_SIG_LESS) ? SLJIT_NOT_EQUAL : SLJIT_EQUAL;
}
else {
RESOLVE_IMM2();
if ((src1 & SLJIT_IMM) && src1w <= SIMM_MAX && src1w >= SIMM_MIN)
- PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_C_LESS_EQUAL ? SLTIU : SLTI) | S(src2) | T(TMP_REG1) | IMM(src1w), DR(TMP_REG1)));
+ PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_LESS_EQUAL ? SLTIU : SLTI) | S(src2) | T(TMP_REG1) | IMM(src1w), DR(TMP_REG1)));
else {
RESOLVE_IMM1();
- PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_C_LESS_EQUAL ? SLTU : SLT) | S(src2) | T(src1) | D(TMP_REG1), DR(TMP_REG1)));
+ PTR_FAIL_IF(push_inst(compiler, (type <= SLJIT_LESS_EQUAL ? SLTU : SLT) | S(src2) | T(src1) | D(TMP_REG1), DR(TMP_REG1)));
}
- type = (type == SLJIT_C_GREATER || type == SLJIT_C_SIG_GREATER) ? SLJIT_C_NOT_EQUAL : SLJIT_C_EQUAL;
+ type = (type == SLJIT_GREATER || type == SLJIT_SIG_GREATER) ? SLJIT_NOT_EQUAL : SLJIT_EQUAL;
}
jump->flags |= IS_BIT26_COND;
- PTR_FAIL_IF(push_inst(compiler, (type == SLJIT_C_EQUAL ? BNE : BEQ) | S(TMP_REG1) | TA(0) | JUMP_LENGTH, UNMOVABLE_INS));
+ PTR_FAIL_IF(push_inst(compiler, (type == SLJIT_EQUAL ? BNE : BEQ) | S(TMP_REG1) | TA(0) | JUMP_LENGTH, UNMOVABLE_INS));
}
PTR_FAIL_IF(emit_const(compiler, TMP_REG2, 0));
@@ -1768,7 +1860,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compile
sljit_si if_true;
CHECK_ERROR_PTR();
- check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w);
+ CHECK_PTR(check_sljit_emit_fcmp(compiler, type, src1, src1w, src2, src2w));
compiler->cache_arg = 0;
compiler->cache_argw = 0;
@@ -1793,37 +1885,38 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_fcmp(struct sljit_compile
jump->flags |= IS_BIT16_COND;
switch (type & 0xff) {
- case SLJIT_C_FLOAT_EQUAL:
- inst = C_UEQ_fmt;
+ case SLJIT_D_EQUAL:
+ inst = C_UEQ_S;
if_true = 1;
break;
- case SLJIT_C_FLOAT_NOT_EQUAL:
- inst = C_UEQ_fmt;
+ case SLJIT_D_NOT_EQUAL:
+ inst = C_UEQ_S;
if_true = 0;
break;
- case SLJIT_C_FLOAT_LESS:
- inst = C_ULT_fmt;
+ case SLJIT_D_LESS:
+ inst = C_ULT_S;
if_true = 1;
break;
- case SLJIT_C_FLOAT_GREATER_EQUAL:
- inst = C_ULT_fmt;
+ case SLJIT_D_GREATER_EQUAL:
+ inst = C_ULT_S;
if_true = 0;
break;
- case SLJIT_C_FLOAT_GREATER:
- inst = C_ULE_fmt;
+ case SLJIT_D_GREATER:
+ inst = C_ULE_S;
if_true = 0;
break;
- case SLJIT_C_FLOAT_LESS_EQUAL:
- inst = C_ULE_fmt;
+ case SLJIT_D_LESS_EQUAL:
+ inst = C_ULE_S;
if_true = 1;
break;
- case SLJIT_C_FLOAT_UNORDERED:
- inst = C_UN_fmt;
+ case SLJIT_D_UNORDERED:
+ inst = C_UN_S;
if_true = 1;
break;
- case SLJIT_C_FLOAT_ORDERED:
default: /* Make compilers happy. */
- inst = C_UN_fmt;
+ SLJIT_ASSERT_STOP();
+ case SLJIT_D_ORDERED:
+ inst = C_UN_S;
if_true = 0;
break;
}
@@ -1853,7 +1946,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
struct sljit_jump *jump = NULL;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src)) {
@@ -1874,12 +1967,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
}
FAIL_IF(push_inst(compiler, JALR | S(PIC_ADDR_REG) | DA(RETURN_ADDR_REG), UNMOVABLE_INS));
/* We need an extra instruction in any case. */
- return push_inst(compiler, ADDU_W | S(SLJIT_SCRATCH_REG1) | TA(0) | DA(4), UNMOVABLE_INS);
+ return push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), UNMOVABLE_INS);
}
/* Register input. */
if (type >= SLJIT_CALL1)
- FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_SCRATCH_REG1) | TA(0) | DA(4), 4));
+ FAIL_IF(push_inst(compiler, ADDU_W | S(SLJIT_R0) | TA(0) | DA(4), 4));
FAIL_IF(push_inst(compiler, JALR | S(src_r) | DA(RETURN_ADDR_REG), UNMOVABLE_INS));
return push_inst(compiler, ADDU_W | S(src_r) | TA(0) | D(PIC_ADDR_REG), UNMOVABLE_INS);
}
@@ -1919,7 +2012,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
#endif
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
if (dst == SLJIT_UNUSED)
@@ -1941,49 +2034,49 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
srcw = 0;
}
- switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_NOT_EQUAL:
+ switch (type & 0xff) {
+ case SLJIT_EQUAL:
+ case SLJIT_NOT_EQUAL:
FAIL_IF(push_inst(compiler, SLTIU | SA(EQUAL_FLAG) | TA(sugg_dst_ar) | IMM(1), sugg_dst_ar));
dst_ar = sugg_dst_ar;
break;
- case SLJIT_C_LESS:
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_LESS:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_LESS:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_LESS:
+ case SLJIT_D_GREATER_EQUAL:
dst_ar = ULESS_FLAG;
break;
- case SLJIT_C_GREATER:
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_GREATER:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_GREATER:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_GREATER:
+ case SLJIT_D_LESS_EQUAL:
dst_ar = UGREATER_FLAG;
break;
- case SLJIT_C_SIG_LESS:
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_LESS:
+ case SLJIT_SIG_GREATER_EQUAL:
dst_ar = LESS_FLAG;
break;
- case SLJIT_C_SIG_GREATER:
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_GREATER:
+ case SLJIT_SIG_LESS_EQUAL:
dst_ar = GREATER_FLAG;
break;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_NOT_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_NOT_OVERFLOW:
dst_ar = OVERFLOW_FLAG;
break;
- case SLJIT_C_MUL_OVERFLOW:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_MUL_OVERFLOW:
+ case SLJIT_MUL_NOT_OVERFLOW:
FAIL_IF(push_inst(compiler, SLTIU | SA(OVERFLOW_FLAG) | TA(sugg_dst_ar) | IMM(1), sugg_dst_ar));
dst_ar = sugg_dst_ar;
type ^= 0x1; /* Flip type bit for the XORI below. */
break;
- case SLJIT_C_FLOAT_EQUAL:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_D_EQUAL:
+ case SLJIT_D_NOT_EQUAL:
dst_ar = EQUAL_FLAG;
break;
- case SLJIT_C_FLOAT_UNORDERED:
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_D_UNORDERED:
+ case SLJIT_D_ORDERED:
FAIL_IF(push_inst(compiler, CFC1 | TA(sugg_dst_ar) | DA(FCSR_REG), sugg_dst_ar));
FAIL_IF(push_inst(compiler, SRL | TA(sugg_dst_ar) | DA(sugg_dst_ar) | SH_IMM(23), sugg_dst_ar));
FAIL_IF(push_inst(compiler, ANDI | SA(sugg_dst_ar) | TA(sugg_dst_ar) | IMM(1), sugg_dst_ar));
@@ -2025,7 +2118,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
sljit_si reg;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativePPC_common.c b/src/3rdparty/pcre/sljit/sljitNativePPC_common.c
index 5e06f2fd8e..08d5356f5a 100644
--- a/src/3rdparty/pcre/sljit/sljitNativePPC_common.c
+++ b/src/3rdparty/pcre/sljit/sljitNativePPC_common.c
@@ -87,22 +87,22 @@ static void ppc_cache_flush(sljit_ins *from, sljit_ins *to)
#endif /* _AIX */
}
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
-#define TMP_ZERO (SLJIT_NO_REGISTERS + 4)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
+#define TMP_ZERO (SLJIT_NUMBER_OF_REGISTERS + 5)
#if (defined SLJIT_PASS_ENTRY_ADDR_TO_CALL && SLJIT_PASS_ENTRY_ADDR_TO_CALL)
-#define TMP_CALL_REG (SLJIT_NO_REGISTERS + 5)
+#define TMP_CALL_REG (SLJIT_NUMBER_OF_REGISTERS + 6)
#else
#define TMP_CALL_REG TMP_REG2
#endif
#define TMP_FREG1 (0)
-#define TMP_FREG2 (SLJIT_FLOAT_REG6 + 1)
+#define TMP_FREG2 (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 6] = {
- 0, 3, 4, 5, 6, 7, 30, 29, 28, 27, 26, 1, 8, 9, 10, 31, 12
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 7] = {
+ 0, 3, 4, 5, 6, 7, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 8, 9, 10, 31, 12
};
/* --------------------------------------------------------------------- */
@@ -114,6 +114,7 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 6] = {
#define B(b) (reg_map[b] << 11)
#define C(c) (reg_map[c] << 6)
#define FD(fd) ((fd) << 21)
+#define FS(fs) ((fs) << 21)
#define FA(fa) ((fa) << 16)
#define FB(fb) ((fb) << 11)
#define FC(fc) ((fc) << 6)
@@ -159,13 +160,17 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 6] = {
#define FABS (HI(63) | LO(264))
#define FADD (HI(63) | LO(21))
#define FADDS (HI(59) | LO(21))
+#define FCFID (HI(63) | LO(846))
#define FCMPU (HI(63) | LO(0))
+#define FCTIDZ (HI(63) | LO(815))
+#define FCTIWZ (HI(63) | LO(15))
#define FDIV (HI(63) | LO(18))
#define FDIVS (HI(59) | LO(18))
#define FMR (HI(63) | LO(72))
#define FMUL (HI(63) | LO(25))
#define FMULS (HI(59) | LO(25))
#define FNEG (HI(63) | LO(40))
+#define FRSP (HI(63) | LO(12))
#define FSUB (HI(63) | LO(20))
#define FSUBS (HI(59) | LO(20))
#define LD (HI(58) | 0)
@@ -202,6 +207,7 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 6] = {
#define STD (HI(62) | 0)
#define STDU (HI(62) | 1)
#define STDUX (HI(31) | LO(181))
+#define STFIWX (HI(31) | LO(983))
#define STW (HI(36))
#define STWU (HI(37))
#define STWUX (HI(31) | LO(183))
@@ -323,7 +329,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
#if (defined SLJIT_INDIRECT_CALL && SLJIT_INDIRECT_CALL)
@@ -565,118 +571,121 @@ ALT_FORM6 0x200000 */
#define STACK_LOAD LD
#endif
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
+ sljit_si i, tmp, offs;
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
FAIL_IF(push_inst(compiler, MFLR | D(0)));
- FAIL_IF(push_inst(compiler, STACK_STORE | S(TMP_ZERO) | A(SLJIT_LOCALS_REG) | IMM(-(sljit_si)(sizeof(sljit_sw))) ));
- if (saveds >= 1)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(SLJIT_SAVED_REG1) | A(SLJIT_LOCALS_REG) | IMM(-2 * (sljit_si)(sizeof(sljit_sw))) ));
- if (saveds >= 2)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(SLJIT_SAVED_REG2) | A(SLJIT_LOCALS_REG) | IMM(-3 * (sljit_si)(sizeof(sljit_sw))) ));
- if (saveds >= 3)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(SLJIT_SAVED_REG3) | A(SLJIT_LOCALS_REG) | IMM(-4 * (sljit_si)(sizeof(sljit_sw))) ));
- if (saveds >= 4)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(SLJIT_SAVED_EREG1) | A(SLJIT_LOCALS_REG) | IMM(-5 * (sljit_si)(sizeof(sljit_sw))) ));
- if (saveds >= 5)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(SLJIT_SAVED_EREG2) | A(SLJIT_LOCALS_REG) | IMM(-6 * (sljit_si)(sizeof(sljit_sw))) ));
+ offs = -(sljit_si)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | S(TMP_ZERO) | A(SLJIT_SP) | IMM(offs)));
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--) {
+ offs -= (sljit_si)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | S(i) | A(SLJIT_SP) | IMM(offs)));
+ }
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
+ offs -= (sljit_si)(sizeof(sljit_sw));
+ FAIL_IF(push_inst(compiler, STACK_STORE | S(i) | A(SLJIT_SP) | IMM(offs)));
+ }
+
+ SLJIT_ASSERT(offs == -(sljit_si)GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1));
+
#if (defined SLJIT_PPC_STACK_FRAME_V2 && SLJIT_PPC_STACK_FRAME_V2)
- FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_LOCALS_REG) | IMM(2 * sizeof(sljit_sw)) ));
+ FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_SP) | IMM(2 * sizeof(sljit_sw))));
#else
- FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_LOCALS_REG) | IMM(sizeof(sljit_sw)) ));
+ FAIL_IF(push_inst(compiler, STACK_STORE | S(0) | A(SLJIT_SP) | IMM(sizeof(sljit_sw))));
#endif
FAIL_IF(push_inst(compiler, ADDI | D(TMP_ZERO) | A(0) | 0));
if (args >= 1)
- FAIL_IF(push_inst(compiler, OR | S(SLJIT_SCRATCH_REG1) | A(SLJIT_SAVED_REG1) | B(SLJIT_SCRATCH_REG1)));
+ FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(SLJIT_S0) | B(SLJIT_R0)));
if (args >= 2)
- FAIL_IF(push_inst(compiler, OR | S(SLJIT_SCRATCH_REG2) | A(SLJIT_SAVED_REG2) | B(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, OR | S(SLJIT_R1) | A(SLJIT_S1) | B(SLJIT_R1)));
if (args >= 3)
- FAIL_IF(push_inst(compiler, OR | S(SLJIT_SCRATCH_REG3) | A(SLJIT_SAVED_REG3) | B(SLJIT_SCRATCH_REG3)));
+ FAIL_IF(push_inst(compiler, OR | S(SLJIT_R2) | A(SLJIT_S2) | B(SLJIT_R2)));
-#if (defined SLJIT_PPC_STACK_FRAME_V2 && SLJIT_PPC_STACK_FRAME_V2)
- compiler->local_size = (1 + saveds + 6 + 8) * sizeof(sljit_sw) + local_size;
-#else
- compiler->local_size = (1 + saveds + 2) * sizeof(sljit_sw) + local_size;
-#endif
- compiler->local_size = (compiler->local_size + 15) & ~0xf;
+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET;
+ local_size = (local_size + 15) & ~0xf;
+ compiler->local_size = local_size;
#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32)
- if (compiler->local_size <= SIMM_MAX)
- FAIL_IF(push_inst(compiler, STWU | S(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | IMM(-compiler->local_size)));
+ if (local_size <= SIMM_MAX)
+ FAIL_IF(push_inst(compiler, STWU | S(SLJIT_SP) | A(SLJIT_SP) | IMM(-local_size)));
else {
- FAIL_IF(load_immediate(compiler, 0, -compiler->local_size));
- FAIL_IF(push_inst(compiler, STWUX | S(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | B(0)));
+ FAIL_IF(load_immediate(compiler, 0, -local_size));
+ FAIL_IF(push_inst(compiler, STWUX | S(SLJIT_SP) | A(SLJIT_SP) | B(0)));
}
#else
- if (compiler->local_size <= SIMM_MAX)
- FAIL_IF(push_inst(compiler, STDU | S(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | IMM(-compiler->local_size)));
+ if (local_size <= SIMM_MAX)
+ FAIL_IF(push_inst(compiler, STDU | S(SLJIT_SP) | A(SLJIT_SP) | IMM(-local_size)));
else {
- FAIL_IF(load_immediate(compiler, 0, -compiler->local_size));
- FAIL_IF(push_inst(compiler, STDUX | S(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | B(0)));
+ FAIL_IF(load_immediate(compiler, 0, -local_size));
+ FAIL_IF(push_inst(compiler, STDUX | S(SLJIT_SP) | A(SLJIT_SP) | B(0)));
}
#endif
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
-#if (defined SLJIT_PPC_STACK_FRAME_V2 && SLJIT_PPC_STACK_FRAME_V2)
- compiler->local_size = (1 + saveds + 6 + 8) * sizeof(sljit_sw) + local_size;
-#else
- compiler->local_size = (1 + saveds + 2) * sizeof(sljit_sw) + local_size;
-#endif
- compiler->local_size = (compiler->local_size + 15) & ~0xf;
+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1) + SLJIT_LOCALS_OFFSET;
+ compiler->local_size = (local_size + 15) & ~0xf;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
+ sljit_si i, tmp, offs;
+
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
if (compiler->local_size <= SIMM_MAX)
- FAIL_IF(push_inst(compiler, ADDI | D(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | IMM(compiler->local_size)));
+ FAIL_IF(push_inst(compiler, ADDI | D(SLJIT_SP) | A(SLJIT_SP) | IMM(compiler->local_size)));
else {
FAIL_IF(load_immediate(compiler, 0, compiler->local_size));
- FAIL_IF(push_inst(compiler, ADD | D(SLJIT_LOCALS_REG) | A(SLJIT_LOCALS_REG) | B(0)));
+ FAIL_IF(push_inst(compiler, ADD | D(SLJIT_SP) | A(SLJIT_SP) | B(0)));
}
#if (defined SLJIT_PPC_STACK_FRAME_V2 && SLJIT_PPC_STACK_FRAME_V2)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_LOCALS_REG) | IMM(2 * sizeof(sljit_sw))));
+ FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_SP) | IMM(2 * sizeof(sljit_sw))));
#else
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_LOCALS_REG) | IMM(sizeof(sljit_sw))));
+ FAIL_IF(push_inst(compiler, STACK_LOAD | D(0) | A(SLJIT_SP) | IMM(sizeof(sljit_sw))));
#endif
- if (compiler->saveds >= 5)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(SLJIT_SAVED_EREG2) | A(SLJIT_LOCALS_REG) | IMM(-6 * (sljit_si)(sizeof(sljit_sw))) ));
- if (compiler->saveds >= 4)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(SLJIT_SAVED_EREG1) | A(SLJIT_LOCALS_REG) | IMM(-5 * (sljit_si)(sizeof(sljit_sw))) ));
- if (compiler->saveds >= 3)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(SLJIT_SAVED_REG3) | A(SLJIT_LOCALS_REG) | IMM(-4 * (sljit_si)(sizeof(sljit_sw))) ));
- if (compiler->saveds >= 2)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(SLJIT_SAVED_REG2) | A(SLJIT_LOCALS_REG) | IMM(-3 * (sljit_si)(sizeof(sljit_sw))) ));
- if (compiler->saveds >= 1)
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(SLJIT_SAVED_REG1) | A(SLJIT_LOCALS_REG) | IMM(-2 * (sljit_si)(sizeof(sljit_sw))) ));
- FAIL_IF(push_inst(compiler, STACK_LOAD | D(TMP_ZERO) | A(SLJIT_LOCALS_REG) | IMM(-(sljit_si)(sizeof(sljit_sw))) ));
+
+ offs = -(sljit_si)GET_SAVED_REGISTERS_SIZE(compiler->scratches, compiler->saveds, 1);
+
+ tmp = compiler->scratches;
+ for (i = SLJIT_FIRST_SAVED_REG; i <= tmp; i++) {
+ FAIL_IF(push_inst(compiler, STACK_LOAD | D(i) | A(SLJIT_SP) | IMM(offs)));
+ offs += (sljit_si)(sizeof(sljit_sw));
+ }
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = tmp; i <= SLJIT_S0; i++) {
+ FAIL_IF(push_inst(compiler, STACK_LOAD | D(i) | A(SLJIT_SP) | IMM(offs)));
+ offs += (sljit_si)(sizeof(sljit_sw));
+ }
+
+ FAIL_IF(push_inst(compiler, STACK_LOAD | D(TMP_ZERO) | A(SLJIT_SP) | IMM(offs)));
+ SLJIT_ASSERT(offs == -(sljit_sw)(sizeof(sljit_sw)));
FAIL_IF(push_inst(compiler, MTLR | S(0)));
FAIL_IF(push_inst(compiler, BLR));
@@ -999,12 +1008,12 @@ static sljit_si getput_arg(struct sljit_compiler *compiler, sljit_si inp_flags,
tmp_r = arg;
FAIL_IF(push_inst(compiler, ADDIS | D(arg) | A(arg) | IMM(high_short >> 16)));
}
- else if (compiler->cache_arg != arg || high_short != compiler->cache_argw) {
+ else if (compiler->cache_arg != (SLJIT_MEM | arg) || high_short != compiler->cache_argw) {
if ((next_arg & SLJIT_MEM) && !(next_arg & OFFS_REG_MASK)) {
next_high_short = (sljit_si)(next_argw + ((next_argw & 0x8000) << 1)) & ~0xffff;
if (high_short == next_high_short) {
- compiler->cache_arg = SLJIT_IMM | arg;
- compiler->cache_argw = next_high_short;
+ compiler->cache_arg = SLJIT_MEM | arg;
+ compiler->cache_argw = high_short;
tmp_r = TMP_REG3;
}
}
@@ -1241,39 +1250,39 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
case SLJIT_BREAKPOINT:
case SLJIT_NOP:
return push_inst(compiler, NOP);
- case SLJIT_UMUL:
- case SLJIT_SMUL:
- FAIL_IF(push_inst(compiler, OR | S(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG1)));
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
+ FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0)));
#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
- FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2)));
- return push_inst(compiler, (op == SLJIT_UMUL ? MULHDU : MULHD) | D(SLJIT_SCRATCH_REG2) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2));
+ FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1)));
+ return push_inst(compiler, (op == SLJIT_LUMUL ? MULHDU : MULHD) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJIT_R1));
#else
- FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2)));
- return push_inst(compiler, (op == SLJIT_UMUL ? MULHWU : MULHW) | D(SLJIT_SCRATCH_REG2) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2));
+ FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1)));
+ return push_inst(compiler, (op == SLJIT_LUMUL ? MULHWU : MULHW) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJIT_R1));
#endif
- case SLJIT_UDIV:
- case SLJIT_SDIV:
- FAIL_IF(push_inst(compiler, OR | S(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG1)));
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
+ FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0)));
#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
if (int_op) {
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVWU : DIVW) | D(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2)));
- FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_SCRATCH_REG2) | A(SLJIT_SCRATCH_REG1) | B(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1)));
+ FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1)));
} else {
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVDU : DIVD) | D(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2)));
- FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_SCRATCH_REG2) | A(SLJIT_SCRATCH_REG1) | B(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVDU : DIVD) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1)));
+ FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1)));
}
- return push_inst(compiler, SUBF | D(SLJIT_SCRATCH_REG2) | A(SLJIT_SCRATCH_REG2) | B(TMP_REG1));
+ return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1));
#else
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? DIVWU : DIVW) | D(SLJIT_SCRATCH_REG1) | A(TMP_REG1) | B(SLJIT_SCRATCH_REG2)));
- FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_SCRATCH_REG2) | A(SLJIT_SCRATCH_REG1) | B(SLJIT_SCRATCH_REG2)));
- return push_inst(compiler, SUBF | D(SLJIT_SCRATCH_REG2) | A(SLJIT_SCRATCH_REG2) | B(TMP_REG1));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1)));
+ FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1)));
+ return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1));
#endif
}
@@ -1291,7 +1300,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
sljit_si op_flags = GET_ALL_FLAGS(op);
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1446,7 +1455,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si flags = GET_FLAGS(op) ? ALT_SET_FLAGS : 0;
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -1648,13 +1657,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
return reg;
}
@@ -1662,8 +1671,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
return push_inst(compiler, *(sljit_ins*)instruction);
}
@@ -1685,59 +1693,233 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void)
#define FLOAT_DATA(op) (DOUBLE_DATA | ((op & SLJIT_SINGLE_OP) >> 6))
#define SELECT_FOP(op, single, double) ((op & SLJIT_SINGLE_OP) ? single : double)
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+#define FLOAT_TMP_MEM_OFFSET (6 * sizeof(sljit_sw))
+#else
+#define FLOAT_TMP_MEM_OFFSET (2 * sizeof(sljit_sw))
+
+#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN)
+#define FLOAT_TMP_MEM_OFFSET_LOW (2 * sizeof(sljit_sw))
+#define FLOAT_TMP_MEM_OFFSET_HI (3 * sizeof(sljit_sw))
+#else
+#define FLOAT_TMP_MEM_OFFSET_LOW (3 * sizeof(sljit_sw))
+#define FLOAT_TMP_MEM_OFFSET_HI (2 * sizeof(sljit_sw))
+#endif
+
+#endif /* SLJIT_CONFIG_PPC_64 */
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- sljit_si dst_fr;
+ if (src & SLJIT_MEM) {
+ /* We can ignore the temporary data store on the stack from caching point of view. */
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+ src = TMP_FREG1;
+ }
- CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x4), float_transfer_bit_error);
+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+ op = GET_OPCODE(op);
+ FAIL_IF(push_inst(compiler, (op == SLJIT_CONVI_FROMD ? FCTIWZ : FCTIDZ) | FD(TMP_FREG1) | FB(src)));
- compiler->cache_arg = 0;
- compiler->cache_argw = 0;
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, dst, dstw, src, srcw));
- dst = TMP_FREG1;
+ if (op == SLJIT_CONVW_FROMD) {
+ if (FAST_IS_REG(dst)) {
+ FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0));
+ return emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0);
}
+ return emit_op_mem2(compiler, DOUBLE_DATA, TMP_FREG1, dst, dstw, 0, 0);
+ }
+
+#else
+ FAIL_IF(push_inst(compiler, FCTIWZ | FD(TMP_FREG1) | FB(src)));
+
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
+#endif
- if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src, srcw, 0, 0));
- src = TMP_FREG2;
+ if (FAST_IS_REG(dst)) {
+ FAIL_IF(load_immediate(compiler, TMP_REG1, FLOAT_TMP_MEM_OFFSET));
+ FAIL_IF(push_inst(compiler, STFIWX | FS(TMP_FREG1) | A(SLJIT_SP) | B(TMP_REG1)));
+ return emit_op_mem2(compiler, INT_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, 0, 0);
+ }
+
+ SLJIT_ASSERT(dst & SLJIT_MEM);
+
+ if (dst & OFFS_REG_MASK) {
+ dstw &= 0x3;
+ if (dstw) {
+#if (defined SLJIT_CONFIG_PPC_32 && SLJIT_CONFIG_PPC_32)
+ FAIL_IF(push_inst(compiler, RLWINM | S(OFFS_REG(dst)) | A(TMP_REG1) | (dstw << 11) | ((31 - dstw) << 1)));
+#else
+ FAIL_IF(push_inst(compiler, RLDI(TMP_REG1, OFFS_REG(dst), dstw, 63 - dstw, 1)));
+#endif
+ dstw = TMP_REG1;
+ }
+ else
+ dstw = OFFS_REG(dst);
+ }
+ else {
+ if ((dst & REG_MASK) && !dstw) {
+ dstw = dst & REG_MASK;
+ dst = 0;
+ }
+ else {
+ /* This works regardless we have SLJIT_MEM1 or SLJIT_MEM0. */
+ FAIL_IF(load_immediate(compiler, TMP_REG1, dstw));
+ dstw = TMP_REG1;
}
+ }
- return push_inst(compiler, FCMPU | CRD(4) | FA(dst) | FB(src));
+ return push_inst(compiler, STFIWX | FS(TMP_FREG1) | A(dst & REG_MASK) | B(dstw));
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64)
+
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+
+ if (src & SLJIT_IMM) {
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ srcw = (sljit_si)srcw;
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw));
+ src = TMP_REG1;
+ }
+ else if (GET_OPCODE(op) == SLJIT_CONVD_FROMI) {
+ if (FAST_IS_REG(src))
+ FAIL_IF(push_inst(compiler, EXTSW | S(src) | A(TMP_REG1)));
+ else
+ FAIL_IF(emit_op_mem2(compiler, INT_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ src = TMP_REG1;
+ }
+
+ if (FAST_IS_REG(src)) {
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA, src, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, dst, dstw));
+ }
+ else
+ FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+
+ FAIL_IF(push_inst(compiler, FCFID | FD(dst_r) | FB(TMP_FREG1)));
+
+ if (dst & SLJIT_MEM)
+ return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0);
+ if (op & SLJIT_SINGLE_OP)
+ return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r));
+ return SLJIT_SUCCESS;
+
+#else
+
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+ sljit_si invert_sign = 1;
+
+ if (src & SLJIT_IMM) {
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw ^ 0x80000000));
+ src = TMP_REG1;
+ invert_sign = 0;
+ }
+ else if (!FAST_IS_REG(src)) {
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA | SIGNED_DATA | LOAD_DATA, TMP_REG1, src, srcw, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW));
+ src = TMP_REG1;
}
- dst_fr = FAST_IS_REG(dst) ? dst : TMP_FREG1;
+ /* First, a special double floating point value is constructed: (2^53 + (input xor (2^31)))
+ The double precision format has exactly 53 bit precision, so the lower 32 bit represents
+ the lower 32 bit of such value. The result of xor 2^31 is the same as adding 0x80000000
+ to the input, which shifts it into the 0 - 0xffffffff range. To get the converted floating
+ point value, we need to substract 2^53 + 2^31 from the constructed value. */
+ FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG2) | A(0) | 0x4330));
+ if (invert_sign)
+ FAIL_IF(push_inst(compiler, XORIS | S(src) | A(TMP_REG1) | 0x8000));
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_HI));
+ FAIL_IF(push_inst(compiler, ADDIS | D(TMP_REG1) | A(0) | 0x8000));
+ FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW));
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA, TMP_REG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ FAIL_IF(emit_op_mem2(compiler, DOUBLE_DATA | LOAD_DATA, TMP_FREG2, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET_LOW));
+
+ FAIL_IF(push_inst(compiler, FSUB | FD(dst_r) | FA(TMP_FREG1) | FB(TMP_FREG2)));
+
+ if (dst & SLJIT_MEM)
+ return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0);
+ if (op & SLJIT_SINGLE_OP)
+ return push_inst(compiler, FRSP | FD(dst_r) | FB(dst_r));
+ return SLJIT_SUCCESS;
+
+#endif
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ if (src1 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w));
+ src1 = TMP_FREG1;
+ }
+
+ if (src2 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0));
+ src2 = TMP_FREG2;
+ }
+
+ return push_inst(compiler, FCMPU | CRD(4) | FA(src1) | FB(src2));
+}
+
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r;
+
+ CHECK_ERROR();
+ compiler->cache_arg = 0;
+ compiler->cache_argw = 0;
+
+ SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x4), float_transfer_bit_error);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
+
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMS)
+ op ^= SLJIT_SINGLE_OP;
+
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG1;
if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_fr, src, srcw, dst, dstw));
- src = dst_fr;
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw));
+ src = dst_r;
}
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_fr && dst_fr != TMP_FREG1)
- FAIL_IF(push_inst(compiler, FMR | FD(dst_fr) | FB(src)));
- break;
- case SLJIT_NEGD:
- FAIL_IF(push_inst(compiler, FNEG | FD(dst_fr) | FB(src)));
+ case SLJIT_CONVD_FROMS:
+ op ^= SLJIT_SINGLE_OP;
+ if (op & SLJIT_SINGLE_OP) {
+ FAIL_IF(push_inst(compiler, FRSP | FD(dst_r) | FB(src)));
break;
- case SLJIT_ABSD:
- FAIL_IF(push_inst(compiler, FABS | FD(dst_fr) | FB(src)));
- break;
- }
-
- if (dst_fr == TMP_FREG1) {
- if (GET_OPCODE(op) == SLJIT_MOVD)
- dst_fr = src;
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_fr, dst, dstw, 0, 0));
+ }
+ /* Fall through. */
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1)
+ FAIL_IF(push_inst(compiler, FMR | FD(dst_r) | FB(src)));
+ else
+ dst_r = src;
+ }
+ break;
+ case SLJIT_DNEG:
+ FAIL_IF(push_inst(compiler, FNEG | FD(dst_r) | FB(src)));
+ break;
+ case SLJIT_DABS:
+ FAIL_IF(push_inst(compiler, FABS | FD(dst_r) | FB(src)));
+ break;
}
+ if (dst & SLJIT_MEM)
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0));
return SLJIT_SUCCESS;
}
@@ -1746,15 +1928,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- sljit_si dst_fr, flags = 0;
+ sljit_si dst_r, flags = 0;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- dst_fr = FAST_IS_REG(dst) ? dst : TMP_FREG2;
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG2;
if (src1 & SLJIT_MEM) {
if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) {
@@ -1793,24 +1978,24 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
src2 = TMP_FREG2;
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADD) | FD(dst_fr) | FA(src1) | FB(src2)));
+ case SLJIT_DADD:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADD) | FD(dst_r) | FA(src1) | FB(src2)));
break;
- case SLJIT_SUBD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUB) | FD(dst_fr) | FA(src1) | FB(src2)));
+ case SLJIT_DSUB:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUB) | FD(dst_r) | FA(src1) | FB(src2)));
break;
- case SLJIT_MULD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMUL) | FD(dst_fr) | FA(src1) | FC(src2) /* FMUL use FC as src2 */));
+ case SLJIT_DMUL:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMUL) | FD(dst_r) | FA(src1) | FC(src2) /* FMUL use FC as src2 */));
break;
- case SLJIT_DIVD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIV) | FD(dst_fr) | FA(src1) | FB(src2)));
+ case SLJIT_DDIV:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIV) | FD(dst_r) | FA(src1) | FB(src2)));
break;
}
- if (dst_fr == TMP_FREG2)
+ if (dst_r == TMP_FREG2)
FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0));
return SLJIT_SUCCESS;
@@ -1826,7 +2011,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
@@ -1844,7 +2029,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src))
@@ -1868,7 +2053,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -1882,58 +2067,58 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
static sljit_ins get_bo_bi_flags(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
+ case SLJIT_EQUAL:
return (12 << 21) | (2 << 16);
- case SLJIT_C_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
return (4 << 21) | (2 << 16);
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
return (12 << 21) | ((4 + 0) << 16);
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
return (4 << 21) | ((4 + 0) << 16);
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
return (12 << 21) | ((4 + 1) << 16);
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return (4 << 21) | ((4 + 1) << 16);
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return (12 << 21) | (0 << 16);
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return (4 << 21) | (0 << 16);
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return (12 << 21) | (1 << 16);
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return (4 << 21) | (1 << 16);
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_MUL_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_MUL_OVERFLOW:
return (12 << 21) | (3 << 16);
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_MUL_NOT_OVERFLOW:
return (4 << 21) | (3 << 16);
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_D_EQUAL:
return (12 << 21) | ((4 + 2) << 16);
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_D_NOT_EQUAL:
return (4 << 21) | ((4 + 2) << 16);
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_D_UNORDERED:
return (12 << 21) | ((4 + 3) << 16);
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_D_ORDERED:
return (4 << 21) | ((4 + 3) << 16);
default:
@@ -1948,7 +2133,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
sljit_ins bo_bi_flags;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
bo_bi_flags = get_bo_bi_flags(type & 0xff);
if (!bo_bi_flags)
@@ -1980,7 +2165,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
sljit_si src_r;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src)) {
@@ -2035,7 +2220,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_sw original_dstw = dstw;
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
if (dst == SLJIT_UNUSED)
@@ -2058,81 +2243,81 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
srcw = 0;
}
- switch (type) {
- case SLJIT_C_EQUAL:
+ switch (type & 0xff) {
+ case SLJIT_EQUAL:
GET_CR_BIT(2, reg);
break;
- case SLJIT_C_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
GET_CR_BIT(2, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
GET_CR_BIT(4 + 0, reg);
break;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
GET_CR_BIT(4 + 0, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
GET_CR_BIT(4 + 1, reg);
break;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
GET_CR_BIT(4 + 1, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
GET_CR_BIT(0, reg);
break;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
GET_CR_BIT(0, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
GET_CR_BIT(1, reg);
break;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
GET_CR_BIT(1, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_MUL_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_MUL_OVERFLOW:
GET_CR_BIT(3, reg);
break;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_MUL_NOT_OVERFLOW:
GET_CR_BIT(3, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_D_EQUAL:
GET_CR_BIT(4 + 2, reg);
break;
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_D_NOT_EQUAL:
GET_CR_BIT(4 + 2, reg);
INVERT_BIT(reg);
break;
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_D_UNORDERED:
GET_CR_BIT(4 + 3, reg);
break;
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_D_ORDERED:
GET_CR_BIT(4 + 3, reg);
INVERT_BIT(reg);
break;
@@ -2159,7 +2344,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
return emit_op(compiler, op, input_flags, dst, dstw, TMP_REG1, 0, TMP_REG2, 0);
}
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_op2(compiler, op | flags, dst, original_dstw, src, srcw, TMP_REG2, 0);
@@ -2171,7 +2357,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
sljit_si reg;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeSPARC_32.c b/src/3rdparty/pcre/sljit/sljitNativeSPARC_32.c
index 80479bfe2b..4a2e6293de 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeSPARC_32.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeSPARC_32.c
@@ -110,8 +110,8 @@ static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, slj
if (!(flags & SET_FLAGS))
return SLJIT_SUCCESS;
FAIL_IF(push_inst(compiler, SRA | D(TMP_REG1) | S1(dst) | IMM(31), DR(TMP_REG1)));
- FAIL_IF(push_inst(compiler, RDY | D(TMP_REG4), DR(TMP_REG4)));
- return push_inst(compiler, SUB | SET_FLAGS | D(0) | S1(TMP_REG1) | S2(TMP_REG4), MOVABLE_INS | SET_FLAGS);
+ FAIL_IF(push_inst(compiler, RDY | D(TMP_LINK), DR(TMP_LINK)));
+ return push_inst(compiler, SUB | SET_FLAGS | D(0) | S1(TMP_REG1) | S2(TMP_LINK), MOVABLE_INS | SET_FLAGS);
case SLJIT_AND:
return push_inst(compiler, AND | (flags & SET_FLAGS) | D(dst) | S1(src1) | ARG2(flags, src2), DR(dst) | (flags & SET_FLAGS));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeSPARC_common.c b/src/3rdparty/pcre/sljit/sljitNativeSPARC_common.c
index d6a1e12bfe..0b1927a824 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeSPARC_common.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeSPARC_common.c
@@ -83,17 +83,16 @@ static void sparc_cache_flush(sljit_ins *from, sljit_ins *to)
}
/* TMP_REG2 is not used by getput_arg */
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
-#define TMP_REG4 (SLJIT_NO_REGISTERS + 4)
-#define TMP_LINK (SLJIT_NO_REGISTERS + 5)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
+#define TMP_LINK (SLJIT_NUMBER_OF_REGISTERS + 5)
#define TMP_FREG1 (0)
-#define TMP_FREG2 ((SLJIT_FLOAT_REG6 + 1) << 1)
+#define TMP_FREG2 ((SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1) << 1)
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 7] = {
- 0, 8, 9, 10, 11, 12, 16, 17, 18, 19, 20, 14, 1, 24, 25, 26, 15
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = {
+ 0, 8, 9, 10, 13, 29, 28, 27, 23, 22, 21, 20, 19, 18, 17, 16, 26, 25, 24, 14, 1, 11, 12, 15
};
/* --------------------------------------------------------------------- */
@@ -128,10 +127,16 @@ static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 7] = {
#define FCMPS (OPC1(0x2) | OPC3(0x35) | DOP(0x51))
#define FDIVD (OPC1(0x2) | OPC3(0x34) | DOP(0x4e))
#define FDIVS (OPC1(0x2) | OPC3(0x34) | DOP(0x4d))
+#define FDTOI (OPC1(0x2) | OPC3(0x34) | DOP(0xd2))
+#define FDTOS (OPC1(0x2) | OPC3(0x34) | DOP(0xc6))
+#define FITOD (OPC1(0x2) | OPC3(0x34) | DOP(0xc8))
+#define FITOS (OPC1(0x2) | OPC3(0x34) | DOP(0xc4))
#define FMOVS (OPC1(0x2) | OPC3(0x34) | DOP(0x01))
#define FMULD (OPC1(0x2) | OPC3(0x34) | DOP(0x4a))
#define FMULS (OPC1(0x2) | OPC3(0x34) | DOP(0x49))
#define FNEGS (OPC1(0x2) | OPC3(0x34) | DOP(0x05))
+#define FSTOD (OPC1(0x2) | OPC3(0x34) | DOP(0xc9))
+#define FSTOI (OPC1(0x2) | OPC3(0x34) | DOP(0xd1))
#define FSUBD (OPC1(0x2) | OPC3(0x34) | DOP(0x46))
#define FSUBS (OPC1(0x2) | OPC3(0x34) | DOP(0x45))
#define JMPL (OPC1(0x2) | OPC3(0x38))
@@ -278,7 +283,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
code = (sljit_ins*)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins));
@@ -388,6 +393,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
/* Separates integer and floating point registers */
#define GPR_REG 0x0f
#define DOUBLE_DATA 0x10
+#define SINGLE_DATA 0x12
#define MEM_MASK 0x1f
@@ -412,66 +418,54 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
#include "sljitNativeSPARC_64.c"
#endif
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
-
- local_size += 23 * sizeof(sljit_sw);
- local_size = (local_size + 7) & ~0x7;
+ local_size = (local_size + SLJIT_LOCALS_OFFSET + 7) & ~0x7;
compiler->local_size = local_size;
if (local_size <= SIMM_MAX) {
- FAIL_IF(push_inst(compiler, SAVE | D(SLJIT_LOCALS_REG) | S1(SLJIT_LOCALS_REG) | IMM(-local_size), UNMOVABLE_INS));
+ FAIL_IF(push_inst(compiler, SAVE | D(SLJIT_SP) | S1(SLJIT_SP) | IMM(-local_size), UNMOVABLE_INS));
}
else {
FAIL_IF(load_immediate(compiler, TMP_REG1, -local_size));
- FAIL_IF(push_inst(compiler, SAVE | D(SLJIT_LOCALS_REG) | S1(SLJIT_LOCALS_REG) | S2(TMP_REG1), UNMOVABLE_INS));
+ FAIL_IF(push_inst(compiler, SAVE | D(SLJIT_SP) | S1(SLJIT_SP) | S2(TMP_REG1), UNMOVABLE_INS));
}
- if (args >= 1)
- FAIL_IF(push_inst(compiler, OR | D(SLJIT_SAVED_REG1) | S1(0) | S2A(24), DR(SLJIT_SAVED_REG1)));
- if (args >= 2)
- FAIL_IF(push_inst(compiler, OR | D(SLJIT_SAVED_REG2) | S1(0) | S2A(25), DR(SLJIT_SAVED_REG2)));
- if (args >= 3)
- FAIL_IF(push_inst(compiler, OR | D(SLJIT_SAVED_REG3) | S1(0) | S2A(26), DR(SLJIT_SAVED_REG3)));
+ /* Arguments are in their appropriate registers. */
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- local_size += 23 * sizeof(sljit_sw);
- compiler->local_size = (local_size + 7) & ~0x7;
+ compiler->local_size = (local_size + SLJIT_LOCALS_OFFSET + 7) & ~0x7;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
if (op != SLJIT_MOV || !FAST_IS_REG(src)) {
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
- src = SLJIT_SCRATCH_REG1;
+ src = SLJIT_R0;
}
FAIL_IF(push_inst(compiler, JMPL | D(0) | S1A(31) | IMM(8), UNMOVABLE_INS));
- return push_inst(compiler, RESTORE | D(SLJIT_SCRATCH_REG1) | S1(src) | S2(0), UNMOVABLE_INS);
+ return push_inst(compiler, RESTORE | D(SLJIT_R0) | S1(src) | S2(0), UNMOVABLE_INS);
}
/* --------------------------------------------------------------------- */
@@ -767,7 +761,7 @@ static sljit_si emit_op(struct sljit_compiler *compiler, sljit_si op, sljit_si f
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op)
{
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
op = GET_OPCODE(op);
switch (op) {
@@ -775,27 +769,27 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
return push_inst(compiler, TA, UNMOVABLE_INS);
case SLJIT_NOP:
return push_inst(compiler, NOP, UNMOVABLE_INS);
- case SLJIT_UMUL:
- case SLJIT_SMUL:
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
- FAIL_IF(push_inst(compiler, (op == SLJIT_UMUL ? UMUL : SMUL) | D(SLJIT_SCRATCH_REG1) | S1(SLJIT_SCRATCH_REG1) | S2(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG1)));
- return push_inst(compiler, RDY | D(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG2));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUMUL ? UMUL : SMUL) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0)));
+ return push_inst(compiler, RDY | D(SLJIT_R1), DR(SLJIT_R1));
#else
#error "Implementation required"
#endif
- case SLJIT_UDIV:
- case SLJIT_SDIV:
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
- if (op == SLJIT_UDIV)
+ if (op == SLJIT_LUDIV)
FAIL_IF(push_inst(compiler, WRY | S1(0), MOVABLE_INS));
else {
- FAIL_IF(push_inst(compiler, SRA | D(TMP_REG1) | S1(SLJIT_SCRATCH_REG1) | IMM(31), DR(TMP_REG1)));
+ FAIL_IF(push_inst(compiler, SRA | D(TMP_REG1) | S1(SLJIT_R0) | IMM(31), DR(TMP_REG1)));
FAIL_IF(push_inst(compiler, WRY | S1(TMP_REG1), MOVABLE_INS));
}
- FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_SCRATCH_REG1), DR(TMP_REG2)));
- FAIL_IF(push_inst(compiler, (op == SLJIT_UDIV ? UDIV : SDIV) | D(SLJIT_SCRATCH_REG1) | S1(SLJIT_SCRATCH_REG1) | S2(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG1)));
- FAIL_IF(push_inst(compiler, SMUL | D(SLJIT_SCRATCH_REG2) | S1(SLJIT_SCRATCH_REG1) | S2(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG2)));
- FAIL_IF(push_inst(compiler, SUB | D(SLJIT_SCRATCH_REG2) | S1(TMP_REG2) | S2(SLJIT_SCRATCH_REG2), DR(SLJIT_SCRATCH_REG2)));
+ FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_R0), DR(TMP_REG2)));
+ FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? UDIV : SDIV) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0)));
+ FAIL_IF(push_inst(compiler, SMUL | D(SLJIT_R1) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R1)));
+ FAIL_IF(push_inst(compiler, SUB | D(SLJIT_R1) | S1(TMP_REG2) | S2(SLJIT_R1), DR(SLJIT_R1)));
return SLJIT_SUCCESS;
#else
#error "Implementation required"
@@ -812,7 +806,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
sljit_si flags = GET_FLAGS(op) ? SET_FLAGS : 0;
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -881,7 +875,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si flags = GET_FLAGS(op) ? SET_FLAGS : 0;
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -917,13 +911,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
return reg_map[reg];
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
return reg << 1;
}
@@ -931,8 +925,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
void *instruction, sljit_si size)
{
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size == 4);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
return push_inst(compiler, *(sljit_ins*)instruction, UNMOVABLE_INS);
}
@@ -953,73 +946,139 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void)
#define FLOAT_DATA(op) (DOUBLE_DATA | ((op & SLJIT_SINGLE_OP) >> 7))
#define SELECT_FOP(op, single, double) ((op & SLJIT_SINGLE_OP) ? single : double)
+#define FLOAT_TMP_MEM_OFFSET (22 * sizeof(sljit_sw))
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ if (src & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+ src = TMP_FREG1;
+ }
+ else
+ src <<= 1;
+
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOI, FDTOI) | DA(TMP_FREG1) | S2A(src), MOVABLE_INS));
+
+ if (dst == SLJIT_UNUSED)
+ return SLJIT_SUCCESS;
+
+ if (FAST_IS_REG(dst)) {
+ FAIL_IF(emit_op_mem2(compiler, SINGLE_DATA, TMP_FREG1, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ return emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, dst, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET);
+ }
+
+ /* Store the integer value from a VFP register. */
+ return emit_op_mem2(compiler, SINGLE_DATA, TMP_FREG1, dst, dstw, 0, 0);
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
+
+ if (src & SLJIT_IMM) {
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ srcw = (sljit_si)srcw;
+#endif
+ FAIL_IF(load_immediate(compiler, TMP_REG1, srcw));
+ src = TMP_REG1;
+ srcw = 0;
+ }
+
+ if (FAST_IS_REG(src)) {
+ FAIL_IF(emit_op_mem2(compiler, WORD_DATA, src, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET, SLJIT_MEM1(SLJIT_SP), FLOAT_TMP_MEM_OFFSET));
+ src = SLJIT_MEM1(SLJIT_SP);
+ srcw = FLOAT_TMP_MEM_OFFSET;
+ }
+
+ FAIL_IF(emit_op_mem2(compiler, SINGLE_DATA | LOAD_DATA, TMP_FREG1, src, srcw, dst, dstw));
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FITOS, FITOD) | DA(dst_r) | S2A(TMP_FREG1), MOVABLE_INS));
+
+ if (dst & SLJIT_MEM)
+ return emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG1, dst, dstw, 0, 0);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ if (src1 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w, src2, src2w));
+ src1 = TMP_FREG1;
+ }
+ else
+ src1 <<= 1;
+
+ if (src2 & SLJIT_MEM) {
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src2, src2w, 0, 0));
+ src2 = TMP_FREG2;
+ }
+ else
+ src2 <<= 1;
+
+ return push_inst(compiler, SELECT_FOP(op, FCMPS, FCMPD) | S1A(src1) | S2A(src2), FCC_IS_SET | MOVABLE_INS);
+}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- sljit_si dst_fr;
+ sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x2), float_transfer_bit_error);
-
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- if (dst & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, dst, dstw, src, srcw));
- dst = TMP_FREG1;
- }
- else
- dst <<= 1;
-
- if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG2, src, srcw, 0, 0));
- src = TMP_FREG2;
- }
- else
- src <<= 1;
+ SLJIT_COMPILE_ASSERT((SLJIT_SINGLE_OP == 0x100) && !(DOUBLE_DATA & 0x2), float_transfer_bit_error);
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
- return push_inst(compiler, SELECT_FOP(op, FCMPS, FCMPD) | S1A(dst) | S2A(src), FCC_IS_SET | MOVABLE_INS);
- }
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMS)
+ op ^= SLJIT_SINGLE_OP;
- dst_fr = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
+ dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG1;
if (src & SLJIT_MEM) {
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_fr, src, srcw, dst, dstw));
- src = dst_fr;
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op) | LOAD_DATA, dst_r, src, srcw, dst, dstw));
+ src = dst_r;
}
else
src <<= 1;
switch (GET_OPCODE(op)) {
- case SLJIT_MOVD:
- if (src != dst_fr && dst_fr != TMP_FREG1) {
- FAIL_IF(push_inst(compiler, FMOVS | DA(dst_fr) | S2A(src), MOVABLE_INS));
+ case SLJIT_DMOV:
+ if (src != dst_r) {
+ if (dst_r != TMP_FREG1) {
+ FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r) | S2A(src), MOVABLE_INS));
if (!(op & SLJIT_SINGLE_OP))
- FAIL_IF(push_inst(compiler, FMOVS | DA(dst_fr | 1) | S2A(src | 1), MOVABLE_INS));
+ FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS));
}
- break;
- case SLJIT_NEGD:
- FAIL_IF(push_inst(compiler, FNEGS | DA(dst_fr) | S2A(src), MOVABLE_INS));
- if (dst_fr != src && !(op & SLJIT_SINGLE_OP))
- FAIL_IF(push_inst(compiler, FMOVS | DA(dst_fr | 1) | S2A(src | 1), MOVABLE_INS));
- break;
- case SLJIT_ABSD:
- FAIL_IF(push_inst(compiler, FABSS | DA(dst_fr) | S2A(src), MOVABLE_INS));
- if (dst_fr != src && !(op & SLJIT_SINGLE_OP))
- FAIL_IF(push_inst(compiler, FMOVS | DA(dst_fr | 1) | S2A(src | 1), MOVABLE_INS));
- break;
- }
-
- if (dst_fr == TMP_FREG1) {
- if (GET_OPCODE(op) == SLJIT_MOVD)
- dst_fr = src;
- FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_fr, dst, dstw, 0, 0));
+ else
+ dst_r = src;
+ }
+ break;
+ case SLJIT_DNEG:
+ FAIL_IF(push_inst(compiler, FNEGS | DA(dst_r) | S2A(src), MOVABLE_INS));
+ if (dst_r != src && !(op & SLJIT_SINGLE_OP))
+ FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS));
+ break;
+ case SLJIT_DABS:
+ FAIL_IF(push_inst(compiler, FABSS | DA(dst_r) | S2A(src), MOVABLE_INS));
+ if (dst_r != src && !(op & SLJIT_SINGLE_OP))
+ FAIL_IF(push_inst(compiler, FMOVS | DA(dst_r | 1) | S2A(src | 1), MOVABLE_INS));
+ break;
+ case SLJIT_CONVD_FROMS:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSTOD, FDTOS) | DA(dst_r) | S2A(src), MOVABLE_INS));
+ op ^= SLJIT_SINGLE_OP;
+ break;
}
+ if (dst & SLJIT_MEM)
+ FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), dst_r, dst, dstw, 0, 0));
return SLJIT_SUCCESS;
}
@@ -1028,15 +1087,18 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si src1, sljit_sw src1w,
sljit_si src2, sljit_sw src2w)
{
- sljit_si dst_fr, flags = 0;
+ sljit_si dst_r, flags = 0;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
compiler->cache_arg = 0;
compiler->cache_argw = 0;
- dst_fr = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2;
+ dst_r = FAST_IS_REG(dst) ? (dst << 1) : TMP_FREG2;
if (src1 & SLJIT_MEM) {
if (getput_arg_fast(compiler, FLOAT_DATA(op) | LOAD_DATA, TMP_FREG1, src1, src1w)) {
@@ -1079,24 +1141,24 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
src2 = TMP_FREG2;
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADDD) | DA(dst_fr) | S1A(src1) | S2A(src2), MOVABLE_INS));
+ case SLJIT_DADD:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FADDS, FADDD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS));
break;
- case SLJIT_SUBD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUBD) | DA(dst_fr) | S1A(src1) | S2A(src2), MOVABLE_INS));
+ case SLJIT_DSUB:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FSUBS, FSUBD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS));
break;
- case SLJIT_MULD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMULD) | DA(dst_fr) | S1A(src1) | S2A(src2), MOVABLE_INS));
+ case SLJIT_DMUL:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FMULS, FMULD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS));
break;
- case SLJIT_DIVD:
- FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIVD) | DA(dst_fr) | S1A(src1) | S2A(src2), MOVABLE_INS));
+ case SLJIT_DDIV:
+ FAIL_IF(push_inst(compiler, SELECT_FOP(op, FDIVS, FDIVD) | DA(dst_r) | S1A(src1) | S2A(src2), MOVABLE_INS));
break;
}
- if (dst_fr == TMP_FREG2)
+ if (dst_r == TMP_FREG2)
FAIL_IF(emit_op_mem2(compiler, FLOAT_DATA(op), TMP_FREG2, dst, dstw, 0, 0));
return SLJIT_SUCCESS;
@@ -1112,7 +1174,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw)
{
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
@@ -1129,7 +1191,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw)
{
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src))
@@ -1152,7 +1214,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
if (compiler->last_label && compiler->last_label->size == compiler->size)
return compiler->last_label;
@@ -1167,66 +1229,50 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
static sljit_ins get_cc(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_EQUAL:
+ case SLJIT_MUL_NOT_OVERFLOW:
+ case SLJIT_D_NOT_EQUAL: /* Unordered. */
return DA(0x1);
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_MUL_OVERFLOW:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_MUL_OVERFLOW:
+ case SLJIT_D_EQUAL:
return DA(0x9);
- case SLJIT_C_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_GREATER: /* Unordered. */
return DA(0x5);
- case SLJIT_C_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return DA(0xd);
- case SLJIT_C_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER_EQUAL: /* Unordered. */
return DA(0xc);
- case SLJIT_C_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS:
return DA(0x4);
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return DA(0x3);
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return DA(0xb);
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return DA(0xa);
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return DA(0x2);
- case SLJIT_C_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_D_UNORDERED:
return DA(0x7);
- case SLJIT_C_NOT_OVERFLOW:
- return DA(0xf);
-
- case SLJIT_C_FLOAT_EQUAL:
- return DA(0x9);
-
- case SLJIT_C_FLOAT_NOT_EQUAL: /* Unordered. */
- return DA(0x1);
-
- case SLJIT_C_FLOAT_LESS:
- return DA(0x4);
-
- case SLJIT_C_FLOAT_GREATER_EQUAL: /* Unordered. */
- return DA(0xc);
-
- case SLJIT_C_FLOAT_LESS_EQUAL:
- return DA(0xd);
-
- case SLJIT_C_FLOAT_GREATER: /* Unordered. */
- return DA(0x5);
-
- case SLJIT_C_FLOAT_UNORDERED:
- return DA(0x7);
-
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_D_ORDERED:
return DA(0xf);
default:
@@ -1240,14 +1286,14 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
struct sljit_jump *jump;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
PTR_FAIL_IF(!jump);
set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP);
type &= 0xff;
- if (type < SLJIT_C_FLOAT_EQUAL) {
+ if (type < SLJIT_D_EQUAL) {
jump->flags |= IS_COND;
if (((compiler->delay_slot & DST_INS_MASK) != UNMOVABLE_INS) && !(compiler->delay_slot & ICC_IS_SET))
jump->flags |= IS_MOVABLE;
@@ -1287,7 +1333,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
sljit_si src_r;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if (FAST_IS_REG(src))
@@ -1324,7 +1370,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
sljit_si reg, flags = (GET_FLAGS(op) ? SET_FLAGS : 0);
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
ADJUST_LOCAL_OFFSET(dst, dstw);
if (dst == SLJIT_UNUSED)
@@ -1343,7 +1389,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
srcw = 0;
}
- if (type < SLJIT_C_FLOAT_EQUAL)
+ type &= 0xff;
+ if (type < SLJIT_D_EQUAL)
FAIL_IF(push_inst(compiler, BICC | get_cc(type) | 3, UNMOVABLE_INS));
else
FAIL_IF(push_inst(compiler, FBFCC | get_cc(type) | 3, UNMOVABLE_INS));
@@ -1366,7 +1413,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const));
diff --git a/src/3rdparty/pcre/sljit/sljitNativeTILEGX_64.c b/src/3rdparty/pcre/sljit/sljitNativeTILEGX_64.c
index d0b392e7a4..1d6aa5a110 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeTILEGX_64.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeTILEGX_64.c
@@ -1173,19 +1173,16 @@ static sljit_si emit_const_64(struct sljit_compiler *compiler, sljit_si dst_ar,
return SHL16INSLI(reg_map[dst_ar], reg_map[dst_ar], imm);
}
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
sljit_ins base;
sljit_ins bundle = 0;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
local_size += (saveds + 1) * sizeof(sljit_sw);
local_size = (local_size + 7) & ~7;
@@ -1233,16 +1230,13 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
local_size += (saveds + 1) * sizeof(sljit_sw);
compiler->local_size = (local_size + 7) & ~7;
@@ -2370,7 +2364,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw));
}
- FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_SCRATCH_REG1], ZERO));
+ FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_R0], ZERO));
FAIL_IF(ADDI_SOLO(54, 54, -16));
@@ -2381,7 +2375,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
/* Register input. */
if (type >= SLJIT_CALL1)
- FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_SCRATCH_REG1], ZERO));
+ FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_R0], ZERO));
FAIL_IF(ADD_SOLO(reg_map[PIC_ADDR_REG], reg_map[src_r], ZERO));
@@ -2511,7 +2505,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_jump(struct sljit_compil
SLJIT_ASSERT(reg_map[PIC_ADDR_REG] == 16 && PIC_ADDR_REG == TMP_REG2);
/* Cannot be optimized out if type is >= CALL0. */
jump->flags |= IS_JAL | (type >= SLJIT_CALL0 ? SLJIT_REWRITABLE_JUMP : 0);
- PTR_FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_SCRATCH_REG1], ZERO));
+ PTR_FAIL_IF(ADD_SOLO(0, reg_map[SLJIT_R0], ZERO));
jump->addr = compiler->size;
PTR_FAIL_IF(JALR_SOLO(TMP_REG2_mapped));
}
diff --git a/src/3rdparty/pcre/sljit/sljitNativeX86_32.c b/src/3rdparty/pcre/sljit/sljitNativeX86_32.c
index dd03f26618..d7129c8e26 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeX86_32.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeX86_32.c
@@ -63,27 +63,25 @@ static sljit_ub* generate_far_jump_code(struct sljit_jump *jump, sljit_ub *code_
return code_ptr;
}
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
sljit_si size;
- sljit_si locals_offset;
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
compiler->args = args;
compiler->flags_saved = 0;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ size = 1 + (scratches > 7 ? (scratches - 7) : 0) + (saveds <= 3 ? saveds : 3);
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
- size = 1 + (saveds <= 3 ? saveds : 3) + (args > 0 ? (args * 2) : 0) + (args > 2 ? 2 : 0);
+ size += (args > 0 ? (args * 2) : 0) + (args > 2 ? 2 : 0);
#else
- size = 1 + (saveds <= 3 ? saveds : 3) + (args > 0 ? (2 + args * 3) : 0);
+ size += (args > 0 ? (2 + args * 3) : 0);
#endif
inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
FAIL_IF(!inst);
@@ -96,76 +94,85 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
*inst++ = MOD_REG | (reg_map[TMP_REG1] << 3) | 0x4 /* esp */;
}
#endif
- if (saveds > 2)
- PUSH_REG(reg_map[SLJIT_SAVED_REG3]);
- if (saveds > 1)
- PUSH_REG(reg_map[SLJIT_SAVED_REG2]);
- if (saveds > 0)
- PUSH_REG(reg_map[SLJIT_SAVED_REG1]);
+ if (saveds > 2 || scratches > 7)
+ PUSH_REG(reg_map[SLJIT_S2]);
+ if (saveds > 1 || scratches > 8)
+ PUSH_REG(reg_map[SLJIT_S1]);
+ if (saveds > 0 || scratches > 9)
+ PUSH_REG(reg_map[SLJIT_S0]);
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
if (args > 0) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG1] << 3) | reg_map[SLJIT_SCRATCH_REG3];
+ *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | reg_map[SLJIT_R2];
}
if (args > 1) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG2] << 3) | reg_map[SLJIT_SCRATCH_REG2];
+ *inst++ = MOD_REG | (reg_map[SLJIT_S1] << 3) | reg_map[SLJIT_R1];
}
if (args > 2) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SAVED_REG3] << 3) | 0x4 /* esp */;
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | 0x4 /* esp */;
*inst++ = 0x24;
*inst++ = sizeof(sljit_sw) * (3 + 2); /* saveds >= 3 as well. */
}
#else
if (args > 0) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SAVED_REG1] << 3) | reg_map[TMP_REG1];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_S0] << 3) | reg_map[TMP_REG1];
*inst++ = sizeof(sljit_sw) * 2;
}
if (args > 1) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SAVED_REG2] << 3) | reg_map[TMP_REG1];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_S1] << 3) | reg_map[TMP_REG1];
*inst++ = sizeof(sljit_sw) * 3;
}
if (args > 2) {
*inst++ = MOV_r_rm;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SAVED_REG3] << 3) | reg_map[TMP_REG1];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_S2] << 3) | reg_map[TMP_REG1];
*inst++ = sizeof(sljit_sw) * 4;
}
#endif
-#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
- locals_offset = 2 * sizeof(sljit_uw);
-#else
- SLJIT_COMPILE_ASSERT(FIXED_LOCALS_OFFSET >= 2 * sizeof(sljit_uw), require_at_least_two_words);
- locals_offset = FIXED_LOCALS_OFFSET;
-#endif
- compiler->scratches_start = locals_offset;
- if (scratches > 3)
- locals_offset += (scratches - 3) * sizeof(sljit_uw);
- compiler->saveds_start = locals_offset;
- if (saveds > 3)
- locals_offset += (saveds - 3) * sizeof(sljit_uw);
- compiler->locals_offset = locals_offset;
+ SLJIT_COMPILE_ASSERT(SLJIT_LOCALS_OFFSET >= (2 + 4) * sizeof(sljit_uw), require_at_least_two_words);
#if defined(__APPLE__)
- saveds = (2 + (saveds <= 3 ? saveds : 3)) * sizeof(sljit_uw);
- local_size = ((locals_offset + saveds + local_size + 15) & ~15) - saveds;
+ /* Ignore pushed registers and SLJIT_LOCALS_OFFSET when computing the aligned local size. */
+ saveds = (2 + (scratches > 7 ? (scratches - 7) : 0) + (saveds <= 3 ? saveds : 3)) * sizeof(sljit_uw);
+ local_size = ((SLJIT_LOCALS_OFFSET + saveds + local_size + 15) & ~15) - saveds;
#else
- local_size = locals_offset + ((local_size + sizeof(sljit_uw) - 1) & ~(sizeof(sljit_uw) - 1));
+ if (options & SLJIT_DOUBLE_ALIGNMENT) {
+ local_size = SLJIT_LOCALS_OFFSET + ((local_size + 7) & ~7);
+
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + 17);
+ FAIL_IF(!inst);
+
+ INC_SIZE(17);
+ inst[0] = MOV_r_rm;
+ inst[1] = MOD_REG | (reg_map[TMP_REG1] << 3) | reg_map[SLJIT_SP];
+ inst[2] = GROUP_F7;
+ inst[3] = MOD_REG | (0 << 3) | reg_map[SLJIT_SP];
+ *(sljit_sw*)(inst + 4) = 0x4;
+ inst[8] = JNE_i8;
+ inst[9] = 6;
+ inst[10] = GROUP_BINARY_81;
+ inst[11] = MOD_REG | (5 << 3) | reg_map[SLJIT_SP];
+ *(sljit_sw*)(inst + 12) = 0x4;
+ inst[16] = PUSH_r + reg_map[TMP_REG1];
+ }
+ else
+ local_size = SLJIT_LOCALS_OFFSET + ((local_size + 3) & ~3);
#endif
compiler->local_size = local_size;
#ifdef _WIN32
if (local_size > 1024) {
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
- FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_SCRATCH_REG1], local_size));
+ FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_R0], local_size));
#else
- local_size -= FIXED_LOCALS_OFFSET;
- FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_SCRATCH_REG1], local_size));
+ local_size -= SLJIT_LOCALS_OFFSET;
+ FAIL_IF(emit_do_imm(compiler, MOV_r_i32 + reg_map[SLJIT_R0], local_size));
FAIL_IF(emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32,
- SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, FIXED_LOCALS_OFFSET));
+ SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, SLJIT_LOCALS_OFFSET));
#endif
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_grow_stack)));
}
@@ -173,41 +180,29 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
SLJIT_ASSERT(local_size > 0);
return emit_non_cum_binary(compiler, SUB_r_rm, SUB_rm_r, SUB, SUB_EAX_i32,
- SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, local_size);
+ SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, local_size);
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- sljit_si locals_offset;
-
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
compiler->args = args;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
-#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
- locals_offset = 2 * sizeof(sljit_uw);
-#else
- locals_offset = FIXED_LOCALS_OFFSET;
-#endif
- compiler->scratches_start = locals_offset;
- if (scratches > 3)
- locals_offset += (scratches - 3) * sizeof(sljit_uw);
- compiler->saveds_start = locals_offset;
- if (saveds > 3)
- locals_offset += (saveds - 3) * sizeof(sljit_uw);
- compiler->locals_offset = locals_offset;
#if defined(__APPLE__)
- saveds = (2 + (saveds <= 3 ? saveds : 3)) * sizeof(sljit_uw);
- compiler->local_size = ((locals_offset + saveds + local_size + 15) & ~15) - saveds;
+ saveds = (2 + (scratches > 7 ? (scratches - 7) : 0) + (saveds <= 3 ? saveds : 3)) * sizeof(sljit_uw);
+ compiler->local_size = ((SLJIT_LOCALS_OFFSET + saveds + local_size + 15) & ~15) - saveds;
#else
- compiler->local_size = locals_offset + ((local_size + sizeof(sljit_uw) - 1) & ~(sizeof(sljit_uw) - 1));
+ if (options & SLJIT_DOUBLE_ALIGNMENT)
+ compiler->local_size = SLJIT_LOCALS_OFFSET + ((local_size + 7) & ~7);
+ else
+ compiler->local_size = SLJIT_LOCALS_OFFSET + ((local_size + 3) & ~3);
#endif
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
@@ -216,7 +211,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compi
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
SLJIT_ASSERT(compiler->args >= 0);
compiler->flags_saved = 0;
@@ -224,9 +219,22 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compi
SLJIT_ASSERT(compiler->local_size > 0);
FAIL_IF(emit_cum_binary(compiler, ADD_r_rm, ADD_rm_r, ADD, ADD_EAX_i32,
- SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, compiler->local_size));
+ SLJIT_SP, 0, SLJIT_SP, 0, SLJIT_IMM, compiler->local_size));
+
+#if !defined(__APPLE__)
+ if (compiler->options & SLJIT_DOUBLE_ALIGNMENT) {
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + 3);
+ FAIL_IF(!inst);
+
+ INC_SIZE(3);
+ inst[0] = MOV_r_rm;
+ inst[1] = (reg_map[SLJIT_SP] << 3) | 0x4 /* SIB */;
+ inst[2] = (4 << 3) | reg_map[SLJIT_SP];
+ }
+#endif
- size = 2 + (compiler->saveds <= 3 ? compiler->saveds : 3);
+ size = 2 + (compiler->scratches > 7 ? (compiler->scratches - 7) : 0) +
+ (compiler->saveds <= 3 ? compiler->saveds : 3);
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
if (compiler->args > 2)
size += 2;
@@ -239,12 +247,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compi
INC_SIZE(size);
- if (compiler->saveds > 0)
- POP_REG(reg_map[SLJIT_SAVED_REG1]);
- if (compiler->saveds > 1)
- POP_REG(reg_map[SLJIT_SAVED_REG2]);
- if (compiler->saveds > 2)
- POP_REG(reg_map[SLJIT_SAVED_REG3]);
+ if (compiler->saveds > 0 || compiler->scratches > 9)
+ POP_REG(reg_map[SLJIT_S0]);
+ if (compiler->saveds > 1 || compiler->scratches > 8)
+ POP_REG(reg_map[SLJIT_S1]);
+ if (compiler->saveds > 2 || compiler->scratches > 7)
+ POP_REG(reg_map[SLJIT_S2]);
POP_REG(reg_map[TMP_REG1]);
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
if (compiler->args > 2)
@@ -280,21 +288,17 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
SLJIT_ASSERT(!(flags & (EX86_BIN_INS | EX86_SHIFT_INS)) || (flags & (EX86_BYTE_ARG | EX86_HALF_ARG)) == 0);
/* Both size flags cannot be switched on. */
SLJIT_ASSERT((flags & (EX86_BYTE_ARG | EX86_HALF_ARG)) != (EX86_BYTE_ARG | EX86_HALF_ARG));
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
/* SSE2 and immediate is not possible. */
SLJIT_ASSERT(!(a & SLJIT_IMM) || !(flags & EX86_SSE2));
SLJIT_ASSERT((flags & (EX86_PREF_F2 | EX86_PREF_F3)) != (EX86_PREF_F2 | EX86_PREF_F3)
&& (flags & (EX86_PREF_F2 | EX86_PREF_66)) != (EX86_PREF_F2 | EX86_PREF_66)
&& (flags & (EX86_PREF_F3 | EX86_PREF_66)) != (EX86_PREF_F3 | EX86_PREF_66));
-#endif
size &= 0xf;
inst_size = size;
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
if (flags & (EX86_PREF_F2 | EX86_PREF_F3))
inst_size++;
-#endif
if (flags & EX86_PREF_66)
inst_size++;
@@ -311,8 +315,8 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
inst_size += sizeof(sljit_sw);
}
- if ((b & REG_MASK) == SLJIT_LOCALS_REG && !(b & OFFS_REG_MASK))
- b |= TO_OFFS_REG(SLJIT_LOCALS_REG);
+ if ((b & REG_MASK) == SLJIT_SP && !(b & OFFS_REG_MASK))
+ b |= TO_OFFS_REG(SLJIT_SP);
if ((b & OFFS_REG_MASK) != SLJIT_UNUSED)
inst_size += 1; /* SIB byte. */
@@ -348,12 +352,10 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
/* Encoding the byte. */
INC_SIZE(inst_size);
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
if (flags & EX86_PREF_F2)
*inst++ = 0xf2;
if (flags & EX86_PREF_F3)
*inst++ = 0xf3;
-#endif
if (flags & EX86_PREF_66)
*inst++ = 0x66;
@@ -366,15 +368,10 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
if ((a & SLJIT_IMM) || (a == 0))
*buf_ptr = 0;
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- else if (!(flags & EX86_SSE2))
+ else if (!(flags & EX86_SSE2_OP1))
*buf_ptr = reg_map[a] << 3;
else
*buf_ptr = a << 3;
-#else
- else
- *buf_ptr = reg_map[a] << 3;
-#endif
}
else {
if (a & SLJIT_IMM) {
@@ -388,13 +385,9 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
}
if (!(b & SLJIT_MEM))
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2)) ? reg_map[b] : b);
-#else
- *buf_ptr++ |= MOD_REG + reg_map[b];
-#endif
+ *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2_OP2)) ? reg_map[b] : b);
else if ((b & REG_MASK) != SLJIT_UNUSED) {
- if ((b & OFFS_REG_MASK) == SLJIT_UNUSED || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_LOCALS_REG)) {
+ if ((b & OFFS_REG_MASK) == SLJIT_UNUSED || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_SP)) {
if (immb != 0) {
if (immb <= 127 && immb >= -128)
*buf_ptr |= 0x40;
@@ -455,28 +448,28 @@ static SLJIT_INLINE sljit_si call_with_args(struct sljit_compiler *compiler, slj
INC_SIZE(type >= SLJIT_CALL3 ? 2 + 1 : 2);
if (type >= SLJIT_CALL3)
- PUSH_REG(reg_map[SLJIT_SCRATCH_REG3]);
+ PUSH_REG(reg_map[SLJIT_R2]);
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SCRATCH_REG3] << 3) | reg_map[SLJIT_SCRATCH_REG1];
+ *inst++ = MOD_REG | (reg_map[SLJIT_R2] << 3) | reg_map[SLJIT_R0];
#else
inst = (sljit_ub*)ensure_buf(compiler, 1 + 4 * (type - SLJIT_CALL0));
FAIL_IF(!inst);
INC_SIZE(4 * (type - SLJIT_CALL0));
*inst++ = MOV_rm_r;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SCRATCH_REG1] << 3) | 0x4 /* SIB */;
- *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_LOCALS_REG];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_R0] << 3) | 0x4 /* SIB */;
+ *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP];
*inst++ = 0;
if (type >= SLJIT_CALL2) {
*inst++ = MOV_rm_r;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SCRATCH_REG2] << 3) | 0x4 /* SIB */;
- *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_LOCALS_REG];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_R1] << 3) | 0x4 /* SIB */;
+ *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP];
*inst++ = sizeof(sljit_sw);
}
if (type >= SLJIT_CALL3) {
*inst++ = MOV_rm_r;
- *inst++ = MOD_DISP8 | (reg_map[SLJIT_SCRATCH_REG3] << 3) | 0x4 /* SIB */;
- *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_LOCALS_REG];
+ *inst++ = MOD_DISP8 | (reg_map[SLJIT_R2] << 3) | 0x4 /* SIB */;
+ *inst++ = (0x4 /* none*/ << 3) | reg_map[SLJIT_SP];
*inst++ = 2 * sizeof(sljit_sw);
}
#endif
@@ -488,7 +481,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
CHECK_EXTRA_REGS(dst, dstw, (void)0);
@@ -519,7 +512,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
CHECK_EXTRA_REGS(src, srcw, (void)0);
diff --git a/src/3rdparty/pcre/sljit/sljitNativeX86_64.c b/src/3rdparty/pcre/sljit/sljitNativeX86_64.c
index 967f3c3444..1790d8a4d0 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeX86_64.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeX86_64.c
@@ -87,118 +87,88 @@ static sljit_ub* generate_fixed_jump(sljit_ub *code_ptr, sljit_sw addr, sljit_si
return code_ptr;
}
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- sljit_si size, pushed_size;
+ sljit_si i, tmp, size, saved_register_size;
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_enter(compiler, args, scratches, saveds, local_size);
+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
- compiler->scratches = scratches;
- compiler->saveds = saveds;
compiler->flags_saved = 0;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
- size = saveds;
/* Including the return address saved by the call instruction. */
- pushed_size = (saveds + 1) * sizeof(sljit_sw);
-#ifndef _WIN64
- if (saveds >= 2)
- size += saveds - 1;
-#else
- if (saveds >= 4)
- size += saveds - 3;
- if (scratches >= 5) {
- size += (5 - 4) * 2;
- pushed_size += sizeof(sljit_sw);
- }
-#endif
- size += args * 3;
- if (size > 0) {
+ saved_register_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1);
+
+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = SLJIT_S0; i >= tmp; i--) {
+ size = reg_map[i] >= 8 ? 2 : 1;
inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
FAIL_IF(!inst);
-
INC_SIZE(size);
- if (saveds >= 5) {
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_EREG2] >= 8, saved_ereg2_is_hireg);
+ if (reg_map[i] >= 8)
*inst++ = REX_B;
- PUSH_REG(reg_lmap[SLJIT_SAVED_EREG2]);
- }
- if (saveds >= 4) {
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_EREG1] >= 8, saved_ereg1_is_hireg);
- *inst++ = REX_B;
- PUSH_REG(reg_lmap[SLJIT_SAVED_EREG1]);
- }
- if (saveds >= 3) {
-#ifndef _WIN64
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_REG3] >= 8, saved_reg3_is_hireg);
- *inst++ = REX_B;
-#else
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_REG3] < 8, saved_reg3_is_loreg);
-#endif
- PUSH_REG(reg_lmap[SLJIT_SAVED_REG3]);
- }
- if (saveds >= 2) {
-#ifndef _WIN64
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_REG2] >= 8, saved_reg2_is_hireg);
- *inst++ = REX_B;
-#else
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_REG2] < 8, saved_reg2_is_loreg);
-#endif
- PUSH_REG(reg_lmap[SLJIT_SAVED_REG2]);
- }
- if (saveds >= 1) {
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SAVED_REG1] < 8, saved_reg1_is_loreg);
- PUSH_REG(reg_lmap[SLJIT_SAVED_REG1]);
- }
-#ifdef _WIN64
- if (scratches >= 5) {
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_TEMPORARY_EREG2] >= 8, temporary_ereg2_is_hireg);
+ PUSH_REG(reg_lmap[i]);
+ }
+
+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) {
+ size = reg_map[i] >= 8 ? 2 : 1;
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
+ FAIL_IF(!inst);
+ INC_SIZE(size);
+ if (reg_map[i] >= 8)
*inst++ = REX_B;
- PUSH_REG(reg_lmap[SLJIT_TEMPORARY_EREG2]);
- }
-#endif
+ PUSH_REG(reg_lmap[i]);
+ }
+
+ if (args > 0) {
+ size = args * 3;
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
+ FAIL_IF(!inst);
+
+ INC_SIZE(size);
#ifndef _WIN64
if (args > 0) {
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG1] << 3) | 0x7 /* rdi */;
+ *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x7 /* rdi */;
}
if (args > 1) {
*inst++ = REX_W | REX_R;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_lmap[SLJIT_SAVED_REG2] << 3) | 0x6 /* rsi */;
+ *inst++ = MOD_REG | (reg_lmap[SLJIT_S1] << 3) | 0x6 /* rsi */;
}
if (args > 2) {
*inst++ = REX_W | REX_R;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_lmap[SLJIT_SAVED_REG3] << 3) | 0x2 /* rdx */;
+ *inst++ = MOD_REG | (reg_lmap[SLJIT_S2] << 3) | 0x2 /* rdx */;
}
#else
if (args > 0) {
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG1] << 3) | 0x1 /* rcx */;
+ *inst++ = MOD_REG | (reg_map[SLJIT_S0] << 3) | 0x1 /* rcx */;
}
if (args > 1) {
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG2] << 3) | 0x2 /* rdx */;
+ *inst++ = MOD_REG | (reg_map[SLJIT_S1] << 3) | 0x2 /* rdx */;
}
if (args > 2) {
*inst++ = REX_W | REX_B;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (reg_map[SLJIT_SAVED_REG3] << 3) | 0x0 /* r8 */;
+ *inst++ = MOD_REG | (reg_map[SLJIT_S2] << 3) | 0x0 /* r8 */;
}
#endif
}
- local_size = ((local_size + FIXED_LOCALS_OFFSET + pushed_size + 16 - 1) & ~(16 - 1)) - pushed_size;
+ local_size = ((local_size + SLJIT_LOCALS_OFFSET + saved_register_size + 15) & ~15) - saved_register_size;
compiler->local_size = local_size;
+
#ifdef _WIN64
if (local_size > 1024) {
/* Allocate stack for the callback, which grows the stack. */
@@ -208,9 +178,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
*inst++ = REX_W;
*inst++ = GROUP_BINARY_83;
*inst++ = MOD_REG | SUB | 4;
- /* Pushed size must be divisible by 8. */
- SLJIT_ASSERT(!(pushed_size & 0x7));
- if (pushed_size & 0x8) {
+ /* Allocated size for registers must be divisible by 8. */
+ SLJIT_ASSERT(!(saved_register_size & 0x7));
+ /* Aligned to 16 byte. */
+ if (saved_register_size & 0x8) {
*inst++ = 5 * sizeof(sljit_sw);
local_size -= 5 * sizeof(sljit_sw);
} else {
@@ -218,17 +189,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
local_size -= 4 * sizeof(sljit_sw);
}
/* Second instruction */
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SCRATCH_REG1] < 8, temporary_reg1_is_loreg);
+ SLJIT_COMPILE_ASSERT(reg_map[SLJIT_R0] < 8, temporary_reg1_is_loreg);
*inst++ = REX_W;
*inst++ = MOV_rm_i32;
- *inst++ = MOD_REG | reg_lmap[SLJIT_SCRATCH_REG1];
+ *inst++ = MOD_REG | reg_lmap[SLJIT_R0];
*(sljit_si*)inst = local_size;
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_grow_stack)));
}
#endif
+
SLJIT_ASSERT(local_size > 0);
if (local_size <= 127) {
inst = (sljit_ub*)ensure_buf(compiler, 1 + 4);
@@ -249,59 +222,59 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_enter(struct sljit_compiler *compil
*(sljit_si*)inst = local_size;
inst += sizeof(sljit_si);
}
+
#ifdef _WIN64
- /* Save xmm6 with MOVAPS instruction. */
- inst = (sljit_ub*)ensure_buf(compiler, 1 + 5);
- FAIL_IF(!inst);
- INC_SIZE(5);
- *inst++ = GROUP_0F;
- *(sljit_si*)inst = 0x20247429;
+ /* Save xmm6 register: movaps [rsp + 0x20], xmm6 */
+ if (fscratches >= 6 || fsaveds >= 1) {
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + 5);
+ FAIL_IF(!inst);
+ INC_SIZE(5);
+ *inst++ = GROUP_0F;
+ *(sljit_si*)inst = 0x20247429;
+ }
#endif
return SLJIT_SUCCESS;
}
-SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, sljit_si args, sljit_si scratches, sljit_si saveds, sljit_si local_size)
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler,
+ sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds,
+ sljit_si fscratches, sljit_si fsaveds, sljit_si local_size)
{
- sljit_si pushed_size;
+ sljit_si saved_register_size;
- CHECK_ERROR_VOID();
- check_sljit_set_context(compiler, args, scratches, saveds, local_size);
-
- compiler->scratches = scratches;
- compiler->saveds = saveds;
-#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- compiler->logical_local_size = local_size;
-#endif
+ CHECK_ERROR();
+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
+ set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);
/* Including the return address saved by the call instruction. */
- pushed_size = (saveds + 1) * sizeof(sljit_sw);
-#ifdef _WIN64
- if (scratches >= 5)
- pushed_size += sizeof(sljit_sw);
-#endif
- compiler->local_size = ((local_size + FIXED_LOCALS_OFFSET + pushed_size + 16 - 1) & ~(16 - 1)) - pushed_size;
+ saved_register_size = GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1);
+ compiler->local_size = ((local_size + SLJIT_LOCALS_OFFSET + saved_register_size + 15) & ~15) - saved_register_size;
+ return SLJIT_SUCCESS;
}
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw)
{
- sljit_si size;
+ sljit_si i, tmp, size;
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_return(compiler, op, src, srcw);
+ CHECK(check_sljit_emit_return(compiler, op, src, srcw));
compiler->flags_saved = 0;
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
#ifdef _WIN64
- /* Restore xmm6 with MOVAPS instruction. */
- inst = (sljit_ub*)ensure_buf(compiler, 1 + 5);
- FAIL_IF(!inst);
- INC_SIZE(5);
- *inst++ = GROUP_0F;
- *(sljit_si*)inst = 0x20247428;
+ /* Restore xmm6 register: movaps xmm6, [rsp + 0x20] */
+ if (compiler->fscratches >= 6 || compiler->fsaveds >= 1) {
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + 5);
+ FAIL_IF(!inst);
+ INC_SIZE(5);
+ *inst++ = GROUP_0F;
+ *(sljit_si*)inst = 0x20247428;
+ }
#endif
+
SLJIT_ASSERT(compiler->local_size > 0);
if (compiler->local_size <= 127) {
inst = (sljit_ub*)ensure_buf(compiler, 1 + 4);
@@ -322,50 +295,31 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compi
*(sljit_si*)inst = compiler->local_size;
}
- size = 1 + compiler->saveds;
-#ifndef _WIN64
- if (compiler->saveds >= 2)
- size += compiler->saveds - 1;
-#else
- if (compiler->saveds >= 4)
- size += compiler->saveds - 3;
- if (compiler->scratches >= 5)
- size += (5 - 4) * 2;
-#endif
- inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
- FAIL_IF(!inst);
-
- INC_SIZE(size);
-
-#ifdef _WIN64
- if (compiler->scratches >= 5) {
- *inst++ = REX_B;
- POP_REG(reg_lmap[SLJIT_TEMPORARY_EREG2]);
- }
-#endif
- if (compiler->saveds >= 1)
- POP_REG(reg_map[SLJIT_SAVED_REG1]);
- if (compiler->saveds >= 2) {
-#ifndef _WIN64
- *inst++ = REX_B;
-#endif
- POP_REG(reg_lmap[SLJIT_SAVED_REG2]);
- }
- if (compiler->saveds >= 3) {
-#ifndef _WIN64
- *inst++ = REX_B;
-#endif
- POP_REG(reg_lmap[SLJIT_SAVED_REG3]);
- }
- if (compiler->saveds >= 4) {
- *inst++ = REX_B;
- POP_REG(reg_lmap[SLJIT_SAVED_EREG1]);
+ tmp = compiler->scratches;
+ for (i = SLJIT_FIRST_SAVED_REG; i <= tmp; i++) {
+ size = reg_map[i] >= 8 ? 2 : 1;
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
+ FAIL_IF(!inst);
+ INC_SIZE(size);
+ if (reg_map[i] >= 8)
+ *inst++ = REX_B;
+ POP_REG(reg_lmap[i]);
}
- if (compiler->saveds >= 5) {
- *inst++ = REX_B;
- POP_REG(reg_lmap[SLJIT_SAVED_EREG2]);
+
+ tmp = compiler->saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - compiler->saveds) : SLJIT_FIRST_SAVED_REG;
+ for (i = tmp; i <= SLJIT_S0; i++) {
+ size = reg_map[i] >= 8 ? 2 : 1;
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
+ FAIL_IF(!inst);
+ INC_SIZE(size);
+ if (reg_map[i] >= 8)
+ *inst++ = REX_B;
+ POP_REG(reg_lmap[i]);
}
+ inst = (sljit_ub*)ensure_buf(compiler, 1 + 1);
+ FAIL_IF(!inst);
+ INC_SIZE(1);
RET();
return SLJIT_SUCCESS;
}
@@ -409,72 +363,67 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
SLJIT_ASSERT(!(flags & (EX86_BIN_INS | EX86_SHIFT_INS)) || (flags & (EX86_BYTE_ARG | EX86_HALF_ARG)) == 0);
/* Both size flags cannot be switched on. */
SLJIT_ASSERT((flags & (EX86_BYTE_ARG | EX86_HALF_ARG)) != (EX86_BYTE_ARG | EX86_HALF_ARG));
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
/* SSE2 and immediate is not possible. */
SLJIT_ASSERT(!(a & SLJIT_IMM) || !(flags & EX86_SSE2));
SLJIT_ASSERT((flags & (EX86_PREF_F2 | EX86_PREF_F3)) != (EX86_PREF_F2 | EX86_PREF_F3)
&& (flags & (EX86_PREF_F2 | EX86_PREF_66)) != (EX86_PREF_F2 | EX86_PREF_66)
&& (flags & (EX86_PREF_F3 | EX86_PREF_66)) != (EX86_PREF_F3 | EX86_PREF_66));
-#endif
size &= 0xf;
inst_size = size;
- if ((b & SLJIT_MEM) && !(b & OFFS_REG_MASK) && NOT_HALFWORD(immb)) {
- if (emit_load_imm64(compiler, TMP_REG3, immb))
- return NULL;
- immb = 0;
- if (b & REG_MASK)
- b |= TO_OFFS_REG(TMP_REG3);
- else
- b |= TMP_REG3;
- }
-
if (!compiler->mode32 && !(flags & EX86_NO_REXW))
rex |= REX_W;
else if (flags & EX86_REX)
rex |= REX;
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
if (flags & (EX86_PREF_F2 | EX86_PREF_F3))
inst_size++;
-#endif
if (flags & EX86_PREF_66)
inst_size++;
/* Calculate size of b. */
inst_size += 1; /* mod r/m byte. */
if (b & SLJIT_MEM) {
+ if (!(b & OFFS_REG_MASK)) {
+ if (NOT_HALFWORD(immb)) {
+ if (emit_load_imm64(compiler, TMP_REG3, immb))
+ return NULL;
+ immb = 0;
+ if (b & REG_MASK)
+ b |= TO_OFFS_REG(TMP_REG3);
+ else
+ b |= TMP_REG3;
+ }
+ else if (reg_lmap[b & REG_MASK] == 4)
+ b |= TO_OFFS_REG(SLJIT_SP);
+ }
+
if ((b & REG_MASK) == SLJIT_UNUSED)
inst_size += 1 + sizeof(sljit_si); /* SIB byte required to avoid RIP based addressing. */
else {
if (reg_map[b & REG_MASK] >= 8)
rex |= REX_B;
- if (immb != 0 && !(b & OFFS_REG_MASK)) {
+
+ if (immb != 0 && (!(b & OFFS_REG_MASK) || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_SP))) {
/* Immediate operand. */
if (immb <= 127 && immb >= -128)
inst_size += sizeof(sljit_sb);
else
inst_size += sizeof(sljit_si);
}
- }
-
- if ((b & REG_MASK) == SLJIT_LOCALS_REG && !(b & OFFS_REG_MASK))
- b |= TO_OFFS_REG(SLJIT_LOCALS_REG);
+ else if (reg_lmap[b & REG_MASK] == 5)
+ inst_size += sizeof(sljit_sb);
- if ((b & OFFS_REG_MASK) != SLJIT_UNUSED) {
- inst_size += 1; /* SIB byte. */
- if (reg_map[OFFS_REG(b)] >= 8)
- rex |= REX_X;
+ if ((b & OFFS_REG_MASK) != SLJIT_UNUSED) {
+ inst_size += 1; /* SIB byte. */
+ if (reg_map[OFFS_REG(b)] >= 8)
+ rex |= REX_X;
+ }
}
}
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- else if (!(flags & EX86_SSE2) && reg_map[b] >= 8)
+ else if (!(flags & EX86_SSE2_OP2) && reg_map[b] >= 8)
rex |= REX_B;
-#else
- else if (reg_map[b] >= 8)
- rex |= REX_B;
-#endif
if (a & SLJIT_IMM) {
if (flags & EX86_BIN_INS) {
@@ -500,13 +449,8 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
else {
SLJIT_ASSERT(!(flags & EX86_SHIFT_INS) || a == SLJIT_PREF_SHIFT_REG);
/* reg_map[SLJIT_PREF_SHIFT_REG] is less than 8. */
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- if (!(flags & EX86_SSE2) && reg_map[a] >= 8)
+ if (!(flags & EX86_SSE2_OP1) && reg_map[a] >= 8)
rex |= REX_R;
-#else
- if (reg_map[a] >= 8)
- rex |= REX_R;
-#endif
}
if (rex)
@@ -517,12 +461,10 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
/* Encoding the byte. */
INC_SIZE(inst_size);
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
if (flags & EX86_PREF_F2)
*inst++ = 0xf2;
if (flags & EX86_PREF_F3)
*inst++ = 0xf3;
-#endif
if (flags & EX86_PREF_66)
*inst++ = 0x66;
if (rex)
@@ -536,15 +478,10 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
if ((a & SLJIT_IMM) || (a == 0))
*buf_ptr = 0;
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- else if (!(flags & EX86_SSE2))
+ else if (!(flags & EX86_SSE2_OP1))
*buf_ptr = reg_lmap[a] << 3;
else
*buf_ptr = a << 3;
-#else
- else
- *buf_ptr = reg_lmap[a] << 3;
-#endif
}
else {
if (a & SLJIT_IMM) {
@@ -558,14 +495,10 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
}
if (!(b & SLJIT_MEM))
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
- *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2)) ? reg_lmap[b] : b);
-#else
- *buf_ptr++ |= MOD_REG + reg_lmap[b];
-#endif
+ *buf_ptr++ |= MOD_REG + ((!(flags & EX86_SSE2_OP2)) ? reg_lmap[b] : b);
else if ((b & REG_MASK) != SLJIT_UNUSED) {
- if ((b & OFFS_REG_MASK) == SLJIT_UNUSED || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_LOCALS_REG)) {
- if (immb != 0) {
+ if ((b & OFFS_REG_MASK) == SLJIT_UNUSED || (b & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_SP)) {
+ if (immb != 0 || reg_lmap[b & REG_MASK] == 5) {
if (immb <= 127 && immb >= -128)
*buf_ptr |= 0x40;
else
@@ -579,7 +512,7 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
*buf_ptr++ = reg_lmap[b & REG_MASK] | (reg_lmap[OFFS_REG(b)] << 3);
}
- if (immb != 0) {
+ if (immb != 0 || reg_lmap[b & REG_MASK] == 5) {
if (immb <= 127 && immb >= -128)
*buf_ptr++ = immb; /* 8 bit displacement. */
else {
@@ -589,8 +522,12 @@ static sljit_ub* emit_x86_instruction(struct sljit_compiler *compiler, sljit_si
}
}
else {
+ if (reg_lmap[b & REG_MASK] == 5)
+ *buf_ptr |= 0x40;
*buf_ptr++ |= 0x04;
*buf_ptr++ = reg_lmap[b & REG_MASK] | (reg_lmap[OFFS_REG(b)] << 3) | (immb << 6);
+ if (reg_lmap[b & REG_MASK] == 5)
+ *buf_ptr++ = 0;
}
}
else {
@@ -621,7 +558,7 @@ static SLJIT_INLINE sljit_si call_with_args(struct sljit_compiler *compiler, slj
sljit_ub *inst;
#ifndef _WIN64
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SCRATCH_REG2] == 6 && reg_map[SLJIT_SCRATCH_REG1] < 8 && reg_map[SLJIT_SCRATCH_REG3] < 8, args_registers);
+ SLJIT_COMPILE_ASSERT(reg_map[SLJIT_R1] == 6 && reg_map[SLJIT_R0] < 8 && reg_map[SLJIT_R2] < 8, args_registers);
inst = (sljit_ub*)ensure_buf(compiler, 1 + ((type < SLJIT_CALL3) ? 3 : 6));
FAIL_IF(!inst);
@@ -629,13 +566,13 @@ static SLJIT_INLINE sljit_si call_with_args(struct sljit_compiler *compiler, slj
if (type >= SLJIT_CALL3) {
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (0x2 /* rdx */ << 3) | reg_lmap[SLJIT_SCRATCH_REG3];
+ *inst++ = MOD_REG | (0x2 /* rdx */ << 3) | reg_lmap[SLJIT_R2];
}
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (0x7 /* rdi */ << 3) | reg_lmap[SLJIT_SCRATCH_REG1];
+ *inst++ = MOD_REG | (0x7 /* rdi */ << 3) | reg_lmap[SLJIT_R0];
#else
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SCRATCH_REG2] == 2 && reg_map[SLJIT_SCRATCH_REG1] < 8 && reg_map[SLJIT_SCRATCH_REG3] < 8, args_registers);
+ SLJIT_COMPILE_ASSERT(reg_map[SLJIT_R1] == 2 && reg_map[SLJIT_R0] < 8 && reg_map[SLJIT_R2] < 8, args_registers);
inst = (sljit_ub*)ensure_buf(compiler, 1 + ((type < SLJIT_CALL3) ? 3 : 6));
FAIL_IF(!inst);
@@ -643,11 +580,11 @@ static SLJIT_INLINE sljit_si call_with_args(struct sljit_compiler *compiler, slj
if (type >= SLJIT_CALL3) {
*inst++ = REX_W | REX_R;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (0x0 /* r8 */ << 3) | reg_lmap[SLJIT_SCRATCH_REG3];
+ *inst++ = MOD_REG | (0x0 /* r8 */ << 3) | reg_lmap[SLJIT_R2];
}
*inst++ = REX_W;
*inst++ = MOV_r_rm;
- *inst++ = MOD_REG | (0x1 /* rcx */ << 3) | reg_lmap[SLJIT_SCRATCH_REG1];
+ *inst++ = MOD_REG | (0x1 /* rcx */ << 3) | reg_lmap[SLJIT_R0];
#endif
return SLJIT_SUCCESS;
}
@@ -657,7 +594,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *c
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_fast_enter(compiler, dst, dstw);
+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw));
ADJUST_LOCAL_OFFSET(dst, dstw);
/* For UNUSED dst. Uncommon, but possible. */
@@ -694,7 +631,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_fast_return(compiler, src, srcw);
+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
if ((src & SLJIT_IMM) && NOT_HALFWORD(srcw)) {
diff --git a/src/3rdparty/pcre/sljit/sljitNativeX86_common.c b/src/3rdparty/pcre/sljit/sljitNativeX86_common.c
index 9a2726c935..22a163fcc6 100644
--- a/src/3rdparty/pcre/sljit/sljitNativeX86_common.c
+++ b/src/3rdparty/pcre/sljit/sljitNativeX86_common.c
@@ -64,51 +64,46 @@ SLJIT_API_FUNC_ATTRIBUTE SLJIT_CONST char* sljit_get_platform_name(void)
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
/* Last register + 1. */
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 2] = {
- 0, 0, 2, 1, 0, 0, 3, 6, 7, 0, 0, 4, 5
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 3] = {
+ 0, 0, 2, 1, 0, 0, 0, 0, 7, 6, 3, 4, 5
};
#define CHECK_EXTRA_REGS(p, w, do) \
- if (p >= SLJIT_TEMPORARY_EREG1 && p <= SLJIT_TEMPORARY_EREG2) { \
- w = compiler->scratches_start + (p - SLJIT_TEMPORARY_EREG1) * sizeof(sljit_sw); \
- p = SLJIT_MEM1(SLJIT_LOCALS_REG); \
- do; \
- } \
- else if (p >= SLJIT_SAVED_EREG1 && p <= SLJIT_SAVED_EREG2) { \
- w = compiler->saveds_start + (p - SLJIT_SAVED_EREG1) * sizeof(sljit_sw); \
- p = SLJIT_MEM1(SLJIT_LOCALS_REG); \
+ if (p >= SLJIT_R3 && p <= SLJIT_R6) { \
+ w = SLJIT_LOCALS_OFFSET + ((p) - (SLJIT_R3 + 4)) * sizeof(sljit_sw); \
+ p = SLJIT_MEM1(SLJIT_SP); \
do; \
}
#else /* SLJIT_CONFIG_X86_32 */
/* Last register + 1. */
-#define TMP_REG1 (SLJIT_NO_REGISTERS + 1)
-#define TMP_REG2 (SLJIT_NO_REGISTERS + 2)
-#define TMP_REG3 (SLJIT_NO_REGISTERS + 3)
+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2)
+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3)
+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4)
/* Note: r12 & 0x7 == 0b100, which decoded as SIB byte present
Note: avoid to use r12 and r13 for memory addessing
therefore r12 is better for SAVED_EREG than SAVED_REG. */
#ifndef _WIN64
/* 1st passed in rdi, 2nd argument passed in rsi, 3rd in rdx. */
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
- 0, 0, 6, 1, 8, 11, 3, 15, 14, 13, 12, 4, 2, 7, 9
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = {
+ 0, 0, 6, 1, 8, 11, 10, 12, 5, 13, 14, 15, 3, 4, 2, 7, 9
};
/* low-map. reg_map & 0x7. */
-static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
- 0, 0, 6, 1, 0, 3, 3, 7, 6, 5, 4, 4, 2, 7, 1
+static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NUMBER_OF_REGISTERS + 5] = {
+ 0, 0, 6, 1, 0, 3, 2, 4, 5, 5, 6, 7, 3, 4, 2, 7, 1
};
#else
/* 1st passed in rcx, 2nd argument passed in rdx, 3rd in r8. */
-static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 4] = {
- 0, 0, 2, 1, 11, 13, 3, 6, 7, 14, 15, 4, 10, 8, 9
+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 5] = {
+ 0, 0, 2, 1, 11, 12, 5, 13, 14, 15, 7, 6, 3, 4, 10, 8, 9
};
/* low-map. reg_map & 0x7. */
-static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
- 0, 0, 2, 1, 3, 5, 3, 6, 7, 6, 7, 4, 2, 0, 1
+static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NUMBER_OF_REGISTERS + 5] = {
+ 0, 0, 2, 1, 3, 4, 5, 5, 6, 7, 7, 6, 3, 4, 2, 0, 1
};
#endif
@@ -133,9 +128,7 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
#endif /* SLJIT_CONFIG_X86_32 */
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
#define TMP_FREG (0)
-#endif
/* Size flags for emit_x86_instruction: */
#define EX86_BIN_INS 0x0010
@@ -145,12 +138,11 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
#define EX86_BYTE_ARG 0x0100
#define EX86_HALF_ARG 0x0200
#define EX86_PREF_66 0x0400
-
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
-#define EX86_SSE2 0x0800
-#define EX86_PREF_F2 0x1000
-#define EX86_PREF_F3 0x2000
-#endif
+#define EX86_PREF_F2 0x0800
+#define EX86_PREF_F3 0x1000
+#define EX86_SSE2_OP1 0x2000
+#define EX86_SSE2_OP2 0x4000
+#define EX86_SSE2 (EX86_SSE2_OP1 | EX86_SSE2_OP2)
/* --------------------------------------------------------------------- */
/* Instrucion forms */
@@ -179,6 +171,9 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
#define CMP_EAX_i32 0x3d
#define CMP_r_rm 0x3b
#define CMP_rm_r 0x39
+#define CVTPD2PS_x_xm 0x5a
+#define CVTSI2SD_x_rm 0x2a
+#define CVTTSD2SI_r_xm 0x2c
#define DIV (/* GROUP_F7 */ 6 << 3)
#define DIVSD_x_xm 0x5e
#define INT3 0xcc
@@ -188,6 +183,7 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
#define IMUL_r_rm_i8 0x6b
#define IMUL_r_rm_i32 0x69
#define JE_i8 0x74
+#define JNE_i8 0x75
#define JMP_i8 0xeb
#define JMP_i32 0xe9
#define JMP_rm (/* GROUP_FF */ 4 << 3)
@@ -239,6 +235,7 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
#define TEST_EAX_i32 0xa9
#define TEST_rm_r 0x85
#define UCOMISD_x_xm 0x2e
+#define UNPCKLPD_x_xm 0x14
#define XCHG_EAX_r 0x90
#define XCHG_r_rm 0x87
#define XOR (/* BINARY */ 6 << 3)
@@ -271,14 +268,12 @@ static SLJIT_CONST sljit_ub reg_lmap[SLJIT_NO_REGISTERS + 4] = {
/* Multithreading does not affect these static variables, since they store
built-in CPU features. Therefore they can be overwritten by different threads
if they detect the CPU features in the same time. */
-#if (defined SLJIT_SSE2 && SLJIT_SSE2) && (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
+#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
static sljit_si cpu_has_sse2 = -1;
#endif
static sljit_si cpu_has_cmov = -1;
-#ifdef _WIN32_WCE
-#include <cmnintrin.h>
-#elif defined(_MSC_VER) && _MSC_VER >= 1400
+#if defined(_MSC_VER) && _MSC_VER >= 1400
#include <intrin.h>
#endif
@@ -327,7 +322,7 @@ static void get_cpu_features(void)
#endif /* _MSC_VER && _MSC_VER >= 1400 */
-#if (defined SLJIT_SSE2 && SLJIT_SSE2) && (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
+#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
cpu_has_sse2 = (features >> 26) & 0x1;
#endif
cpu_has_cmov = (features >> 15) & 0x1;
@@ -336,54 +331,54 @@ static void get_cpu_features(void)
static sljit_ub get_jump_code(sljit_si type)
{
switch (type) {
- case SLJIT_C_EQUAL:
- case SLJIT_C_FLOAT_EQUAL:
+ case SLJIT_EQUAL:
+ case SLJIT_D_EQUAL:
return 0x84 /* je */;
- case SLJIT_C_NOT_EQUAL:
- case SLJIT_C_FLOAT_NOT_EQUAL:
+ case SLJIT_NOT_EQUAL:
+ case SLJIT_D_NOT_EQUAL:
return 0x85 /* jne */;
- case SLJIT_C_LESS:
- case SLJIT_C_FLOAT_LESS:
+ case SLJIT_LESS:
+ case SLJIT_D_LESS:
return 0x82 /* jc */;
- case SLJIT_C_GREATER_EQUAL:
- case SLJIT_C_FLOAT_GREATER_EQUAL:
+ case SLJIT_GREATER_EQUAL:
+ case SLJIT_D_GREATER_EQUAL:
return 0x83 /* jae */;
- case SLJIT_C_GREATER:
- case SLJIT_C_FLOAT_GREATER:
+ case SLJIT_GREATER:
+ case SLJIT_D_GREATER:
return 0x87 /* jnbe */;
- case SLJIT_C_LESS_EQUAL:
- case SLJIT_C_FLOAT_LESS_EQUAL:
+ case SLJIT_LESS_EQUAL:
+ case SLJIT_D_LESS_EQUAL:
return 0x86 /* jbe */;
- case SLJIT_C_SIG_LESS:
+ case SLJIT_SIG_LESS:
return 0x8c /* jl */;
- case SLJIT_C_SIG_GREATER_EQUAL:
+ case SLJIT_SIG_GREATER_EQUAL:
return 0x8d /* jnl */;
- case SLJIT_C_SIG_GREATER:
+ case SLJIT_SIG_GREATER:
return 0x8f /* jnle */;
- case SLJIT_C_SIG_LESS_EQUAL:
+ case SLJIT_SIG_LESS_EQUAL:
return 0x8e /* jle */;
- case SLJIT_C_OVERFLOW:
- case SLJIT_C_MUL_OVERFLOW:
+ case SLJIT_OVERFLOW:
+ case SLJIT_MUL_OVERFLOW:
return 0x80 /* jo */;
- case SLJIT_C_NOT_OVERFLOW:
- case SLJIT_C_MUL_NOT_OVERFLOW:
+ case SLJIT_NOT_OVERFLOW:
+ case SLJIT_MUL_NOT_OVERFLOW:
return 0x81 /* jno */;
- case SLJIT_C_FLOAT_UNORDERED:
+ case SLJIT_D_UNORDERED:
return 0x8a /* jp */;
- case SLJIT_C_FLOAT_ORDERED:
+ case SLJIT_D_ORDERED:
return 0x8b /* jpo */;
}
return 0;
@@ -462,7 +457,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
struct sljit_const *const_;
CHECK_ERROR_PTR();
- check_sljit_generate_code(compiler);
+ CHECK_PTR(check_sljit_generate_code(compiler));
reverse_buf(compiler);
/* Second code generation pass. */
@@ -730,7 +725,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op0(compiler, op);
+ CHECK(check_sljit_emit_op0(compiler, op));
switch (GET_OPCODE(op)) {
case SLJIT_BREAKPOINT:
@@ -745,22 +740,22 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
INC_SIZE(1);
*inst = NOP;
break;
- case SLJIT_UMUL:
- case SLJIT_SMUL:
- case SLJIT_UDIV:
- case SLJIT_SDIV:
+ case SLJIT_LUMUL:
+ case SLJIT_LSMUL:
+ case SLJIT_LUDIV:
+ case SLJIT_LSDIV:
compiler->flags_saved = 0;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
#ifdef _WIN64
SLJIT_COMPILE_ASSERT(
- reg_map[SLJIT_SCRATCH_REG1] == 0
- && reg_map[SLJIT_SCRATCH_REG2] == 2
+ reg_map[SLJIT_R0] == 0
+ && reg_map[SLJIT_R1] == 2
&& reg_map[TMP_REG1] > 7,
invalid_register_assignment_for_div_mul);
#else
SLJIT_COMPILE_ASSERT(
- reg_map[SLJIT_SCRATCH_REG1] == 0
- && reg_map[SLJIT_SCRATCH_REG2] < 7
+ reg_map[SLJIT_R0] == 0
+ && reg_map[SLJIT_R1] < 7
&& reg_map[TMP_REG1] == 2,
invalid_register_assignment_for_div_mul);
#endif
@@ -768,10 +763,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
#endif
op = GET_OPCODE(op);
- if (op == SLJIT_UDIV) {
+ if (op == SLJIT_LUDIV) {
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64)
- EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_SCRATCH_REG2, 0);
- inst = emit_x86_instruction(compiler, 1, SLJIT_SCRATCH_REG2, 0, SLJIT_SCRATCH_REG2, 0);
+ EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0);
+ inst = emit_x86_instruction(compiler, 1, SLJIT_R1, 0, SLJIT_R1, 0);
#else
inst = emit_x86_instruction(compiler, 1, TMP_REG1, 0, TMP_REG1, 0);
#endif
@@ -779,9 +774,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
*inst = XOR_r_rm;
}
- if (op == SLJIT_SDIV) {
+ if (op == SLJIT_LSDIV) {
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64)
- EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_SCRATCH_REG2, 0);
+ EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0);
#endif
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
@@ -810,10 +805,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
FAIL_IF(!inst);
INC_SIZE(2);
*inst++ = GROUP_F7;
- *inst = MOD_REG | ((op >= SLJIT_UDIV) ? reg_map[TMP_REG1] : reg_map[SLJIT_SCRATCH_REG2]);
+ *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_map[TMP_REG1] : reg_map[SLJIT_R1]);
#else
#ifdef _WIN64
- size = (!compiler->mode32 || op >= SLJIT_UDIV) ? 3 : 2;
+ size = (!compiler->mode32 || op >= SLJIT_LUDIV) ? 3 : 2;
#else
size = (!compiler->mode32) ? 3 : 2;
#endif
@@ -822,34 +817,34 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler
INC_SIZE(size);
#ifdef _WIN64
if (!compiler->mode32)
- *inst++ = REX_W | ((op >= SLJIT_UDIV) ? REX_B : 0);
- else if (op >= SLJIT_UDIV)
+ *inst++ = REX_W | ((op >= SLJIT_LUDIV) ? REX_B : 0);
+ else if (op >= SLJIT_LUDIV)
*inst++ = REX_B;
*inst++ = GROUP_F7;
- *inst = MOD_REG | ((op >= SLJIT_UDIV) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_SCRATCH_REG2]);
+ *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_R1]);
#else
if (!compiler->mode32)
*inst++ = REX_W;
*inst++ = GROUP_F7;
- *inst = MOD_REG | reg_map[SLJIT_SCRATCH_REG2];
+ *inst = MOD_REG | reg_map[SLJIT_R1];
#endif
#endif
switch (op) {
- case SLJIT_UMUL:
+ case SLJIT_LUMUL:
*inst |= MUL;
break;
- case SLJIT_SMUL:
+ case SLJIT_LSMUL:
*inst |= IMUL;
break;
- case SLJIT_UDIV:
+ case SLJIT_LUDIV:
*inst |= DIV;
break;
- case SLJIT_SDIV:
+ case SLJIT_LSDIV:
*inst |= IDIV;
break;
}
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) && !defined(_WIN64)
- EMIT_MOV(compiler, SLJIT_SCRATCH_REG2, 0, TMP_REG1, 0);
+ EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0);
#endif
break;
}
@@ -958,22 +953,22 @@ static sljit_si emit_mov_byte(struct sljit_compiler *compiler, sljit_si sign,
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
if (dst_r == TMP_REG1) {
/* Find a non-used register, whose reg_map[src] < 4. */
- if ((dst & REG_MASK) == SLJIT_SCRATCH_REG1) {
- if ((dst & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_SCRATCH_REG2))
- work_r = SLJIT_SCRATCH_REG3;
+ if ((dst & REG_MASK) == SLJIT_R0) {
+ if ((dst & OFFS_REG_MASK) == TO_OFFS_REG(SLJIT_R1))
+ work_r = SLJIT_R2;
else
- work_r = SLJIT_SCRATCH_REG2;
+ work_r = SLJIT_R1;
}
else {
- if ((dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_SCRATCH_REG1))
- work_r = SLJIT_SCRATCH_REG1;
- else if ((dst & REG_MASK) == SLJIT_SCRATCH_REG2)
- work_r = SLJIT_SCRATCH_REG3;
+ if ((dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_R0))
+ work_r = SLJIT_R0;
+ else if ((dst & REG_MASK) == SLJIT_R1)
+ work_r = SLJIT_R2;
else
- work_r = SLJIT_SCRATCH_REG2;
+ work_r = SLJIT_R1;
}
- if (work_r == SLJIT_SCRATCH_REG1) {
+ if (work_r == SLJIT_R0) {
ENCODE_PREFIX(XCHG_EAX_r + reg_map[TMP_REG1]);
}
else {
@@ -986,7 +981,7 @@ static sljit_si emit_mov_byte(struct sljit_compiler *compiler, sljit_si sign,
FAIL_IF(!inst);
*inst = MOV_rm8_r8;
- if (work_r == SLJIT_SCRATCH_REG1) {
+ if (work_r == SLJIT_R0) {
ENCODE_PREFIX(XCHG_EAX_r + reg_map[TMP_REG1]);
}
else {
@@ -1181,12 +1176,12 @@ static sljit_si emit_clz(struct sljit_compiler *compiler, sljit_si op_flags,
dst_r = dst;
else {
/* Find an unused temporary register. */
- if ((dst & REG_MASK) != SLJIT_SCRATCH_REG1 && (dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_SCRATCH_REG1))
- dst_r = SLJIT_SCRATCH_REG1;
- else if ((dst & REG_MASK) != SLJIT_SCRATCH_REG2 && (dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_SCRATCH_REG2))
- dst_r = SLJIT_SCRATCH_REG2;
+ if ((dst & REG_MASK) != SLJIT_R0 && (dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_R0))
+ dst_r = SLJIT_R0;
+ else if ((dst & REG_MASK) != SLJIT_R1 && (dst & OFFS_REG_MASK) != TO_OFFS_REG(SLJIT_R1))
+ dst_r = SLJIT_R1;
else
- dst_r = SLJIT_SCRATCH_REG3;
+ dst_r = SLJIT_R2;
EMIT_MOV(compiler, dst, dstw, dst_r, 0);
}
EMIT_MOV(compiler, dst_r, 0, SLJIT_IMM, 32 + 31);
@@ -1264,7 +1259,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
#endif
CHECK_ERROR();
- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw);
+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src, srcw);
@@ -1342,7 +1337,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
if (SLJIT_UNLIKELY(dst_is_ereg) && (!(op == SLJIT_MOV || op == SLJIT_MOV_UI || op == SLJIT_MOV_SI || op == SLJIT_MOV_P) || (src & SLJIT_MEM))) {
- SLJIT_ASSERT(dst == SLJIT_MEM1(SLJIT_LOCALS_REG));
+ SLJIT_ASSERT(dst == SLJIT_MEM1(SLJIT_SP));
dst = TMP_REG1;
}
#endif
@@ -1380,7 +1375,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
if (SLJIT_UNLIKELY(dst_is_ereg) && dst == TMP_REG1)
- return emit_mov(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), dstw, TMP_REG1, 0);
+ return emit_mov(compiler, SLJIT_MEM1(SLJIT_SP), dstw, TMP_REG1, 0);
#endif
if (SLJIT_UNLIKELY(update) && (dst & SLJIT_MEM) && (dst & REG_MASK) && (dstw != 0 || (dst & OFFS_REG_MASK) != 0)) {
@@ -1472,9 +1467,9 @@ static sljit_si emit_cum_binary(struct sljit_compiler *compiler,
if (dst == src1 && dstw == src1w) {
if (src2 & SLJIT_IMM) {
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if ((dst == SLJIT_SCRATCH_REG1) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
+ if ((dst == SLJIT_R0) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
#else
- if ((dst == SLJIT_SCRATCH_REG1) && (src2w > 127 || src2w < -128)) {
+ if ((dst == SLJIT_R0) && (src2w > 127 || src2w < -128)) {
#endif
BINARY_EAX_IMM(op_eax_imm, src2w);
}
@@ -1506,9 +1501,9 @@ static sljit_si emit_cum_binary(struct sljit_compiler *compiler,
if (dst == src2 && dstw == src2w) {
if (src1 & SLJIT_IMM) {
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if ((dst == SLJIT_SCRATCH_REG1) && (src1w > 127 || src1w < -128) && (compiler->mode32 || IS_HALFWORD(src1w))) {
+ if ((dst == SLJIT_R0) && (src1w > 127 || src1w < -128) && (compiler->mode32 || IS_HALFWORD(src1w))) {
#else
- if ((dst == SLJIT_SCRATCH_REG1) && (src1w > 127 || src1w < -128)) {
+ if ((dst == SLJIT_R0) && (src1w > 127 || src1w < -128)) {
#endif
BINARY_EAX_IMM(op_eax_imm, src1w);
}
@@ -1588,9 +1583,9 @@ static sljit_si emit_non_cum_binary(struct sljit_compiler *compiler,
if (dst == src1 && dstw == src1w) {
if (src2 & SLJIT_IMM) {
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if ((dst == SLJIT_SCRATCH_REG1) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
+ if ((dst == SLJIT_R0) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
#else
- if ((dst == SLJIT_SCRATCH_REG1) && (src2w > 127 || src2w < -128)) {
+ if ((dst == SLJIT_R0) && (src2w > 127 || src2w < -128)) {
#endif
BINARY_EAX_IMM(op_eax_imm, src2w);
}
@@ -1749,7 +1744,7 @@ static sljit_si emit_mul(struct sljit_compiler *compiler,
*(sljit_si*)inst = (sljit_si)src2w;
}
else {
- EMIT_MOV(compiler, TMP_REG2, 0, SLJIT_IMM, src1w);
+ EMIT_MOV(compiler, TMP_REG2, 0, SLJIT_IMM, src2w);
if (dst_r != src1)
EMIT_MOV(compiler, dst_r, 0, src1, src1w);
inst = emit_x86_instruction(compiler, 2, dst_r, 0, TMP_REG2, 0);
@@ -1842,9 +1837,9 @@ static sljit_si emit_cmp_binary(struct sljit_compiler *compiler,
sljit_ub* inst;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if (src1 == SLJIT_SCRATCH_REG1 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
+ if (src1 == SLJIT_R0 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
#else
- if (src1 == SLJIT_SCRATCH_REG1 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128)) {
+ if (src1 == SLJIT_R0 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128)) {
#endif
BINARY_EAX_IMM(CMP_EAX_i32, src2w);
return SLJIT_SUCCESS;
@@ -1893,18 +1888,18 @@ static sljit_si emit_test_binary(struct sljit_compiler *compiler,
sljit_ub* inst;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if (src1 == SLJIT_SCRATCH_REG1 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
+ if (src1 == SLJIT_R0 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128) && (compiler->mode32 || IS_HALFWORD(src2w))) {
#else
- if (src1 == SLJIT_SCRATCH_REG1 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128)) {
+ if (src1 == SLJIT_R0 && (src2 & SLJIT_IMM) && (src2w > 127 || src2w < -128)) {
#endif
BINARY_EAX_IMM(TEST_EAX_i32, src2w);
return SLJIT_SUCCESS;
}
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
- if (src2 == SLJIT_SCRATCH_REG1 && (src2 & SLJIT_IMM) && (src1w > 127 || src1w < -128) && (compiler->mode32 || IS_HALFWORD(src1w))) {
+ if (src2 == SLJIT_R0 && (src2 & SLJIT_IMM) && (src1w > 127 || src1w < -128) && (compiler->mode32 || IS_HALFWORD(src1w))) {
#else
- if (src2 == SLJIT_SCRATCH_REG1 && (src1 & SLJIT_IMM) && (src1w > 127 || src1w < -128)) {
+ if (src2 == SLJIT_R0 && (src1 & SLJIT_IMM) && (src1w > 127 || src1w < -128)) {
#endif
BINARY_EAX_IMM(TEST_EAX_i32, src1w);
return SLJIT_SUCCESS;
@@ -2066,7 +2061,7 @@ static sljit_si emit_shift(struct sljit_compiler *compiler,
EMIT_MOV(compiler, TMP_REG2, 0, SLJIT_PREF_SHIFT_REG, 0);
#else
/* [esp+0] contains the flags. */
- EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), sizeof(sljit_sw), SLJIT_PREF_SHIFT_REG, 0);
+ EMIT_MOV(compiler, SLJIT_MEM1(SLJIT_SP), sizeof(sljit_sw), SLJIT_PREF_SHIFT_REG, 0);
#endif
EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, src2, src2w);
inst = emit_x86_instruction(compiler, 1 | EX86_SHIFT_INS, SLJIT_PREF_SHIFT_REG, 0, TMP_REG1, 0);
@@ -2075,7 +2070,7 @@ static sljit_si emit_shift(struct sljit_compiler *compiler,
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, TMP_REG2, 0);
#else
- EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), sizeof(sljit_sw));
+ EMIT_MOV(compiler, SLJIT_PREF_SHIFT_REG, 0, SLJIT_MEM1(SLJIT_SP), sizeof(sljit_sw));
#endif
EMIT_MOV(compiler, dst, dstw, TMP_REG1, 0);
}
@@ -2124,7 +2119,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
sljit_si src2, sljit_sw src2w)
{
CHECK_ERROR();
- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
ADJUST_LOCAL_OFFSET(dst, dstw);
ADJUST_LOCAL_OFFSET(src1, src1w);
ADJUST_LOCAL_OFFSET(src2, src2w);
@@ -2215,10 +2210,9 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
{
- check_sljit_get_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_register_index(reg));
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
- if (reg == SLJIT_TEMPORARY_EREG1 || reg == SLJIT_TEMPORARY_EREG2
- || reg == SLJIT_SAVED_EREG1 || reg == SLJIT_SAVED_EREG2)
+ if (reg >= SLJIT_R3 && reg <= SLJIT_R6)
return -1;
#endif
return reg_map[reg];
@@ -2226,7 +2220,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg)
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg)
{
- check_sljit_get_float_register_index(reg);
+ CHECK_REG_INDEX(check_sljit_get_float_register_index(reg));
return reg;
}
@@ -2236,8 +2230,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
sljit_ub *inst;
CHECK_ERROR();
- check_sljit_emit_op_custom(compiler, instruction, size);
- SLJIT_ASSERT(size > 0 && size < 16);
+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size));
inst = (sljit_ub*)ensure_buf(compiler, 1 + size);
FAIL_IF(!inst);
@@ -2250,8 +2243,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *co
/* Floating point operators */
/* --------------------------------------------------------------------- */
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
-
/* Alignment + 2 * 16 bytes. */
static sljit_si sse2_data[3 + (4 + 4) * 2];
static sljit_si *sse2_buffer;
@@ -2269,27 +2260,19 @@ static void init_compiler(void)
sse2_buffer[13] = 0x7fffffff;
}
-#endif
-
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void)
{
#ifdef SLJIT_IS_FPU_AVAILABLE
return SLJIT_IS_FPU_AVAILABLE;
-#elif (defined SLJIT_SSE2 && SLJIT_SSE2)
-#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
+#elif (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2)
if (cpu_has_sse2 == -1)
get_cpu_features();
return cpu_has_sse2;
#else /* SLJIT_DETECT_SSE2 */
return 1;
#endif /* SLJIT_DETECT_SSE2 */
-#else /* SLJIT_SSE2 */
- return 0;
-#endif
}
-#if (defined SLJIT_SSE2 && SLJIT_SSE2)
-
static sljit_si emit_sse2(struct sljit_compiler *compiler, sljit_ub opcode,
sljit_si single, sljit_si xmm1, sljit_si xmm2, sljit_sw xmm2w)
{
@@ -2326,31 +2309,89 @@ static SLJIT_INLINE sljit_si emit_sse2_store(struct sljit_compiler *compiler,
return emit_sse2(compiler, MOVSD_xm_x, single, src, dst, dstw);
}
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convw_fromd(struct sljit_compiler *compiler, sljit_si op,
sljit_si dst, sljit_sw dstw,
sljit_si src, sljit_sw srcw)
{
- sljit_si dst_r;
+ sljit_si dst_r = SLOW_IS_REG(dst) ? dst : TMP_REG1;
+ sljit_ub *inst;
- CHECK_ERROR();
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVW_FROMD)
+ compiler->mode32 = 0;
+#endif
+
+ inst = emit_x86_instruction(compiler, 2 | ((op & SLJIT_SINGLE_OP) ? EX86_PREF_F3 : EX86_PREF_F2) | EX86_SSE2_OP2, dst_r, 0, src, srcw);
+ FAIL_IF(!inst);
+ *inst++ = GROUP_0F;
+ *inst = CVTTSD2SI_r_xm;
+
+ if (dst_r == TMP_REG1 && dst != SLJIT_UNUSED)
+ return emit_mov(compiler, dst, dstw, TMP_REG1, 0);
+ return SLJIT_SUCCESS;
+}
+
+static SLJIT_INLINE sljit_si sljit_emit_fop1_convd_fromw(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG;
+ sljit_ub *inst;
+
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMW)
+ compiler->mode32 = 0;
+#endif
+
+ if (src & SLJIT_IMM) {
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMI)
+ srcw = (sljit_si)srcw;
+#endif
+ EMIT_MOV(compiler, TMP_REG1, 0, src, srcw);
+ src = TMP_REG1;
+ srcw = 0;
+ }
+
+ inst = emit_x86_instruction(compiler, 2 | ((op & SLJIT_SINGLE_OP) ? EX86_PREF_F3 : EX86_PREF_F2) | EX86_SSE2_OP1, dst_r, 0, src, srcw);
+ FAIL_IF(!inst);
+ *inst++ = GROUP_0F;
+ *inst = CVTSI2SD_x_rm;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
compiler->mode32 = 1;
#endif
+ if (dst_r == TMP_FREG)
+ return emit_sse2_store(compiler, op & SLJIT_SINGLE_OP, dst, dstw, TMP_FREG);
+ return SLJIT_SUCCESS;
+}
- if (GET_OPCODE(op) == SLJIT_CMPD) {
- compiler->flags_saved = 0;
- if (FAST_IS_REG(dst))
- dst_r = dst;
- else {
- dst_r = TMP_FREG;
- FAIL_IF(emit_sse2_load(compiler, op & SLJIT_SINGLE_OP, dst_r, dst, dstw));
- }
- return emit_sse2_logic(compiler, UCOMISD_x_xm, !(op & SLJIT_SINGLE_OP), dst_r, src, srcw);
+static SLJIT_INLINE sljit_si sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si src1, sljit_sw src1w,
+ sljit_si src2, sljit_sw src2w)
+{
+ compiler->flags_saved = 0;
+ if (!FAST_IS_REG(src1)) {
+ FAIL_IF(emit_sse2_load(compiler, op & SLJIT_SINGLE_OP, TMP_FREG, src1, src1w));
+ src1 = TMP_FREG;
}
+ return emit_sse2_logic(compiler, UCOMISD_x_xm, !(op & SLJIT_SINGLE_OP), src1, src2, src2w);
+}
- if (op == SLJIT_MOVD) {
+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
+ sljit_si dst, sljit_sw dstw,
+ sljit_si src, sljit_sw srcw)
+{
+ sljit_si dst_r;
+
+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
+ compiler->mode32 = 1;
+#endif
+
+ CHECK_ERROR();
+ SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw);
+
+ if (GET_OPCODE(op) == SLJIT_DMOV) {
if (FAST_IS_REG(dst))
return emit_sse2_load(compiler, op & SLJIT_SINGLE_OP, dst, src, srcw);
if (FAST_IS_REG(src))
@@ -2359,6 +2400,25 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compile
return emit_sse2_store(compiler, op & SLJIT_SINGLE_OP, dst, dstw, TMP_FREG);
}
+ if (GET_OPCODE(op) == SLJIT_CONVD_FROMS) {
+ dst_r = FAST_IS_REG(dst) ? dst : TMP_FREG;
+ if (FAST_IS_REG(src)) {
+ /* We overwrite the high bits of source. From SLJIT point of view,
+ this is not an issue.
+ Note: In SSE3, we could also use MOVDDUP and MOVSLDUP. */
+ FAIL_IF(emit_sse2_logic(compiler, UNPCKLPD_x_xm, op & SLJIT_SINGLE_OP, src, src, 0));
+ }
+ else {
+ FAIL_IF(emit_sse2_load(compiler, !(op & SLJIT_SINGLE_OP), TMP_FREG, src, srcw));
+ src = TMP_FREG;
+ }
+
+ FAIL_IF(emit_sse2_logic(compiler, CVTPD2PS_x_xm, op & SLJIT_SINGLE_OP, dst_r, src, 0));
+ if (dst_r == TMP_FREG)
+ return emit_sse2_store(compiler, op & SLJIT_SINGLE_OP, dst, dstw, TMP_FREG);
+ return SLJIT_SUCCESS;
+ }
+
if (SLOW_IS_REG(dst)) {
dst_r = dst;
if (dst != src)
@@ -2370,11 +2430,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compile
}
switch (GET_OPCODE(op)) {
- case SLJIT_NEGD:
+ case SLJIT_DNEG:
FAIL_IF(emit_sse2_logic(compiler, XORPD_x_xm, 1, dst_r, SLJIT_MEM0(), (sljit_sw)(op & SLJIT_SINGLE_OP ? sse2_buffer : sse2_buffer + 8)));
break;
- case SLJIT_ABSD:
+ case SLJIT_DABS:
FAIL_IF(emit_sse2_logic(compiler, ANDPD_x_xm, 1, dst_r, SLJIT_MEM0(), (sljit_sw)(op & SLJIT_SINGLE_OP ? sse2_buffer + 4 : sse2_buffer + 12)));
break;
}
@@ -2392,7 +2452,10 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
sljit_si dst_r;
CHECK_ERROR();
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
+ CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w));
+ ADJUST_LOCAL_OFFSET(dst, dstw);
+ ADJUST_LOCAL_OFFSET(src1, src1w);
+ ADJUST_LOCAL_OFFSET(src2, src2w);
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
compiler->mode32 = 1;
@@ -2402,7 +2465,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
dst_r = dst;
if (dst == src1)
; /* Do nothing here. */
- else if (dst == src2 && (op == SLJIT_ADDD || op == SLJIT_MULD)) {
+ else if (dst == src2 && (op == SLJIT_DADD || op == SLJIT_DMUL)) {
/* Swap arguments. */
src2 = src1;
src2w = src1w;
@@ -2420,19 +2483,19 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
}
switch (GET_OPCODE(op)) {
- case SLJIT_ADDD:
+ case SLJIT_DADD:
FAIL_IF(emit_sse2(compiler, ADDSD_x_xm, op & SLJIT_SINGLE_OP, dst_r, src2, src2w));
break;
- case SLJIT_SUBD:
+ case SLJIT_DSUB:
FAIL_IF(emit_sse2(compiler, SUBSD_x_xm, op & SLJIT_SINGLE_OP, dst_r, src2, src2w));
break;
- case SLJIT_MULD:
+ case SLJIT_DMUL:
FAIL_IF(emit_sse2(compiler, MULSD_x_xm, op & SLJIT_SINGLE_OP, dst_r, src2, src2w));
break;
- case SLJIT_DIVD:
+ case SLJIT_DDIV:
FAIL_IF(emit_sse2(compiler, DIVSD_x_xm, op & SLJIT_SINGLE_OP, dst_r, src2, src2w));
break;
}
@@ -2442,33 +2505,6 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compile
return SLJIT_SUCCESS;
}
-#else
-
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop1(struct sljit_compiler *compiler, sljit_si op,
- sljit_si dst, sljit_sw dstw,
- sljit_si src, sljit_sw srcw)
-{
- CHECK_ERROR();
- /* Should cause an assertion fail. */
- check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw);
- compiler->error = SLJIT_ERR_UNSUPPORTED;
- return SLJIT_ERR_UNSUPPORTED;
-}
-
-SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fop2(struct sljit_compiler *compiler, sljit_si op,
- sljit_si dst, sljit_sw dstw,
- sljit_si src1, sljit_sw src1w,
- sljit_si src2, sljit_sw src2w)
-{
- CHECK_ERROR();
- /* Should cause an assertion fail. */
- check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w);
- compiler->error = SLJIT_ERR_UNSUPPORTED;
- return SLJIT_ERR_UNSUPPORTED;
-}
-
-#endif
-
/* --------------------------------------------------------------------- */
/* Conditional instructions */
/* --------------------------------------------------------------------- */
@@ -2479,7 +2515,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_label(struct sljit_compi
struct sljit_label *label;
CHECK_ERROR_PTR();
- check_sljit_emit_label(compiler);
+ CHECK_PTR(check_sljit_emit_label(compiler));
/* We should restore the flags before the label,
since other taken jumps has their own flags as well. */
@@ -2508,7 +2544,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile
struct sljit_jump *jump;
CHECK_ERROR_PTR();
- check_sljit_emit_jump(compiler, type);
+ CHECK_PTR(check_sljit_emit_jump(compiler, type));
if (SLJIT_UNLIKELY(compiler->flags_saved)) {
if ((type & 0xff) <= SLJIT_JUMP)
@@ -2545,7 +2581,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
struct sljit_jump *jump;
CHECK_ERROR();
- check_sljit_emit_ijump(compiler, type, src, srcw);
+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw));
ADJUST_LOCAL_OFFSET(src, srcw);
CHECK_EXTRA_REGS(src, srcw, (void)0);
@@ -2559,16 +2595,16 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_ijump(struct sljit_compiler *compil
if (type >= SLJIT_CALL1) {
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL)
- if (src == SLJIT_SCRATCH_REG3) {
+ if (src == SLJIT_R2) {
EMIT_MOV(compiler, TMP_REG1, 0, src, 0);
src = TMP_REG1;
}
- if (src == SLJIT_MEM1(SLJIT_LOCALS_REG) && type >= SLJIT_CALL3)
+ if (src == SLJIT_MEM1(SLJIT_SP) && type >= SLJIT_CALL3)
srcw += sizeof(sljit_sw);
#endif
#endif
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) && defined(_WIN64)
- if (src == SLJIT_SCRATCH_REG3) {
+ if (src == SLJIT_R2) {
EMIT_MOV(compiler, TMP_REG1, 0, src, 0);
src = TMP_REG1;
}
@@ -2624,7 +2660,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
#endif
CHECK_ERROR();
- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type);
+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type));
+ SLJIT_UNUSED_ARG(srcw);
if (dst == SLJIT_UNUSED)
return SLJIT_SUCCESS;
@@ -2634,6 +2671,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
if (SLJIT_UNLIKELY(compiler->flags_saved))
FAIL_IF(emit_restore_flags(compiler, op & SLJIT_KEEP_FLAGS));
+ type &= 0xff;
/* setcc = jcc + 0x10. */
cond_set = get_jump_code(type) + 0x10;
@@ -2675,7 +2713,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
compiler->mode32 = GET_OPCODE(op) != SLJIT_MOV;
return emit_mov(compiler, dst, dstw, TMP_REG1, 0);
}
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_op2(compiler, op, dst, dstw, dst, dstw, TMP_REG1, 0);
@@ -2734,8 +2773,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
}
if (GET_OPCODE(op) == SLJIT_OR && !GET_ALL_FLAGS(op) && FAST_IS_REG(dst) && dst == src && reg_map[dst] <= 4) {
- SLJIT_COMPILE_ASSERT(reg_map[SLJIT_SCRATCH_REG1] == 0, scratch_reg1_must_be_eax);
- if (dst != SLJIT_SCRATCH_REG1) {
+ SLJIT_COMPILE_ASSERT(reg_map[SLJIT_R0] == 0, scratch_reg1_must_be_eax);
+ if (dst != SLJIT_R0) {
inst = (sljit_ub*)ensure_buf(compiler, 1 + 1 + 3 + 2 + 1);
FAIL_IF(!inst);
INC_SIZE(1 + 3 + 2 + 1);
@@ -2785,7 +2824,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
if (GET_OPCODE(op) < SLJIT_ADD)
return emit_mov(compiler, dst, dstw, TMP_REG1, 0);
-#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) || (defined SLJIT_DEBUG && SLJIT_DEBUG)
+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \
+ || (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
compiler->skip_checks = 1;
#endif
return sljit_emit_op2(compiler, op, dst_save, dstw_save, dst_save, dstw_save, TMP_REG1, 0);
@@ -2795,7 +2835,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_flags(struct sljit_compiler *com
SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset)
{
CHECK_ERROR();
- check_sljit_get_local_base(compiler, dst, dstw, offset);
+ CHECK(check_sljit_get_local_base(compiler, dst, dstw, offset));
ADJUST_LOCAL_OFFSET(dst, dstw);
CHECK_EXTRA_REGS(dst, dstw, (void)0);
@@ -2804,23 +2844,23 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_local_base(struct sljit_compiler *co
compiler->mode32 = 0;
#endif
- ADJUST_LOCAL_OFFSET(SLJIT_MEM1(SLJIT_LOCALS_REG), offset);
+ ADJUST_LOCAL_OFFSET(SLJIT_MEM1(SLJIT_SP), offset);
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
if (NOT_HALFWORD(offset)) {
FAIL_IF(emit_load_imm64(compiler, TMP_REG1, offset));
#if (defined SLJIT_DEBUG && SLJIT_DEBUG)
- SLJIT_ASSERT(emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_LOCALS_REG, 0, TMP_REG1, 0) != SLJIT_ERR_UNSUPPORTED);
+ SLJIT_ASSERT(emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_SP, 0, TMP_REG1, 0) != SLJIT_ERR_UNSUPPORTED);
return compiler->error;
#else
- return emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_LOCALS_REG, 0, TMP_REG1, 0);
+ return emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_SP, 0, TMP_REG1, 0);
#endif
}
#endif
if (offset != 0)
- return emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_LOCALS_REG, 0, SLJIT_IMM, offset);
- return emit_mov(compiler, dst, dstw, SLJIT_LOCALS_REG, 0);
+ return emit_lea_binary(compiler, SLJIT_KEEP_FLAGS, dst, dstw, SLJIT_SP, 0, SLJIT_IMM, offset);
+ return emit_mov(compiler, dst, dstw, SLJIT_SP, 0);
}
SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw init_value)
@@ -2832,7 +2872,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi
#endif
CHECK_ERROR_PTR();
- check_sljit_emit_const(compiler, dst, dstw, init_value);
+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value));
ADJUST_LOCAL_OFFSET(dst, dstw);
CHECK_EXTRA_REGS(dst, dstw, (void)0);
diff --git a/src/3rdparty/pcre/sljit/sljitUtils.c b/src/3rdparty/pcre/sljit/sljitUtils.c
index b29b4036b3..5294b5f3f9 100644
--- a/src/3rdparty/pcre/sljit/sljitUtils.c
+++ b/src/3rdparty/pcre/sljit/sljitUtils.c
@@ -200,7 +200,7 @@ static SLJIT_INLINE sljit_si open_dev_zero(void)
/* Planning to make it even more clever in the future. */
static sljit_sw sljit_page_align = 0;
-SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(sljit_uw limit, sljit_uw max_limit)
+SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(sljit_uw limit, sljit_uw max_limit, void *allocator_data)
{
struct sljit_stack *stack;
union {
@@ -211,6 +211,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj
SYSTEM_INFO si;
#endif
+ SLJIT_UNUSED_ARG(allocator_data);
if (limit > max_limit || limit < 1)
return NULL;
@@ -232,21 +233,21 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj
/* Align limit and max_limit. */
max_limit = (max_limit + sljit_page_align) & ~sljit_page_align;
- stack = (struct sljit_stack*)SLJIT_MALLOC(sizeof(struct sljit_stack));
+ stack = (struct sljit_stack*)SLJIT_MALLOC(sizeof(struct sljit_stack), allocator_data);
if (!stack)
return NULL;
#ifdef _WIN32
base.ptr = VirtualAlloc(NULL, max_limit, MEM_RESERVE, PAGE_READWRITE);
if (!base.ptr) {
- SLJIT_FREE(stack);
+ SLJIT_FREE(stack, allocator_data);
return NULL;
}
stack->base = base.uw;
stack->limit = stack->base;
stack->max_limit = stack->base + max_limit;
if (sljit_stack_resize(stack, stack->base + limit)) {
- sljit_free_stack(stack);
+ sljit_free_stack(stack, allocator_data);
return NULL;
}
#else
@@ -255,14 +256,14 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj
#else
if (dev_zero < 0) {
if (open_dev_zero()) {
- SLJIT_FREE(stack);
+ SLJIT_FREE(stack, allocator_data);
return NULL;
}
}
base.ptr = mmap(NULL, max_limit, PROT_READ | PROT_WRITE, MAP_PRIVATE, dev_zero, 0);
#endif
if (base.ptr == MAP_FAILED) {
- SLJIT_FREE(stack);
+ SLJIT_FREE(stack, allocator_data);
return NULL;
}
stack->base = base.uw;
@@ -275,14 +276,15 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_stack* SLJIT_CALL sljit_allocate_stack(slj
#undef PAGE_ALIGN
-SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack* stack)
+SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack* stack, void *allocator_data)
{
+ SLJIT_UNUSED_ARG(allocator_data);
#ifdef _WIN32
VirtualFree((void*)stack->base, 0, MEM_RELEASE);
#else
munmap((void*)stack->base, stack->max_limit - stack->base);
#endif
- SLJIT_FREE(stack);
+ SLJIT_FREE(stack, allocator_data);
}
SLJIT_API_FUNC_ATTRIBUTE sljit_sw SLJIT_CALL sljit_stack_resize(struct sljit_stack* stack, sljit_uw new_limit)
diff --git a/src/3rdparty/pcre/ucp.h b/src/3rdparty/pcre/ucp.h
index d8b34bfcc5..2fa00296e4 100644
--- a/src/3rdparty/pcre/ucp.h
+++ b/src/3rdparty/pcre/ucp.h
@@ -192,7 +192,31 @@ enum {
ucp_Miao,
ucp_Sharada,
ucp_Sora_Sompeng,
- ucp_Takri
+ ucp_Takri,
+ /* New for Unicode 7.0.0: */
+ ucp_Bassa_Vah,
+ ucp_Caucasian_Albanian,
+ ucp_Duployan,
+ ucp_Elbasan,
+ ucp_Grantha,
+ ucp_Khojki,
+ ucp_Khudawadi,
+ ucp_Linear_A,
+ ucp_Mahajani,
+ ucp_Manichaean,
+ ucp_Mende_Kikakui,
+ ucp_Modi,
+ ucp_Mro,
+ ucp_Nabataean,
+ ucp_Old_North_Arabian,
+ ucp_Old_Permic,
+ ucp_Pahawh_Hmong,
+ ucp_Palmyrene,
+ ucp_Psalter_Pahlavi,
+ ucp_Pau_Cin_Hau,
+ ucp_Siddham,
+ ucp_Tirhuta,
+ ucp_Warang_Citi
};
#endif
diff --git a/src/concurrent/doc/src/qtconcurrent-index.qdoc b/src/concurrent/doc/src/qtconcurrent-index.qdoc
index 2157280021..e57ebd2424 100644
--- a/src/concurrent/doc/src/qtconcurrent-index.qdoc
+++ b/src/concurrent/doc/src/qtconcurrent-index.qdoc
@@ -49,26 +49,35 @@
applications:
\list
+ \li \l {Concurrent Map and Map-Reduce}
+ \list
+ \li \l {QtConcurrent::map}{QtConcurrent::map()} applies a function
+ to every item in a container, modifying the items in-place.
+ \li \l {QtConcurrent::mapped}{QtConcurrent::mapped()} is like
+ map(), except that it returns a new container with the
+ modifications.
+ \li \l {QtConcurrent::mappedReduced}{QtConcurrent::mappedReduced()}
+ is like mapped(), except that the modified results are reduced
+ or folded into a single result.
+ \endlist
+
+ \li \l {Concurrent Filter and Filter-Reduce}
+ \list
+ \li \l {QtConcurrent::filter}{QtConcurrent::filter()} removes all items
+ from a container based on the result of a filter function.
+ \li \l {QtConcurrent::filtered}{QtConcurrent::filtered()} is like
+ filter(), except that it returns a new container with the filtered
+ results.
+ \li \l {QtConcurrent::filteredReduced}{QtConcurrent::filteredReduced()}
+ is like filtered(), except that the filtered results are reduced or
+ folded into a single result.
+ \endlist
- \li \l {QtConcurrent::map}{QtConcurrent::map()} applies a function to every item in a container,
- modifying the items in-place.
-
- \li \l {QtConcurrent::mapped}{QtConcurrent::mapped()} is like map(), except that it returns a new
- container with the modifications.
-
- \li \l {QtConcurrent::mappedReduced}{QtConcurrent::mappedReduced()} is like mapped(), except that the
- modified results are reduced or folded into a single result.
-
- \li \l {QtConcurrent::filter}{QtConcurrent::filter()} removes all items from a container based on the
- result of a filter function.
-
- \li \l {QtConcurrent::filtered}{QtConcurrent::filtered()} is like filter(), except that it returns a new
- container with the filtered results.
-
- \li \l {QtConcurrent::filteredReduced}{QtConcurrent::filteredReduced()} is like filtered(), except that the
- filtered results are reduced or folded into a single result.
-
- \li \l {QtConcurrent::run}{QtConcurrent::run()} runs a function in another thread.
+ \li \l {Concurrent Run}
+ \list
+ \li \l {QtConcurrent::run}{QtConcurrent::run()} runs a function in
+ another thread.
+ \endlist
\li QFuture represents the result of an asynchronous computation.
diff --git a/src/concurrent/qtconcurrentfilter.cpp b/src/concurrent/qtconcurrentfilter.cpp
index 2c539b5766..4b3f2368b8 100644
--- a/src/concurrent/qtconcurrentfilter.cpp
+++ b/src/concurrent/qtconcurrentfilter.cpp
@@ -179,6 +179,8 @@
Calls \a filterFunction once for each item in \a sequence. If
\a filterFunction returns \c true, the item is kept in \a sequence;
otherwise, the item is removed from \a sequence.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -188,6 +190,8 @@
new Sequence of kept items. If \a filterFunction returns \c true, a copy of
the item is put in the new Sequence. Otherwise, the item will \e not
appear in the new Sequence.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -197,6 +201,8 @@
returns a new Sequence of kept items. If \a filterFunction returns \c true, a
copy of the item is put in the new Sequence. Otherwise, the item will
\e not appear in the new Sequence.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -213,6 +219,8 @@
QtConcurrent::UnorderedReduce. If \a reduceOptions is
QtConcurrent::OrderedReduce, \a reduceFunction is called in the order of
the original sequence.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -229,6 +237,8 @@
QtConcurrent::UnorderedReduce. If \a reduceOptions is
QtConcurrent::OrderedReduce, the \a reduceFunction is called in the order
of the original sequence.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -239,6 +249,8 @@
otherwise, the item is removed from \a sequence.
\note This function will block until all items in the sequence have been processed.
+
+ \sa {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -251,7 +263,7 @@
\note This function will block until all items in the sequence have been processed.
- \sa filtered()
+ \sa filtered(), {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -265,7 +277,7 @@
\note This function will block until the iterator reaches the end of the
sequence being processed.
- \sa filtered()
+ \sa filtered(), {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -285,7 +297,7 @@
\note This function will block until all items in the sequence have been processed.
- \sa filteredReduced()
+ \sa filteredReduced(), {Concurrent Filter and Filter-Reduce}
*/
/*!
@@ -306,5 +318,5 @@
\note This function will block until the iterator reaches the end of the
sequence being processed.
- \sa filteredReduced()
+ \sa filteredReduced(), {Concurrent Filter and Filter-Reduce}
*/
diff --git a/src/concurrent/qtconcurrentmap.cpp b/src/concurrent/qtconcurrentmap.cpp
index 43ade3a336..158bdb3887 100644
--- a/src/concurrent/qtconcurrentmap.cpp
+++ b/src/concurrent/qtconcurrentmap.cpp
@@ -229,6 +229,8 @@
Calls \a function once for each item in \a sequence. The \a function is
passed a reference to the item, so that any modifications done to the item
will appear in \a sequence.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -237,6 +239,8 @@
Calls \a function once for each item from \a begin to \a end. The
\a function is passed a reference to the item, so that any modifications
done to the item will appear in the sequence which the iterators belong to.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -245,6 +249,8 @@
Calls \a function once for each item in \a sequence and returns a future
with each mapped item as a result. You can use QFuture::const_iterator or
QFutureIterator to iterate through the results.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -253,6 +259,8 @@
Calls \a function once for each item from \a begin to \a end and returns a
future with each mapped item as a result. You can use
QFuture::const_iterator or QFutureIterator to iterate through the results.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -266,6 +274,8 @@
Note that while \a mapFunction is called concurrently, only one thread at a
time will call \a reduceFunction. The order in which \a reduceFunction is
called is determined by \a reduceOptions.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -281,6 +291,8 @@
\a reduceFunction is called is undefined.
\note QtConcurrent::OrderedReduce results in the ordered reduction.
+
+ \sa {Concurrent Map and Map-Reduce}
*/
/*!
@@ -292,7 +304,7 @@
\note This function will block until all items in the sequence have been processed.
- \sa map()
+ \sa map(), {Concurrent Map and Map-Reduce}
*/
/*!
@@ -305,7 +317,7 @@
\note This function will block until the iterator reaches the end of the
sequence being processed.
- \sa map()
+ \sa map(), {Concurrent Map and Map-Reduce}
*/
/*!
@@ -316,7 +328,7 @@
\note This function will block until all items in the sequence have been processed.
- \sa mapped()
+ \sa mapped(), {Concurrent Map and Map-Reduce}
*/
/*!
@@ -333,7 +345,7 @@
\note This function will block until the iterator reaches the end of the
sequence being processed.
- \sa mapped()
+ \sa mapped(), {Concurrent Map and Map-Reduce}
*/
/*!
@@ -348,7 +360,7 @@
\note This function will block until all items in the sequence have been processed.
- \sa mapped()
+ \sa mapped(), {Concurrent Map and Map-Reduce}
*/
/*!
@@ -364,5 +376,5 @@
\note This function will block until the iterator reaches the end of the
sequence being processed.
- \sa blockingMappedReduced()
+ \sa blockingMappedReduced(), {Concurrent Map and Map-Reduce}
*/
diff --git a/src/concurrent/qtconcurrentrun.cpp b/src/concurrent/qtconcurrentrun.cpp
index 42d085cc2a..fa791bd323 100644
--- a/src/concurrent/qtconcurrentrun.cpp
+++ b/src/concurrent/qtconcurrentrun.cpp
@@ -143,6 +143,8 @@
canceling, pausing, or progress reporting. The QFuture returned can only
be used to query for the running/finished status and the return value of
the function.
+
+ \sa {Concurrent Run}
*/
/*!
@@ -160,4 +162,6 @@
canceling, pausing, or progress reporting. The QFuture returned can only
be used to query for the running/finished status and the return value of
the function.
+
+ \sa {Concurrent Run}
*/
diff --git a/src/corelib/codecs/qbig5codec.cpp b/src/corelib/codecs/qbig5codec.cpp
index 5957d1eda3..6fd87bdfc9 100644
--- a/src/corelib/codecs/qbig5codec.cpp
+++ b/src/corelib/codecs/qbig5codec.cpp
@@ -1913,6 +1913,7 @@ QByteArray QBig5hkscsCodec::convertFromUnicode(const QChar *uc, int len, Convert
} else {
// Error
*cursor++ = replacement;
+ ++invalid;
}
}
rstr.resize(cursor - (uchar*)rstr.constData());
diff --git a/src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp b/src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp
index d2043539c9..6ff4f57945 100644
--- a/src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_global_qglobal.cpp
@@ -61,7 +61,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(MyClass::Options)
//! [1]
//! [meta-object flags]
-Q_FLAGS(Options)
+Q_FLAG(Options)
//! [meta-object flags]
//! [2]
diff --git a/src/corelib/doc/snippets/qdebug/qdebugsnippet.cpp b/src/corelib/doc/snippets/qdebug/qdebugsnippet.cpp
index f71d61ed47..a9ab83f5bf 100644
--- a/src/corelib/doc/snippets/qdebug/qdebugsnippet.cpp
+++ b/src/corelib/doc/snippets/qdebug/qdebugsnippet.cpp
@@ -51,11 +51,12 @@ public:
};
//! [0]
-QDebug operator<<(QDebug dbg, const Coordinate &c)
+QDebug operator<<(QDebug debug, const Coordinate &c)
{
- dbg.nospace() << "(" << c.x() << ", " << c.y() << ")";
+ QDebugStateSaver saver(debug);
+ debug.nospace() << '(' << c.x() << ", " << c.y() << ')';
- return dbg.space();
+ return debug;
}
//! [0]
diff --git a/src/corelib/doc/snippets/qloggingcategory/main.cpp b/src/corelib/doc/snippets/qloggingcategory/main.cpp
index 6b66424875..8d76c5736e 100644
--- a/src/corelib/doc/snippets/qloggingcategory/main.cpp
+++ b/src/corelib/doc/snippets/qloggingcategory/main.cpp
@@ -59,10 +59,11 @@ struct UsbEntry {
int classtype;
};
-QDebug operator<<(QDebug &dbg, const UsbEntry &entry)
+QDebug operator<<(QDebug &debug, const UsbEntry &entry)
{
- dbg.nospace() << "" << entry.id << " (" << entry.classtype << ")";
- return dbg.space();
+ QDebugStateSaver saver(debug);
+ debug.nospace() << "" << entry.id << " (" << entry.classtype << ')';
+ return debug;
}
QList<UsbEntry> usbEntries() {
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index 1774378c06..33a24a3866 100644
--- a/src/corelib/global/qcompilerdetection.h
+++ b/src/corelib/global/qcompilerdetection.h
@@ -910,6 +910,9 @@
# undef Q_COMPILER_UNICODE_STRINGS
# undef Q_COMPILER_NOEXCEPT
# endif
+# if defined(_HAS_DINKUM_CLIB) && !defined(_HAS_NULLPTR_T)
+# undef Q_COMPILER_NULLPTR
+# endif
# if defined(_HAS_DINKUM_CLIB) && !defined(_HAS_CONSTEXPR)
// The libcpp is missing constexpr keywords on important functions like std::numeric_limits<>::min()
// Disable constexpr support on QNX even if the compiler supports it
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index abd9f4f593..d462595804 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -205,7 +205,7 @@ Q_STATIC_ASSERT_X(UCHAR_MAX == 255, "Qt assumes that char is 8 bits");
The Q_DECLARE_FLAGS() macro does not expose the flags to the meta-object
system, so they cannot be used by Qt Script or edited in Qt Designer.
- To make the flags available for these purposes, the Q_FLAGS() macro must
+ To make the flags available for these purposes, the Q_FLAG() macro must
be used:
\snippet code/src_corelib_global_qglobal.cpp meta-object flags
@@ -2991,7 +2991,7 @@ QString qt_error_string(int errorCode)
// Retrieve the system error message for the last-error code.
# ifndef Q_OS_WINRT
wchar_t *string = 0;
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
+ FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL,
errorCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
@@ -3130,11 +3130,14 @@ int qEnvironmentVariableIntValue(const char *varName, bool *ok) Q_DECL_NOEXCEPT
return 0;
}
#endif
- const qlonglong value = qstrtoll(buffer, Q_NULLPTR, 0, ok);
+ bool ok_ = true;
+ const qlonglong value = qstrtoll(buffer, Q_NULLPTR, 0, &ok_);
if (int(value) != value) { // this is the check in QByteArray::toInt(), keep it in sync
if (ok)
*ok = false;
return 0;
+ } else if (ok) {
+ *ok = ok_;
}
return int(value);
}
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 5db2e94602..2912e68580 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -447,7 +447,7 @@ QLibraryInfo::rawLocation(LibraryLocation loc, PathGroup group)
if (!QLibraryInfoPrivate::configuration())
#endif
{
- const char *path = 0;
+ const char * volatile path = 0;
if (loc == PrefixPath) {
path =
#ifdef QT_BUILD_QMAKE
diff --git a/src/corelib/global/qlogging.h b/src/corelib/global/qlogging.h
index b1f69b66b9..679afddb20 100644
--- a/src/corelib/global/qlogging.h
+++ b/src/corelib/global/qlogging.h
@@ -143,9 +143,9 @@ private:
#define QT_MESSAGELOG_LINE __LINE__
#define QT_MESSAGELOG_FUNC Q_FUNC_INFO
#else
- #define QT_MESSAGELOG_FILE 0
+ #define QT_MESSAGELOG_FILE Q_NULLPTR
#define QT_MESSAGELOG_LINE 0
- #define QT_MESSAGELOG_FUNC 0
+ #define QT_MESSAGELOG_FUNC Q_NULLPTR
#endif
#define qDebug QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).debug
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 420b8b0430..c766b4d1c3 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -287,6 +287,7 @@ public:
WindowTransparentForInput = 0x00080000,
WindowOverridesSystemGestures = 0x00100000,
WindowDoesNotAcceptFocus = 0x00200000,
+ MaximizeUsingFullscreenGeometryHint = 0x00400000,
CustomizeWindowHint = 0x02000000,
WindowStaysOnBottomHint = 0x04000000,
@@ -1321,6 +1322,7 @@ public:
ImAbsolutePosition = 0x400,
ImTextBeforeCursor = 0x800,
ImTextAfterCursor = 0x1000,
+ ImReturnKeyType = 0x2000,
ImPlatformData = 0x80000000,
ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText |
@@ -1360,6 +1362,17 @@ public:
};
Q_DECLARE_FLAGS(InputMethodHints, InputMethodHint)
+ enum ReturnKeyType {
+ ReturnKeyDefault,
+ ReturnKeyEnter,
+ ReturnKeyDone,
+ ReturnKeyGo,
+ ReturnKeySend,
+ ReturnKeySearch,
+ ReturnKeyNext,
+ ReturnKeyPrevious
+ };
+
enum ToolButtonStyle {
ToolButtonIconOnly,
ToolButtonTextOnly,
@@ -1680,6 +1693,7 @@ public:
QT_Q_ENUM(InputMethodHint)
QT_Q_ENUM(InputMethodQuery)
QT_Q_FLAG(InputMethodHints)
+ QT_Q_ENUM(ReturnKeyType)
QT_Q_FLAG(InputMethodQueries)
QT_Q_FLAG(TouchPointStates)
QT_Q_ENUM(ScreenOrientation)
@@ -1695,6 +1709,7 @@ public:
QT_Q_ENUM(TimerType)
QT_Q_ENUM(ScrollPhase)
QT_Q_ENUM(MouseEventSource)
+ QT_Q_FLAG(MouseEventFlag)
QT_Q_ENUM(TabFocusBehavior)
#endif // Q_DOC
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index ba3a621751..daf55cfd3a 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -2126,7 +2126,8 @@
regardless of whether the parent widget is embedded in a scene or
not.
- \value WindowShadeButtonHint
+ \value WindowShadeButtonHint Adds a shade button in place of the minimize
+ button if the underlying window manager supports it.
\value WindowStaysOnTopHint Informs the window system that the
window should stay on top of all other windows. Note that
@@ -2159,6 +2160,15 @@
\value WindowDoesNotAcceptFocus Informs the window system that this window should
not receive the input focus.
+ \value MaximizeUsingFullscreenGeometryHint Informs the window system that when
+ maximizing the window it should use as much of the available screen geometry
+ as possible, including areas that may be covered by system UI such as status
+ bars or application launchers. This may result in the window being placed
+ under these system UIs, but does not guarantee it, depending on whether or
+ not the platform supports it. When the flag is enabled the user is responsible
+ for taking QScreen::availableGeometry() into account, so that any UI elements
+ in the application that require user interaction are not covered by system UI.
+
\value WindowType_Mask A mask for extracting the window type
part of the window flags.
@@ -2439,8 +2449,9 @@
Flags that alter the behavior:
- \value ImhHiddenText Characters should be hidden, as is typically used when entering passwords.
+ \value ImhHiddenText The input method should not show the characters while typing.
This is automatically set when setting QLineEdit::echoMode to \c Password.
+ Note that setting \c ImhHiddenText does not change the echo mode.
\value ImhSensitiveData Typed text should not be stored by the active input method
in any persistent storage like predictive user dictionary.
\value ImhNoAutoUppercase The input method should not try to automatically switch to upper case
@@ -2502,6 +2513,7 @@
but \b{must} not return an empty string unless the cursor is at the start of the document.
\value ImTextAfterCursor The plain text after the cursor. The widget can decide how much text to return,
but \b{must} not return an empty string unless the cursor is at the end of the document.
+ \value ImReturnKeyType The return key type.
Masks:
@@ -2512,6 +2524,36 @@
*/
/*!
+ \enum Qt::ReturnKeyType
+
+ This can be used to alter the appearance of the Return key on an on screen keyboard.
+
+ Note that not all of these values are supported on all platforms.
+
+ \value ReturnKeyDefault The default return key.
+ This can either be a button closing the keyboard, or a Return button
+ causing a new line in case of a multi-line input field.
+ \value ReturnKeyEnter Show a Return button that inserts a new line.
+ The keyboard will not close when this button is pressed.
+ \value ReturnKeyDone Show a "Done" button.
+ The keyboard will close when this button is pressed.
+ \value ReturnKeyGo Show a "Go" button.
+ Typically used in an address bar when entering an URL; the keyboard
+ will close when this button is pressed.
+ \value ReturnKeySend Show a "Send" button.
+ The keyboard will close when this button is pressed.
+ \value ReturnKeySearch Show a "Search" button.
+ The keyboard will close when this button is pressed.
+ \value ReturnKeyNext Show a "Next" button.
+ Typically used in a form to allow navigating to the next input field;
+ the keyboard will not close when this button is pressed.
+ \value ReturnKeyPrevious Show a "Previous" button.
+ The keyboard will not close when this button is pressed.
+
+ \since 5.6
+*/
+
+/*!
\enum Qt::ItemDataRole
Each item in the model has a set of data elements associated with
diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri
index 78349fbc49..4c189bfe57 100644
--- a/src/corelib/io/io.pri
+++ b/src/corelib/io/io.pri
@@ -7,6 +7,7 @@ HEADERS += \
io/qdatastream_p.h \
io/qdataurl_p.h \
io/qdebug.h \
+ io/qdebug_p.h \
io/qdir.h \
io/qdir_p.h \
io/qdiriterator.h \
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index 354c0e1392..9391799624 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -365,10 +365,10 @@ inline QDebug operator<<(QDebug debug, const QFlags<T> &flags)
QT_END_NAMESPACE
Q_FORWARD_DECLARE_CF_TYPE(CFString);
Q_FORWARD_DECLARE_OBJC_CLASS(NSObject);
-QT_FOR_EACH_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_CF_TYPE);
-QT_FOR_EACH_MUTABLE_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_MUTABLE_CF_TYPE);
-QT_FOR_EACH_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_CG_TYPE);
-QT_FOR_EACH_MUTABLE_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_MUTABLE_CG_TYPE);
+QT_FOR_EACH_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_CF_TYPE)
+QT_FOR_EACH_MUTABLE_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_MUTABLE_CF_TYPE)
+QT_FOR_EACH_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_CG_TYPE)
+QT_FOR_EACH_MUTABLE_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_MUTABLE_CG_TYPE)
QT_BEGIN_NAMESPACE
#define QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE(CFType) \
@@ -391,10 +391,10 @@ QT_BEGIN_NAMESPACE
Q_CORE_EXPORT QDebug operator<<(QDebug, const NSObject *);
Q_CORE_EXPORT QDebug operator<<(QDebug, CFStringRef);
-QT_FOR_EACH_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE);
-QT_FOR_EACH_MUTABLE_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE);
-QT_FOR_EACH_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE);
-QT_FOR_EACH_MUTABLE_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE);
+QT_FOR_EACH_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE)
+QT_FOR_EACH_MUTABLE_CORE_FOUNDATION_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE)
+QT_FOR_EACH_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE)
+QT_FOR_EACH_MUTABLE_CORE_GRAPHICS_TYPE(QT_FORWARD_DECLARE_QDEBUG_OPERATOR_FOR_CF_TYPE)
#undef QT_FORWARD_DECLARE_CF_TYPE
#undef QT_FORWARD_DECLARE_MUTABLE_CF_TYPE
diff --git a/src/corelib/io/qdebug_p.h b/src/corelib/io/qdebug_p.h
new file mode 100644
index 0000000000..0525929169
--- /dev/null
+++ b/src/corelib/io/qdebug_p.h
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QDEBUG_P_H
+#define QDEBUG_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "QtCore/qdebug.h"
+#include "QtCore/qmetaobject.h"
+#include "QtCore/qflags.h"
+
+QT_BEGIN_NAMESPACE
+
+namespace QtDebugUtils {
+
+// inline helpers for formatting basic classes.
+
+template <class Point>
+static inline void formatQPoint(QDebug &debug, const Point &point)
+{
+ debug << point.x() << ',' << point.y();
+}
+
+template <class Size>
+static inline void formatQSize(QDebug &debug, const Size &size)
+{
+ debug << size.width() << ", " << size.height();
+}
+
+template <class Rect>
+static inline void formatQRect(QDebug &debug, const Rect &rect)
+{
+ debug << rect.x() << ',' << rect.y() << ' ' << rect.width() << 'x' << rect.height();
+}
+
+template <class Margins>
+static inline void formatQMargins(QDebug &debug, const Margins &margins)
+{
+ debug << margins.left() << ", " << margins.top() << ", " << margins.right()
+ << ", " << margins.bottom();
+}
+
+#ifndef QT_NO_QOBJECT
+template <class QEnum>
+static inline void formatQEnum(QDebug &debug, QEnum value)
+{
+ const QMetaObject *metaObject = qt_getEnumMetaObject(value);
+ const QMetaEnum me = metaObject->enumerator(metaObject->indexOfEnumerator(qt_getEnumName(value)));
+ if (const char *key = me.valueToKey(value))
+ debug << key;
+ else
+ debug << int(value);
+}
+
+template <class QEnum>
+static inline void formatNonNullQEnum(QDebug &debug, const char *prefix, QEnum value)
+{
+ if (value) {
+ debug << prefix;
+ formatQEnum(debug, value);
+ }
+}
+
+template <class Enum>
+static inline void formatQFlags(QDebug &debug, const QFlags<Enum> &value)
+{
+ const QMetaObject *metaObject = qt_getEnumMetaObject(Enum());
+ const QMetaEnum me = metaObject->enumerator(metaObject->indexOfEnumerator(qt_getEnumName(Enum())));
+ const QDebugStateSaver saver(debug);
+ debug.noquote();
+ debug << me.valueToKeys(value);
+}
+
+template <class Enum>
+static inline void formatNonNullQFlags(QDebug &debug, const char *prefix, const QFlags<Enum> &value)
+{
+ if (value) {
+ debug << prefix;
+ formatQFlags(debug, value);
+ }
+}
+
+#endif // !QT_NO_QOBJECT
+
+} // namespace QtDebugUtils
+
+QT_END_NAMESPACE
+
+#endif // QDEBUG_P_H
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index 5b18a85dd4..19343f22ff 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -545,7 +545,7 @@ bool QFSFileEngine::renameOverwrite(const QString &newName)
(wchar_t*)d->fileEntry.nativeFilePath().utf16()) != 0;
if (!ret) {
ret = ::DeleteFile((wchar_t*)QFileSystemEntry(newName).nativeFilePath().utf16()) != 0;
- if (ret)
+ if (ret || ::GetLastError() == ERROR_FILE_NOT_FOUND)
ret = ::MoveFile((wchar_t*)d->fileEntry.nativeFilePath().utf16(),
(wchar_t*)QFileSystemEntry(newName).nativeFilePath().utf16()) != 0;
}
diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp
index 7eb917c71f..7a87a78c60 100644
--- a/src/corelib/io/qiodevice.cpp
+++ b/src/corelib/io/qiodevice.cpp
@@ -972,6 +972,7 @@ QByteArray QIODevice::readAll()
QByteArray result;
qint64 readBytes = 0;
+ const bool sequential = d->isSequential();
// flush internal read buffer
if (!(d->openMode & Text) && !d->buffer.isEmpty()) {
@@ -979,11 +980,12 @@ QByteArray QIODevice::readAll()
return QByteArray();
result = d->buffer.readAll();
readBytes = result.size();
- d->pos += readBytes;
+ if (!sequential)
+ d->pos += readBytes;
}
qint64 theSize;
- if (d->isSequential() || (theSize = size()) == 0) {
+ if (sequential || (theSize = size()) == 0) {
// Size is unknown, read incrementally.
qint64 readResult;
do {
@@ -1629,6 +1631,23 @@ QString QIODevice::errorString() const
\sa read(), write()
*/
+/*!
+ \internal
+ \fn int qt_subtract_from_timeout(int timeout, int elapsed)
+
+ Reduces the \a timeout by \a elapsed, taking into account that -1 is a
+ special value for timeouts.
+*/
+
+int qt_subtract_from_timeout(int timeout, int elapsed)
+{
+ if (timeout == -1)
+ return -1;
+
+ timeout = timeout - elapsed;
+ return timeout < 0 ? 0 : timeout;
+}
+
#if !defined(QT_NO_DEBUG_STREAM)
QDebug operator<<(QDebug debug, QIODevice::OpenMode modes)
diff --git a/src/corelib/io/qiodevice_p.h b/src/corelib/io/qiodevice_p.h
index 7b4657f262..f4cf387eb5 100644
--- a/src/corelib/io/qiodevice_p.h
+++ b/src/corelib/io/qiodevice_p.h
@@ -60,6 +60,8 @@ QT_BEGIN_NAMESPACE
#define QIODEVICE_BUFFERSIZE Q_INT64_C(16384)
#endif
+Q_CORE_EXPORT int qt_subtract_from_timeout(int timeout, int elapsed);
+
// This is QIODevice's read buffer, optimized for read(), isEmpty() and getChar()
class QIODevicePrivateLinearBuffer
{
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp
index d5c861f9ad..80eb08b01b 100644
--- a/src/corelib/io/qprocess.cpp
+++ b/src/corelib/io/qprocess.cpp
@@ -1806,8 +1806,7 @@ bool QProcess::waitForBytesWritten(int msecs)
bool started = waitForStarted(msecs);
if (!started)
return false;
- if (msecs != -1)
- msecs -= stopWatch.elapsed();
+ msecs = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
}
return d->waitForBytesWritten(msecs);
@@ -1843,8 +1842,7 @@ bool QProcess::waitForFinished(int msecs)
bool started = waitForStarted(msecs);
if (!started)
return false;
- if (msecs != -1)
- msecs -= stopWatch.elapsed();
+ msecs = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
}
return d->waitForFinished(msecs);
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index fcebc08d7f..46b557d6e0 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -299,18 +299,6 @@ static char **_q_dupEnvironment(const QProcessEnvironmentPrivate::Hash &environm
if (environment.isEmpty())
return 0;
- // if LD_LIBRARY_PATH exists in the current environment, but
- // not in the environment list passed by the programmer, then
- // copy it over.
-#if defined(Q_OS_MAC)
- static const char libraryPath[] = "DYLD_LIBRARY_PATH";
-#else
- static const char libraryPath[] = "LD_LIBRARY_PATH";
-#endif
- const QByteArray envLibraryPath = qgetenv(libraryPath);
- bool needToAddLibraryPath = !envLibraryPath.isEmpty() &&
- !environment.contains(QProcessEnvironmentPrivate::Key(QByteArray(libraryPath)));
-
char **envp = new char *[environment.count() + 2];
envp[environment.count()] = 0;
envp[environment.count() + 1] = 0;
@@ -327,9 +315,6 @@ static char **_q_dupEnvironment(const QProcessEnvironmentPrivate::Hash &environm
envp[(*envc)++] = ::strdup(key.constData());
}
- if (needToAddLibraryPath)
- envp[(*envc)++] = ::strdup(QByteArray(QByteArray(libraryPath) + '=' +
- envLibraryPath).constData());
return envp;
}
@@ -822,19 +807,6 @@ void QProcessPrivate::killProcess()
::kill(pid_t(pid), SIGKILL);
}
-/*
- Returns the difference between msecs and elapsed. If msecs is -1,
- however, -1 is returned.
-*/
-static int qt_timeout_value(int msecs, int elapsed)
-{
- if (msecs == -1)
- return -1;
-
- int timeout = msecs - elapsed;
- return timeout < 0 ? 0 : timeout;
-}
-
bool QProcessPrivate::waitForStarted(int msecs)
{
Q_Q(QProcess);
@@ -909,7 +881,7 @@ bool QProcessPrivate::waitForReadyRead(int msecs)
if (!stdinChannel.buffer.isEmpty() && stdinChannel.pipe[1] != -1)
add_fd(nfds, stdinChannel.pipe[1], &fdwrite);
- int timeout = qt_timeout_value(msecs, stopWatch.elapsed());
+ int timeout = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
#ifdef Q_OS_BLACKBERRY
int ret = bb_select(notifiers, nfds + 1, &fdread, &fdwrite, timeout);
#else
@@ -990,7 +962,7 @@ bool QProcessPrivate::waitForBytesWritten(int msecs)
if (!stdinChannel.buffer.isEmpty() && stdinChannel.pipe[1] != -1)
add_fd(nfds, stdinChannel.pipe[1], &fdwrite);
- int timeout = qt_timeout_value(msecs, stopWatch.elapsed());
+ int timeout = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
#ifdef Q_OS_BLACKBERRY
int ret = bb_select(notifiers, nfds + 1, &fdread, &fdwrite, timeout);
#else
@@ -1065,7 +1037,7 @@ bool QProcessPrivate::waitForFinished(int msecs)
if (!stdinChannel.buffer.isEmpty() && stdinChannel.pipe[1] != -1)
add_fd(nfds, stdinChannel.pipe[1], &fdwrite);
- int timeout = qt_timeout_value(msecs, stopWatch.elapsed());
+ int timeout = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
#ifdef Q_OS_BLACKBERRY
int ret = bb_select(notifiers, nfds + 1, &fdread, &fdwrite, timeout);
#else
diff --git a/src/corelib/io/qsavefile.cpp b/src/corelib/io/qsavefile.cpp
index 33be537433..ffa6ad1c55 100644
--- a/src/corelib/io/qsavefile.cpp
+++ b/src/corelib/io/qsavefile.cpp
@@ -215,7 +215,7 @@ bool QSaveFile::open(OpenMode mode)
d->finalFileName = existingFile.filePath();
}
- d->fileEngine = new QTemporaryFileEngine(d->finalFileName);
+ d->fileEngine = new QTemporaryFileEngine(d->finalFileName, 0666);
// Same as in QFile: QIODevice provides the buffering, so there's no need to request it from the file engine.
if (!d->fileEngine->open(mode | QIODevice::Unbuffered)) {
QFileDevice::FileError err = d->fileEngine->error();
diff --git a/src/corelib/io/qstandardpaths.cpp b/src/corelib/io/qstandardpaths.cpp
index 4fd429cad4..c5c596fd2e 100644
--- a/src/corelib/io/qstandardpaths.cpp
+++ b/src/corelib/io/qstandardpaths.cpp
@@ -113,6 +113,9 @@ QT_BEGIN_NAMESPACE
\value GenericCacheLocation Returns a directory location where user-specific non-essential
(cached) data, shared across applications, should be written. This is a generic value.
Note that the returned path may be empty if the system has no concept of shared cache.
+ \value GenericDataLocation Returns a directory location where persistent
+ data shared across applications can be stored. This is a generic value. The returned
+ path is never empty.
\value RuntimeLocation Returns a directory location where runtime communication
files should be written, like Unix local sockets. This is a generic value.
The returned path may be empty on some systems.
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp
index 45b32830cd..d120d7569a 100644
--- a/src/corelib/io/qstorageinfo_unix.cpp
+++ b/src/corelib/io/qstorageinfo_unix.cpp
@@ -49,7 +49,7 @@
# include <sys/mount.h>
# include <sys/vfs.h>
# include <mntent.h>
-#elif defined(Q_OS_LINUX)
+#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
# include <mntent.h>
# include <sys/statvfs.h>
#elif defined(Q_OS_SOLARIS)
@@ -133,7 +133,7 @@ private:
QByteArray m_rootPath;
QByteArray m_fileSystemType;
QByteArray m_device;
-#elif defined(Q_OS_LINUX)
+#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
FILE *fp;
mntent mnt;
QByteArray buffer;
@@ -275,10 +275,11 @@ inline QByteArray QStorageIterator::device() const
return m_device;
}
-#elif defined(Q_OS_LINUX)
+#elif defined(Q_OS_LINUX) || defined(Q_OS_HURD)
static const char pathMounted[] = "/etc/mtab";
-static const int bufferSize = 3*PATH_MAX; // 2 paths (mount point+device) and metainfo
+static const int bufferSize = 1024; // 2 paths (mount point+device) and metainfo;
+ // should be enough
inline QStorageIterator::QStorageIterator() :
buffer(QByteArray(bufferSize, 0))
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index fa851a6d74..556bc6e760 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -103,13 +103,14 @@ typedef int NativeFileHandle;
\a path is used as a template when generating unique paths, \a pos
identifies the position of the first character that will be replaced in the
template and \a length the number of characters that may be substituted.
+ \a mode specifies the file mode bits (not used on Windows).
Returns an open handle to the newly created file if successful, an invalid
handle otherwise. In both cases, the string in \a path will be changed and
contain the generated path name.
*/
static bool createFileFromTemplate(NativeFileHandle &file,
- QFileSystemEntry::NativePath &path, size_t pos, size_t length,
+ QFileSystemEntry::NativePath &path, size_t pos, size_t length, quint32 mode,
QSystemError &error)
{
Q_ASSERT(length != 0);
@@ -143,6 +144,8 @@ static bool createFileFromTemplate(NativeFileHandle &file,
for (;;) {
// Atomically create file and obtain handle
#if defined(Q_OS_WIN)
+ Q_UNUSED(mode);
+
# ifndef Q_OS_WINRT
file = CreateFile((const wchar_t *)path.constData(),
GENERIC_READ | GENERIC_WRITE,
@@ -175,7 +178,7 @@ static bool createFileFromTemplate(NativeFileHandle &file,
#else // POSIX
file = QT_OPEN(path.constData(),
QT_OPEN_CREAT | O_EXCL | QT_OPEN_RDWR | QT_OPEN_LARGEFILE,
- 0600);
+ static_cast<mode_t>(mode));
if (file != -1)
return true;
@@ -333,7 +336,7 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode)
NativeFileHandle &file = d->fd;
#endif
- if (!createFileFromTemplate(file, filename, phPos, phLength, error)) {
+ if (!createFileFromTemplate(file, filename, phPos, phLength, fileMode, error)) {
setError(QFile::OpenError, error.toString());
return false;
}
@@ -407,9 +410,9 @@ QAbstractFileEngine *QTemporaryFilePrivate::engine() const
{
if (!fileEngine) {
if (fileName.isEmpty())
- fileEngine = new QTemporaryFileEngine(templateName);
+ fileEngine = new QTemporaryFileEngine(templateName, 0600);
else
- fileEngine = new QTemporaryFileEngine(fileName, false);
+ fileEngine = new QTemporaryFileEngine(fileName, 0600, false);
}
return fileEngine;
}
diff --git a/src/corelib/io/qtemporaryfile_p.h b/src/corelib/io/qtemporaryfile_p.h
index 2045edff02..475298f264 100644
--- a/src/corelib/io/qtemporaryfile_p.h
+++ b/src/corelib/io/qtemporaryfile_p.h
@@ -77,8 +77,13 @@ class QTemporaryFileEngine : public QFSFileEngine
{
Q_DECLARE_PRIVATE(QFSFileEngine)
public:
- QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true)
- : QFSFileEngine(), filePathIsTemplate(fileIsTemplate),
+
+ QTemporaryFileEngine(const QString &file,
+ quint32 fileMode,
+ bool fileIsTemplate = true) :
+ QFSFileEngine(),
+ fileMode(fileMode),
+ filePathIsTemplate(fileIsTemplate),
filePathWasTemplate(fileIsTemplate)
{
Q_D(QFSFileEngine);
@@ -100,6 +105,7 @@ public:
bool renameOverwrite(const QString &newName);
bool close();
+ quint32 fileMode;
bool filePathIsTemplate;
bool filePathWasTemplate;
};
diff --git a/src/corelib/io/qwinoverlappedionotifier.cpp b/src/corelib/io/qwinoverlappedionotifier.cpp
index 17d546c0ce..083feb4a20 100644
--- a/src/corelib/io/qwinoverlappedionotifier.cpp
+++ b/src/corelib/io/qwinoverlappedionotifier.cpp
@@ -41,6 +41,7 @@
#include <qthread.h>
#include <qt_windows.h>
#include <private/qobject_p.h>
+#include <private/qiodevice_p.h>
QT_BEGIN_NAMESPACE
@@ -332,11 +333,9 @@ bool QWinOverlappedIoNotifier::waitForNotified(int msecs, OVERLAPPED *overlapped
return false;
if (triggeredOverlapped == overlapped)
return true;
- if (msecs != -1) {
- t = msecs - stopWatch.elapsed();
- if (t < 0)
- return false;
- }
+ msecs = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
+ if (t == 0)
+ return false;
}
}
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h
index 1c2ff9f190..c4f705e858 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.h
+++ b/src/corelib/itemmodels/qabstractitemmodel.h
@@ -222,10 +222,10 @@ public:
Q_INVOKABLE virtual Qt::ItemFlags flags(const QModelIndex &index) const;
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
virtual QModelIndex buddy(const QModelIndex &index) const;
- virtual QModelIndexList match(const QModelIndex &start, int role,
- const QVariant &value, int hits = 1,
- Qt::MatchFlags flags =
- Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const;
+ Q_INVOKABLE virtual QModelIndexList match(const QModelIndex &start, int role,
+ const QVariant &value, int hits = 1,
+ Qt::MatchFlags flags =
+ Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const;
virtual QSize span(const QModelIndex &index) const;
virtual QHash<int,QByteArray> roleNames() const;
diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h
index 69997bc77f..afd5a1f616 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.h
+++ b/src/corelib/itemmodels/qabstractproxymodel.h
@@ -56,11 +56,11 @@ public:
virtual void setSourceModel(QAbstractItemModel *sourceModel);
QAbstractItemModel *sourceModel() const;
- virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const = 0;
- virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const = 0;
+ Q_INVOKABLE virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const = 0;
+ Q_INVOKABLE virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const = 0;
- virtual QItemSelection mapSelectionToSource(const QItemSelection &selection) const;
- virtual QItemSelection mapSelectionFromSource(const QItemSelection &selection) const;
+ Q_INVOKABLE virtual QItemSelection mapSelectionToSource(const QItemSelection &selection) const;
+ Q_INVOKABLE virtual QItemSelection mapSelectionFromSource(const QItemSelection &selection) const;
bool submit() Q_DECL_OVERRIDE;
void revert() Q_DECL_OVERRIDE;
diff --git a/src/corelib/itemmodels/qitemselectionmodel.cpp b/src/corelib/itemmodels/qitemselectionmodel.cpp
index 3882da30a7..47fcab9b24 100644
--- a/src/corelib/itemmodels/qitemselectionmodel.cpp
+++ b/src/corelib/itemmodels/qitemselectionmodel.cpp
@@ -1734,6 +1734,11 @@ const QItemSelection QItemSelectionModel::selection() const
/*!
\since 5.5
+ \property QItemSelectionModel::selectedIndexes
+*/
+/*!
+ \since 5.5
+
\property QItemSelectionModel::model
\internal
*/
diff --git a/src/corelib/itemmodels/qitemselectionmodel.h b/src/corelib/itemmodels/qitemselectionmodel.h
index 09fab78214..4fe836c098 100644
--- a/src/corelib/itemmodels/qitemselectionmodel.h
+++ b/src/corelib/itemmodels/qitemselectionmodel.h
@@ -147,6 +147,7 @@ class Q_CORE_EXPORT QItemSelectionModel : public QObject
Q_PROPERTY(bool hasSelection READ hasSelection NOTIFY selectionChanged STORED false DESIGNABLE false)
Q_PROPERTY(QModelIndex currentIndex READ currentIndex NOTIFY currentChanged STORED false DESIGNABLE false)
Q_PROPERTY(QItemSelection selection READ selection NOTIFY selectionChanged STORED false DESIGNABLE false)
+ Q_PROPERTY(QModelIndexList selectedIndexes READ selectedIndexes NOTIFY selectionChanged STORED false DESIGNABLE false)
Q_DECLARE_PRIVATE(QItemSelectionModel)
@@ -184,7 +185,7 @@ public:
bool hasSelection() const;
- Q_INVOKABLE QModelIndexList selectedIndexes() const;
+ QModelIndexList selectedIndexes() const;
Q_INVOKABLE QModelIndexList selectedRows(int column = 0) const;
Q_INVOKABLE QModelIndexList selectedColumns(int row = 0) const;
const QItemSelection selection() const;
diff --git a/src/corelib/kernel/qfunctions_winrt.cpp b/src/corelib/kernel/qfunctions_winrt.cpp
index 3be42d76e9..ea7f2ac671 100644
--- a/src/corelib/kernel/qfunctions_winrt.cpp
+++ b/src/corelib/kernel/qfunctions_winrt.cpp
@@ -30,9 +30,11 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifdef Q_OS_WINRT
#include "qfunctions_winrt.h"
+
+#ifdef Q_OS_WINRT
+
#include "qstring.h"
#include "qbytearray.h"
#include "qhash.h"
diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp
index 2290a74c31..097f641d19 100644
--- a/src/corelib/kernel/qjni.cpp
+++ b/src/corelib/kernel/qjni.cpp
@@ -230,17 +230,18 @@ QJNIEnvironmentPrivate::QJNIEnvironmentPrivate()
: jniEnv(0)
{
JavaVM *vm = QtAndroidPrivate::javaVM();
- if (vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6) == JNI_EDETACHED) {
+ const jint ret = vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6);
+ if (ret == JNI_OK) // Already attached
+ return;
+
+ if (ret == JNI_EDETACHED) { // We need to (re-)attach
JavaVMAttachArgs args = { JNI_VERSION_1_6, qJniThreadName, Q_NULLPTR };
if (vm->AttachCurrentThread(&jniEnv, &args) != JNI_OK)
return;
- }
- if (!jniEnv)
- return;
-
- if (!jniEnvTLS->hasLocalData())
- jniEnvTLS->setLocalData(new QJNIEnvironmentPrivateTLS);
+ if (!jniEnvTLS->hasLocalData()) // If we attached the thread we own it.
+ jniEnvTLS->setLocalData(new QJNIEnvironmentPrivateTLS);
+ }
}
JNIEnv *QJNIEnvironmentPrivate::operator->()
diff --git a/src/corelib/kernel/qmath.qdoc b/src/corelib/kernel/qmath.qdoc
index b2c8b42209..b0583d818e 100644
--- a/src/corelib/kernel/qmath.qdoc
+++ b/src/corelib/kernel/qmath.qdoc
@@ -215,6 +215,7 @@
\snippet code/src_corelib_kernel_qmath.cpp 3
\sa qDegreesToRadians()
+*/
/*!
\fn quint32 qNextPowerOfTwo(quint32 value)
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 55f8fc9b2c..aa8d826ed9 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -1364,6 +1364,11 @@ namespace QtPrivate
enum { Value = sizeof(checkType(static_cast<T*>(0))) == sizeof(void*) };
};
+
+QT_WARNING_PUSH
+// In C++03 mode, clang consider local or unnamed type and throw a warning instead of ignoring them
+QT_WARNING_DISABLE_CLANG("-Wunnamed-type-template-args")
+QT_WARNING_DISABLE_CLANG("-Wlocal-type-template-args")
template<typename T> char qt_getEnumMetaObject(const T&);
template<typename T>
@@ -1375,6 +1380,7 @@ namespace QtPrivate
// qt_getEnumMetaObject(T) which returns 'char'
enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) };
};
+QT_WARNING_POP
template<typename T, typename Enable = void>
struct MetaObjectForType
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index 33c123be6c..31e8a670e9 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -97,9 +97,9 @@ class QString;
#ifndef QT_NO_TRANSLATION
// full set of tr functions
# define QT_TR_FUNCTIONS \
- static inline QString tr(const char *s, const char *c = 0, int n = -1) \
+ static inline QString tr(const char *s, const char *c = Q_NULLPTR, int n = -1) \
{ return staticMetaObject.tr(s, c, n); } \
- QT_DEPRECATED static inline QString trUtf8(const char *s, const char *c = 0, int n = -1) \
+ QT_DEPRECATED static inline QString trUtf8(const char *s, const char *c = Q_NULLPTR, int n = -1) \
{ return staticMetaObject.tr(s, c, n); }
#else
// inherit the ones from QObject
diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h
index af69a91e4a..d5574a4dd1 100644
--- a/src/corelib/kernel/qobjectdefs_impl.h
+++ b/src/corelib/kernel/qobjectdefs_impl.h
@@ -36,6 +36,7 @@
#ifndef QOBJECTDEFS_H
#error Do not include qobjectdefs_impl.h directly
+#include <QtCore/qnamespace.h>
#endif
#if 0
diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h
index af7c11e4d7..07649ce0b2 100644
--- a/src/corelib/kernel/qpointer.h
+++ b/src/corelib/kernel/qpointer.h
@@ -35,6 +35,7 @@
#define QPOINTER_H
#include <QtCore/qsharedpointer.h>
+#include <QtCore/qtypeinfo.h>
#ifndef QT_NO_QOBJECT
@@ -45,6 +46,8 @@ class QVariant;
template <class T>
class QPointer
{
+ Q_STATIC_ASSERT_X(!QtPrivate::is_pointer<T>::value, "QPointer's template type must not be a pointer type");
+
template<typename U>
struct TypeSelector
{
diff --git a/src/corelib/mimetypes/qmimemagicrule.cpp b/src/corelib/mimetypes/qmimemagicrule.cpp
index 9693558a4c..c8508ac0d2 100644
--- a/src/corelib/mimetypes/qmimemagicrule.cpp
+++ b/src/corelib/mimetypes/qmimemagicrule.cpp
@@ -217,6 +217,8 @@ static inline QByteArray makePattern(const QByteArray &value)
*data++ = '\n';
} else if (*p == 'r') {
*data++ = '\r';
+ } else if (*p == 't') {
+ *data++ = '\t';
} else { // escaped
*data++ = *p;
}
diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp
index 8b940aa2dc..72f662dc1e 100644
--- a/src/corelib/plugin/quuid.cpp
+++ b/src/corelib/plugin/quuid.cpp
@@ -721,7 +721,7 @@ QDataStream &operator>>(QDataStream &s, QUuid &id)
Returns \c true if this is the null UUID
{00000000-0000-0000-0000-000000000000}; otherwise returns \c false.
*/
-bool QUuid::isNull() const
+bool QUuid::isNull() const Q_DECL_NOTHROW
{
return data4[0] == 0 && data4[1] == 0 && data4[2] == 0 && data4[3] == 0 &&
data4[4] == 0 && data4[5] == 0 && data4[6] == 0 && data4[7] == 0 &&
@@ -770,7 +770,7 @@ bool QUuid::isNull() const
\sa version()
*/
-QUuid::Variant QUuid::variant() const
+QUuid::Variant QUuid::variant() const Q_DECL_NOTHROW
{
if (isNull())
return VarUnknown;
@@ -791,7 +791,7 @@ QUuid::Variant QUuid::variant() const
\sa variant()
*/
-QUuid::Version QUuid::version() const
+QUuid::Version QUuid::version() const Q_DECL_NOTHROW
{
// Check the 4 MSB of data3
Version ver = (Version)(data3>>12);
@@ -814,18 +814,19 @@ QUuid::Version QUuid::version() const
\sa variant()
*/
-#define ISLESS(f1, f2) if (f1!=f2) return (f1<f2);
-bool QUuid::operator<(const QUuid &other) const
+bool QUuid::operator<(const QUuid &other) const Q_DECL_NOTHROW
{
if (variant() != other.variant())
return variant() < other.variant();
+#define ISLESS(f1, f2) if (f1!=f2) return (f1<f2);
ISLESS(data1, other.data1);
ISLESS(data2, other.data2);
ISLESS(data3, other.data3);
for (int n = 0; n < 8; n++) {
ISLESS(data4[n], other.data4[n]);
}
+#undef ISLESS
return false;
}
@@ -840,22 +841,40 @@ bool QUuid::operator<(const QUuid &other) const
\sa variant()
*/
-#define ISMORE(f1, f2) if (f1!=f2) return (f1>f2);
-bool QUuid::operator>(const QUuid &other) const
+bool QUuid::operator>(const QUuid &other) const Q_DECL_NOTHROW
{
- if (variant() != other.variant())
- return variant() > other.variant();
-
- ISMORE(data1, other.data1);
- ISMORE(data2, other.data2);
- ISMORE(data3, other.data3);
- for (int n = 0; n < 8; n++) {
- ISMORE(data4[n], other.data4[n]);
- }
- return false;
+ return other < *this;
}
/*!
+ \fn bool operator<=(const QUuid &lhs, const QUuid &rhs)
+ \relates QUuid
+ \since 5.5
+
+ Returns \c true if \a lhs has the same \l{Variant field}
+ {variant field} as \a rhs and is lexicographically
+ \e{not after} \a rhs. If \a rhs has a
+ different variant field, the return value is determined by
+ comparing the two \l{QUuid::Variant} {variants}.
+
+ \sa variant()
+*/
+
+/*!
+ \fn bool operator>=(const QUuid &lhs, const QUuid &rhs)
+ \relates QUuid
+ \since 5.5
+
+ Returns \c true if \a lhs has the same \l{Variant field}
+ {variant field} as \a rhs and is lexicographically
+ \e{not before} \a rhs. If \a rhs has a
+ different variant field, the return value is determined by
+ comparing the two \l{QUuid::Variant} {variants}.
+
+ \sa variant()
+*/
+
+/*!
\fn QUuid QUuid::createUuid()
On any platform other than Windows, this function returns a new
diff --git a/src/corelib/plugin/quuid.h b/src/corelib/plugin/quuid.h
index 13fd236a5e..f004cba77e 100644
--- a/src/corelib/plugin/quuid.h
+++ b/src/corelib/plugin/quuid.h
@@ -75,13 +75,13 @@ public:
};
#if defined(Q_COMPILER_UNIFORM_INIT) && !defined(Q_QDOC)
- Q_DECL_CONSTEXPR QUuid() : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {}
+ Q_DECL_CONSTEXPR QUuid() Q_DECL_NOTHROW : data1(0), data2(0), data3(0), data4{0,0,0,0,0,0,0,0} {}
Q_DECL_CONSTEXPR QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3,
- uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
+ uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) Q_DECL_NOTHROW
: data1(l), data2(w1), data3(w2), data4{b1, b2, b3, b4, b5, b6, b7, b8} {}
#else
- QUuid()
+ QUuid() Q_DECL_NOTHROW
{
data1 = 0;
data2 = 0;
@@ -89,7 +89,7 @@ public:
for(int i = 0; i < 8; i++)
data4[i] = 0;
}
- QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
+ QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) Q_DECL_NOTHROW
{
data1 = l;
data2 = w1;
@@ -112,9 +112,9 @@ public:
QByteArray toByteArray() const;
QByteArray toRfc4122() const;
static QUuid fromRfc4122(const QByteArray &);
- bool isNull() const;
+ bool isNull() const Q_DECL_NOTHROW;
- Q_DECL_RELAXED_CONSTEXPR bool operator==(const QUuid &orig) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator==(const QUuid &orig) const Q_DECL_NOTHROW
{
if (data1 != orig.data1 || data2 != orig.data2 ||
data3 != orig.data3)
@@ -127,24 +127,24 @@ public:
return true;
}
- Q_DECL_RELAXED_CONSTEXPR bool operator!=(const QUuid &orig) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator!=(const QUuid &orig) const Q_DECL_NOTHROW
{
return !(*this == orig);
}
- bool operator<(const QUuid &other) const;
- bool operator>(const QUuid &other) const;
+ bool operator<(const QUuid &other) const Q_DECL_NOTHROW;
+ bool operator>(const QUuid &other) const Q_DECL_NOTHROW;
#if defined(Q_OS_WIN)
// On Windows we have a type GUID that is used by the platform API, so we
// provide convenience operators to cast from and to this type.
#if defined(Q_COMPILER_UNIFORM_INIT) && !defined(Q_QDOC)
- Q_DECL_CONSTEXPR QUuid(const GUID &guid)
+ Q_DECL_CONSTEXPR QUuid(const GUID &guid) Q_DECL_NOTHROW
: data1(guid.Data1), data2(guid.Data2), data3(guid.Data3),
data4{guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]} {}
#else
- QUuid(const GUID &guid)
+ QUuid(const GUID &guid) Q_DECL_NOTHROW
{
data1 = guid.Data1;
data2 = guid.Data2;
@@ -154,24 +154,24 @@ public:
}
#endif
- Q_DECL_RELAXED_CONSTEXPR QUuid &operator=(const GUID &guid)
+ Q_DECL_RELAXED_CONSTEXPR QUuid &operator=(const GUID &guid) Q_DECL_NOTHROW
{
*this = QUuid(guid);
return *this;
}
- Q_DECL_RELAXED_CONSTEXPR operator GUID() const
+ Q_DECL_RELAXED_CONSTEXPR operator GUID() const Q_DECL_NOTHROW
{
GUID guid = { data1, data2, data3, { data4[0], data4[1], data4[2], data4[3], data4[4], data4[5], data4[6], data4[7] } };
return guid;
}
- Q_DECL_RELAXED_CONSTEXPR bool operator==(const GUID &guid) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator==(const GUID &guid) const Q_DECL_NOTHROW
{
return *this == QUuid(guid);
}
- Q_DECL_RELAXED_CONSTEXPR bool operator!=(const GUID &guid) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator!=(const GUID &guid) const Q_DECL_NOTHROW
{
return !(*this == guid);
}
@@ -192,8 +192,8 @@ public:
#endif
- QUuid::Variant variant() const;
- QUuid::Version version() const;
+ QUuid::Variant variant() const Q_DECL_NOTHROW;
+ QUuid::Version version() const Q_DECL_NOTHROW;
uint data1;
ushort data2;
@@ -214,6 +214,11 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QUuid &);
Q_CORE_EXPORT uint qHash(const QUuid &uuid, uint seed = 0) Q_DECL_NOTHROW;
+inline bool operator<=(const QUuid &lhs, const QUuid &rhs) Q_DECL_NOTHROW
+{ return !(rhs < lhs); }
+inline bool operator>=(const QUuid &lhs, const QUuid &rhs) Q_DECL_NOTHROW
+{ return !(lhs < rhs); }
+
QT_END_NAMESPACE
#endif // QUUID_H
diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h
index ff4d5a3ebd..57fbdf0eba 100644..100755
--- a/src/corelib/tools/qalgorithms.h
+++ b/src/corelib/tools/qalgorithms.h
@@ -584,6 +584,131 @@ Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qPopulationCount(long unsigne
#undef QALGORITHMS_USE_BUILTIN_POPCOUNT
#endif
+Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(quint32 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_ctz(v) : 32U;
+#else
+ // see http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightParallel
+ unsigned int c = 32; // c will be the number of zero bits on the right
+ v &= -signed(v);
+ if (v) c--;
+ if (v & 0x0000FFFF) c -= 16;
+ if (v & 0x00FF00FF) c -= 8;
+ if (v & 0x0F0F0F0F) c -= 4;
+ if (v & 0x33333333) c -= 2;
+ if (v & 0x55555555) c -= 1;
+ return c;
+#endif
+}
+
+Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(quint8 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_ctz(v) : 8U;
+#else
+ unsigned int c = 8; // c will be the number of zero bits on the right
+ v &= -signed(v);
+ if (v) c--;
+ if (v & 0x0000000F) c -= 4;
+ if (v & 0x00000033) c -= 2;
+ if (v & 0x00000055) c -= 1;
+ return c;
+#endif
+}
+
+Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(quint16 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_ctz(v) : 16U;
+#else
+ unsigned int c = 16; // c will be the number of zero bits on the right
+ v &= -signed(v);
+ if (v) c--;
+ if (v & 0x000000FF) c -= 8;
+ if (v & 0x00000F0F) c -= 4;
+ if (v & 0x00003333) c -= 2;
+ if (v & 0x00005555) c -= 1;
+ return c;
+#endif
+}
+
+Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(quint64 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_ctzll(v) : 64;
+#else
+ quint32 x = static_cast<quint32>(v);
+ return x ? qCountTrailingZeroBits(x)
+ : 32 + qCountTrailingZeroBits(static_cast<quint32>(v >> 32));
+#endif
+}
+
+Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(unsigned long v) Q_DECL_NOTHROW
+{
+ return qCountTrailingZeroBits(QIntegerForSizeof<long>::Unsigned(v));
+}
+
+Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint32 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_clz(v) : 32U;
+#else
+ // Hacker's Delight, 2nd ed. Fig 5-16, p. 102
+ v = v | (v >> 1);
+ v = v | (v >> 2);
+ v = v | (v >> 4);
+ v = v | (v >> 8);
+ v = v | (v >> 16);
+ return qPopulationCount(~v);
+#endif
+}
+
+Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_clz(v)-24U : 8U;
+#else
+ v = v | (v >> 1);
+ v = v | (v >> 2);
+ v = v | (v >> 4);
+ return qPopulationCount(static_cast<quint8>(~v));
+#endif
+}
+
+Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_clz(v)-16U : 16U;
+#else
+ v = v | (v >> 1);
+ v = v | (v >> 2);
+ v = v | (v >> 4);
+ v = v | (v >> 8);
+ return qPopulationCount(static_cast<quint16>(~v));
+#endif
+}
+
+Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
+{
+#if defined(Q_CC_GNU)
+ return v ? __builtin_clzll(v) : 64U;
+#else
+ v = v | (v >> 1);
+ v = v | (v >> 2);
+ v = v | (v >> 4);
+ v = v | (v >> 8);
+ v = v | (v >> 16);
+ v = v | (v >> 32);
+ return qPopulationCount(~v);
+#endif
+}
+
+Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW
+{
+ return qCountLeadingZeroBits(QIntegerForSizeof<long>::Unsigned(v));
+}
+
QT_WARNING_POP
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qalgorithms.qdoc b/src/corelib/tools/qalgorithms.qdoc
index 193042e017..dac353fa70 100644..100755
--- a/src/corelib/tools/qalgorithms.qdoc
+++ b/src/corelib/tools/qalgorithms.qdoc
@@ -785,3 +785,73 @@
\since 5.2
\overload
*/
+
+/*!
+ \fn uint qCountTrailingZeroBits(quint8 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+
+ Returns the number of consecutive zero bits in \a v, when searching from the LSB.
+ For example, qCountTrailingZeroBits(1) returns 0 and qCountTrailingZeroBits(8) returns 3.
+ */
+
+/*!
+ \fn uint qCountTrailingZeroBits(quint16 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+ \overload
+ */
+
+/*!
+ \fn uint qCountTrailingZeroBits(quint32 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+ \overload
+ */
+
+/*!
+ \fn uint qCountTrailingZeroBits(quint64 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+ \overload
+ */
+
+/*!
+ \fn uint qCountLeadingZeroBits(quint8 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+
+ Returns the number of consecutive zero bits in \a v, when searching from the MSB.
+ For example, qCountLeadingZeroBits(quint8(1)) returns 7 and
+ qCountLeadingZeroBits(quint8(8)) returns 4.
+ */
+
+/*!
+ \fn uint qCountLeadingZeroBits(quint16 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+
+ Returns the number of consecutive zero bits in \a v, when searching from the MSB.
+ For example, qCountLeadingZeroBits(quint16(1)) returns 15 and
+ qCountLeadingZeroBits(quint16(8)) returns 12.
+ */
+
+/*!
+ \fn uint qCountLeadingZeroBits(quint32 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+
+ Returns the number of consecutive zero bits in \a v, when searching from the MSB.
+ For example, qCountLeadingZeroBits(quint32(1)) returns 31 and
+ qCountLeadingZeroBits(quint32(8)) returns 28.
+ */
+
+/*!
+ \fn uint qCountLeadingZeroBits(quint64 v)
+ \relates <QtAlgorithms>
+ \since 5.6
+
+ Returns the number of consecutive zero bits in \a v, when searching from the MSB.
+ For example, qCountLeadingZeroBits(quint64(1)) returns 63 and
+ qCountLeadingZeroBits(quint64(8)) returns 60.
+ */
diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp
index 513d9b4ae3..ef15fae83a 100644
--- a/src/corelib/tools/qarraydata.cpp
+++ b/src/corelib/tools/qarraydata.cpp
@@ -38,10 +38,8 @@
QT_BEGIN_NAMESPACE
-#if defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#endif
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_GCC("-Wmissing-field-initializers")
const QArrayData QArrayData::shared_null[2] = {
{ Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, sizeof(QArrayData) }, // shared null
@@ -52,9 +50,7 @@ static const QArrayData qt_array[3] = {
{ { Q_BASIC_ATOMIC_INITIALIZER(0) }, 0, 0, 0, sizeof(QArrayData) }, // unsharable empty
/* zero initialized terminator */};
-#if defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
- #pragma GCC diagnostic pop
-#endif
+QT_WARNING_POP
static const QArrayData &qt_array_empty = qt_array[0];
static const QArrayData &qt_array_unsharable_empty = qt_array[1];
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index eb96757457..da5d00311a 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -869,44 +869,62 @@ static inline char qToLower(char c)
/*! \fn QByteArray::iterator QByteArray::begin()
- \internal
+ Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first character in
+ the byte-array.
+
+ \sa constBegin(), end()
*/
/*! \fn QByteArray::const_iterator QByteArray::begin() const
- \internal
+ \overload begin()
*/
/*! \fn QByteArray::const_iterator QByteArray::cbegin() const
\since 5.0
- \internal
+ Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first character
+ in the byte-array.
+
+ \sa begin(), cend()
*/
/*! \fn QByteArray::const_iterator QByteArray::constBegin() const
- \internal
+ Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first character
+ in the byte-array.
+
+ \sa begin(), constEnd()
*/
/*! \fn QByteArray::iterator QByteArray::end()
- \internal
+ Returns an \l{STL-style iterators}{STL-style iterator} pointing to the imaginary character
+ after the last character in the byte-array.
+
+ \sa begin(), constEnd()
*/
/*! \fn QByteArray::const_iterator QByteArray::end() const
- \internal
+ \overload end()
*/
/*! \fn QByteArray::const_iterator QByteArray::cend() const
\since 5.0
- \internal
+ Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary
+ character after the last character in the list.
+
+ \sa cbegin(), end()
*/
/*! \fn QByteArray::const_iterator QByteArray::constEnd() const
- \internal
+ Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary
+ character after the last character in the list.
+
+ \sa constBegin(), end()
*/
/*! \fn void QByteArray::push_back(const QByteArray &other)
diff --git a/src/corelib/tools/qchar.cpp b/src/corelib/tools/qchar.cpp
index dba0241cf9..56904c91d7 100644
--- a/src/corelib/tools/qchar.cpp
+++ b/src/corelib/tools/qchar.cpp
@@ -377,6 +377,29 @@ QT_BEGIN_NAMESPACE
\value Script_Sharada
\value Script_SoraSompeng
\value Script_Takri
+ \value Script_CaucasianAlbanian
+ \value Script_BassaVah
+ \value Script_Duployan
+ \value Script_Elbasan
+ \value Script_Grantha
+ \value Script_PahawhHmong
+ \value Script_Khojki
+ \value Script_LinearA
+ \value Script_Mahajani
+ \value Script_Manichaean
+ \value Script_MendeKikakui
+ \value Script_Modi
+ \value Script_Mro
+ \value Script_OldNorthArabian
+ \value Script_Nabataean
+ \value Script_Palmyrene
+ \value Script_PauCinHau
+ \value Script_OldPermic
+ \value Script_PsalterPahlavi
+ \value Script_Siddham
+ \value Script_Khudawadi
+ \value Script_Tirhuta
+ \value Script_WarangCiti
\omitvalue ScriptCount
@@ -658,7 +681,7 @@ QT_BEGIN_NAMESPACE
Note that this gives no indication of whether the character is
available in a particular font.
*/
-bool QChar::isPrint(uint ucs4)
+bool QChar::isPrint(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -691,7 +714,7 @@ bool QChar::isPrint(uint ucs4)
/*!
\internal
*/
-bool QT_FASTCALL QChar::isSpace_helper(uint ucs4)
+bool QT_FASTCALL QChar::isSpace_helper(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -717,7 +740,7 @@ bool QT_FASTCALL QChar::isSpace_helper(uint ucs4)
Returns \c true if the UCS-4-encoded character specified by \a ucs4 is
a mark (Mark_* categories); otherwise returns \c false.
*/
-bool QChar::isMark(uint ucs4)
+bool QChar::isMark(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -741,7 +764,7 @@ bool QChar::isMark(uint ucs4)
Returns \c true if the UCS-4-encoded character specified by \a ucs4 is
a punctuation mark (Punctuation_* categories); otherwise returns \c false.
*/
-bool QChar::isPunct(uint ucs4)
+bool QChar::isPunct(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -769,7 +792,7 @@ bool QChar::isPunct(uint ucs4)
Returns \c true if the UCS-4-encoded character specified by \a ucs4 is
a symbol (Symbol_* categories); otherwise returns \c false.
*/
-bool QChar::isSymbol(uint ucs4)
+bool QChar::isSymbol(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -799,7 +822,7 @@ bool QChar::isSymbol(uint ucs4)
/*!
\internal
*/
-bool QT_FASTCALL QChar::isLetter_helper(uint ucs4)
+bool QT_FASTCALL QChar::isLetter_helper(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -834,7 +857,7 @@ bool QT_FASTCALL QChar::isLetter_helper(uint ucs4)
/*!
\internal
*/
-bool QT_FASTCALL QChar::isNumber_helper(uint ucs4)
+bool QT_FASTCALL QChar::isNumber_helper(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -863,7 +886,7 @@ bool QT_FASTCALL QChar::isNumber_helper(uint ucs4)
/*!
\internal
*/
-bool QT_FASTCALL QChar::isLetterOrNumber_helper(uint ucs4)
+bool QT_FASTCALL QChar::isLetterOrNumber_helper(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -1026,7 +1049,7 @@ bool QT_FASTCALL QChar::isLetterOrNumber_helper(uint ucs4)
Returns the numeric value of the digit specified by the UCS-4-encoded
character, \a ucs4, or -1 if the character is not a digit.
*/
-int QChar::digitValue(uint ucs4)
+int QChar::digitValue(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return -1;
@@ -1043,7 +1066,7 @@ int QChar::digitValue(uint ucs4)
\overload
Returns the category of the UCS-4-encoded character specified by \a ucs4.
*/
-QChar::Category QChar::category(uint ucs4)
+QChar::Category QChar::category(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::Other_NotAssigned;
@@ -1060,7 +1083,7 @@ QChar::Category QChar::category(uint ucs4)
\overload
Returns the direction of the UCS-4-encoded character specified by \a ucs4.
*/
-QChar::Direction QChar::direction(uint ucs4)
+QChar::Direction QChar::direction(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::DirL;
@@ -1083,7 +1106,7 @@ QChar::Direction QChar::direction(uint ucs4)
character specified by \a ucs4
(needed for certain languages such as Arabic or Syriac).
*/
-QChar::JoiningType QChar::joiningType(uint ucs4)
+QChar::JoiningType QChar::joiningType(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::Joining_None;
@@ -1106,7 +1129,7 @@ QChar::JoiningType QChar::joiningType(uint ucs4)
Returns information about the joining properties of the UCS-4-encoded
character specified by \a ucs4 (needed for certain languages such as Arabic).
*/
-QChar::Joining QChar::joining(uint ucs4)
+QChar::Joining QChar::joining(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::OtherJoining;
@@ -1142,7 +1165,7 @@ QChar::Joining QChar::joining(uint ucs4)
\sa mirroredChar()
*/
-bool QChar::hasMirrored(uint ucs4)
+bool QChar::hasMirrored(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return false;
@@ -1224,7 +1247,7 @@ bool QChar::hasMirrored(uint ucs4)
\sa hasMirrored()
*/
-uint QChar::mirroredChar(uint ucs4)
+uint QChar::mirroredChar(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return ucs4;
@@ -1308,7 +1331,7 @@ QString QChar::decomposition(uint ucs4)
Returns the tag defining the composition of the UCS-4-encoded character
specified by \a ucs4. Returns QChar::NoDecomposition if no decomposition exists.
*/
-QChar::Decomposition QChar::decompositionTag(uint ucs4)
+QChar::Decomposition QChar::decompositionTag(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 >= Hangul_SBase && ucs4 < Hangul_SBase + Hangul_SCount)
return QChar::Canonical;
@@ -1334,7 +1357,7 @@ QChar::Decomposition QChar::decompositionTag(uint ucs4)
Returns the combining class for the UCS-4-encoded character specified by
\a ucs4, as defined in the Unicode standard.
*/
-unsigned char QChar::combiningClass(uint ucs4)
+unsigned char QChar::combiningClass(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return 0;
@@ -1355,7 +1378,7 @@ unsigned char QChar::combiningClass(uint ucs4)
Returns the Unicode script property value for the character specified in
its UCS-4-encoded form as \a ucs4.
*/
-QChar::Script QChar::script(uint ucs4)
+QChar::Script QChar::script(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::Script_Unknown;
@@ -1373,7 +1396,7 @@ QChar::Script QChar::script(uint ucs4)
Returns the Unicode version that introduced the character specified in
its UCS-4-encoded form as \a ucs4.
*/
-QChar::UnicodeVersion QChar::unicodeVersion(uint ucs4)
+QChar::UnicodeVersion QChar::unicodeVersion(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return QChar::Unicode_Unassigned;
@@ -1383,14 +1406,14 @@ QChar::UnicodeVersion QChar::unicodeVersion(uint ucs4)
/*!
Returns the most recent supported Unicode version.
*/
-QChar::UnicodeVersion QChar::currentUnicodeVersion()
+QChar::UnicodeVersion QChar::currentUnicodeVersion() Q_DECL_NOTHROW
{
return UNICODE_DATA_VERSION;
}
template <typename T>
-Q_DECL_CONST_FUNCTION static inline T toLowerCase_helper(T uc)
+Q_DECL_CONST_FUNCTION static inline T toLowerCase_helper(T uc) Q_DECL_NOTHROW
{
const QUnicodeTables::Properties *p = qGetProp(uc);
if (p->lowerCaseSpecial) {
@@ -1401,7 +1424,7 @@ Q_DECL_CONST_FUNCTION static inline T toLowerCase_helper(T uc)
}
template <typename T>
-Q_DECL_CONST_FUNCTION static inline T toUpperCase_helper(T uc)
+Q_DECL_CONST_FUNCTION static inline T toUpperCase_helper(T uc) Q_DECL_NOTHROW
{
const QUnicodeTables::Properties *p = qGetProp(uc);
if (p->upperCaseSpecial) {
@@ -1412,7 +1435,7 @@ Q_DECL_CONST_FUNCTION static inline T toUpperCase_helper(T uc)
}
template <typename T>
-Q_DECL_CONST_FUNCTION static inline T toTitleCase_helper(T uc)
+Q_DECL_CONST_FUNCTION static inline T toTitleCase_helper(T uc) Q_DECL_NOTHROW
{
const QUnicodeTables::Properties *p = qGetProp(uc);
if (p->titleCaseSpecial) {
@@ -1423,7 +1446,7 @@ Q_DECL_CONST_FUNCTION static inline T toTitleCase_helper(T uc)
}
template <typename T>
-Q_DECL_CONST_FUNCTION static inline T toCaseFolded_helper(T uc)
+Q_DECL_CONST_FUNCTION static inline T toCaseFolded_helper(T uc) Q_DECL_NOTHROW
{
const QUnicodeTables::Properties *p = qGetProp(uc);
if (p->caseFoldSpecial) {
@@ -1446,7 +1469,7 @@ Q_DECL_CONST_FUNCTION static inline T toCaseFolded_helper(T uc)
by \a ucs4 if the character is uppercase or titlecase; otherwise returns
the character itself.
*/
-uint QChar::toLower(uint ucs4)
+uint QChar::toLower(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return ucs4;
@@ -1466,7 +1489,7 @@ uint QChar::toLower(uint ucs4)
by \a ucs4 if the character is lowercase or titlecase; otherwise returns
the character itself.
*/
-uint QChar::toUpper(uint ucs4)
+uint QChar::toUpper(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return ucs4;
@@ -1486,7 +1509,7 @@ uint QChar::toUpper(uint ucs4)
by \a ucs4 if the character is lowercase or uppercase; otherwise returns
the character itself.
*/
-uint QChar::toTitleCase(uint ucs4)
+uint QChar::toTitleCase(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return ucs4;
@@ -1501,7 +1524,7 @@ static inline uint foldCase(const ushort *ch, const ushort *start)
return toCaseFolded_helper<uint>(c);
}
-static inline uint foldCase(uint ch, uint &last)
+static inline uint foldCase(uint ch, uint &last) Q_DECL_NOTHROW
{
uint c = ch;
if (QChar(c).isLowSurrogate() && QChar(last).isHighSurrogate())
@@ -1510,7 +1533,7 @@ static inline uint foldCase(uint ch, uint &last)
return toCaseFolded_helper<uint>(c);
}
-static inline ushort foldCase(ushort ch)
+static inline ushort foldCase(ushort ch) Q_DECL_NOTHROW
{
return toCaseFolded_helper<ushort>(ch);
}
@@ -1527,7 +1550,7 @@ static inline ushort foldCase(ushort ch)
Returns the case folded equivalent of the UCS-4-encoded character specified
by \a ucs4. For most Unicode characters this is the same as toLower().
*/
-uint QChar::toCaseFolded(uint ucs4)
+uint QChar::toCaseFolded(uint ucs4) Q_DECL_NOTHROW
{
if (ucs4 > LastValidCodePoint)
return ucs4;
diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h
index 5630642fc9..fc1fc7bc16 100644
--- a/src/corelib/tools/qchar.h
+++ b/src/corelib/tools/qchar.h
@@ -44,9 +44,9 @@ class QString;
struct QLatin1Char
{
public:
- Q_DECL_CONSTEXPR inline explicit QLatin1Char(char c) : ch(c) {}
- Q_DECL_CONSTEXPR inline char toLatin1() const { return ch; }
- Q_DECL_CONSTEXPR inline ushort unicode() const { return ushort(uchar(ch)); }
+ Q_DECL_CONSTEXPR inline explicit QLatin1Char(char c) Q_DECL_NOTHROW : ch(c) {}
+ Q_DECL_CONSTEXPR inline char toLatin1() const Q_DECL_NOTHROW { return ch; }
+ Q_DECL_CONSTEXPR inline ushort unicode() const Q_DECL_NOTHROW { return ushort(uchar(ch)); }
private:
char ch;
@@ -72,19 +72,19 @@ public:
LastValidCodePoint = 0x10ffff
};
- Q_DECL_CONSTEXPR QChar() : ucs(0) {}
- Q_DECL_CONSTEXPR QChar(ushort rc) : ucs(rc){} // implicit
- Q_DECL_CONSTEXPR QChar(uchar c, uchar r) : ucs(ushort((r << 8) | c)){}
- Q_DECL_CONSTEXPR QChar(short rc) : ucs(ushort(rc)){} // implicit
- Q_DECL_CONSTEXPR QChar(uint rc) : ucs(ushort(rc & 0xffff)){}
- Q_DECL_CONSTEXPR QChar(int rc) : ucs(ushort(rc & 0xffff)){}
- Q_DECL_CONSTEXPR QChar(SpecialCharacter s) : ucs(ushort(s)) {} // implicit
- Q_DECL_CONSTEXPR QChar(QLatin1Char ch) : ucs(ch.unicode()) {} // implicit
+ Q_DECL_CONSTEXPR QChar() Q_DECL_NOTHROW : ucs(0) {}
+ Q_DECL_CONSTEXPR QChar(ushort rc) Q_DECL_NOTHROW : ucs(rc) {} // implicit
+ Q_DECL_CONSTEXPR QChar(uchar c, uchar r) Q_DECL_NOTHROW : ucs(ushort((r << 8) | c)) {}
+ Q_DECL_CONSTEXPR QChar(short rc) Q_DECL_NOTHROW : ucs(ushort(rc)) {} // implicit
+ Q_DECL_CONSTEXPR QChar(uint rc) Q_DECL_NOTHROW : ucs(ushort(rc & 0xffff)) {}
+ Q_DECL_CONSTEXPR QChar(int rc) Q_DECL_NOTHROW : ucs(ushort(rc & 0xffff)) {}
+ Q_DECL_CONSTEXPR QChar(SpecialCharacter s) Q_DECL_NOTHROW : ucs(ushort(s)) {} // implicit
+ Q_DECL_CONSTEXPR QChar(QLatin1Char ch) Q_DECL_NOTHROW : ucs(ch.unicode()) {} // implicit
#ifndef QT_NO_CAST_FROM_ASCII
- QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(char c) : ucs(uchar(c)) { }
+ QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(char c) Q_DECL_NOTHROW : ucs(uchar(c)) { }
#ifndef QT_RESTRICTED_CAST_FROM_ASCII
- QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(uchar c) : ucs(c) { }
+ QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(uchar c) Q_DECL_NOTHROW : ucs(c) { }
#endif
#endif
// Unicode information
@@ -250,6 +250,31 @@ public:
Script_SoraSompeng,
Script_Takri,
+ // Unicode 7.0 additions
+ Script_CaucasianAlbanian,
+ Script_BassaVah,
+ Script_Duployan,
+ Script_Elbasan,
+ Script_Grantha,
+ Script_PahawhHmong,
+ Script_Khojki,
+ Script_LinearA,
+ Script_Mahajani,
+ Script_Manichaean,
+ Script_MendeKikakui,
+ Script_Modi,
+ Script_Mro,
+ Script_OldNorthArabian,
+ Script_Nabataean,
+ Script_Palmyrene,
+ Script_PauCinHau,
+ Script_OldPermic,
+ Script_PsalterPahlavi,
+ Script_Siddham,
+ Script_Khudawadi,
+ Script_Tirhuta,
+ Script_WarangCiti,
+
ScriptCount
};
@@ -339,15 +364,16 @@ public:
Unicode_6_0,
Unicode_6_1,
Unicode_6_2,
- Unicode_6_3
+ Unicode_6_3,
+ Unicode_7_0
};
// ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO QCharRef TOO
- inline Category category() const { return QChar::category(ucs); }
- inline Direction direction() const { return QChar::direction(ucs); }
- inline JoiningType joiningType() const { return QChar::joiningType(ucs); }
+ inline Category category() const Q_DECL_NOTHROW { return QChar::category(ucs); }
+ inline Direction direction() const Q_DECL_NOTHROW { return QChar::direction(ucs); }
+ inline JoiningType joiningType() const Q_DECL_NOTHROW { return QChar::joiningType(ucs); }
#if QT_DEPRECATED_SINCE(5, 3)
- QT_DEPRECATED inline Joining joining() const
+ QT_DEPRECATED inline Joining joining() const Q_DECL_NOTHROW
{
switch (QChar::joiningType(ucs)) {
case QChar::Joining_Causing: return QChar::Center;
@@ -360,194 +386,177 @@ public:
}
}
#endif
- inline unsigned char combiningClass() const { return QChar::combiningClass(ucs); }
+ inline unsigned char combiningClass() const Q_DECL_NOTHROW { return QChar::combiningClass(ucs); }
- inline QChar mirroredChar() const { return QChar::mirroredChar(ucs); }
- inline bool hasMirrored() const { return QChar::hasMirrored(ucs); }
+ inline QChar mirroredChar() const Q_DECL_NOTHROW { return QChar::mirroredChar(ucs); }
+ inline bool hasMirrored() const Q_DECL_NOTHROW { return QChar::hasMirrored(ucs); }
QString decomposition() const;
- inline Decomposition decompositionTag() const { return QChar::decompositionTag(ucs); }
+ inline Decomposition decompositionTag() const Q_DECL_NOTHROW { return QChar::decompositionTag(ucs); }
- inline int digitValue() const { return QChar::digitValue(ucs); }
- inline QChar toLower() const { return QChar::toLower(ucs); }
- inline QChar toUpper() const { return QChar::toUpper(ucs); }
- inline QChar toTitleCase() const { return QChar::toTitleCase(ucs); }
- inline QChar toCaseFolded() const { return QChar::toCaseFolded(ucs); }
+ inline int digitValue() const Q_DECL_NOTHROW { return QChar::digitValue(ucs); }
+ inline QChar toLower() const Q_DECL_NOTHROW { return QChar::toLower(ucs); }
+ inline QChar toUpper() const Q_DECL_NOTHROW { return QChar::toUpper(ucs); }
+ inline QChar toTitleCase() const Q_DECL_NOTHROW { return QChar::toTitleCase(ucs); }
+ inline QChar toCaseFolded() const Q_DECL_NOTHROW { return QChar::toCaseFolded(ucs); }
- inline Script script() const { return QChar::script(ucs); }
+ inline Script script() const Q_DECL_NOTHROW { return QChar::script(ucs); }
- inline UnicodeVersion unicodeVersion() const { return QChar::unicodeVersion(ucs); }
+ inline UnicodeVersion unicodeVersion() const Q_DECL_NOTHROW { return QChar::unicodeVersion(ucs); }
#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED Q_DECL_CONSTEXPR inline char toAscii() const { return toLatin1(); }
+ QT_DEPRECATED Q_DECL_CONSTEXPR inline char toAscii() const Q_DECL_NOTHROW { return toLatin1(); }
#endif
- Q_DECL_CONSTEXPR inline char toLatin1() const;
- Q_DECL_CONSTEXPR inline ushort unicode() const { return ucs; }
- inline ushort &unicode() { return ucs; }
+ Q_DECL_CONSTEXPR inline char toLatin1() const Q_DECL_NOTHROW { return ucs > 0xff ? '\0' : char(ucs); }
+ Q_DECL_CONSTEXPR inline ushort unicode() const Q_DECL_NOTHROW { return ucs; }
+ Q_DECL_RELAXED_CONSTEXPR inline ushort &unicode() Q_DECL_NOTHROW { return ucs; }
#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED static Q_DECL_CONSTEXPR inline QChar fromAscii(char c)
+ QT_DEPRECATED static Q_DECL_CONSTEXPR inline QChar fromAscii(char c) Q_DECL_NOTHROW
{ return fromLatin1(c); }
#endif
- Q_DECL_CONSTEXPR static inline QChar fromLatin1(char c);
-
- Q_DECL_CONSTEXPR inline bool isNull() const { return ucs == 0; }
-
- inline bool isPrint() const { return QChar::isPrint(ucs); }
- Q_DECL_CONSTEXPR inline bool isSpace() const { return QChar::isSpace(ucs); }
- inline bool isMark() const { return QChar::isMark(ucs); }
- inline bool isPunct() const { return QChar::isPunct(ucs); }
- inline bool isSymbol() const { return QChar::isSymbol(ucs); }
- Q_DECL_CONSTEXPR inline bool isLetter() const { return QChar::isLetter(ucs); }
- Q_DECL_CONSTEXPR inline bool isNumber() const { return QChar::isNumber(ucs); }
- Q_DECL_CONSTEXPR inline bool isLetterOrNumber() const { return QChar::isLetterOrNumber(ucs); }
- Q_DECL_CONSTEXPR inline bool isDigit() const { return QChar::isDigit(ucs); }
- Q_DECL_CONSTEXPR inline bool isLower() const { return QChar::isLower(ucs); }
- Q_DECL_CONSTEXPR inline bool isUpper() const { return QChar::isUpper(ucs); }
- Q_DECL_CONSTEXPR inline bool isTitleCase() const { return QChar::isTitleCase(ucs); }
-
- Q_DECL_CONSTEXPR inline bool isNonCharacter() const { return QChar::isNonCharacter(ucs); }
- Q_DECL_CONSTEXPR inline bool isHighSurrogate() const { return QChar::isHighSurrogate(ucs); }
- Q_DECL_CONSTEXPR inline bool isLowSurrogate() const { return QChar::isLowSurrogate(ucs); }
- Q_DECL_CONSTEXPR inline bool isSurrogate() const { return QChar::isSurrogate(ucs); }
-
- Q_DECL_CONSTEXPR inline uchar cell() const { return uchar(ucs & 0xff); }
- Q_DECL_CONSTEXPR inline uchar row() const { return uchar((ucs>>8)&0xff); }
- inline void setCell(uchar cell);
- inline void setRow(uchar row);
-
- static Q_DECL_CONSTEXPR inline bool isNonCharacter(uint ucs4)
+ static Q_DECL_CONSTEXPR inline QChar fromLatin1(char c) Q_DECL_NOTHROW { return QChar(ushort(uchar(c))); }
+
+ Q_DECL_CONSTEXPR inline bool isNull() const Q_DECL_NOTHROW { return ucs == 0; }
+
+ inline bool isPrint() const Q_DECL_NOTHROW { return QChar::isPrint(ucs); }
+ Q_DECL_CONSTEXPR inline bool isSpace() const Q_DECL_NOTHROW { return QChar::isSpace(ucs); }
+ inline bool isMark() const Q_DECL_NOTHROW { return QChar::isMark(ucs); }
+ inline bool isPunct() const Q_DECL_NOTHROW { return QChar::isPunct(ucs); }
+ inline bool isSymbol() const Q_DECL_NOTHROW { return QChar::isSymbol(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLetter() const Q_DECL_NOTHROW { return QChar::isLetter(ucs); }
+ Q_DECL_CONSTEXPR inline bool isNumber() const Q_DECL_NOTHROW { return QChar::isNumber(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLetterOrNumber() const Q_DECL_NOTHROW { return QChar::isLetterOrNumber(ucs); }
+ Q_DECL_CONSTEXPR inline bool isDigit() const Q_DECL_NOTHROW { return QChar::isDigit(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLower() const Q_DECL_NOTHROW { return QChar::isLower(ucs); }
+ Q_DECL_CONSTEXPR inline bool isUpper() const Q_DECL_NOTHROW { return QChar::isUpper(ucs); }
+ Q_DECL_CONSTEXPR inline bool isTitleCase() const Q_DECL_NOTHROW { return QChar::isTitleCase(ucs); }
+
+ Q_DECL_CONSTEXPR inline bool isNonCharacter() const Q_DECL_NOTHROW { return QChar::isNonCharacter(ucs); }
+ Q_DECL_CONSTEXPR inline bool isHighSurrogate() const Q_DECL_NOTHROW { return QChar::isHighSurrogate(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLowSurrogate() const Q_DECL_NOTHROW { return QChar::isLowSurrogate(ucs); }
+ Q_DECL_CONSTEXPR inline bool isSurrogate() const Q_DECL_NOTHROW { return QChar::isSurrogate(ucs); }
+
+ Q_DECL_CONSTEXPR inline uchar cell() const Q_DECL_NOTHROW { return uchar(ucs & 0xff); }
+ Q_DECL_CONSTEXPR inline uchar row() const Q_DECL_NOTHROW { return uchar((ucs>>8)&0xff); }
+ Q_DECL_RELAXED_CONSTEXPR inline void setCell(uchar acell) Q_DECL_NOTHROW { ucs = ushort((ucs & 0xff00) + acell); }
+ Q_DECL_RELAXED_CONSTEXPR inline void setRow(uchar arow) Q_DECL_NOTHROW { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); }
+
+ static Q_DECL_CONSTEXPR inline bool isNonCharacter(uint ucs4) Q_DECL_NOTHROW
{
return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe);
}
- static Q_DECL_CONSTEXPR inline bool isHighSurrogate(uint ucs4)
+ static Q_DECL_CONSTEXPR inline bool isHighSurrogate(uint ucs4) Q_DECL_NOTHROW
{
return ((ucs4 & 0xfffffc00) == 0xd800);
}
- static Q_DECL_CONSTEXPR inline bool isLowSurrogate(uint ucs4)
+ static Q_DECL_CONSTEXPR inline bool isLowSurrogate(uint ucs4) Q_DECL_NOTHROW
{
return ((ucs4 & 0xfffffc00) == 0xdc00);
}
- static Q_DECL_CONSTEXPR inline bool isSurrogate(uint ucs4)
+ static Q_DECL_CONSTEXPR inline bool isSurrogate(uint ucs4) Q_DECL_NOTHROW
{
return (ucs4 - 0xd800u < 2048u);
}
- static Q_DECL_CONSTEXPR inline bool requiresSurrogates(uint ucs4)
+ static Q_DECL_CONSTEXPR inline bool requiresSurrogates(uint ucs4) Q_DECL_NOTHROW
{
return (ucs4 >= 0x10000);
}
- static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(ushort high, ushort low)
+ static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(ushort high, ushort low) Q_DECL_NOTHROW
{
return (uint(high)<<10) + low - 0x35fdc00;
}
- static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(QChar high, QChar low)
+ static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(QChar high, QChar low) Q_DECL_NOTHROW
{
return surrogateToUcs4(high.ucs, low.ucs);
}
- static Q_DECL_CONSTEXPR inline ushort highSurrogate(uint ucs4)
+ static Q_DECL_CONSTEXPR inline ushort highSurrogate(uint ucs4) Q_DECL_NOTHROW
{
return ushort((ucs4>>10) + 0xd7c0);
}
- static Q_DECL_CONSTEXPR inline ushort lowSurrogate(uint ucs4)
+ static Q_DECL_CONSTEXPR inline ushort lowSurrogate(uint ucs4) Q_DECL_NOTHROW
{
return ushort(ucs4%0x400 + 0xdc00);
}
- static Category QT_FASTCALL category(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Direction QT_FASTCALL direction(uint ucs4) Q_DECL_CONST_FUNCTION;
- static JoiningType QT_FASTCALL joiningType(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Category QT_FASTCALL category(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static Direction QT_FASTCALL direction(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static JoiningType QT_FASTCALL joiningType(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
#if QT_DEPRECATED_SINCE(5, 3)
- QT_DEPRECATED static Joining QT_FASTCALL joining(uint ucs4) Q_DECL_CONST_FUNCTION;
+ QT_DEPRECATED static Joining QT_FASTCALL joining(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
#endif
- static unsigned char QT_FASTCALL combiningClass(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static unsigned char QT_FASTCALL combiningClass(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL mirroredChar(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL hasMirrored(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static uint QT_FASTCALL mirroredChar(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL hasMirrored(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
static QString QT_FASTCALL decomposition(uint ucs4);
- static Decomposition QT_FASTCALL decompositionTag(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Decomposition QT_FASTCALL decompositionTag(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static int QT_FASTCALL digitValue(uint ucs4) Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toLower(uint ucs4) Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toUpper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toTitleCase(uint ucs4) Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toCaseFolded(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static int QT_FASTCALL digitValue(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static uint QT_FASTCALL toLower(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static uint QT_FASTCALL toUpper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static uint QT_FASTCALL toTitleCase(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static uint QT_FASTCALL toCaseFolded(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static Script QT_FASTCALL script(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Script QT_FASTCALL script(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static UnicodeVersion QT_FASTCALL unicodeVersion(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static UnicodeVersion QT_FASTCALL unicodeVersion(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static UnicodeVersion QT_FASTCALL currentUnicodeVersion() Q_DECL_CONST_FUNCTION;
+ static UnicodeVersion QT_FASTCALL currentUnicodeVersion() Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isPrint(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isSpace(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isMark(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isPunct(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isSymbol(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isLetter(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isLetterOrNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isDigit(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isLower(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isUpper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isTitleCase(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isPrint(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isSpace(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ {
+ // note that [0x09..0x0d] + 0x85 are exceptional Cc-s and must be handled explicitly
+ return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09)
+ || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4)));
+ }
+ static bool QT_FASTCALL isMark(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isPunct(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isSymbol(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isLetter(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ {
+ return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
+ || (ucs4 > 127 && QChar::isLetter_helper(ucs4));
+ }
+ static Q_DECL_CONSTEXPR inline bool isNumber(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); }
+ static Q_DECL_CONSTEXPR inline bool isLetterOrNumber(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ {
+ return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
+ || (ucs4 >= '0' && ucs4 <= '9')
+ || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4));
+ }
+ static Q_DECL_CONSTEXPR inline bool isDigit(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); }
+ static Q_DECL_CONSTEXPR inline bool isLower(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); }
+ static Q_DECL_CONSTEXPR inline bool isUpper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); }
+ static Q_DECL_CONSTEXPR inline bool isTitleCase(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION
+ { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; }
private:
- static bool QT_FASTCALL isSpace_helper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isLetter_helper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isNumber_helper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isLetterOrNumber_helper(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isSpace_helper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isLetter_helper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isNumber_helper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
+ static bool QT_FASTCALL isLetterOrNumber_helper(uint ucs4) Q_DECL_NOTHROW Q_DECL_CONST_FUNCTION;
#ifdef QT_NO_CAST_FROM_ASCII
- QChar(char c);
- QChar(uchar c);
+ QChar(char c) Q_DECL_NOTHROW;
+ QChar(uchar c) Q_DECL_NOTHROW;
#endif
- friend Q_DECL_CONSTEXPR bool operator==(QChar, QChar);
- friend Q_DECL_CONSTEXPR bool operator< (QChar, QChar);
+ friend Q_DECL_CONSTEXPR bool operator==(QChar, QChar) Q_DECL_NOTHROW;
+ friend Q_DECL_CONSTEXPR bool operator< (QChar, QChar) Q_DECL_NOTHROW;
ushort ucs;
};
Q_DECLARE_TYPEINFO(QChar, Q_MOVABLE_TYPE);
-Q_DECL_CONSTEXPR inline char QChar::toLatin1() const { return ucs > 0xff ? '\0' : char(ucs); }
-Q_DECL_CONSTEXPR inline QChar QChar::fromLatin1(char c) { return QChar(ushort(uchar(c))); }
-
-inline void QChar::setCell(uchar acell)
-{ ucs = ushort((ucs & 0xff00) + acell); }
-inline void QChar::setRow(uchar arow)
-{ ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); }
-
-Q_DECL_CONSTEXPR inline bool QChar::isSpace(uint ucs4)
-{
- // note that [0x09..0x0d] + 0x85 are exceptional Cc-s and must be handled explicitly
- return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09)
- || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4)));
-}
-Q_DECL_CONSTEXPR inline bool QChar::isLetter(uint ucs4)
-{
- return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
- || (ucs4 > 127 && QChar::isLetter_helper(ucs4));
-}
-Q_DECL_CONSTEXPR inline bool QChar::isNumber(uint ucs4)
-{ return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); }
-Q_DECL_CONSTEXPR inline bool QChar::isLetterOrNumber(uint ucs4)
-{
- return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
- || (ucs4 >= '0' && ucs4 <= '9')
- || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4));
-}
-Q_DECL_CONSTEXPR inline bool QChar::isDigit(uint ucs4)
-{ return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); }
-Q_DECL_CONSTEXPR inline bool QChar::isLower(uint ucs4)
-{ return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); }
-Q_DECL_CONSTEXPR inline bool QChar::isUpper(uint ucs4)
-{ return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); }
-Q_DECL_CONSTEXPR inline bool QChar::isTitleCase(uint ucs4)
-{ return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; }
-
-Q_DECL_CONSTEXPR inline bool operator==(QChar c1, QChar c2) { return c1.ucs == c2.ucs; }
-Q_DECL_CONSTEXPR inline bool operator< (QChar c1, QChar c2) { return c1.ucs < c2.ucs; }
+Q_DECL_CONSTEXPR inline bool operator==(QChar c1, QChar c2) Q_DECL_NOTHROW { return c1.ucs == c2.ucs; }
+Q_DECL_CONSTEXPR inline bool operator< (QChar c1, QChar c2) Q_DECL_NOTHROW { return c1.ucs < c2.ucs; }
Q_DECL_CONSTEXPR inline bool operator!=(QChar c1, QChar c2) { return !operator==(c1, c2); }
Q_DECL_CONSTEXPR inline bool operator>=(QChar c1, QChar c2) { return !operator< (c1, c2); }
diff --git a/src/corelib/tools/qcollator_icu.cpp b/src/corelib/tools/qcollator_icu.cpp
index 6fa681b63b..f068f22d13 100644
--- a/src/corelib/tools/qcollator_icu.cpp
+++ b/src/corelib/tools/qcollator_icu.cpp
@@ -52,8 +52,12 @@ void QCollatorPrivate::init()
UErrorCode status = U_ZERO_ERROR;
QByteArray name = locale.bcp47Name().replace(QLatin1Char('-'), QLatin1Char('_')).toLatin1();
collator = ucol_open(name.constData(), &status);
- if (U_FAILURE(status))
+ if (U_FAILURE(status)) {
qWarning("Could not create collator: %d", status);
+ collator = 0;
+ dirty = false;
+ return;
+ }
// enable normalization by default
ucol_setAttribute(collator, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
@@ -97,17 +101,26 @@ int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) con
if (d->dirty)
d->init();
- return ucol_strcoll(d->collator, (const UChar *)s1, len1, (const UChar *)s2, len2);
+ if (d->collator)
+ return ucol_strcoll(d->collator, (const UChar *)s1, len1, (const UChar *)s2, len2);
+
+ return QString::compare(QString(s1, len1), QString(s2, len2), d->caseSensitivity);
}
int QCollator::compare(const QString &s1, const QString &s2) const
{
- return compare(s1.constData(), s1.size(), s2.constData(), s2.size());
+ if (d->collator)
+ return compare(s1.constData(), s1.size(), s2.constData(), s2.size());
+
+ return QString::compare(s1, s2, d->caseSensitivity);
}
int QCollator::compare(const QStringRef &s1, const QStringRef &s2) const
{
- return compare(s1.constData(), s1.size(), s2.constData(), s2.size());
+ if (d->collator)
+ return compare(s1.constData(), s1.size(), s2.constData(), s2.size());
+
+ return QStringRef::compare(s1, s2, d->caseSensitivity);
}
QCollatorSortKey QCollator::sortKey(const QString &string) const
@@ -115,16 +128,20 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const
if (d->dirty)
d->init();
- QByteArray result(16 + string.size() + (string.size() >> 2), Qt::Uninitialized);
- int size = ucol_getSortKey(d->collator, (const UChar *)string.constData(),
- string.size(), (uint8_t *)result.data(), result.size());
- if (size > result.size()) {
- result.resize(size);
- size = ucol_getSortKey(d->collator, (const UChar *)string.constData(),
- string.size(), (uint8_t *)result.data(), result.size());
+ if (d->collator) {
+ QByteArray result(16 + string.size() + (string.size() >> 2), Qt::Uninitialized);
+ int size = ucol_getSortKey(d->collator, (const UChar *)string.constData(),
+ string.size(), (uint8_t *)result.data(), result.size());
+ if (size > result.size()) {
+ result.resize(size);
+ size = ucol_getSortKey(d->collator, (const UChar *)string.constData(),
+ string.size(), (uint8_t *)result.data(), result.size());
+ }
+ result.truncate(size);
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(result));
}
- result.truncate(size);
- return QCollatorSortKey(new QCollatorSortKeyPrivate(result));
+
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(QByteArray()));
}
int QCollatorSortKey::compare(const QCollatorSortKey &otherKey) const
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 505a6f863b..e445055e1d 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -122,6 +122,8 @@ struct ParsedDate
int year, month, day;
};
+// prevent this function from being inlined into all 10 users
+Q_NEVER_INLINE
static ParsedDate getDateFromJulianDay(qint64 julianDay)
{
/*
@@ -628,16 +630,13 @@ int QDate::weekNumber(int *yearNumber) const
QString QDate::shortMonthName(int month, QDate::MonthNameType type)
{
- if (month < 1 || month > 12)
- return QString();
-
- switch (type) {
- case QDate::DateFormat:
- return QLocale::system().monthName(month, QLocale::ShortFormat);
- case QDate::StandaloneFormat:
- return QLocale::system().standaloneMonthName(month, QLocale::ShortFormat);
- default:
- break;
+ if (month >= 1 || month <= 12) {
+ switch (type) {
+ case QDate::DateFormat:
+ return QLocale::system().monthName(month, QLocale::ShortFormat);
+ case QDate::StandaloneFormat:
+ return QLocale::system().standaloneMonthName(month, QLocale::ShortFormat);
+ }
}
return QString();
}
@@ -675,16 +674,13 @@ QString QDate::shortMonthName(int month, QDate::MonthNameType type)
QString QDate::longMonthName(int month, MonthNameType type)
{
- if (month < 1 || month > 12)
- return QString();
-
- switch (type) {
- case QDate::DateFormat:
- return QLocale::system().monthName(month, QLocale::LongFormat);
- case QDate::StandaloneFormat:
- return QLocale::system().standaloneMonthName(month, QLocale::LongFormat);
- default:
- break;
+ if (month >= 1 && month <= 12) {
+ switch (type) {
+ case QDate::DateFormat:
+ return QLocale::system().monthName(month, QLocale::LongFormat);
+ case QDate::StandaloneFormat:
+ return QLocale::system().standaloneMonthName(month, QLocale::LongFormat);
+ }
}
return QString();
}
@@ -717,16 +713,13 @@ QString QDate::longMonthName(int month, MonthNameType type)
QString QDate::shortDayName(int weekday, MonthNameType type)
{
- if (weekday < 1 || weekday > 7)
- return QString();
-
- switch (type) {
- case QDate::DateFormat:
- return QLocale::system().dayName(weekday, QLocale::ShortFormat);
- case QDate::StandaloneFormat:
- return QLocale::system().standaloneDayName(weekday, QLocale::ShortFormat);
- default:
- break;
+ if (weekday >= 1 && weekday <= 7) {
+ switch (type) {
+ case QDate::DateFormat:
+ return QLocale::system().dayName(weekday, QLocale::ShortFormat);
+ case QDate::StandaloneFormat:
+ return QLocale::system().standaloneDayName(weekday, QLocale::ShortFormat);
+ }
}
return QString();
}
@@ -759,23 +752,41 @@ QString QDate::shortDayName(int weekday, MonthNameType type)
QString QDate::longDayName(int weekday, MonthNameType type)
{
- if (weekday < 1 || weekday > 7)
- return QString();
-
- switch (type) {
- case QDate::DateFormat:
- return QLocale::system().dayName(weekday, QLocale::LongFormat);
- case QDate::StandaloneFormat:
- return QLocale::system().standaloneDayName(weekday, QLocale::LongFormat);
- default:
- break;
+ if (weekday >= 1 && weekday <= 7) {
+ switch (type) {
+ case QDate::DateFormat:
+ return QLocale::system().dayName(weekday, QLocale::LongFormat);
+ case QDate::StandaloneFormat:
+ return QLocale::system().standaloneDayName(weekday, QLocale::LongFormat);
+ }
}
- return QLocale::system().dayName(weekday, QLocale::LongFormat);
+ return QString();
}
#endif //QT_NO_TEXTDATE
#ifndef QT_NO_DATESTRING
+#ifndef QT_NO_TEXTDATE
+static QString toStringTextDate(QDate date)
+{
+ const ParsedDate pd = getDateFromJulianDay(date.toJulianDay());
+ static const QLatin1Char sp(' ');
+ return date.shortDayName(date.dayOfWeek()) + sp
+ + date.shortMonthName(pd.month) + sp
+ + QString::number(pd.day) + sp
+ + QString::number(pd.year);
+}
+#endif // QT_NO_TEXTDATE
+
+static QString toStringIsoDate(qint64 jd)
+{
+ const ParsedDate pd = getDateFromJulianDay(jd);
+ if (pd.year >= 0 && pd.year <= 9999)
+ return QString::asprintf("%04d-%02d-%02d", pd.year, pd.month, pd.day);
+ else
+ return QString();
+}
+
/*!
\fn QString QDate::toString(Qt::DateFormat format) const
@@ -827,8 +838,6 @@ QString QDate::toString(Qt::DateFormat format) const
if (!isValid())
return QString();
- ParsedDate pd;
-
switch (format) {
case Qt::SystemLocaleDate:
case Qt::SystemLocaleShortDate:
@@ -845,17 +854,10 @@ QString QDate::toString(Qt::DateFormat format) const
default:
#ifndef QT_NO_TEXTDATE
case Qt::TextDate:
- pd = getDateFromJulianDay(jd);
- return QString::fromLatin1("%1 %2 %3 %4").arg(shortDayName(dayOfWeek()))
- .arg(shortMonthName(pd.month))
- .arg(pd.day)
- .arg(pd.year);
+ return toStringTextDate(*this);
#endif
case Qt::ISODate:
- pd = getDateFromJulianDay(jd);
- if (pd.year < 0 || pd.year > 9999)
- return QString();
- return QString::asprintf("%04d-%02d-%02d", pd.year, pd.month, pd.day);
+ return toStringIsoDate(jd);
}
}
@@ -1581,9 +1583,7 @@ QString QTime::toString(Qt::DateFormat format) const
case Qt::ISODate:
case Qt::TextDate:
default:
- return QString::fromLatin1("%1:%2:%3").arg(hour(), 2, 10, QLatin1Char('0'))
- .arg(minute(), 2, 10, QLatin1Char('0'))
- .arg(second(), 2, 10, QLatin1Char('0'));
+ return QString::asprintf("%02d:%02d:%02d", hour(), minute(), second());
}
}
@@ -2185,7 +2185,7 @@ static QString qt_tzname(QDateTimePrivate::DaylightStatus daylightStatus)
// then null date/time will be returned, you should adjust the date first if
// you need a guaranteed result.
static qint64 qt_mktime(QDate *date, QTime *time, QDateTimePrivate::DaylightStatus *daylightStatus,
- QString *abbreviation, bool *ok)
+ QString *abbreviation, bool *ok = 0)
{
const qint64 msec = time->msec();
int yy, mm, dd;
@@ -2446,7 +2446,7 @@ static bool epochMSecsToLocalTime(qint64 msecs, QDate *localDate, QTime *localTi
static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
QDateTimePrivate::DaylightStatus *daylightStatus,
QDate *localDate = 0, QTime *localTime = 0,
- QString *abbreviation = 0, bool *ok = 0)
+ QString *abbreviation = 0)
{
QDate dt;
QTime tm;
@@ -2469,8 +2469,6 @@ static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
*localDate = dt;
if (localTime)
*localTime = tm;
- if (ok)
- *ok = true;
return utcMsecs;
}
} else {
@@ -2485,8 +2483,6 @@ static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
*daylightStatus = QDateTimePrivate::StandardTime;
if (abbreviation)
*abbreviation = qt_tzname(QDateTimePrivate::StandardTime);
- if (ok)
- *ok = true;
return utcMsecs;
} else if (localMsecs >= msecsMax - MSECS_PER_DAY) {
@@ -2505,8 +2501,6 @@ static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
*localDate = dt;
if (localTime)
*localTime = tm;
- if (ok)
- *ok = true;
return utcMsecs;
}
}
@@ -2520,7 +2514,7 @@ static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
--day;
QDate fakeDate(2037, month, day);
qint64 fakeDiff = fakeDate.daysTo(dt);
- qint64 utcMsecs = qt_mktime(&fakeDate, &tm, daylightStatus, abbreviation, ok);
+ qint64 utcMsecs = qt_mktime(&fakeDate, &tm, daylightStatus, abbreviation);
if (localDate)
*localDate = fakeDate.addDays(fakeDiff);
if (localTime)
@@ -2535,7 +2529,7 @@ static qint64 localMSecsToEpochMSecs(qint64 localMsecs,
} else {
// Clearly falls inside 1970-2037 suported range so can use mktime
- qint64 utcMsecs = qt_mktime(&dt, &tm, daylightStatus, abbreviation, ok);
+ qint64 utcMsecs = qt_mktime(&dt, &tm, daylightStatus, abbreviation);
if (localDate)
*localDate = dt;
if (localTime)
@@ -2639,15 +2633,18 @@ void QDateTimePrivate::setDateTime(const QDate &date, const QTime &time)
checkValidDateTime();
}
-void QDateTimePrivate::getDateTime(QDate *date, QTime *time) const
+QPair<QDate, QTime> QDateTimePrivate::getDateTime() const
{
- msecsToTime(m_msecs, date, time);
+ QPair<QDate, QTime> result;
+ msecsToTime(m_msecs, &result.first, &result.second);
- if (date && isNullDate())
- *date = QDate();
+ if (isNullDate())
+ result.first = QDate();
- if (time && isNullTime())
- *time = QTime();
+ if (isNullTime())
+ result.second = QTime();
+
+ return result;
}
// Set the Daylight Status if LocalTime set via msecs
@@ -3240,7 +3237,6 @@ bool QDateTime::isDaylightTime() const
void QDateTime::setDate(const QDate &date)
{
- detach();
d->setDateTime(date, time());
}
@@ -3259,7 +3255,6 @@ void QDateTime::setDate(const QDate &date)
void QDateTime::setTime(const QTime &time)
{
- detach();
d->setDateTime(date(), time);
}
@@ -3281,7 +3276,7 @@ void QDateTime::setTime(const QTime &time)
void QDateTime::setTimeSpec(Qt::TimeSpec spec)
{
- detach();
+ QDateTimePrivate *d = this->d.data(); // detaches (and shadows d)
d->setTimeSpec(spec, 0);
d->checkValidDateTime();
}
@@ -3303,7 +3298,7 @@ void QDateTime::setTimeSpec(Qt::TimeSpec spec)
void QDateTime::setOffsetFromUtc(int offsetSeconds)
{
- detach();
+ QDateTimePrivate *d = this->d.data(); // detaches (and shadows d)
d->setTimeSpec(Qt::OffsetFromUTC, offsetSeconds);
d->checkValidDateTime();
}
@@ -3322,7 +3317,7 @@ void QDateTime::setOffsetFromUtc(int offsetSeconds)
void QDateTime::setTimeZone(const QTimeZone &toZone)
{
- detach();
+ QDateTimePrivate *d = this->d.data(); // detaches (and shadows d)
d->m_spec = Qt::TimeZone;
d->m_offsetFromUtc = 0;
d->m_timeZone = toZone;
@@ -3398,7 +3393,7 @@ uint QDateTime::toTime_t() const
*/
void QDateTime::setMSecsSinceEpoch(qint64 msecs)
{
- detach();
+ QDateTimePrivate *d = this->d.data(); // detaches (and shadows d)
d->m_status = 0;
switch (d->m_spec) {
@@ -3535,9 +3530,9 @@ QString QDateTime::toString(Qt::DateFormat format) const
default:
#ifndef QT_NO_TEXTDATE
case Qt::TextDate: {
- QDate dt;
- QTime tm;
- d->getDateTime(&dt, &tm);
+ const QPair<QDate, QTime> p = d->getDateTime();
+ const QDate &dt = p.first;
+ const QTime &tm = p.second;
//We cant use date.toString(Qt::TextDate) as we need to insert the time before the year
buf = QString::fromLatin1("%1 %2 %3 %4 %5").arg(dt.shortDayName(dt.dayOfWeek()))
.arg(dt.shortMonthName(dt.month()))
@@ -3553,9 +3548,9 @@ QString QDateTime::toString(Qt::DateFormat format) const
}
#endif
case Qt::ISODate: {
- QDate dt;
- QTime tm;
- d->getDateTime(&dt, &tm);
+ const QPair<QDate, QTime> p = d->getDateTime();
+ const QDate &dt = p.first;
+ const QTime &tm = p.second;
buf = dt.toString(Qt::ISODate);
if (buf.isEmpty())
return QString(); // failed to convert
@@ -3672,10 +3667,9 @@ QString QDateTime::toString(const QString& format) const
QDateTime QDateTime::addDays(qint64 ndays) const
{
QDateTime dt(*this);
- dt.detach();
- QDate date;
- QTime time;
- d->getDateTime(&date, &time);
+ QPair<QDate, QTime> p = d->getDateTime();
+ QDate &date = p.first;
+ QTime &time = p.second;
date = date.addDays(ndays);
// Result might fall into "missing" DaylightTime transition hour,
// so call conversion and use the adjusted returned time
@@ -3708,10 +3702,9 @@ QDateTime QDateTime::addDays(qint64 ndays) const
QDateTime QDateTime::addMonths(int nmonths) const
{
QDateTime dt(*this);
- dt.detach();
- QDate date;
- QTime time;
- d->getDateTime(&date, &time);
+ QPair<QDate, QTime> p = d->getDateTime();
+ QDate &date = p.first;
+ QTime &time = p.second;
date = date.addMonths(nmonths);
// Result might fall into "missing" DaylightTime transition hour,
// so call conversion and use the adjusted returned time
@@ -3744,10 +3737,9 @@ QDateTime QDateTime::addMonths(int nmonths) const
QDateTime QDateTime::addYears(int nyears) const
{
QDateTime dt(*this);
- dt.detach();
- QDate date;
- QTime time;
- d->getDateTime(&date, &time);
+ QPair<QDate, QTime> p = d->getDateTime();
+ QDate &date = p.first;
+ QTime &time = p.second;
date = date.addYears(nyears);
// Result might fall into "missing" DaylightTime transition hour,
// so call conversion and use the adjusted returned time
@@ -3793,7 +3785,6 @@ QDateTime QDateTime::addMSecs(qint64 msecs) const
return QDateTime();
QDateTime dt(*this);
- dt.detach();
if (d->m_spec == Qt::LocalTime || d->m_spec == Qt::TimeZone)
// Convert to real UTC first in case crosses daylight transition
dt.setMSecsSinceEpoch(d->toMSecsSinceEpoch() + msecs);
@@ -4270,7 +4261,6 @@ QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs)
QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds)
{
QDateTime dt;
- dt.detach();
dt.d->setTimeSpec(spec, offsetSeconds);
dt.setMSecsSinceEpoch(msecs);
return dt;
@@ -4690,14 +4680,6 @@ QDateTime QDateTime::fromString(const QString &string, const QString &format)
\sa toTimeSpec()
*/
-/*!
- \internal
- */
-void QDateTime::detach()
-{
- d.detach();
-}
-
/*****************************************************************************
Date/time stream functions
*****************************************************************************/
@@ -4781,14 +4763,13 @@ QDataStream &operator>>(QDataStream &in, QTime &time)
*/
QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
{
- QDate dt;
- QTime tm;
+ QPair<QDate, QTime> dateAndTime;
if (out.version() >= QDataStream::Qt_5_2) {
// In 5.2 we switched to using Qt::TimeSpec and added offset support
- dateTime.d->getDateTime(&dt, &tm);
- out << dt << tm << qint8(dateTime.timeSpec());
+ dateAndTime = dateTime.d->getDateTime();
+ out << dateAndTime << qint8(dateTime.timeSpec());
if (dateTime.timeSpec() == Qt::OffsetFromUTC)
out << qint32(dateTime.offsetFromUtc());
#ifndef QT_BOOTSTRAPPED
@@ -4802,17 +4783,14 @@ QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
// This approach is wrong and should not be used again; it breaks
// the guarantee that a deserialised local datetime is the same time
// of day, regardless of which timezone it was serialised in.
- if (dateTime.isValid())
- dateTime.toUTC().d->getDateTime(&dt, &tm);
- else
- dateTime.d->getDateTime(&dt, &tm);
- out << dt << tm << qint8(dateTime.timeSpec());
+ dateAndTime = (dateTime.isValid() ? dateTime.toUTC() : dateTime).d->getDateTime();
+ out << dateAndTime << qint8(dateTime.timeSpec());
} else if (out.version() >= QDataStream::Qt_4_0) {
// From 4.0 to 5.1 (except 5.0) we used QDateTimePrivate::Spec
- dateTime.d->getDateTime(&dt, &tm);
- out << dt << tm;
+ dateAndTime = dateTime.d->getDateTime();
+ out << dateAndTime;
if (out.version() >= QDataStream::Qt_4_0) {
switch (dateTime.timeSpec()) {
case Qt::UTC:
@@ -4835,8 +4813,8 @@ QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
} else { // version < QDataStream::Qt_4_0
// Before 4.0 there was no TimeSpec, only Qt::LocalTime was supported
- dateTime.d->getDateTime(&dt, &tm);
- out << dt << tm;
+ dateAndTime = dateTime.d->getDateTime();
+ out << dateAndTime;
}
@@ -4853,8 +4831,6 @@ QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)
{
- dateTime.detach();
-
QDate dt;
QTime tm;
qint8 ts = 0;
diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h
index 88288872df..78ec2b156a 100644
--- a/src/corelib/tools/qdatetime.h
+++ b/src/corelib/tools/qdatetime.h
@@ -321,7 +321,6 @@ public:
private:
friend class QDateTimePrivate;
- void detach();
// ### Qt6: Using a private here has high impact on runtime
// on users such as QFileInfo. In Qt 6, the data members
diff --git a/src/corelib/tools/qdatetime_p.h b/src/corelib/tools/qdatetime_p.h
index b8934f7f70..9f663dab99 100644
--- a/src/corelib/tools/qdatetime_p.h
+++ b/src/corelib/tools/qdatetime_p.h
@@ -48,6 +48,7 @@
#include "qplatformdefs.h"
#include "QtCore/qatomic.h"
#include "QtCore/qdatetime.h"
+#include "QtCore/qpair.h"
#include "qtimezone.h"
@@ -113,7 +114,7 @@ public:
void setTimeSpec(Qt::TimeSpec spec, int offsetSeconds);
void setDateTime(const QDate &date, const QTime &time);
- void getDateTime(QDate *date, QTime *time) const;
+ QPair<QDate, QTime> getDateTime() const;
void setDaylightStatus(DaylightStatus status);
DaylightStatus daylightStatus() const;
diff --git a/src/corelib/tools/qelapsedtimer_win.cpp b/src/corelib/tools/qelapsedtimer_win.cpp
index dcddc96e32..eab2f8ef6c 100644
--- a/src/corelib/tools/qelapsedtimer_win.cpp
+++ b/src/corelib/tools/qelapsedtimer_win.cpp
@@ -52,19 +52,13 @@ static void resolveLibs()
if (done)
return;
-#ifndef Q_OS_WINRT
+#if !defined(Q_OS_WINRT) && !defined(Q_OS_WINCE)
// try to get GetTickCount64 from the system
HMODULE kernel32 = GetModuleHandleW(L"kernel32");
if (!kernel32)
return;
-
-#if defined(Q_OS_WINCE)
- // does this function exist on WinCE, or will ever exist?
- ptrGetTickCount64 = (PtrGetTickCount64)GetProcAddress(kernel32, L"GetTickCount64");
-#else
ptrGetTickCount64 = (PtrGetTickCount64)GetProcAddress(kernel32, "GetTickCount64");
-#endif
-#endif // !Q_OS_WINRT
+#endif // !Q_OS_WINRT && !Q_OS_WINCE
// Retrieve the number of high-resolution performance counter ticks per second
LARGE_INTEGER frequency;
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index a9ece12670..c4c8c8f3cc 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -38,10 +38,9 @@
#include <QtCore/qchar.h>
#include <QtCore/qiterator.h>
#include <QtCore/qlist.h>
-#include <QtCore/qpair.h>
#include <QtCore/qrefcount.h>
+#include <QtCore/qhashfunctions.h>
-#include <numeric> // for std::accumulate
#ifdef Q_COMPILER_INITIALIZER_LISTS
#include <initializer_list>
#endif
@@ -54,101 +53,6 @@
QT_BEGIN_NAMESPACE
-class QBitArray;
-class QByteArray;
-class QString;
-class QStringRef;
-class QLatin1String;
-
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHashBits(const void *p, size_t size, uint seed = 0) Q_DECL_NOTHROW;
-
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(char key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(uchar key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(signed char key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(ushort key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(short key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(uint key, uint seed = 0) Q_DECL_NOTHROW { return key ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(int key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(ulong key, uint seed = 0) Q_DECL_NOTHROW
-{
- return (sizeof(ulong) > sizeof(uint))
- ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed)
- : (uint(key & (~0U)) ^ seed);
-}
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(long key, uint seed = 0) Q_DECL_NOTHROW { return qHash(ulong(key), seed); }
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(quint64 key, uint seed = 0) Q_DECL_NOTHROW
-{
- return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed;
-}
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(qint64 key, uint seed = 0) Q_DECL_NOTHROW { return qHash(quint64(key), seed); }
-Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(float key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(double key, uint seed = 0) Q_DECL_NOTHROW;
-#ifndef Q_OS_DARWIN
-Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(long double key, uint seed = 0) Q_DECL_NOTHROW;
-#endif
-Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(const QChar key, uint seed = 0) Q_DECL_NOTHROW { return qHash(key.unicode(), seed); }
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QByteArray &key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QString &key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QStringRef &key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QBitArray &key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(QLatin1String key, uint seed = 0) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qt_hash(const QString &key) Q_DECL_NOTHROW;
-Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qt_hash(const QStringRef &key) Q_DECL_NOTHROW;
-
-template <class T> inline uint qHash(const T *key, uint seed = 0) Q_DECL_NOTHROW
-{
- return qHash(reinterpret_cast<quintptr>(key), seed);
-}
-template<typename T> inline uint qHash(const T &t, uint seed)
- Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
-{ return (qHash(t) ^ seed); }
-
-namespace QtPrivate {
-
-struct QHashCombine {
- typedef uint result_type;
- template <typename T>
- Q_DECL_CONSTEXPR result_type operator()(uint seed, const T &t) const Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
- // combiner taken from N3876 / boost::hash_combine
- { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; }
-};
-
-struct QHashCombineCommutative {
- // QHashCombine is a good hash combiner, but is not commutative,
- // ie. it depends on the order of the input elements. That is
- // usually what we want: {0,1,3} should hash differently than
- // {1,3,0}. Except when it isn't (e.g. for QSet and
- // QHash). Therefore, provide a commutative combiner, too.
- typedef uint result_type;
- template <typename T>
- Q_DECL_CONSTEXPR result_type operator()(uint seed, const T &t) const Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
- { return seed + qHash(t); } // don't use xor!
-};
-
-} // namespace QtPrivate
-
-template <typename InputIterator>
-inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0)
- Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(*first))) // assume iterator operations don't throw
-{
- return std::accumulate(first, last, seed, QtPrivate::QHashCombine());
-}
-
-template <typename InputIterator>
-inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0)
- Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(*first))) // assume iterator operations don't throw
-{
- return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative());
-}
-
-template <typename T1, typename T2> inline uint qHash(const QPair<T1, T2> &key, uint seed = 0)
- Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed)))
-{
- uint h1 = qHash(key.first, seed);
- uint h2 = qHash(key.second, seed);
- return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed;
-}
-
struct Q_CORE_EXPORT QHashData
{
struct Node {
diff --git a/src/corelib/tools/qhashfunctions.h b/src/corelib/tools/qhashfunctions.h
new file mode 100644
index 0000000000..e15fbb07ac
--- /dev/null
+++ b/src/corelib/tools/qhashfunctions.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Marc Mutz <marc.mutz@kdab.com>
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QHASHFUNCTIONS_H
+#define QHASHFUNCTIONS_H
+
+#include <QtCore/qchar.h>
+#include <QtCore/qpair.h>
+
+#include <numeric> // for std::accumulate
+
+#if 0
+#pragma qt_class(QHashFunctions)
+#endif
+
+#if defined(Q_CC_MSVC)
+#pragma warning( push )
+#pragma warning( disable : 4311 ) // disable pointer truncation warning
+#pragma warning( disable : 4127 ) // conditional expression is constant
+#endif
+
+QT_BEGIN_NAMESPACE
+
+class QBitArray;
+class QByteArray;
+class QString;
+class QStringRef;
+class QLatin1String;
+
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHashBits(const void *p, size_t size, uint seed = 0) Q_DECL_NOTHROW;
+
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(char key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(uchar key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(signed char key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(ushort key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(short key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(uint key, uint seed = 0) Q_DECL_NOTHROW { return key ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(int key, uint seed = 0) Q_DECL_NOTHROW { return uint(key) ^ seed; }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(ulong key, uint seed = 0) Q_DECL_NOTHROW
+{
+ return (sizeof(ulong) > sizeof(uint))
+ ? (uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed)
+ : (uint(key & (~0U)) ^ seed);
+}
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(long key, uint seed = 0) Q_DECL_NOTHROW { return qHash(ulong(key), seed); }
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(quint64 key, uint seed = 0) Q_DECL_NOTHROW
+{
+ return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed;
+}
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(qint64 key, uint seed = 0) Q_DECL_NOTHROW { return qHash(quint64(key), seed); }
+Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(float key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(double key, uint seed = 0) Q_DECL_NOTHROW;
+#ifndef Q_OS_DARWIN
+Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(long double key, uint seed = 0) Q_DECL_NOTHROW;
+#endif
+Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(const QChar key, uint seed = 0) Q_DECL_NOTHROW { return qHash(key.unicode(), seed); }
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QByteArray &key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QString &key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QStringRef &key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QBitArray &key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(QLatin1String key, uint seed = 0) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qt_hash(const QString &key) Q_DECL_NOTHROW;
+Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qt_hash(const QStringRef &key) Q_DECL_NOTHROW;
+
+template <class T> inline uint qHash(const T *key, uint seed = 0) Q_DECL_NOTHROW
+{
+ return qHash(reinterpret_cast<quintptr>(key), seed);
+}
+template<typename T> inline uint qHash(const T &t, uint seed)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
+{ return qHash(t) ^ seed; }
+
+namespace QtPrivate {
+
+struct QHashCombine {
+ typedef uint result_type;
+ template <typename T>
+ Q_DECL_CONSTEXPR result_type operator()(uint seed, const T &t) const Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
+ // combiner taken from N3876 / boost::hash_combine
+ { return seed ^ (qHash(t) + 0x9e3779b9 + (seed << 6) + (seed >> 2)) ; }
+};
+
+struct QHashCombineCommutative {
+ // QHashCombine is a good hash combiner, but is not commutative,
+ // ie. it depends on the order of the input elements. That is
+ // usually what we want: {0,1,3} should hash differently than
+ // {1,3,0}. Except when it isn't (e.g. for QSet and
+ // QHash). Therefore, provide a commutative combiner, too.
+ typedef uint result_type;
+ template <typename T>
+ Q_DECL_CONSTEXPR result_type operator()(uint seed, const T &t) const Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t)))
+ { return seed + qHash(t); } // don't use xor!
+};
+
+} // namespace QtPrivate
+
+template <typename InputIterator>
+inline uint qHashRange(InputIterator first, InputIterator last, uint seed = 0)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(*first))) // assume iterator operations don't throw
+{
+ return std::accumulate(first, last, seed, QtPrivate::QHashCombine());
+}
+
+template <typename InputIterator>
+inline uint qHashRangeCommutative(InputIterator first, InputIterator last, uint seed = 0)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(*first))) // assume iterator operations don't throw
+{
+ return std::accumulate(first, last, seed, QtPrivate::QHashCombineCommutative());
+}
+
+template <typename T1, typename T2> inline uint qHash(const QPair<T1, T2> &key, uint seed = 0)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(key.first, seed)) && noexcept(qHash(key.second, seed)))
+{
+ uint h1 = qHash(key.first, seed);
+ uint h2 = qHash(key.second, seed);
+ return ((h1 << 16) | (h1 >> 16)) ^ h2 ^ seed;
+}
+
+QT_END_NAMESPACE
+
+#if defined(Q_CC_MSVC)
+#pragma warning( pop )
+#endif
+
+#endif // QHASHFUNCTIONS_H
diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp
index db00dcb458..126147716c 100644
--- a/src/corelib/tools/qlist.cpp
+++ b/src/corelib/tools/qlist.cpp
@@ -584,6 +584,54 @@ void **QListData::erase(void **xi)
\sa operator==()
*/
+/*! \fn bool operator<(const QList<T> &lhs, const QList<T> &rhs)
+ \since 5.6
+ \relates QList
+
+ Returns \c true if list \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator<=(const QList<T> &lhs, const QList<T> &rhs)
+ \since 5.6
+ \relates QList
+
+ Returns \c true if list \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>(const QList<T> &lhs, const QList<T> &rhs)
+ \since 5.6
+ \relates QList
+
+ Returns \c true if list \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>=(const QList<T> &lhs, const QList<T> &rhs)
+ \since 5.6
+ \relates QList
+
+ Returns \c true if list \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
/*!
\fn int QList::size() const
@@ -1000,6 +1048,52 @@ void **QListData::erase(void **xi)
\sa constBegin(), end()
*/
+/*! \fn QList::reverse_iterator QList::rbegin()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the list, in reverse order.
+
+ \sa begin(), crbegin(), rend()
+*/
+
+/*! \fn QList::const_reverse_iterator QList::rbegin() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QList::const_reverse_iterator QList::crbegin() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the list, in reverse order.
+
+ \sa begin(), rbegin(), rend()
+*/
+
+/*! \fn QList::reverse_iterator QList::rend()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to one past
+ the last item in the list, in reverse order.
+
+ \sa end(), crend(), rbegin()
+*/
+
+/*! \fn QList::const_reverse_iterator QList::rend() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QList::const_reverse_iterator QList::crend() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to one
+ past the last item in the list, in reverse order.
+
+ \sa end(), rend(), rbegin()
+*/
+
/*! \fn QList::iterator QList::erase(iterator pos)
Removes the item associated with the iterator \a pos from the
@@ -1070,6 +1164,38 @@ void **QListData::erase(void **xi)
Typedef for const T &. Provided for STL compatibility.
*/
+/*! \typedef QList::reverse_iterator
+ \since 5.6
+
+ The QList::reverse_iterator typedef provides an STL-style non-const
+ reverse iterator for QList.
+
+ It is simply a typedef for \c{std::reverse_iterator<iterator>}.
+
+ \warning Iterators on implicitly shared containers do not work
+ exactly like STL-iterators. You should avoid copying a container
+ while iterators are active on that container. For more information,
+ read \l{Implicit sharing iterator problem}.
+
+ \sa QList::rbegin(), QList::rend(), QList::const_reverse_iterator, QList::iterator
+*/
+
+/*! \typedef QList::const_reverse_iterator
+ \since 5.6
+
+ The QList::const_reverse_iterator typedef provides an STL-style const
+ reverse iterator for QList.
+
+ It is simply a typedef for \c{std::reverse_iterator<const_iterator>}.
+
+ \warning Iterators on implicitly shared containers do not work
+ exactly like STL-iterators. You should avoid copying a container
+ while iterators are active on that container. For more information,
+ read \l{Implicit sharing iterator problem}.
+
+ \sa QList::rbegin(), QList::rend(), QList::reverse_iterator, QList::const_iterator
+*/
+
/*! \fn int QList::count() const
Returns the number of items in the list. This is effectively the
diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h
index 57e67d52d7..31c9c36e3d 100644
--- a/src/corelib/tools/qlist.h
+++ b/src/corelib/tools/qlist.h
@@ -291,6 +291,8 @@ public:
friend class const_iterator;
// stl style
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
inline iterator begin() { detach(); return reinterpret_cast<Node *>(p.begin()); }
inline const_iterator begin() const { return reinterpret_cast<Node *>(p.begin()); }
inline const_iterator cbegin() const { return reinterpret_cast<Node *>(p.begin()); }
@@ -299,6 +301,12 @@ public:
inline const_iterator end() const { return reinterpret_cast<Node *>(p.end()); }
inline const_iterator cend() const { return reinterpret_cast<Node *>(p.end()); }
inline const_iterator constEnd() const { return reinterpret_cast<Node *>(p.end()); }
+ reverse_iterator rbegin() { return reverse_iterator(end()); }
+ reverse_iterator rend() { return reverse_iterator(begin()); }
+ const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
+ const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator crend() const { return const_reverse_iterator(begin()); }
iterator insert(iterator before, const T &t);
iterator erase(iterator pos);
iterator erase(iterator first, iterator last);
@@ -1015,6 +1023,36 @@ inline int QList<T>::count_impl(const T &t, QListData::ArrayCompatibleLayout) co
Q_DECLARE_SEQUENTIAL_ITERATOR(List)
Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(List)
+template <typename T>
+bool operator<(const QList<T> &lhs, const QList<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end())))
+{
+ return std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end());
+}
+
+template <typename T>
+inline bool operator>(const QList<T> &lhs, const QList<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return rhs < lhs;
+}
+
+template <typename T>
+inline bool operator<=(const QList<T> &lhs, const QList<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs > rhs);
+}
+
+template <typename T>
+inline bool operator>=(const QList<T> &lhs, const QList<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs < rhs);
+}
+
QT_END_NAMESPACE
#include <QtCore/qbytearraylist.h>
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index d05c8dd47b..40bb9049a7 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -2376,15 +2376,21 @@ Qt::LayoutDirection QLocale::textDirection() const
case QLocale::KharoshthiScript:
case QLocale::LydianScript:
case QLocale::MandaeanScript:
+ case QLocale::ManichaeanScript:
+ case QLocale::MendeKikakuiScript:
case QLocale::MeroiticCursiveScript:
case QLocale::MeroiticScript:
- case QLocale::SamaritanScript:
- case QLocale::SyriacScript:
- case QLocale::ThaanaScript:
+ case QLocale::NabataeanScript:
case QLocale::NkoScript:
+ case QLocale::OldNorthArabianScript:
case QLocale::OldSouthArabianScript:
case QLocale::OrkhonScript:
+ case QLocale::PalmyreneScript:
case QLocale::PhoenicianScript:
+ case QLocale::PsalterPahlaviScript:
+ case QLocale::SamaritanScript:
+ case QLocale::SyriacScript:
+ case QLocale::ThaanaScript:
return Qt::RightToLeft;
default:
break;
diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h
index 62fe91b88c..61574ba44f 100644
--- a/src/corelib/tools/qlocale.h
+++ b/src/corelib/tools/qlocale.h
@@ -382,6 +382,31 @@ public:
Akoose = 312,
Lakota = 313,
StandardMoroccanTamazight = 314,
+ Mapuche = 315,
+ CentralKurdish = 316,
+ LowerSorbian = 317,
+ UpperSorbian = 318,
+ Kenyang = 319,
+ Mohawk = 320,
+ Nko = 321,
+ Prussian = 322,
+ Kiche = 323,
+ SouthernSami = 324,
+ LuleSami = 325,
+ InariSami = 326,
+ SkoltSami = 327,
+ Warlpiri = 328,
+ ManichaeanMiddlePersian = 329,
+ Mende = 330,
+ AncientNorthArabian = 331,
+ LinearA = 332,
+ HmongNjua = 333,
+ Ho = 334,
+ Lezghian = 335,
+ Bassa = 336,
+ Mono = 337,
+ TedimChin = 338,
+ Maithili = 339,
Norwegian = NorwegianBokmal,
Moldavian = Romanian,
SerboCroatian = Serbian,
@@ -396,7 +421,7 @@ public:
Chewa = Nyanja,
Frisian = WesternFrisian,
Uigur = Uighur,
- LastLanguage = StandardMoroccanTamazight
+ LastLanguage = Maithili
};
enum Script {
@@ -505,9 +530,32 @@ public:
UgariticScript = 102,
BrailleScript = 103,
HiraganaScript = 104,
+ CaucasianAlbanianScript = 105,
+ BassaVahScript = 106,
+ DuployanScript = 107,
+ ElbasanScript = 108,
+ GranthaScript = 109,
+ PahawhHmongScript = 110,
+ KhojkiScript = 111,
+ LinearAScript = 112,
+ MahajaniScript = 113,
+ ManichaeanScript = 114,
+ MendeKikakuiScript = 115,
+ ModiScript = 116,
+ MroScript = 117,
+ OldNorthArabianScript = 118,
+ NabataeanScript = 119,
+ PalmyreneScript = 120,
+ PauCinHauScript = 121,
+ OldPermicScript = 122,
+ PsalterPahlaviScript = 123,
+ SiddhamScript = 124,
+ KhudawadiScript = 125,
+ TirhutaScript = 126,
+ VarangKshitiScript = 127,
SimplifiedChineseScript = SimplifiedHanScript,
TraditionalChineseScript = TraditionalHanScript,
- LastScript = HiraganaScript
+ LastScript = VarangKshitiScript
};
enum Country {
AnyCountry = 0,
diff --git a/src/corelib/tools/qlocale.qdoc b/src/corelib/tools/qlocale.qdoc
index 335aa14adf..c87e67cf17 100644
--- a/src/corelib/tools/qlocale.qdoc
+++ b/src/corelib/tools/qlocale.qdoc
@@ -92,7 +92,7 @@
\note For the current keyboard input locale take a look at
QInputMethod::locale().
- QLocale's data is based on Common Locale Data Repository v24.
+ QLocale's data is based on Common Locale Data Repository v27.
The double-to-string and string-to-double conversion functions are
covered by the following licenses:
@@ -456,6 +456,33 @@
\value TaiDam
\value TaiNua
\value Ugaritic
+ \value Mapuche Since Qt 5.5
+ \value CentralKurdish Since Qt 5.5
+ \value LowerSorbian Since Qt 5.5
+ \value UpperSorbian Since Qt 5.5
+ \value Kenyang Since Qt 5.5
+ \value Mohawk Since Qt 5.5
+ \value Nko Since Qt 5.5
+ \value Prussian Since Qt 5.5
+ \value Kiche Since Qt 5.5
+ \value SouthernSami Since Qt 5.5
+ \value LuleSami Since Qt 5.5
+ \value InariSami Since Qt 5.5
+ \value SkoltSami Since Qt 5.5
+ \value Warlpiri Since Qt 5.5
+ \value ManichaeanMiddlePersian Since Qt 5.5
+ \value Mende Since Qt 5.5
+ \value AncientNorthArabian Since Qt 5.5
+ \value LinearA Since Qt 5.5
+ \value HmongNjua Since Qt 5.5
+ \value Ho Since Qt 5.5
+ \value Lezghian Since Qt 5.5
+ \value Bassa Since Qt 5.5
+ \value Mono Since Qt 5.5
+ \value TedimChin Since Qt 5.5
+ \value Maithili Since Qt 5.5
+ \value LowerSorbian Since Qt 5.5
+ \value UpperSorbian Since Qt 5.5
\omitvalue LastLanguage
\sa language(), languageToString()
@@ -746,6 +773,7 @@
\value AvestanScript
\value BalineseScript
\value BamumScript
+ \value BassaVahScript Since Qt 5.5
\value BatakScript
\value BengaliScript
\value BopomofoScript
@@ -755,6 +783,7 @@
\value BuhidScript
\value CanadianAboriginalScript
\value CarianScript
+ \value CaucasianAlbanianScript Since Qt 5.5
\value ChakmaScript
\value ChamScript
\value CherokeeScript
@@ -763,12 +792,15 @@
\value CyrillicScript
\value DeseretScript
\value DevanagariScript
+ \value DuployanScript Since Qt 5.5
\value EgyptianHieroglyphsScript
+ \value ElbasanScript Since Qt 5.5
\value EthiopicScript
\value FraserScript
\value GeorgianScript
\value GlagoliticScript
\value GothicScript
+ \value GranthaScript Since Qt 5.5
\value GreekScript
\value GujaratiScript
\value GurmukhiScript
@@ -788,41 +820,57 @@
\value KayahLiScript
\value KharoshthiScript
\value KhmerScript
+ \value KhojkiScript Since Qt 5.5
+ \value KhudawadiScript Since Qt 5.5
\value KoreanScript
\value LannaScript
\value LaoScript
\value LatinScript
\value LepchaScript
\value LimbuScript
+ \value LinearAScript Since Qt 5.5
\value LinearBScript
\value LycianScript
\value LydianScript
+ \value MahajaniScript Since Qt 5.5
\value MalayalamScript
\value MandaeanScript
+ \value ManichaeanScript Since Qt 5.5
\value MeiteiMayekScript
+ \value MendeKikakuiScript Since Qt 5.5
\value MeroiticScript
\value MeroiticCursiveScript
+ \value ModiScript Since Qt 5.5
\value MongolianScript
+ \value MroScript Since Qt 5.5
\value MyanmarScript
+ \value NabataeanScript Since Qt 5.5
\value NkoScript
\value NewTaiLueScript
\value OghamScript
\value OlChikiScript
\value OldItalicScript
+ \value OldNorthArabianScript Since Qt 5.5
+ \value OldPermicScript Since Qt 5.5
\value OldPersianScript
\value OldSouthArabianScript
\value OriyaScript
\value OrkhonScript
\value OsmanyaScript
+ \value PahawhHmongScript Since Qt 5.5
+ \value PalmyreneScript Since Qt 5.5
+ \value PauCinHauScript Since Qt 5.5
\value PhagsPaScript
\value PhoenicianScript
\value PollardPhoneticScript
+ \value PsalterPahlaviScript Since Qt 5.5
\value RejangScript
\value RunicScript
\value SamaritanScript
\value SaurashtraScript
\value SharadaScript
\value ShavianScript
+ \value SiddhamScript Since Qt 5.5
\value SimplifiedHanScript same as SimplifiedChineseScript
\value SimplifiedChineseScript same as SimplifiedHanScript
\value SinhalaScript
@@ -842,10 +890,12 @@
\value ThaiScript
\value TibetanScript
\value TifinaghScript
+ \value TirhutaScript Since Qt 5.5
\value TraditionalHanScript same as TraditionalChineseScript
\value TraditionalChineseScript same as TraditionalHanScript
\value UgariticScript
\value VaiScript
+ \value VarangKshitiScript Since Qt 5.5
\value YiScript
\omitvalue LastScript
diff --git a/src/corelib/tools/qlocale_data_p.h b/src/corelib/tools/qlocale_data_p.h
index b664c9d5e0..a9e0b91e02 100644
--- a/src/corelib/tools/qlocale_data_p.h
+++ b/src/corelib/tools/qlocale_data_p.h
@@ -69,8 +69,8 @@ static const int ImperialMeasurementSystemsCount =
// GENERATED PART STARTS HERE
/*
- This part of the file was generated on 2014-01-11 from the
- Common Locale Data Repository v24
+ This part of the file was generated on 2015-03-23 from the
+ Common Locale Data Repository v27
http://www.unicode.org/cldr/
@@ -82,11 +82,17 @@ static const int ImperialMeasurementSystemsCount =
static const QLocaleId likely_subtags[] = {
{ 4, 0, 0 }, { 4, 7, 69 }, // aa -> aa_Latn_ET
{ 2, 0, 0 }, { 2, 2, 81 }, // ab -> ab_Cyrl_GE
+ { 255, 0, 0 }, { 255, 36, 102 }, // ae -> ae_Avst_IR
{ 5, 0, 0 }, { 5, 7, 195 }, // af -> af_Latn_ZA
{ 237, 0, 0 }, { 237, 7, 37 }, // agq -> agq_Latn_CM
{ 146, 0, 0 }, { 146, 7, 83 }, // ak -> ak_Latn_GH
+ { 262, 0, 0 }, { 262, 94, 103 }, // akk -> akk_Xsux_IQ
{ 7, 0, 0 }, { 7, 14, 69 }, // am -> am_Ethi_ET
{ 8, 0, 0 }, { 8, 1, 64 }, // ar -> ar_Arab_EG
+ { 265, 0, 0 }, { 265, 57, 102 }, // arc -> arc_Armi_IR
+ { 265, 119, 0 }, { 265, 119, 109 }, // arc_Nbat -> arc_Nbat_JO
+ { 265, 120, 0 }, { 265, 120, 207 }, // arc_Palm -> arc_Palm_SY
+ { 315, 0, 0 }, { 315, 7, 43 }, // arn -> arn_Latn_CL
{ 10, 0, 0 }, { 10, 11, 100 }, // as -> as_Beng_IN
{ 205, 0, 0 }, { 205, 7, 210 }, // asa -> asa_Latn_TZ
{ 256, 0, 0 }, { 256, 7, 197 }, // ast -> ast_Latn_ES
@@ -105,28 +111,37 @@ static const QLocaleId likely_subtags[] = {
{ 195, 0, 0 }, { 195, 7, 239 }, // bem -> bem_Latn_ZM
{ 186, 0, 0 }, { 186, 7, 210 }, // bez -> bez_Latn_TZ
{ 20, 0, 0 }, { 20, 2, 33 }, // bg -> bg_Cyrl_BG
+ { 17, 0, 0 }, { 17, 61, 100 }, // bh -> bh_Kthi_IN
{ 18, 0, 0 }, { 18, 7, 229 }, // bi -> bi_Latn_VU
{ 270, 0, 0 }, { 270, 7, 170 }, // bku -> bku_Latn_PH
+ { 309, 0, 0 }, { 309, 100, 232 }, // blt -> blt_Tavt_VN
{ 188, 0, 0 }, { 188, 7, 132 }, // bm -> bm_Latn_ML
{ 15, 0, 0 }, { 15, 11, 18 }, // bn -> bn_Beng_BD
{ 121, 0, 0 }, { 121, 31, 44 }, // bo -> bo_Tibt_CN
{ 19, 0, 0 }, { 19, 7, 74 }, // br -> br_Latn_FR
{ 215, 0, 0 }, { 215, 13, 100 }, // brx -> brx_Deva_IN
{ 142, 0, 0 }, { 142, 7, 27 }, // bs -> bs_Latn_BA
+ { 336, 0, 0 }, { 336, 106, 121 }, // bsq -> bsq_Bass_LR
{ 312, 0, 0 }, { 312, 7, 37 }, // bss -> bss_Latn_CM
{ 269, 0, 0 }, { 269, 7, 101 }, // bug -> bug_Latn_ID
{ 152, 0, 0 }, { 152, 14, 67 }, // byn -> byn_Ethi_ER
{ 24, 0, 0 }, { 24, 7, 197 }, // ca -> ca_Latn_ES
{ 156, 0, 0 }, { 156, 7, 157 }, // cch -> cch_Latn_NG
{ 272, 0, 0 }, { 272, 11, 100 }, // ccp -> ccp_Beng_IN
+ { 272, 46, 0 }, { 272, 46, 18 }, // ccp_Cakm -> ccp_Cakm_BD
{ 218, 0, 0 }, { 218, 2, 178 }, // ce -> ce_Cyrl_RU
{ 211, 0, 0 }, { 211, 7, 221 }, // cgg -> cgg_Latn_UG
{ 217, 0, 0 }, { 217, 7, 89 }, // ch -> ch_Latn_GU
{ 190, 0, 0 }, { 190, 12, 225 }, // chr -> chr_Cher_US
{ 276, 0, 0 }, { 276, 47, 232 }, // cjm -> cjm_Cham_VN
+ { 316, 0, 0 }, { 316, 1, 103 }, // ckb -> ckb_Arab_IQ
{ 26, 0, 0 }, { 26, 7, 74 }, // co -> co_Latn_FR
+ { 274, 0, 0 }, { 274, 48, 64 }, // cop -> cop_Copt_EG
{ 221, 0, 0 }, { 221, 44, 38 }, // cr -> cr_Cans_CA
{ 28, 0, 0 }, { 28, 7, 57 }, // cs -> cs_Latn_CZ
+ { 338, 0, 0 }, { 338, 121, 147 }, // ctd -> ctd_Pauc_MM
+ { 219, 0, 0 }, { 219, 2, 178 }, // cu -> cu_Cyrl_RU
+ { 219, 52, 0 }, { 219, 52, 33 }, // cu_Glag -> cu_Glag_BG
{ 220, 0, 0 }, { 220, 2, 178 }, // cv -> cv_Cyrl_RU
{ 134, 0, 0 }, { 134, 7, 224 }, // cy -> cy_Latn_GB
{ 29, 0, 0 }, { 29, 7, 58 }, // da -> da_Latn_DK
@@ -134,16 +149,21 @@ static const QLocaleId likely_subtags[] = {
{ 42, 0, 0 }, { 42, 7, 82 }, // de -> de_Latn_DE
{ 239, 0, 0 }, { 239, 7, 156 }, // dje -> dje_Latn_NE
{ 275, 0, 0 }, { 275, 1, 100 }, // doi -> doi_Arab_IN
+ { 317, 0, 0 }, { 317, 7, 82 }, // dsb -> dsb_Latn_DE
{ 240, 0, 0 }, { 240, 7, 37 }, // dua -> dua_Latn_CM
{ 143, 0, 0 }, { 143, 29, 131 }, // dv -> dv_Thaa_MV
{ 241, 0, 0 }, { 241, 7, 187 }, // dyo -> dyo_Latn_SN
{ 16, 0, 0 }, { 16, 31, 25 }, // dz -> dz_Tibt_BT
{ 189, 0, 0 }, { 189, 7, 111 }, // ebu -> ebu_Latn_KE
{ 161, 0, 0 }, { 161, 7, 83 }, // ee -> ee_Latn_GH
+ { 263, 0, 0 }, { 263, 50, 64 }, // egy -> egy_Egyp_EG
+ { 277, 0, 0 }, { 277, 63, 147 }, // eky -> eky_Kali_MM
{ 43, 0, 0 }, { 43, 16, 85 }, // el -> el_Grek_GR
{ 31, 0, 0 }, { 31, 7, 225 }, // en -> en_Latn_US
+ { 31, 92, 0 }, { 31, 92, 224 }, // en_Shaw -> en_Shaw_GB
{ 111, 0, 0 }, { 111, 7, 197 }, // es -> es_Latn_ES
{ 33, 0, 0 }, { 33, 7, 68 }, // et -> et_Latn_EE
+ { 278, 0, 0 }, { 278, 79, 106 }, // ett -> ett_Ital_IT
{ 14, 0, 0 }, { 14, 7, 197 }, // eu -> eu_Latn_ES
{ 242, 0, 0 }, { 242, 7, 37 }, // ewo -> ewo_Latn_CM
{ 89, 0, 0 }, { 89, 1, 102 }, // fa -> fa_Arab_IR
@@ -161,6 +181,9 @@ static const QLocaleId likely_subtags[] = {
{ 153, 0, 0 }, { 153, 14, 69 }, // gez -> gez_Ethi_ET
{ 40, 0, 0 }, { 40, 7, 197 }, // gl -> gl_Latn_ES
{ 45, 0, 0 }, { 45, 7, 168 }, // gn -> gn_Latn_PY
+ { 279, 0, 0 }, { 279, 53, 222 }, // got -> got_Goth_UA
+ { 264, 0, 0 }, { 264, 49, 56 }, // grc -> grc_Cprt_CY
+ { 264, 68, 0 }, { 264, 68, 85 }, // grc_Linb -> grc_Linb_GR
{ 167, 0, 0 }, { 167, 7, 206 }, // gsw -> gsw_Latn_CH
{ 46, 0, 0 }, { 46, 17, 100 }, // gu -> gu_Gujr_IN
{ 175, 0, 0 }, { 175, 7, 111 }, // guz -> guz_Latn_KE
@@ -171,12 +194,17 @@ static const QLocaleId likely_subtags[] = {
{ 163, 0, 0 }, { 163, 7, 225 }, // haw -> haw_Latn_US
{ 48, 0, 0 }, { 48, 18, 105 }, // he -> he_Hebr_IL
{ 49, 0, 0 }, { 49, 13, 100 }, // hi -> hi_Deva_IN
+ { 282, 0, 0 }, { 282, 86, 44 }, // hmd -> hmd_Plrd_CN
+ { 333, 0, 0 }, { 333, 110, 117 }, // hnj -> hnj_Hmng_LA
{ 280, 0, 0 }, { 280, 7, 170 }, // hnn -> hnn_Latn_PH
{ 224, 0, 0 }, { 224, 7, 167 }, // ho -> ho_Latn_PG
+ { 334, 0, 0 }, { 334, 13, 100 }, // hoc -> hoc_Deva_IN
{ 27, 0, 0 }, { 27, 7, 54 }, // hr -> hr_Latn_HR
+ { 318, 0, 0 }, { 318, 7, 82 }, // hsb -> hsb_Latn_DE
{ 222, 0, 0 }, { 222, 7, 94 }, // ht -> ht_Latn_HT
{ 50, 0, 0 }, { 50, 7, 98 }, // hu -> hu_Latn_HU
{ 9, 0, 0 }, { 9, 10, 11 }, // hy -> hy_Armn_AM
+ { 223, 0, 0 }, { 223, 7, 148 }, // hz -> hz_Latn_NA
{ 53, 0, 0 }, { 53, 7, 74 }, // ia -> ia_Latn_FR
{ 52, 0, 0 }, { 52, 7, 101 }, // id -> id_Latn_ID
{ 149, 0, 0 }, { 149, 7, 157 }, // ig -> ig_Latn_NG
@@ -197,6 +225,7 @@ static const QLocaleId likely_subtags[] = {
{ 164, 0, 0 }, { 164, 7, 157 }, // kcg -> kcg_Latn_NG
{ 192, 0, 0 }, { 192, 7, 210 }, // kde -> kde_Latn_TZ
{ 196, 0, 0 }, { 196, 7, 39 }, // kea -> kea_Latn_CV
+ { 319, 0, 0 }, { 319, 7, 37 }, // ken -> ken_Latn_CM
{ 154, 0, 0 }, { 154, 7, 53 }, // kfo -> kfo_Latn_CI
{ 227, 0, 0 }, { 227, 7, 49 }, // kg -> kg_Latn_CD
{ 286, 0, 0 }, { 286, 76, 44 }, // khb -> khb_Talu_CN
@@ -232,12 +261,15 @@ static const QLocaleId likely_subtags[] = {
{ 65, 1, 0 }, { 65, 1, 44 }, // ky_Arab -> ky_Arab_CN
{ 65, 7, 0 }, { 65, 7, 217 }, // ky_Latn -> ky_Latn_TR
{ 70, 0, 0 }, { 70, 7, 230 }, // la -> la_Latn_VA
+ { 332, 0, 0 }, { 332, 112, 85 }, // lab -> lab_Lina_GR
{ 193, 0, 0 }, { 193, 7, 210 }, // lag -> lag_Latn_TZ
{ 231, 0, 0 }, { 231, 7, 125 }, // lb -> lb_Latn_LU
{ 283, 0, 0 }, { 283, 66, 100 }, // lep -> lep_Lepc_IN
+ { 335, 0, 0 }, { 335, 2, 178 }, // lez -> lez_Cyrl_RU
{ 194, 0, 0 }, { 194, 7, 221 }, // lg -> lg_Latn_UG
{ 229, 0, 0 }, { 229, 7, 151 }, // li -> li_Latn_NL
{ 284, 0, 0 }, { 284, 13, 150 }, // lif -> lif_Deva_NP
+ { 284, 67, 0 }, { 284, 67, 100 }, // lif_Limb -> lif_Limb_IN
{ 285, 0, 0 }, { 285, 51, 44 }, // lis -> lis_Lisu_CN
{ 313, 0, 0 }, { 313, 7, 225 }, // lkt -> lkt_Latn_US
{ 72, 0, 0 }, { 72, 7, 49 }, // ln -> ln_Latn_CD
@@ -247,10 +279,12 @@ static const QLocaleId likely_subtags[] = {
{ 210, 0, 0 }, { 210, 7, 111 }, // luo -> luo_Latn_KE
{ 204, 0, 0 }, { 204, 7, 111 }, // luy -> luy_Latn_KE
{ 71, 0, 0 }, { 71, 7, 118 }, // lv -> lv_Latn_LV
+ { 339, 0, 0 }, { 339, 13, 100 }, // mai -> mai_Deva_IN
{ 289, 0, 0 }, { 289, 7, 80 }, // man -> man_Latn_GM
{ 289, 0, 91 }, { 289, 75, 91 }, // man_GN -> man_Nkoo_GN
{ 289, 75, 0 }, { 289, 75, 91 }, // man_Nkoo -> man_Nkoo_GN
{ 202, 0, 0 }, { 202, 7, 111 }, // mas -> mas_Latn_KE
+ { 330, 0, 0 }, { 330, 7, 189 }, // men -> men_Latn_SL
{ 197, 0, 0 }, { 197, 7, 111 }, // mer -> mer_Latn_KE
{ 191, 0, 0 }, { 191, 7, 137 }, // mfe -> mfe_Latn_MU
{ 75, 0, 0 }, { 75, 7, 128 }, // mg -> mg_Latn_MG
@@ -264,13 +298,16 @@ static const QLocaleId likely_subtags[] = {
{ 82, 0, 44 }, { 82, 8, 44 }, // mn_CN -> mn_Mong_CN
{ 82, 8, 0 }, { 82, 8, 44 }, // mn_Mong -> mn_Mong_CN
{ 290, 0, 0 }, { 290, 11, 100 }, // mni -> mni_Beng_IN
+ { 320, 0, 0 }, { 320, 7, 38 }, // moh -> moh_Latn_CA
{ 80, 0, 0 }, { 80, 13, 100 }, // mr -> mr_Deva_IN
+ { 337, 0, 0 }, { 337, 117, 18 }, // mru -> mru_Mroo_BD
{ 76, 0, 0 }, { 76, 7, 130 }, // ms -> ms_Latn_MY
{ 76, 0, 46 }, { 76, 1, 46 }, // ms_CC -> ms_Arab_CC
{ 76, 0, 101 }, { 76, 1, 101 }, // ms_ID -> ms_Arab_ID
{ 78, 0, 0 }, { 78, 7, 133 }, // mt -> mt_Latn_MT
{ 245, 0, 0 }, { 245, 7, 37 }, // mua -> mua_Latn_CM
{ 21, 0, 0 }, { 21, 25, 147 }, // my -> my_Mymr_MM
+ { 273, 0, 0 }, { 273, 71, 102 }, // myz -> myz_Mand_IR
{ 83, 0, 0 }, { 83, 7, 149 }, // na -> na_Latn_NR
{ 199, 0, 0 }, { 199, 7, 148 }, // naq -> naq_Latn_NA
{ 85, 0, 0 }, { 85, 7, 161 }, // nb -> nb_Latn_NO
@@ -283,6 +320,8 @@ static const QLocaleId likely_subtags[] = {
{ 141, 0, 0 }, { 141, 7, 161 }, // nn -> nn_Latn_NO
{ 260, 0, 0 }, { 260, 7, 37 }, // nnh -> nnh_Latn_CM
{ 292, 0, 0 }, { 292, 65, 211 }, // nod -> nod_Lana_TH
+ { 294, 0, 0 }, { 294, 88, 205 }, // non -> non_Runr_SE
+ { 321, 0, 0 }, { 321, 75, 91 }, // nqo -> nqo_Nkoo_GN
{ 171, 0, 0 }, { 171, 7, 195 }, // nr -> nr_Latn_ZA
{ 172, 0, 0 }, { 172, 7, 195 }, // nso -> nso_Latn_ZA
{ 247, 0, 0 }, { 247, 7, 201 }, // nus -> nus_Latn_SD
@@ -293,13 +332,20 @@ static const QLocaleId likely_subtags[] = {
{ 3, 0, 0 }, { 3, 7, 69 }, // om -> om_Latn_ET
{ 87, 0, 0 }, { 87, 26, 100 }, // or -> or_Orya_IN
{ 101, 0, 0 }, { 101, 2, 81 }, // os -> os_Cyrl_GE
+ { 296, 0, 0 }, { 296, 82, 143 }, // otk -> otk_Orkh_MN
{ 92, 0, 0 }, { 92, 4, 100 }, // pa -> pa_Guru_IN
{ 92, 0, 163 }, { 92, 1, 163 }, // pa_PK -> pa_Arab_PK
{ 92, 1, 0 }, { 92, 1, 163 }, // pa_Arab -> pa_Arab_PK
+ { 297, 0, 0 }, { 297, 58, 102 }, // pal -> pal_Phli_IR
+ { 297, 123, 0 }, { 297, 123, 44 }, // pal_Phlp -> pal_Phlp_CN
+ { 295, 0, 0 }, { 295, 80, 102 }, // peo -> peo_Xpeo_IR
+ { 299, 0, 0 }, { 299, 85, 119 }, // phn -> phn_Phnx_LB
{ 90, 0, 0 }, { 90, 7, 172 }, // pl -> pl_Latn_PL
+ { 300, 0, 0 }, { 300, 64, 163 }, // pra -> pra_Khar_PK
{ 88, 0, 0 }, { 88, 1, 1 }, // ps -> ps_Arab_AF
{ 91, 0, 0 }, { 91, 7, 30 }, // pt -> pt_Latn_BR
{ 93, 0, 0 }, { 93, 7, 169 }, // qu -> qu_Latn_PE
+ { 323, 0, 0 }, { 323, 7, 90 }, // quc -> quc_Latn_GT
{ 301, 0, 0 }, { 301, 7, 101 }, // rej -> rej_Latn_ID
{ 94, 0, 0 }, { 94, 7, 206 }, // rm -> rm_Latn_CH
{ 68, 0, 0 }, { 68, 7, 35 }, // rn -> rn_Latn_BI
@@ -314,18 +360,27 @@ static const QLocaleId likely_subtags[] = {
{ 304, 0, 0 }, { 304, 7, 100 }, // sat -> sat_Latn_IN
{ 305, 0, 0 }, { 305, 90, 100 }, // saz -> saz_Saur_IN
{ 249, 0, 0 }, { 249, 7, 210 }, // sbp -> sbp_Latn_TZ
+ { 115, 0, 0 }, { 115, 7, 106 }, // sc -> sc_Latn_IT
{ 105, 0, 0 }, { 105, 1, 163 }, // sd -> sd_Arab_PK
{ 105, 13, 0 }, { 105, 13, 100 }, // sd_Deva -> sd_Deva_IN
+ { 105, 111, 0 }, { 105, 111, 100 }, // sd_Khoj -> sd_Khoj_IN
+ { 105, 125, 0 }, { 105, 125, 100 }, // sd_Sind -> sd_Sind_IN
{ 173, 0, 0 }, { 173, 7, 161 }, // se -> se_Latn_NO
{ 180, 0, 0 }, { 180, 7, 146 }, // seh -> seh_Latn_MZ
{ 213, 0, 0 }, { 213, 7, 132 }, // ses -> ses_Latn_ML
{ 98, 0, 0 }, { 98, 7, 41 }, // sg -> sg_Latn_CF
+ { 293, 0, 0 }, { 293, 77, 104 }, // sga -> sga_Ogam_IE
{ 183, 0, 0 }, { 183, 9, 145 }, // shi -> shi_Tfng_MA
{ 106, 0, 0 }, { 106, 32, 198 }, // si -> si_Sinh_LK
{ 155, 0, 0 }, { 155, 7, 69 }, // sid -> sid_Latn_ET
{ 108, 0, 0 }, { 108, 7, 191 }, // sk -> sk_Latn_SK
{ 109, 0, 0 }, { 109, 7, 192 }, // sl -> sl_Latn_SI
{ 97, 0, 0 }, { 97, 7, 183 }, // sm -> sm_Latn_WS
+ { 324, 0, 0 }, { 324, 7, 205 }, // sma -> sma_Latn_SE
+ { 325, 0, 0 }, { 325, 7, 205 }, // smj -> smj_Latn_SE
+ { 326, 0, 0 }, { 326, 7, 73 }, // smn -> smn_Latn_FI
+ { 303, 0, 0 }, { 303, 89, 105 }, // smp -> smp_Samr_IL
+ { 327, 0, 0 }, { 327, 7, 73 }, // sms -> sms_Latn_FI
{ 104, 0, 0 }, { 104, 7, 240 }, // sn -> sn_Latn_ZW
{ 110, 0, 0 }, { 110, 7, 194 }, // so -> so_Latn_SO
{ 6, 0, 0 }, { 6, 7, 2 }, // sq -> sq_Latn_AL
@@ -334,6 +389,7 @@ static const QLocaleId likely_subtags[] = {
{ 100, 0, 177 }, { 100, 7, 177 }, // sr_RO -> sr_Latn_RO
{ 100, 0, 178 }, { 100, 7, 178 }, // sr_RU -> sr_Latn_RU
{ 100, 0, 217 }, { 100, 7, 217 }, // sr_TR -> sr_Latn_TR
+ { 306, 0, 0 }, { 306, 93, 100 }, // srb -> srb_Sora_IN
{ 107, 0, 0 }, { 107, 7, 195 }, // ss -> ss_Latn_ZA
{ 207, 0, 0 }, { 207, 7, 67 }, // ssy -> ssy_Latn_ER
{ 102, 0, 0 }, { 102, 7, 195 }, // st -> st_Latn_ZA
@@ -368,6 +424,7 @@ static const QLocaleId likely_subtags[] = {
{ 128, 0, 110 }, { 128, 2, 110 }, // ug_KZ -> ug_Cyrl_KZ
{ 128, 0, 143 }, { 128, 2, 143 }, // ug_MN -> ug_Cyrl_MN
{ 128, 2, 0 }, { 128, 2, 110 }, // ug_Cyrl -> ug_Cyrl_KZ
+ { 311, 0, 0 }, { 311, 102, 207 }, // uga -> uga_Ugar_SY
{ 129, 0, 0 }, { 129, 2, 222 }, // uk -> uk_Cyrl_UA
{ 130, 0, 0 }, { 130, 1, 163 }, // ur -> ur_Arab_PK
{ 131, 0, 0 }, { 131, 7, 228 }, // uz -> uz_Latn_UZ
@@ -381,11 +438,19 @@ static const QLocaleId likely_subtags[] = {
{ 236, 0, 0 }, { 236, 7, 21 }, // wa -> wa_Latn_BE
{ 253, 0, 0 }, { 253, 7, 206 }, // wae -> wae_Latn_CH
{ 162, 0, 0 }, { 162, 14, 69 }, // wal -> wal_Ethi_ET
+ { 328, 0, 0 }, { 328, 7, 13 }, // wbp -> wbp_Latn_AU
{ 135, 0, 0 }, { 135, 7, 187 }, // wo -> wo_Latn_SN
+ { 271, 0, 0 }, { 271, 45, 217 }, // xcr -> xcr_Cari_TR
{ 136, 0, 0 }, { 136, 7, 195 }, // xh -> xh_Latn_ZA
+ { 287, 0, 0 }, { 287, 69, 217 }, // xlc -> xlc_Lyci_TR
+ { 288, 0, 0 }, { 288, 70, 217 }, // xld -> xld_Lydi_TR
+ { 329, 0, 0 }, { 329, 114, 44 }, // xmn -> xmn_Mani_CN
+ { 291, 0, 0 }, { 291, 74, 201 }, // xmr -> xmr_Merc_SD
+ { 331, 0, 0 }, { 331, 118, 186 }, // xna -> xna_Narb_SA
{ 203, 0, 0 }, { 203, 7, 221 }, // xog -> xog_Latn_UG
+ { 298, 0, 0 }, { 298, 59, 102 }, // xpr -> xpr_Prti_IR
+ { 302, 0, 0 }, { 302, 81, 237 }, // xsa -> xsa_Sarb_YE
{ 254, 0, 0 }, { 254, 7, 37 }, // yav -> yav_Latn_CM
- { 137, 0, 0 }, { 137, 18, 222 }, // yi -> yi_Hebr_UA
{ 138, 0, 0 }, { 138, 7, 157 }, // yo -> yo_Latn_NG
{ 139, 0, 0 }, { 139, 7, 44 }, // za -> za_Latn_CN
{ 314, 0, 0 }, { 314, 9, 145 }, // zgh -> zgh_Tfng_MA
@@ -406,8 +471,10 @@ static const QLocaleId likely_subtags[] = {
{ 25, 0, 208 }, { 25, 6, 208 }, // zh_TW -> zh_Hant_TW
{ 25, 0, 225 }, { 25, 6, 225 }, // zh_US -> zh_Hant_US
{ 25, 0, 232 }, { 25, 6, 232 }, // zh_VN -> zh_Hant_VN
+ { 25, 40, 0 }, { 25, 40, 208 }, // zh_Bopo -> zh_Bopo_TW
{ 25, 6, 0 }, { 25, 6, 208 }, // zh_Hant -> zh_Hant_TW
{ 140, 0, 0 }, { 140, 7, 195 }, // zu -> zu_Latn_ZA
+ { 0, 0, 246 }, { 111, 7, 246 }, // und_419 -> es_Latn_419
{ 0, 0, 5 }, { 24, 7, 5 }, // und_AD -> ca_Latn_AD
{ 0, 0, 223 }, { 8, 1, 223 }, // und_AE -> ar_Arab_AE
{ 0, 0, 1 }, { 89, 1, 1 }, // und_AF -> fa_Arab_AF
@@ -495,6 +562,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 106 }, { 58, 7, 106 }, // und_IT -> it_Latn_IT
{ 0, 0, 109 }, { 8, 1, 109 }, // und_JO -> ar_Arab_JO
{ 0, 0, 108 }, { 59, 19, 108 }, // und_JP -> ja_Jpan_JP
+ { 0, 0, 111 }, { 113, 7, 111 }, // und_KE -> sw_Latn_KE
{ 0, 0, 116 }, { 65, 2, 116 }, // und_KG -> ky_Cyrl_KG
{ 0, 0, 36 }, { 23, 20, 36 }, // und_KH -> km_Khmr_KH
{ 0, 0, 48 }, { 8, 1, 48 }, // und_KM -> ar_Arab_KM
@@ -585,7 +653,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 221 }, { 113, 7, 221 }, // und_UG -> sw_Latn_UG
{ 0, 0, 227 }, { 111, 7, 227 }, // und_UY -> es_Latn_UY
{ 0, 0, 228 }, { 131, 7, 228 }, // und_UZ -> uz_Latn_UZ
- { 0, 0, 230 }, { 70, 7, 230 }, // und_VA -> la_Latn_VA
+ { 0, 0, 230 }, { 58, 7, 230 }, // und_VA -> it_Latn_VA
{ 0, 0, 231 }, { 111, 7, 231 }, // und_VE -> es_Latn_VE
{ 0, 0, 232 }, { 132, 7, 232 }, // und_VN -> vi_Latn_VN
{ 0, 0, 229 }, { 18, 7, 229 }, // und_VU -> bi_Latn_VU
@@ -594,6 +662,8 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 257 }, { 6, 7, 257 }, // und_XK -> sq_Latn_XK
{ 0, 0, 237 }, { 8, 1, 237 }, // und_YE -> ar_Arab_YE
{ 0, 0, 138 }, { 37, 7, 138 }, // und_YT -> fr_Latn_YT
+ { 0, 0, 240 }, { 104, 7, 240 }, // und_ZW -> sn_Latn_ZW
+ { 0, 105, 0 }, { 335, 105, 178 }, // und_Aghb -> lez_Aghb_RU
{ 0, 1, 0 }, { 8, 1, 64 }, // und_Arab -> ar_Arab_EG
{ 0, 1, 46 }, { 76, 1, 46 }, // und_Arab_CC -> ms_Arab_CC
{ 0, 1, 44 }, { 128, 1, 44 }, // und_Arab_CN -> ug_Arab_CN
@@ -610,11 +680,11 @@ static const QLocaleId likely_subtags[] = {
{ 0, 36, 0 }, { 255, 36, 102 }, // und_Avst -> ae_Avst_IR
{ 0, 37, 0 }, { 266, 37, 101 }, // und_Bali -> ban_Bali_ID
{ 0, 38, 0 }, { 267, 38, 37 }, // und_Bamu -> bax_Bamu_CM
+ { 0, 106, 0 }, { 336, 106, 121 }, // und_Bass -> bsq_Bass_LR
{ 0, 39, 0 }, { 268, 39, 101 }, // und_Batk -> bbc_Batk_ID
{ 0, 11, 0 }, { 15, 11, 18 }, // und_Beng -> bn_Beng_BD
{ 0, 40, 0 }, { 25, 40, 208 }, // und_Bopo -> zh_Bopo_TW
- { 0, 41, 0 }, { 300, 41, 100 }, // und_Brah -> pra_Brah_IN
- { 0, 103, 0 }, { 0, 103, 74 }, // und_Brai -> und_Brai_FR
+ { 0, 103, 0 }, { 37, 103, 74 }, // und_Brai -> fr_Brai_FR
{ 0, 42, 0 }, { 269, 42, 101 }, // und_Bugi -> bug_Bugi_ID
{ 0, 43, 0 }, { 270, 43, 170 }, // und_Buhd -> bku_Buhd_PH
{ 0, 46, 0 }, { 272, 46, 18 }, // und_Cakm -> ccp_Cakm_BD
@@ -636,11 +706,14 @@ static const QLocaleId likely_subtags[] = {
{ 0, 2, 257 }, { 100, 2, 257 }, // und_Cyrl_XK -> sr_Cyrl_XK
{ 0, 13, 0 }, { 49, 13, 100 }, // und_Deva -> hi_Deva_IN
{ 0, 13, 25 }, { 84, 13, 25 }, // und_Deva_BT -> ne_Deva_BT
+ { 0, 107, 0 }, { 37, 107, 74 }, // und_Dupl -> fr_Dupl_FR
{ 0, 50, 0 }, { 263, 50, 64 }, // und_Egyp -> egy_Egyp_EG
+ { 0, 108, 0 }, { 6, 108, 2 }, // und_Elba -> sq_Elba_AL
{ 0, 14, 0 }, { 7, 14, 69 }, // und_Ethi -> am_Ethi_ET
{ 0, 15, 0 }, { 41, 15, 81 }, // und_Geor -> ka_Geor_GE
{ 0, 52, 0 }, { 219, 52, 33 }, // und_Glag -> cu_Glag_BG
{ 0, 53, 0 }, { 279, 53, 222 }, // und_Goth -> got_Goth_UA
+ { 0, 109, 0 }, { 99, 109, 100 }, // und_Gran -> sa_Gran_IN
{ 0, 16, 0 }, { 43, 16, 85 }, // und_Grek -> el_Grek_GR
{ 0, 17, 0 }, { 46, 17, 100 }, // und_Gujr -> gu_Gujr_IN
{ 0, 4, 0 }, { 92, 4, 100 }, // und_Guru -> pa_Guru_IN
@@ -656,6 +729,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 18, 222 }, { 137, 18, 222 }, // und_Hebr_UA -> yi_Hebr_UA
{ 0, 18, 225 }, { 137, 18, 225 }, // und_Hebr_US -> yi_Hebr_US
{ 0, 104, 0 }, { 59, 104, 108 }, // und_Hira -> ja_Hira_JP
+ { 0, 110, 0 }, { 333, 110, 117 }, // und_Hmng -> hnj_Hmng_LA
{ 0, 79, 0 }, { 278, 79, 106 }, // und_Ital -> ett_Ital_IT
{ 0, 60, 0 }, { 60, 60, 101 }, // und_Java -> jv_Java_ID
{ 0, 19, 0 }, { 59, 19, 108 }, // und_Jpan -> ja_Jpan_JP
@@ -663,25 +737,21 @@ static const QLocaleId likely_subtags[] = {
{ 0, 62, 0 }, { 59, 62, 108 }, // und_Kana -> ja_Kana_JP
{ 0, 64, 0 }, { 300, 64, 163 }, // und_Khar -> pra_Khar_PK
{ 0, 20, 0 }, { 23, 20, 36 }, // und_Khmr -> km_Khmr_KH
+ { 0, 111, 0 }, { 105, 111, 100 }, // und_Khoj -> sd_Khoj_IN
{ 0, 21, 0 }, { 61, 21, 100 }, // und_Knda -> kn_Knda_IN
{ 0, 22, 0 }, { 66, 22, 114 }, // und_Kore -> ko_Kore_KR
{ 0, 61, 0 }, { 17, 61, 100 }, // und_Kthi -> bh_Kthi_IN
{ 0, 65, 0 }, { 292, 65, 211 }, // und_Lana -> nod_Lana_TH
{ 0, 23, 0 }, { 69, 23, 117 }, // und_Laoo -> lo_Laoo_LA
{ 0, 7, 1 }, { 126, 7, 1 }, // und_Latn_AF -> tk_Latn_AF
- { 0, 7, 11 }, { 12, 7, 11 }, // und_Latn_AM -> az_Latn_AM
- { 0, 7, 33 }, { 125, 7, 33 }, // und_Latn_BG -> tr_Latn_BG
+ { 0, 7, 11 }, { 67, 7, 11 }, // und_Latn_AM -> ku_Latn_AM
{ 0, 7, 44 }, { 139, 7, 44 }, // und_Latn_CN -> za_Latn_CN
{ 0, 7, 56 }, { 125, 7, 56 }, // und_Latn_CY -> tr_Latn_CY
{ 0, 7, 3 }, { 37, 7, 3 }, // und_Latn_DZ -> fr_Latn_DZ
{ 0, 7, 69 }, { 31, 7, 69 }, // und_Latn_ET -> en_Latn_ET
{ 0, 7, 81 }, { 67, 7, 81 }, // und_Latn_GE -> ku_Latn_GE
- { 0, 7, 85 }, { 125, 7, 85 }, // und_Latn_GR -> tr_Latn_GR
- { 0, 7, 105 }, { 95, 7, 105 }, // und_Latn_IL -> ro_Latn_IL
{ 0, 7, 102 }, { 126, 7, 102 }, // und_Latn_IR -> tk_Latn_IR
{ 0, 7, 48 }, { 37, 7, 48 }, // und_Latn_KM -> fr_Latn_KM
- { 0, 7, 110 }, { 42, 7, 110 }, // und_Latn_KZ -> de_Latn_KZ
- { 0, 7, 119 }, { 37, 7, 119 }, // und_Latn_LB -> fr_Latn_LB
{ 0, 7, 145 }, { 37, 7, 145 }, // und_Latn_MA -> fr_Latn_MA
{ 0, 7, 127 }, { 6, 7, 127 }, // und_Latn_MK -> sq_Latn_MK
{ 0, 7, 126 }, { 91, 7, 126 }, // und_Latn_MO -> pt_Latn_MO
@@ -692,24 +762,36 @@ static const QLocaleId likely_subtags[] = {
{ 0, 7, 222 }, { 90, 7, 222 }, // und_Latn_UA -> pl_Latn_UA
{ 0, 66, 0 }, { 283, 66, 100 }, // und_Lepc -> lep_Lepc_IN
{ 0, 67, 0 }, { 284, 67, 100 }, // und_Limb -> lif_Limb_IN
+ { 0, 112, 0 }, { 332, 112, 85 }, // und_Lina -> lab_Lina_GR
{ 0, 68, 0 }, { 264, 68, 85 }, // und_Linb -> grc_Linb_GR
{ 0, 51, 0 }, { 285, 51, 44 }, // und_Lisu -> lis_Lisu_CN
{ 0, 69, 0 }, { 287, 69, 217 }, // und_Lyci -> xlc_Lyci_TR
{ 0, 70, 0 }, { 288, 70, 217 }, // und_Lydi -> xld_Lydi_TR
+ { 0, 113, 0 }, { 49, 113, 100 }, // und_Mahj -> hi_Mahj_IN
{ 0, 71, 0 }, { 273, 71, 102 }, // und_Mand -> myz_Mand_IR
+ { 0, 114, 0 }, { 329, 114, 44 }, // und_Mani -> xmn_Mani_CN
+ { 0, 115, 0 }, { 330, 115, 189 }, // und_Mend -> men_Mend_SL
{ 0, 74, 0 }, { 291, 74, 201 }, // und_Merc -> xmr_Merc_SD
{ 0, 73, 0 }, { 291, 73, 201 }, // und_Mero -> xmr_Mero_SD
{ 0, 24, 0 }, { 77, 24, 100 }, // und_Mlym -> ml_Mlym_IN
+ { 0, 116, 0 }, { 80, 116, 100 }, // und_Modi -> mr_Modi_IN
{ 0, 8, 0 }, { 82, 8, 44 }, // und_Mong -> mn_Mong_CN
+ { 0, 117, 0 }, { 337, 117, 18 }, // und_Mroo -> mru_Mroo_BD
{ 0, 72, 0 }, { 290, 72, 100 }, // und_Mtei -> mni_Mtei_IN
{ 0, 25, 0 }, { 21, 25, 147 }, // und_Mymr -> my_Mymr_MM
+ { 0, 118, 0 }, { 331, 118, 186 }, // und_Narb -> xna_Narb_SA
+ { 0, 119, 0 }, { 265, 119, 109 }, // und_Nbat -> arc_Nbat_JO
{ 0, 75, 0 }, { 289, 75, 91 }, // und_Nkoo -> man_Nkoo_GN
{ 0, 77, 0 }, { 293, 77, 104 }, // und_Ogam -> sga_Ogam_IE
{ 0, 78, 0 }, { 304, 78, 100 }, // und_Olck -> sat_Olck_IN
{ 0, 82, 0 }, { 296, 82, 143 }, // und_Orkh -> otk_Orkh_MN
{ 0, 26, 0 }, { 87, 26, 100 }, // und_Orya -> or_Orya_IN
{ 0, 83, 0 }, { 110, 83, 194 }, // und_Osma -> so_Osma_SO
+ { 0, 120, 0 }, { 265, 120, 207 }, // und_Palm -> arc_Palm_SY
+ { 0, 121, 0 }, { 338, 121, 147 }, // und_Pauc -> ctd_Pauc_MM
+ { 0, 122, 0 }, { 226, 122, 178 }, // und_Perm -> kv_Perm_RU
{ 0, 58, 0 }, { 297, 58, 102 }, // und_Phli -> pal_Phli_IR
+ { 0, 123, 0 }, { 297, 123, 44 }, // und_Phlp -> pal_Phlp_CN
{ 0, 85, 0 }, { 299, 85, 119 }, // und_Phnx -> phn_Phnx_LB
{ 0, 86, 0 }, { 282, 86, 44 }, // und_Plrd -> hmd_Plrd_CN
{ 0, 59, 0 }, { 298, 59, 102 }, // und_Prti -> xpr_Prti_IR
@@ -720,6 +802,8 @@ static const QLocaleId likely_subtags[] = {
{ 0, 90, 0 }, { 305, 90, 100 }, // und_Saur -> saz_Saur_IN
{ 0, 92, 0 }, { 31, 92, 224 }, // und_Shaw -> en_Shaw_GB
{ 0, 91, 0 }, { 99, 91, 100 }, // und_Shrd -> sa_Shrd_IN
+ { 0, 124, 0 }, { 99, 124, 100 }, // und_Sidd -> sa_Sidd_IN
+ { 0, 125, 0 }, { 105, 125, 100 }, // und_Sind -> sd_Sind_IN
{ 0, 32, 0 }, { 106, 32, 198 }, // und_Sinh -> si_Sinh_LK
{ 0, 93, 0 }, { 306, 93, 100 }, // und_Sora -> srb_Sora_IN
{ 0, 95, 0 }, { 112, 95, 101 }, // und_Sund -> su_Sund_ID
@@ -737,8 +821,10 @@ static const QLocaleId likely_subtags[] = {
{ 0, 29, 0 }, { 143, 29, 131 }, // und_Thaa -> dv_Thaa_MV
{ 0, 30, 0 }, { 120, 30, 211 }, // und_Thai -> th_Thai_TH
{ 0, 31, 0 }, { 121, 31, 44 }, // und_Tibt -> bo_Tibt_CN
+ { 0, 126, 0 }, { 339, 126, 100 }, // und_Tirh -> mai_Tirh_IN
{ 0, 102, 0 }, { 311, 102, 207 }, // und_Ugar -> uga_Ugar_SY
{ 0, 35, 0 }, { 252, 35, 121 }, // und_Vaii -> vai_Vaii_LR
+ { 0, 127, 0 }, { 334, 127, 100 }, // und_Wara -> hoc_Wara_IN
{ 0, 80, 0 }, { 295, 80, 102 }, // und_Xpeo -> peo_Xpeo_IR
{ 0, 94, 0 }, { 262, 94, 103 }, // und_Xsux -> akk_Xsux_IQ
{ 0, 34, 0 }, { 168, 34, 44 } // und_Yiii -> ii_Yiii_CN
@@ -750,221 +836,221 @@ static const quint16 locale_index[] = {
0, // Abkhazian
1, // Oromo
3, // Afar
- 6, // Afrikaans
- 8, // Albanian
- 11, // Amharic
- 12, // Arabic
- 39, // Armenian
- 40, // Assamese
+ 4, // Afrikaans
+ 6, // Albanian
+ 9, // Amharic
+ 10, // Arabic
+ 37, // Armenian
+ 38, // Assamese
0, // Aymara
- 41, // Azerbaijani
- 0, // Bashkir
- 43, // Basque
- 44, // Bengali
- 46, // Dzongkha
+ 39, // Azerbaijani
+ 41, // Bashkir
+ 42, // Basque
+ 43, // Bengali
+ 45, // Dzongkha
0, // Bihari
0, // Bislama
- 47, // Breton
- 48, // Bulgarian
- 49, // Burmese
- 50, // Belarusian
- 51, // Khmer
- 52, // Catalan
- 56, // Chinese
- 0, // Corsican
+ 46, // Breton
+ 47, // Bulgarian
+ 48, // Burmese
+ 49, // Belarusian
+ 50, // Khmer
+ 51, // Catalan
+ 55, // Chinese
+ 62, // Corsican
63, // Croatian
65, // Czech
66, // Danish
68, // Dutch
75, // English
0, // Esperanto
- 166, // Estonian
- 167, // Faroese
+ 167, // Estonian
+ 168, // Faroese
0, // Fijian
- 168, // Finnish
- 169, // French
- 0, // Western Frisian
- 215, // Gaelic
- 216, // Galician
- 217, // Georgian
- 218, // German
- 224, // Greek
- 226, // Greenlandic
- 0, // Guarani
- 227, // Gujarati
- 228, // Hausa
- 231, // Hebrew
- 232, // Hindi
- 233, // Hungarian
- 234, // Icelandic
- 235, // Indonesian
- 236, // Interlingua
+ 169, // Finnish
+ 170, // French
+ 216, // Western Frisian
+ 217, // Gaelic
+ 218, // Galician
+ 219, // Georgian
+ 220, // German
+ 226, // Greek
+ 228, // Greenlandic
+ 229, // Guarani
+ 230, // Gujarati
+ 231, // Hausa
+ 235, // Hebrew
+ 236, // Hindi
+ 237, // Hungarian
+ 238, // Icelandic
+ 239, // Indonesian
+ 240, // Interlingua
0, // Interlingue
- 0, // Inuktitut
+ 241, // Inuktitut
0, // Inupiak
- 237, // Irish
- 238, // Italian
- 241, // Japanese
- 0, // Javanese
- 242, // Kannada
- 243, // Kashmiri
- 244, // Kazakh
- 245, // Kinyarwanda
- 246, // Kirghiz
- 247, // Korean
- 0, // Kurdish
- 249, // Rundi
- 250, // Lao
+ 243, // Irish
+ 244, // Italian
+ 247, // Japanese
+ 248, // Javanese
+ 249, // Kannada
+ 250, // Kashmiri
+ 251, // Kazakh
+ 252, // Kinyarwanda
+ 253, // Kirghiz
+ 254, // Korean
+ 256, // Kurdish
+ 257, // Rundi
+ 258, // Lao
0, // Latin
- 251, // Latvian
- 252, // Lingala
- 256, // Lithuanian
- 257, // Macedonian
- 258, // Malagasy
- 259, // Malay
- 262, // Malayalam
- 263, // Maltese
- 0, // Maori
- 264, // Marathi
+ 259, // Latvian
+ 260, // Lingala
+ 264, // Lithuanian
+ 265, // Macedonian
+ 266, // Malagasy
+ 267, // Malay
+ 271, // Malayalam
+ 272, // Maltese
+ 273, // Maori
+ 274, // Marathi
0, // Marshallese
- 265, // Mongolian
+ 275, // Mongolian
0, // Nauru
- 266, // Nepali
- 268, // NorwegianBokmal
- 0, // Occitan
- 270, // Oriya
- 271, // Pashto
- 272, // Persian
- 274, // Polish
- 275, // Portuguese
- 284, // Punjabi
- 0, // Quechua
- 286, // Romansh
- 287, // Romanian
- 289, // Russian
+ 277, // Nepali
+ 279, // NorwegianBokmal
+ 281, // Occitan
+ 282, // Oriya
+ 283, // Pashto
+ 284, // Persian
+ 286, // Polish
+ 287, // Portuguese
+ 296, // Punjabi
+ 298, // Quechua
+ 301, // Romansh
+ 302, // Romanian
+ 304, // Russian
0, // Samoan
- 295, // Sango
- 0, // Sanskrit
- 296, // Serbian
- 304, // Ossetic
- 306, // Southern Sotho
- 308, // Tswana
- 310, // Shona
- 0, // Sindhi
- 311, // Sinhala
- 312, // Swati
- 314, // Slovak
- 315, // Slovenian
- 316, // Somali
- 320, // Spanish
+ 310, // Sango
+ 311, // Sanskrit
+ 312, // Serbian
+ 320, // Ossetic
+ 322, // Southern Sotho
+ 323, // Tswana
+ 324, // Shona
+ 325, // Sindhi
+ 326, // Sinhala
+ 327, // Swati
+ 328, // Slovak
+ 329, // Slovenian
+ 330, // Somali
+ 334, // Spanish
0, // Sundanese
- 346, // Swahili
- 349, // Swedish
+ 360, // Swahili
+ 364, // Swedish
0, // Sardinian
- 352, // Tajik
- 353, // Tamil
- 0, // Tatar
- 357, // Telugu
- 358, // Thai
- 359, // Tibetan
- 361, // Tigrinya
- 363, // Tongan
- 364, // Tsonga
- 365, // Turkish
- 0, // Turkmen
+ 367, // Tajik
+ 368, // Tamil
+ 372, // Tatar
+ 373, // Telugu
+ 374, // Thai
+ 375, // Tibetan
+ 377, // Tigrinya
+ 379, // Tongan
+ 380, // Tsonga
+ 381, // Turkish
+ 383, // Turkmen
0, // Tahitian
- 0, // Uighur
- 367, // Ukrainian
- 368, // Urdu
- 370, // Uzbek
- 373, // Vietnamese
+ 384, // Uighur
+ 385, // Ukrainian
+ 386, // Urdu
+ 388, // Uzbek
+ 391, // Vietnamese
0, // Volapuk
- 374, // Welsh
- 0, // Wolof
- 375, // Xhosa
+ 392, // Welsh
+ 393, // Wolof
+ 394, // Xhosa
0, // Yiddish
- 376, // Yoruba
+ 395, // Yoruba
0, // Zhuang
- 378, // Zulu
- 379, // NorwegianNynorsk
- 380, // Bosnian
- 0, // Divehi
- 382, // Manx
- 383, // Cornish
- 384, // Akan
- 385, // Konkani
- 0, // Ga
- 386, // Igbo
- 387, // Kamba
- 0, // Syriac
- 388, // Blin
- 0, // Geez
+ 397, // Zulu
+ 398, // NorwegianNynorsk
+ 399, // Bosnian
+ 401, // Divehi
+ 402, // Manx
+ 403, // Cornish
+ 404, // Akan
+ 405, // Konkani
+ 406, // Ga
+ 407, // Igbo
+ 408, // Kamba
+ 409, // Syriac
+ 410, // Blin
+ 411, // Geez
0, // Koro
- 0, // Sidamo
- 0, // Atsam
- 389, // Tigre
- 0, // Jju
- 390, // Friulian
- 391, // Venda
- 392, // Ewe
- 394, // Walamo
- 395, // Hawaiian
- 0, // Tyap
- 0, // Nyanja
- 396, // Filipino
- 397, // Swiss German
- 399, // Sichuan Yi
- 0, // Kpelle
- 0, // Low German
- 400, // South Ndebele
- 401, // Northern Sotho
- 402, // Northern Sami
- 0, // Taroko
- 404, // Gusii
- 405, // Taita
- 406, // Fulah
- 407, // Kikuyu
- 408, // Samburu
- 409, // Sena
- 410, // North Ndebele
- 411, // Rombo
- 412, // Tachelhit
- 414, // Kabyle
- 415, // Nyankole
- 416, // Bena
- 417, // Vunjo
- 418, // Bambara
- 419, // Embu
- 420, // Cherokee
- 421, // Morisyen
- 422, // Makonde
- 423, // Langi
- 424, // Ganda
- 425, // Bemba
- 426, // Kabuverdianu
- 427, // Meru
- 428, // Kalenjin
- 429, // Nama
- 430, // Machame
- 431, // Colognian
- 432, // Masai
- 434, // Soga
- 435, // Luyia
- 436, // Asu
- 437, // Teso
- 439, // Saho
- 440, // Koyra Chiini
- 441, // Rwa
- 442, // Luo
- 443, // Chiga
- 444, // Central Morocco Tamazight
- 445, // Koyraboro Senni
- 446, // Shambala
- 447, // Bodo
+ 412, // Sidamo
+ 413, // Atsam
+ 414, // Tigre
+ 415, // Jju
+ 416, // Friulian
+ 417, // Venda
+ 418, // Ewe
+ 420, // Walamo
+ 421, // Hawaiian
+ 422, // Tyap
+ 423, // Nyanja
+ 424, // Filipino
+ 425, // Swiss German
+ 428, // Sichuan Yi
+ 429, // Kpelle
+ 430, // Low German
+ 431, // South Ndebele
+ 432, // Northern Sotho
+ 433, // Northern Sami
+ 436, // Taroko
+ 437, // Gusii
+ 438, // Taita
+ 439, // Fulah
+ 443, // Kikuyu
+ 444, // Samburu
+ 445, // Sena
+ 446, // North Ndebele
+ 447, // Rombo
+ 448, // Tachelhit
+ 450, // Kabyle
+ 451, // Nyankole
+ 452, // Bena
+ 453, // Vunjo
+ 454, // Bambara
+ 456, // Embu
+ 457, // Cherokee
+ 458, // Morisyen
+ 459, // Makonde
+ 460, // Langi
+ 461, // Ganda
+ 462, // Bemba
+ 463, // Kabuverdianu
+ 464, // Meru
+ 465, // Kalenjin
+ 466, // Nama
+ 467, // Machame
+ 468, // Colognian
+ 469, // Masai
+ 471, // Soga
+ 472, // Luyia
+ 473, // Asu
+ 474, // Teso
+ 476, // Saho
+ 477, // Koyra Chiini
+ 478, // Rwa
+ 479, // Luo
+ 480, // Chiga
+ 481, // Central Morocco Tamazight
+ 482, // Koyraboro Senni
+ 483, // Shambala
+ 484, // Bodo
0, // Avaric
0, // Chamorro
- 0, // Chechen
- 0, // Church
+ 485, // Chechen
+ 486, // Church
0, // Chuvash
0, // Cree
0, // Haitian
@@ -975,37 +1061,37 @@ static const quint16 locale_index[] = {
0, // Kongo
0, // Kwanyama
0, // Limburgish
- 448, // LubaKatanga
- 0, // Luxembourgish
+ 487, // LubaKatanga
+ 488, // Luxembourgish
0, // Navaho
0, // Ndonga
0, // Ojibwa
0, // Pali
- 0, // Walloon
- 449, // Aghem
- 450, // Basaa
- 451, // Zarma
- 452, // Duala
- 453, // JolaFonyi
- 454, // Ewondo
- 455, // Bafia
- 456, // MakhuwaMeetto
- 457, // Mundang
- 458, // Kwasio
- 459, // Nuer
- 460, // Sakha
- 461, // Sangu
- 462, // Congo Swahili
- 463, // Tasawaq
- 464, // Vai
- 466, // Walser
- 467, // Yangben
+ 489, // Walloon
+ 490, // Aghem
+ 491, // Basaa
+ 492, // Zarma
+ 493, // Duala
+ 494, // JolaFonyi
+ 495, // Ewondo
+ 496, // Bafia
+ 497, // MakhuwaMeetto
+ 498, // Mundang
+ 499, // Kwasio
+ 500, // Nuer
+ 501, // Sakha
+ 502, // Sangu
+ 0, // Congo Swahili
+ 503, // Tasawaq
+ 504, // Vai
+ 506, // Walser
+ 507, // Yangben
0, // Avestan
- 468, // Asturian
- 469, // Ngomba
- 470, // Kako
- 471, // Meta
- 472, // Ngiemboon
+ 508, // Asturian
+ 509, // Ngomba
+ 510, // Kako
+ 511, // Meta
+ 512, // Ngiemboon
0, // Aragonese
0, // Akkadian
0, // AncientEgyptian
@@ -1057,9 +1143,34 @@ static const quint16 locale_index[] = {
0, // TaiDam
0, // TaiNua
0, // Ugaritic
- 0, // Akoose
- 473, // Lakota
- 474, // Standard Moroccan Tamazight
+ 513, // Akoose
+ 514, // Lakota
+ 515, // Standard Moroccan Tamazight
+ 516, // Mapuche
+ 517, // Central Kurdish
+ 518, // LowerSorbian
+ 519, // UpperSorbian
+ 520, // Kenyang
+ 521, // Mohawk
+ 522, // Nko
+ 0, // Prussian
+ 523, // Kiche
+ 524, // Southern Sami
+ 525, // Lule Sami
+ 526, // Inari Sami
+ 527, // Skolt Sami
+ 528, // Warlpiri
+ 0, // Manichaean Middle Persian
+ 0, // Mende
+ 0, // Ancient North Arabian
+ 0, // Linear A
+ 0, // Hmong Njua
+ 0, // Ho
+ 0, // Lezghian
+ 0, // Bassa
+ 0, // Mono
+ 0, // Tedim Chin
+ 0, // Maithili
0 // trailing 0
};
@@ -1068,478 +1179,532 @@ static const QLocaleData locale_data[] = {
{ 1, 0, 0, 46, 44, 59, 37, 48, 45, 43, 101, 34, 34, 39, 39, 0,6 , 0,6 , 0,6 , 0,6 , 0,10 , 10,17 , 0,8 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 158,27 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 99,14 , 0,2 , 0,2 , {0,0,0}, 0,0 , 0,7 , 0,4 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // C/AnyScript/AnyCountry
{ 3, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 18,7 , 25,12 , 185,48 , 233,111 , 134,24 , 185,48 , 233,111 , 134,24 , 113,28 , 141,55 , 85,14 , 113,28 , 141,55 , 85,14 , 2,2 , 2,2 , {69,84,66}, 0,2 , 7,24 , 4,4 , 4,0 , 0,6 , 6,10 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Ethiopia
{ 3, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 18,7 , 25,12 , 185,48 , 233,111 , 134,24 , 185,48 , 233,111 , 134,24 , 113,28 , 141,55 , 85,14 , 113,28 , 141,55 , 85,14 , 2,2 , 2,2 , {75,69,83}, 2,3 , 0,7 , 4,4 , 4,0 , 0,6 , 16,8 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Kenya
- { 4, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 344,48 , 392,118 , 510,24 , 344,48 , 392,118 , 510,24 , 196,28 , 224,52 , 276,14 , 196,28 , 224,52 , 276,14 , 0,2 , 0,2 , {69,84,66}, 0,2 , 0,7 , 4,4 , 4,0 , 24,5 , 29,7 , 2, 1, 7, 6, 7 }, // Afar/Latin/Ethiopia
- { 4, 7, 59, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 344,48 , 534,119 , 510,24 , 344,48 , 534,119 , 510,24 , 196,28 , 224,52 , 276,14 , 196,28 , 224,52 , 276,14 , 0,2 , 0,2 , {68,74,70}, 5,3 , 0,7 , 4,4 , 4,0 , 24,5 , 36,7 , 0, 0, 6, 6, 7 }, // Afar/Latin/Djibouti
- { 4, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 344,48 , 392,118 , 510,24 , 344,48 , 392,118 , 510,24 , 196,28 , 224,52 , 276,14 , 196,28 , 224,52 , 276,14 , 0,2 , 0,2 , {69,82,78}, 8,3 , 0,7 , 4,4 , 4,0 , 24,5 , 43,7 , 2, 1, 1, 6, 7 }, // Afar/Latin/Eritrea
- { 5, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 72,10 , 82,17 , 18,7 , 25,12 , 653,48 , 701,92 , 134,24 , 653,48 , 701,92 , 134,24 , 290,21 , 311,58 , 369,14 , 290,21 , 311,58 , 369,14 , 4,3 , 4,3 , {90,65,82}, 11,1 , 31,27 , 4,4 , 4,0 , 50,9 , 59,11 , 2, 1, 7, 6, 7 }, // Afrikaans/Latin/SouthAfrica
- { 5, 7, 148, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 72,10 , 99,16 , 37,5 , 8,10 , 653,48 , 701,92 , 134,24 , 653,48 , 701,92 , 134,24 , 290,21 , 311,58 , 369,14 , 290,21 , 311,58 , 369,14 , 4,3 , 4,3 , {78,65,68}, 12,1 , 58,23 , 8,5 , 4,0 , 50,9 , 70,7 , 2, 1, 1, 6, 7 }, // Afrikaans/Latin/Namibia
- { 6, 7, 2, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 27,8 , 115,18 , 37,5 , 8,10 , 793,48 , 841,78 , 919,24 , 793,48 , 841,78 , 919,24 , 383,28 , 411,58 , 469,14 , 383,28 , 411,58 , 469,14 , 7,8 , 7,7 , {65,76,76}, 13,4 , 81,45 , 13,5 , 4,0 , 77,5 , 82,8 , 0, 0, 1, 6, 7 }, // Albanian/Latin/Albania
- { 6, 7, 127, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 27,8 , 115,18 , 37,5 , 8,10 , 793,48 , 841,78 , 919,24 , 793,48 , 841,78 , 919,24 , 383,28 , 411,58 , 469,14 , 383,28 , 411,58 , 469,14 , 7,8 , 7,7 , {77,75,68}, 17,3 , 126,53 , 13,5 , 4,0 , 77,5 , 90,8 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Macedonia
- { 6, 7, 257, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 27,8 , 115,18 , 37,5 , 8,10 , 793,48 , 841,78 , 919,24 , 793,48 , 841,78 , 919,24 , 383,28 , 411,58 , 469,14 , 383,28 , 411,58 , 469,14 , 7,8 , 7,7 , {69,85,82}, 20,1 , 179,19 , 13,5 , 4,0 , 77,5 , 98,6 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Kosovo
- { 7, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 23,6 , 23,6 , 29,9 , 38,8 , 133,10 , 10,17 , 18,7 , 25,12 , 943,46 , 989,61 , 1050,24 , 1074,46 , 1120,62 , 1050,24 , 483,27 , 510,28 , 538,14 , 483,27 , 510,28 , 538,14 , 15,3 , 14,4 , {69,84,66}, 21,2 , 198,34 , 4,4 , 4,0 , 104,4 , 108,5 , 2, 1, 7, 6, 7 }, // Amharic/Ethiopic/Ethiopia
- { 8, 1, 64, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 60,6 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {69,71,80}, 23,5 , 232,70 , 8,5 , 4,0 , 113,7 , 120,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Egypt
- { 8, 1, 3, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 171,8 , 153,18 , 18,7 , 25,12 , 1281,71 , 1281,71 , 1352,24 , 1281,71 , 1281,71 , 1352,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {68,90,68}, 28,5 , 302,91 , 8,5 , 4,0 , 113,7 , 123,7 , 2, 1, 6, 4, 5 }, // Arabic/Arabic/Algeria
- { 8, 1, 17, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {66,72,68}, 33,5 , 393,91 , 8,5 , 4,0 , 113,7 , 130,7 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Bahrain
- { 8, 1, 42, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {88,65,70}, 38,4 , 484,84 , 8,5 , 4,0 , 113,7 , 137,4 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Chad
- { 8, 1, 48, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {75,77,70}, 42,7 , 568,105 , 8,5 , 4,0 , 113,7 , 141,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Comoros
- { 8, 1, 59, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {68,74,70}, 5,3 , 673,84 , 8,5 , 4,0 , 113,7 , 150,6 , 0, 0, 6, 6, 7 }, // Arabic/Arabic/Djibouti
- { 8, 1, 67, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {69,82,78}, 8,3 , 757,91 , 8,5 , 4,0 , 113,7 , 156,7 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Eritrea
- { 8, 1, 103, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1376,92 , 1376,92 , 1468,24 , 1492,92 , 1376,92 , 1468,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {73,81,68}, 49,5 , 848,84 , 8,5 , 4,0 , 113,7 , 163,6 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Iraq
- { 8, 1, 105, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {73,76,83}, 54,1 , 932,133 , 8,5 , 4,0 , 113,7 , 169,7 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Israel
- { 8, 1, 109, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1376,92 , 1376,92 , 1468,24 , 1376,92 , 1376,92 , 1468,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {74,79,68}, 55,5 , 1065,84 , 8,5 , 4,0 , 113,7 , 176,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Jordan
- { 8, 1, 115, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {75,87,68}, 60,5 , 1149,84 , 8,5 , 4,0 , 113,7 , 182,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Kuwait
- { 8, 1, 119, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1376,92 , 1376,92 , 1468,24 , 1376,92 , 1376,92 , 1468,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {76,66,80}, 65,5 , 1233,84 , 8,5 , 4,0 , 113,7 , 188,5 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Lebanon
- { 8, 1, 122, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {76,89,68}, 70,5 , 1317,77 , 8,5 , 4,0 , 113,7 , 193,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Libya
- { 8, 1, 136, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1584,72 , 1584,72 , 1656,24 , 1584,72 , 1584,72 , 1656,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {77,82,79}, 75,5 , 1394,112 , 8,5 , 4,0 , 113,7 , 198,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Mauritania
- { 8, 1, 145, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 171,8 , 153,18 , 18,7 , 25,12 , 1680,70 , 1680,70 , 1750,24 , 1680,70 , 1680,70 , 1750,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {77,65,68}, 80,5 , 1506,77 , 8,5 , 4,0 , 113,7 , 207,6 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Morocco
- { 8, 1, 162, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {79,77,82}, 85,5 , 1583,77 , 8,5 , 4,0 , 113,7 , 213,5 , 3, 0, 6, 4, 5 }, // Arabic/Arabic/Oman
- { 8, 1, 165, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1376,92 , 1376,92 , 1468,24 , 1376,92 , 1376,92 , 1468,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {73,76,83}, 54,1 , 932,133 , 8,5 , 4,0 , 113,7 , 218,18 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/PalestinianTerritories
- { 8, 1, 175, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {81,65,82}, 90,5 , 1660,70 , 4,4 , 4,0 , 113,7 , 236,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Qatar
- { 8, 1, 186, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {83,65,82}, 95,5 , 1730,77 , 4,4 , 4,0 , 113,7 , 239,24 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/SaudiArabia
- { 8, 1, 194, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {83,79,83}, 100,1 , 1807,77 , 8,5 , 4,0 , 113,7 , 263,7 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Somalia
- { 8, 1, 201, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {83,68,71}, 101,4 , 1884,84 , 8,5 , 4,0 , 113,7 , 270,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Sudan
- { 8, 1, 207, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1376,92 , 1376,92 , 1468,24 , 1376,92 , 1376,92 , 1468,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {83,89,80}, 105,5 , 1968,77 , 4,4 , 4,0 , 113,7 , 277,5 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Syria
- { 8, 1, 216, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 171,8 , 153,18 , 18,7 , 25,12 , 1281,71 , 1281,71 , 1352,24 , 1281,71 , 1281,71 , 1352,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {84,78,68}, 110,5 , 2045,77 , 4,4 , 4,0 , 113,7 , 282,4 , 3, 0, 7, 5, 6 }, // Arabic/Arabic/Tunisia
- { 8, 1, 223, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {65,69,68}, 115,5 , 2122,91 , 8,5 , 4,0 , 113,7 , 286,24 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/UnitedArabEmirates
- { 8, 1, 236, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {77,65,68}, 80,5 , 1506,77 , 8,5 , 4,0 , 113,7 , 310,15 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/WesternSahara
- { 8, 1, 237, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {89,69,82}, 120,5 , 2213,70 , 4,4 , 4,0 , 113,7 , 325,5 , 0, 0, 7, 5, 6 }, // Arabic/Arabic/Yemen
- { 8, 1, 254, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 143,10 , 153,18 , 18,7 , 25,12 , 1182,75 , 1182,75 , 1257,24 , 1182,75 , 1182,75 , 1257,24 , 552,52 , 552,52 , 604,14 , 552,52 , 552,52 , 604,14 , 18,1 , 18,1 , {83,83,80}, 125,1 , 2283,126 , 8,5 , 4,0 , 113,7 , 330,12 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/SouthSudan
- { 9, 10, 11, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 73,7 , 73,7 , 179,8 , 187,19 , 42,4 , 46,10 , 1774,48 , 1822,94 , 1916,24 , 1774,48 , 1940,106 , 1916,24 , 618,28 , 646,62 , 708,15 , 618,28 , 646,62 , 708,15 , 19,12 , 19,12 , {65,77,68}, 126,3 , 2409,46 , 13,5 , 4,0 , 342,7 , 349,8 , 0, 0, 1, 6, 7 }, // Armenian/Armenian/Armenia
- { 10, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 206,8 , 214,18 , 56,8 , 64,12 , 2046,62 , 2108,88 , 158,27 , 2046,62 , 2108,88 , 158,27 , 723,37 , 760,58 , 85,14 , 723,37 , 760,58 , 85,14 , 31,9 , 31,7 , {73,78,82}, 129,1 , 0,7 , 8,5 , 4,0 , 357,7 , 364,4 , 2, 1, 7, 7, 7 }, // Assamese/Bengali/India
- { 12, 7, 15, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 80,8 , 80,8 , 179,8 , 232,17 , 37,5 , 8,10 , 2196,48 , 2244,77 , 158,27 , 2196,48 , 2321,77 , 158,27 , 818,26 , 844,67 , 99,14 , 818,26 , 844,67 , 99,14 , 0,2 , 0,2 , {65,90,78}, 130,4 , 2455,58 , 8,5 , 4,0 , 368,10 , 378,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Latin/Azerbaijan
- { 12, 2, 15, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 179,8 , 249,19 , 37,5 , 8,10 , 2398,77 , 2398,77 , 158,27 , 2398,77 , 2398,77 , 158,27 , 911,67 , 911,67 , 99,14 , 911,67 , 911,67 , 99,14 , 0,2 , 0,2 , {65,90,78}, 134,4 , 2513,12 , 8,5 , 4,0 , 388,10 , 388,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Cyrillic/Azerbaijan
- { 14, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 88,9 , 88,9 , 72,10 , 268,26 , 37,5 , 8,10 , 2475,60 , 2535,93 , 2628,24 , 2475,60 , 2652,105 , 2628,24 , 978,28 , 1006,68 , 1074,14 , 978,28 , 1006,68 , 1074,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2525,20 , 13,5 , 4,0 , 398,7 , 405,8 , 2, 1, 1, 6, 7 }, // Basque/Latin/Spain
- { 15, 11, 18, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 97,10 , 107,9 , 294,6 , 214,18 , 18,7 , 25,12 , 2757,90 , 2757,90 , 2847,33 , 2757,90 , 2757,90 , 2847,33 , 1088,37 , 1125,58 , 1183,18 , 1088,37 , 1125,58 , 1183,18 , 40,9 , 38,7 , {66,68,84}, 138,1 , 2545,49 , 0,4 , 18,6 , 413,5 , 418,8 , 2, 1, 5, 6, 7 }, // Bengali/Bengali/Bangladesh
- { 15, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 97,10 , 107,9 , 294,6 , 214,18 , 18,7 , 25,12 , 2757,90 , 2757,90 , 2847,33 , 2757,90 , 2757,90 , 2847,33 , 1088,37 , 1125,58 , 1183,18 , 1088,37 , 1125,58 , 1183,18 , 40,9 , 38,7 , {73,78,82}, 129,1 , 2594,43 , 0,4 , 18,6 , 413,5 , 426,4 , 2, 1, 7, 7, 7 }, // Bengali/Bengali/India
- { 16, 31, 25, 46, 44, 59, 37, 3872, 45, 43, 101, 8220, 8221, 8216, 8217, 116,9 , 116,9 , 116,9 , 116,9 , 72,10 , 300,30 , 76,22 , 98,27 , 2880,63 , 2943,191 , 3134,27 , 3161,27 , 3188,132 , 3320,27 , 1201,34 , 1235,79 , 1314,27 , 1201,34 , 1235,79 , 1314,27 , 49,5 , 45,6 , {66,84,78}, 139,3 , 2637,15 , 4,4 , 4,0 , 430,6 , 436,5 , 2, 1, 7, 6, 7 }, // Dzongkha/Tibetan/Bhutan
- { 19, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 3347,55 , 3402,78 , 158,27 , 3347,55 , 3402,78 , 158,27 , 1341,33 , 1374,43 , 1417,21 , 1341,33 , 1374,43 , 1417,21 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2652,11 , 8,5 , 4,0 , 441,9 , 450,5 , 2, 1, 1, 6, 7 }, // Breton/Latin/France
- { 20, 2, 33, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 347,7 , 354,22 , 42,4 , 125,9 , 3480,59 , 3539,82 , 3621,24 , 3480,59 , 3539,82 , 3621,24 , 1438,21 , 1459,55 , 1514,14 , 1438,21 , 1459,55 , 1514,14 , 54,6 , 51,6 , {66,71,78}, 142,3 , 2663,47 , 13,5 , 4,0 , 455,9 , 464,8 , 2, 1, 1, 6, 7 }, // Bulgarian/Cyrillic/Bulgaria
- { 21, 25, 147, 46, 44, 4170, 37, 4160, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 132,11 , 143,9 , 376,8 , 384,18 , 37,5 , 8,10 , 3645,88 , 3645,88 , 3733,24 , 3645,88 , 3645,88 , 3733,24 , 1528,54 , 1528,54 , 1582,14 , 1528,54 , 1528,54 , 1582,14 , 60,5 , 57,3 , {77,77,75}, 145,1 , 2710,27 , 8,5 , 4,0 , 472,3 , 475,6 , 0, 0, 7, 6, 7 }, // Burmese/Myanmar/Myanmar
- { 22, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 402,6 , 10,17 , 134,5 , 139,10 , 3757,48 , 3805,95 , 3900,24 , 3924,48 , 3972,98 , 3900,24 , 1596,21 , 1617,56 , 1673,14 , 1596,21 , 1617,56 , 1673,14 , 65,10 , 60,13 , {66,89,82}, 146,2 , 2737,23 , 4,4 , 4,0 , 481,10 , 491,8 , 0, 0, 7, 6, 7 }, // Belarusian/Cyrillic/Belarus
- { 23, 20, 36, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 152,9 , 408,8 , 99,16 , 18,7 , 25,12 , 4070,71 , 4070,71 , 158,27 , 4070,71 , 4070,71 , 158,27 , 1687,46 , 1687,46 , 1733,14 , 1687,46 , 1687,46 , 1733,14 , 75,5 , 73,5 , {75,72,82}, 148,1 , 2760,18 , 4,4 , 4,0 , 499,5 , 504,7 , 2, 1, 7, 6, 7 }, // Khmer/Khmer/Cambodia
- { 24, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 161,7 , 161,7 , 294,6 , 416,22 , 149,4 , 153,9 , 4141,59 , 4200,82 , 4282,36 , 4141,59 , 4200,82 , 4282,36 , 1747,28 , 1775,60 , 1835,21 , 1747,28 , 1775,60 , 1835,21 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 511,6 , 517,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Spain
- { 24, 7, 5, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 161,7 , 161,7 , 294,6 , 416,22 , 149,4 , 153,9 , 4141,59 , 4200,82 , 4282,36 , 4141,59 , 4200,82 , 4282,36 , 1747,28 , 1775,60 , 1835,21 , 1747,28 , 1775,60 , 1835,21 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 511,6 , 524,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Andorra
- { 24, 7, 74, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 161,7 , 161,7 , 294,6 , 416,22 , 149,4 , 153,9 , 4141,59 , 4200,82 , 4282,36 , 4141,59 , 4200,82 , 4282,36 , 1747,28 , 1775,60 , 1835,21 , 1747,28 , 1775,60 , 1835,21 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 511,6 , 531,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/France
- { 24, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 161,7 , 161,7 , 294,6 , 416,22 , 149,4 , 153,9 , 4141,59 , 4200,82 , 4282,36 , 4141,59 , 4200,82 , 4282,36 , 1747,28 , 1775,60 , 1835,21 , 1747,28 , 1775,60 , 1835,21 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 511,6 , 537,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Italy
- { 25, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 168,5 , 168,5 , 173,5 , 173,5 , 438,6 , 444,13 , 162,6 , 168,10 , 4318,39 , 4357,38 , 158,27 , 4318,39 , 4357,38 , 158,27 , 1856,21 , 1877,28 , 1905,14 , 1856,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {67,78,89}, 149,1 , 2798,13 , 8,5 , 4,0 , 543,4 , 547,2 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/China
- { 25, 5, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 168,5 , 168,5 , 173,5 , 173,5 , 294,6 , 444,13 , 162,6 , 168,10 , 4318,39 , 4357,38 , 158,27 , 4318,39 , 4357,38 , 158,27 , 1856,21 , 1877,28 , 1905,14 , 1856,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {72,75,68}, 12,1 , 2811,11 , 4,4 , 4,0 , 543,4 , 549,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/HongKong
- { 25, 5, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 168,5 , 168,5 , 173,5 , 173,5 , 294,6 , 444,13 , 162,6 , 168,10 , 4318,39 , 4357,38 , 158,27 , 4318,39 , 4357,38 , 158,27 , 1856,21 , 1877,28 , 1905,14 , 1856,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {77,79,80}, 150,4 , 2822,13 , 4,4 , 4,0 , 543,4 , 558,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Macau
- { 25, 5, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 168,5 , 168,5 , 173,5 , 173,5 , 27,8 , 444,13 , 178,7 , 168,10 , 4318,39 , 4357,38 , 158,27 , 4318,39 , 4357,38 , 158,27 , 1856,21 , 1877,28 , 1905,14 , 1856,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {83,71,68}, 12,1 , 2835,15 , 4,4 , 4,0 , 543,4 , 567,3 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Singapore
- { 25, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 168,5 , 168,5 , 173,5 , 173,5 , 294,6 , 444,13 , 162,6 , 185,13 , 4318,39 , 4318,39 , 158,27 , 4318,39 , 4318,39 , 158,27 , 1919,21 , 1877,28 , 1905,14 , 1919,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {72,75,68}, 12,1 , 2850,11 , 4,4 , 4,0 , 570,4 , 574,14 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/HongKong
- { 25, 6, 126, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 168,5 , 168,5 , 173,5 , 173,5 , 457,7 , 464,15 , 162,6 , 185,13 , 4318,39 , 4318,39 , 158,27 , 4318,39 , 4318,39 , 158,27 , 1919,21 , 1877,28 , 1905,14 , 1919,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {77,79,80}, 150,4 , 2861,13 , 4,4 , 4,0 , 570,4 , 588,14 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Macau
- { 25, 6, 208, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 168,5 , 168,5 , 173,5 , 173,5 , 171,8 , 444,13 , 162,6 , 198,11 , 4318,39 , 4318,39 , 158,27 , 4318,39 , 4318,39 , 158,27 , 1919,21 , 1877,28 , 1905,14 , 1919,21 , 1877,28 , 1905,14 , 85,2 , 83,2 , {84,87,68}, 154,3 , 2874,13 , 4,4 , 4,0 , 570,4 , 602,2 , 2, 0, 7, 6, 7 }, // Chinese/Traditional Han/Taiwan
- { 27, 7, 54, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 486,19 , 37,5 , 8,10 , 4395,49 , 4444,94 , 4538,39 , 4395,49 , 4577,98 , 4538,39 , 1940,28 , 1968,58 , 2026,14 , 1940,28 , 1968,58 , 2040,14 , 0,2 , 0,2 , {72,82,75}, 157,2 , 2887,60 , 13,5 , 4,0 , 604,8 , 612,8 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Croatia
- { 27, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 486,19 , 37,5 , 8,10 , 4395,49 , 4444,94 , 4538,39 , 4395,49 , 4577,98 , 4538,39 , 1940,28 , 1968,58 , 2026,14 , 1940,28 , 1968,58 , 2040,14 , 0,2 , 0,2 , {66,65,77}, 159,2 , 2947,85 , 13,5 , 4,0 , 604,8 , 620,19 , 2, 1, 1, 6, 7 }, // Croatian/Latin/BosniaAndHerzegowina
- { 28, 7, 57, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 178,7 , 178,7 , 179,8 , 505,17 , 42,4 , 125,9 , 4675,48 , 4723,82 , 4805,24 , 4675,48 , 4829,84 , 158,27 , 2054,21 , 2075,49 , 2124,14 , 2054,21 , 2075,49 , 2124,14 , 0,2 , 0,2 , {67,90,75}, 161,2 , 3032,68 , 13,5 , 4,0 , 639,7 , 646,15 , 2, 1, 1, 6, 7 }, // Czech/Latin/CzechRepublic
- { 29, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 27,8 , 522,23 , 134,5 , 139,10 , 4913,48 , 4961,84 , 134,24 , 5045,59 , 4961,84 , 134,24 , 2138,28 , 2166,51 , 2217,14 , 2231,35 , 2166,51 , 2217,14 , 0,2 , 0,2 , {68,75,75}, 163,2 , 3100,42 , 13,5 , 4,0 , 661,5 , 666,7 , 2, 1, 1, 6, 7 }, // Danish/Latin/Denmark
- { 29, 7, 86, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 27,8 , 522,23 , 134,5 , 139,10 , 4913,48 , 4961,84 , 134,24 , 5045,59 , 4961,84 , 134,24 , 2138,28 , 2166,51 , 2217,14 , 2231,35 , 2166,51 , 2217,14 , 0,2 , 0,2 , {68,75,75}, 163,2 , 3100,42 , 13,5 , 4,0 , 661,5 , 673,8 , 2, 1, 1, 6, 7 }, // Danish/Latin/Greenland
- { 30, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 179,19 , 8,5 , 24,6 , 681,10 , 691,9 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Netherlands
- { 30, 7, 12, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {65,87,71}, 165,4 , 3142,55 , 8,5 , 24,6 , 681,10 , 700,5 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Aruba
- { 30, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 553,7 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 179,19 , 13,5 , 4,0 , 705,6 , 711,6 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Belgium
- { 30, 7, 152, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {65,78,71}, 169,4 , 3197,97 , 8,5 , 24,6 , 681,10 , 717,7 , 2, 1, 1, 6, 7 }, // Dutch/Latin/CuraSao
- { 30, 7, 202, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {83,82,68}, 12,1 , 3294,58 , 8,5 , 24,6 , 681,10 , 724,8 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Suriname
- { 30, 7, 255, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3352,61 , 8,5 , 24,6 , 681,10 , 732,19 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Bonaire
- { 30, 7, 256, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 545,8 , 99,16 , 37,5 , 8,10 , 5104,48 , 5152,88 , 134,24 , 5240,59 , 5152,88 , 134,24 , 2266,21 , 2287,59 , 2346,14 , 2266,21 , 2287,59 , 2346,14 , 0,2 , 0,2 , {65,78,71}, 169,4 , 3197,97 , 8,5 , 24,6 , 681,10 , 751,12 , 2, 1, 1, 6, 7 }, // Dutch/Latin/SintMaarten
- { 31, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 763,16 , 779,13 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStates
- { 31, 3, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 5299,80 , 5379,154 , 5533,36 , 5299,80 , 5379,154 , 5533,36 , 2360,49 , 2409,85 , 2494,21 , 2360,49 , 2409,85 , 2494,21 , 87,4 , 85,4 , {85,83,68}, 12,1 , 0,7 , 8,5 , 4,0 , 792,10 , 802,25 , 2, 1, 7, 6, 7 }, // English/Deseret/UnitedStates
- { 31, 7, 4, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 834,14 , 2, 1, 7, 6, 7 }, // English/Latin/AmericanSamoa
- { 31, 7, 7, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 848,8 , 2, 1, 1, 6, 7 }, // English/Latin/Anguilla
- { 31, 7, 9, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 856,19 , 2, 1, 7, 6, 7 }, // English/Latin/AntiguaAndBarbuda
- { 31, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 566,9 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 875,18 , 893,9 , 2, 1, 7, 6, 7 }, // English/Latin/Australia
- { 31, 7, 16, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,83,68}, 12,1 , 3578,53 , 4,4 , 4,0 , 827,7 , 902,7 , 2, 1, 7, 6, 7 }, // English/Latin/Bahamas
- { 31, 7, 19, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,66,68}, 12,1 , 3631,56 , 4,4 , 4,0 , 827,7 , 909,8 , 2, 1, 1, 6, 7 }, // English/Latin/Barbados
- { 31, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 27,8 , 99,16 , 37,5 , 209,24 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {69,85,82}, 20,1 , 3687,20 , 13,5 , 4,0 , 827,7 , 917,7 , 2, 1, 1, 6, 7 }, // English/Latin/Belgium
- { 31, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 27,8 , 82,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,90,68}, 12,1 , 3707,47 , 4,4 , 4,0 , 827,7 , 924,6 , 2, 1, 7, 6, 7 }, // English/Latin/Belize
- { 31, 7, 24, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,77,68}, 12,1 , 3754,53 , 4,4 , 4,0 , 827,7 , 930,7 , 2, 1, 1, 6, 7 }, // English/Latin/Bermuda
- { 31, 7, 28, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 27,8 , 82,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,87,80}, 176,1 , 3807,50 , 4,4 , 4,0 , 827,7 , 937,8 , 2, 1, 7, 6, 7 }, // English/Latin/Botswana
- { 31, 7, 31, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 945,30 , 2, 1, 1, 6, 7 }, // English/Latin/BritishIndianOceanTerritory
- { 31, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 3857,50 , 4,4 , 4,0 , 827,7 , 975,8 , 0, 0, 1, 6, 7 }, // English/Latin/Cameroon
- { 31, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {67,65,68}, 12,1 , 3907,53 , 4,4 , 4,0 , 983,16 , 999,6 , 2, 0, 7, 6, 7 }, // English/Latin/Canada
- { 31, 7, 40, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {75,89,68}, 12,1 , 3960,71 , 4,4 , 4,0 , 827,7 , 1005,14 , 2, 1, 1, 6, 7 }, // English/Latin/CaymanIslands
- { 31, 7, 45, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1019,16 , 2, 1, 1, 6, 7 }, // English/Latin/ChristmasIsland
- { 31, 7, 46, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1035,23 , 2, 1, 1, 6, 7 }, // English/Latin/CocosIslands
- { 31, 7, 51, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 12,1 , 4031,62 , 4,4 , 4,0 , 827,7 , 1058,12 , 2, 1, 1, 6, 7 }, // English/Latin/CookIslands
- { 31, 7, 60, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1070,8 , 2, 1, 7, 6, 7 }, // English/Latin/Dominica
- { 31, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {69,82,78}, 8,3 , 4093,50 , 4,4 , 4,0 , 827,7 , 1078,7 , 2, 1, 1, 6, 7 }, // English/Latin/Eritrea
- { 31, 7, 70, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {70,75,80}, 125,1 , 4143,74 , 4,4 , 4,0 , 827,7 , 1085,16 , 2, 1, 1, 6, 7 }, // English/Latin/FalklandIslands
- { 31, 7, 72, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {70,74,68}, 12,1 , 4217,47 , 4,4 , 4,0 , 827,7 , 1101,4 , 2, 1, 1, 6, 7 }, // English/Latin/Fiji
- { 31, 7, 75, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {71,66,80}, 125,1 , 4264,47 , 4,4 , 4,0 , 827,7 , 1105,8 , 2, 1, 1, 6, 7 }, // English/Latin/Guernsey
- { 31, 7, 80, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,77,68}, 177,1 , 4311,50 , 4,4 , 4,0 , 827,7 , 1113,6 , 2, 1, 1, 6, 7 }, // English/Latin/Gambia
- { 31, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,72,83}, 178,3 , 4361,47 , 4,4 , 4,0 , 827,7 , 1119,5 , 2, 1, 1, 6, 7 }, // English/Latin/Ghana
- { 31, 7, 84, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {71,73,80}, 125,1 , 4408,53 , 4,4 , 4,0 , 827,7 , 1124,9 , 2, 1, 1, 6, 7 }, // English/Latin/Gibraltar
- { 31, 7, 87, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1133,7 , 2, 1, 1, 6, 7 }, // English/Latin/Grenada
- { 31, 7, 89, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1140,4 , 2, 1, 7, 6, 7 }, // English/Latin/Guam
- { 31, 7, 93, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,89,68}, 12,1 , 4461,56 , 4,4 , 4,0 , 827,7 , 1144,6 , 0, 0, 1, 6, 7 }, // English/Latin/Guyana
- { 31, 7, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 294,6 , 214,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {72,75,68}, 12,1 , 4517,56 , 4,4 , 4,0 , 827,7 , 1150,19 , 2, 1, 7, 6, 7 }, // English/Latin/HongKong
- { 31, 7, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 27,8 , 99,16 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {73,78,82}, 129,1 , 4573,44 , 8,5 , 4,0 , 827,7 , 1169,5 , 2, 1, 7, 7, 7 }, // English/Latin/India
- { 31, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 99,16 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 93,4 , 91,4 , {69,85,82}, 20,1 , 3687,20 , 4,4 , 4,0 , 827,7 , 1174,7 , 2, 1, 7, 6, 7 }, // English/Latin/Ireland
- { 31, 7, 107, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 294,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {74,77,68}, 12,1 , 4617,53 , 4,4 , 4,0 , 827,7 , 1181,7 , 2, 1, 7, 6, 7 }, // English/Latin/Jamaica
- { 31, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {75,69,83}, 2,3 , 4670,53 , 4,4 , 4,0 , 827,7 , 1188,5 , 2, 1, 7, 6, 7 }, // English/Latin/Kenya
- { 31, 7, 112, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1193,8 , 2, 1, 1, 6, 7 }, // English/Latin/Kiribati
- { 31, 7, 120, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 4723,61 , 4,4 , 4,0 , 827,7 , 1201,7 , 2, 1, 1, 6, 7 }, // English/Latin/Lesotho
- { 31, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {76,82,68}, 12,1 , 4784,53 , 4,4 , 4,0 , 827,7 , 1208,7 , 2, 1, 1, 6, 7 }, // English/Latin/Liberia
- { 31, 7, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {77,79,80}, 150,4 , 4837,53 , 4,4 , 4,0 , 827,7 , 1215,15 , 2, 1, 7, 6, 7 }, // English/Latin/Macau
- { 31, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,71,65}, 181,2 , 4890,54 , 4,4 , 4,0 , 827,7 , 1230,10 , 0, 0, 1, 6, 7 }, // English/Latin/Madagascar
- { 31, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,87,75}, 183,2 , 4944,53 , 4,4 , 4,0 , 827,7 , 1240,6 , 2, 1, 1, 6, 7 }, // English/Latin/Malawi
- { 31, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {69,85,82}, 20,1 , 3687,20 , 4,4 , 4,0 , 827,7 , 1246,5 , 2, 1, 7, 6, 7 }, // English/Latin/Malta
- { 31, 7, 134, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1251,16 , 2, 1, 7, 6, 7 }, // English/Latin/MarshallIslands
- { 31, 7, 137, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,85,82}, 185,2 , 4997,53 , 4,4 , 4,0 , 827,7 , 1267,9 , 0, 0, 1, 6, 7 }, // English/Latin/Mauritius
- { 31, 7, 140, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 3413,35 , 4,4 , 4,0 , 827,7 , 1276,10 , 2, 1, 1, 6, 7 }, // English/Latin/Micronesia
- { 31, 7, 144, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1286,10 , 2, 1, 1, 6, 7 }, // English/Latin/Montserrat
- { 31, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,65,68}, 12,1 , 5050,53 , 4,4 , 4,0 , 827,7 , 1296,7 , 2, 1, 1, 6, 7 }, // English/Latin/Namibia
- { 31, 7, 149, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1303,5 , 2, 1, 1, 6, 7 }, // English/Latin/Nauru
- { 31, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 553,7 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {78,90,68}, 12,1 , 4031,62 , 4,4 , 4,0 , 827,7 , 1308,11 , 2, 1, 7, 6, 7 }, // English/Latin/NewZealand
- { 31, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,71,78}, 190,1 , 5103,50 , 4,4 , 4,0 , 827,7 , 1319,7 , 2, 1, 1, 6, 7 }, // English/Latin/Nigeria
- { 31, 7, 158, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 12,1 , 4031,62 , 4,4 , 4,0 , 827,7 , 1326,4 , 2, 1, 1, 6, 7 }, // English/Latin/Niue
- { 31, 7, 159, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1330,14 , 2, 1, 1, 6, 7 }, // English/Latin/NorfolkIsland
- { 31, 7, 160, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1344,24 , 2, 1, 1, 6, 7 }, // English/Latin/NorthernMarianaIslands
- { 31, 7, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 99,16 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {80,75,82}, 185,2 , 5153,53 , 8,5 , 4,0 , 827,7 , 1368,8 , 0, 0, 7, 6, 7 }, // English/Latin/Pakistan
- { 31, 7, 164, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 3413,35 , 4,4 , 4,0 , 827,7 , 1376,5 , 2, 1, 1, 6, 7 }, // English/Latin/Palau
- { 31, 7, 167, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {80,71,75}, 145,1 , 5206,73 , 4,4 , 4,0 , 827,7 , 1381,16 , 2, 1, 1, 6, 7 }, // English/Latin/PapuaNewGuinea
- { 31, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {80,72,80}, 191,1 , 5279,53 , 4,4 , 4,0 , 827,7 , 1397,11 , 2, 1, 7, 6, 7 }, // English/Latin/Philippines
- { 31, 7, 171, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 12,1 , 4031,62 , 4,4 , 4,0 , 827,7 , 1408,16 , 2, 1, 1, 6, 7 }, // English/Latin/Pitcairn
- { 31, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1424,11 , 2, 1, 7, 6, 7 }, // English/Latin/PuertoRico
- { 31, 7, 179, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {82,87,70}, 192,2 , 5332,47 , 4,4 , 4,0 , 827,7 , 1435,6 , 0, 0, 1, 6, 7 }, // English/Latin/Rwanda
- { 31, 7, 180, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1441,21 , 2, 1, 1, 6, 7 }, // English/Latin/SaintKittsAndNevis
- { 31, 7, 181, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1462,11 , 2, 1, 1, 6, 7 }, // English/Latin/SaintLucia
- { 31, 7, 182, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 173,3 , 3448,71 , 4,4 , 4,0 , 827,7 , 1473,24 , 2, 1, 1, 6, 7 }, // English/Latin/SaintVincentAndTheGrenadines
- { 31, 7, 183, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {87,83,84}, 194,3 , 5379,40 , 4,4 , 4,0 , 827,7 , 1497,5 , 2, 1, 7, 6, 7 }, // English/Latin/Samoa
- { 31, 7, 188, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,67,82}, 197,2 , 5419,59 , 4,4 , 4,0 , 827,7 , 1502,10 , 2, 1, 1, 6, 7 }, // English/Latin/Seychelles
- { 31, 7, 189, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,76,76}, 199,2 , 5478,68 , 4,4 , 4,0 , 827,7 , 1512,12 , 0, 0, 1, 6, 7 }, // English/Latin/SierraLeone
- { 31, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 294,6 , 214,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {83,71,68}, 12,1 , 5546,56 , 4,4 , 4,0 , 827,7 , 1524,9 , 2, 1, 7, 6, 7 }, // English/Latin/Singapore
- { 31, 7, 193, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,66,68}, 12,1 , 5602,74 , 4,4 , 4,0 , 827,7 , 1533,15 , 2, 1, 1, 6, 7 }, // English/Latin/SolomonIslands
- { 31, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 575,10 , 82,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 4723,61 , 4,4 , 4,0 , 827,7 , 1548,12 , 2, 1, 7, 6, 7 }, // English/Latin/SouthAfrica
- { 31, 7, 199, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {83,72,80}, 125,1 , 5676,62 , 4,4 , 4,0 , 827,7 , 1560,12 , 2, 1, 1, 6, 7 }, // English/Latin/SaintHelena
- { 31, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,68,71}, 0,0 , 5738,50 , 4,4 , 4,0 , 827,7 , 1572,5 , 2, 1, 6, 5, 6 }, // English/Latin/Sudan
- { 31, 7, 204, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,90,76}, 201,1 , 5788,53 , 4,4 , 4,0 , 827,7 , 1577,9 , 2, 1, 1, 6, 7 }, // English/Latin/Swaziland
- { 31, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,90,83}, 202,3 , 5841,62 , 4,4 , 4,0 , 827,7 , 1586,8 , 0, 0, 1, 6, 7 }, // English/Latin/Tanzania
- { 31, 7, 213, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 12,1 , 4031,62 , 4,4 , 4,0 , 827,7 , 1594,7 , 2, 1, 1, 6, 7 }, // English/Latin/Tokelau
- { 31, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,79,80}, 205,2 , 5903,49 , 4,4 , 4,0 , 827,7 , 1601,5 , 2, 1, 1, 6, 7 }, // English/Latin/Tonga
- { 31, 7, 215, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,84,68}, 12,1 , 5952,86 , 4,4 , 4,0 , 827,7 , 1606,19 , 2, 1, 7, 6, 7 }, // English/Latin/TrinidadAndTobago
- { 31, 7, 219, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 3413,35 , 4,4 , 4,0 , 827,7 , 1625,24 , 2, 1, 1, 6, 7 }, // English/Latin/TurksAndCaicosIslands
- { 31, 7, 220, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 12,1 , 3519,59 , 4,4 , 4,0 , 827,7 , 1649,6 , 2, 1, 1, 6, 7 }, // English/Latin/Tuvalu
- { 31, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,71,88}, 207,3 , 6038,56 , 4,4 , 4,0 , 827,7 , 1655,6 , 0, 0, 1, 6, 7 }, // English/Latin/Uganda
- { 31, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {71,66,80}, 125,1 , 4264,47 , 4,4 , 4,0 , 1661,10 , 1671,14 , 2, 1, 1, 6, 7 }, // English/Latin/UnitedKingdom
- { 31, 7, 226, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1685,21 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStatesMinorOutlyingIslands
- { 31, 7, 229, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {86,85,86}, 210,2 , 6094,44 , 4,4 , 4,0 , 827,7 , 1706,7 , 0, 0, 1, 6, 7 }, // English/Latin/Vanuatu
- { 31, 7, 233, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1713,22 , 2, 1, 1, 6, 7 }, // English/Latin/BritishVirginIslands
- { 31, 7, 234, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1735,19 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStatesVirginIslands
- { 31, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,77,87}, 145,1 , 6138,50 , 4,4 , 4,0 , 827,7 , 1754,6 , 2, 1, 1, 6, 7 }, // English/Latin/Zambia
- { 31, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 408,8 , 82,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 3413,35 , 4,4 , 4,0 , 827,7 , 1760,8 , 2, 1, 7, 6, 7 }, // English/Latin/Zimbabwe
- { 31, 7, 249, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {85,83,68}, 12,1 , 3413,35 , 4,4 , 4,0 , 827,7 , 1768,12 , 2, 1, 1, 6, 7 }, // English/Latin/DiegoGarcia
- { 31, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {71,66,80}, 125,1 , 4264,47 , 4,4 , 4,0 , 827,7 , 1780,11 , 2, 1, 1, 6, 7 }, // English/Latin/IsleOfMan
- { 31, 7, 252, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 203,9 , 203,9 , 133,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 91,2 , 89,2 , {71,66,80}, 125,1 , 4264,47 , 4,4 , 4,0 , 827,7 , 1791,6 , 2, 1, 1, 6, 7 }, // English/Latin/Jersey
- { 31, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,83,80}, 125,1 , 6188,68 , 4,4 , 4,0 , 827,7 , 1797,11 , 2, 1, 1, 6, 7 }, // English/Latin/SouthSudan
- { 31, 7, 256, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 203,9 , 560,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,78,71}, 169,4 , 6256,95 , 4,4 , 4,0 , 827,7 , 1808,12 , 2, 1, 1, 6, 7 }, // English/Latin/SintMaarten
- { 33, 7, 68, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 212,8 , 212,8 , 179,8 , 585,18 , 42,4 , 233,9 , 5569,59 , 5628,91 , 5719,24 , 5569,59 , 5628,91 , 5719,24 , 2515,14 , 2529,63 , 2515,14 , 2515,14 , 2529,63 , 2515,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 6351,20 , 13,5 , 4,0 , 1820,5 , 1825,5 , 2, 1, 1, 6, 7 }, // Estonian/Latin/Estonia
- { 34, 7, 71, 44, 46, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 545,8 , 82,17 , 37,5 , 8,10 , 5743,48 , 5791,83 , 134,24 , 5743,48 , 5791,83 , 134,24 , 2592,28 , 2620,74 , 2694,14 , 2592,28 , 2620,74 , 2694,14 , 0,2 , 0,2 , {68,75,75}, 163,2 , 6371,42 , 4,4 , 30,5 , 1830,8 , 1838,7 , 2, 1, 1, 6, 7 }, // Faroese/Latin/FaroeIslands
- { 36, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 212,8 , 212,8 , 603,8 , 505,17 , 149,4 , 153,9 , 5874,69 , 5943,105 , 6048,24 , 6072,129 , 6072,129 , 6048,24 , 2708,21 , 2729,67 , 2796,14 , 2708,21 , 2810,81 , 2796,14 , 97,3 , 95,3 , {69,85,82}, 20,1 , 6413,20 , 13,5 , 4,0 , 1845,5 , 1850,5 , 2, 1, 1, 6, 7 }, // Finnish/Latin/Finland
- { 37, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 1863,6 , 2, 1, 1, 6, 7 }, // French/Latin/France
- { 37, 7, 3, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {68,90,68}, 212,2 , 6433,51 , 13,5 , 4,0 , 1855,8 , 1869,7 , 2, 1, 6, 4, 5 }, // French/Latin/Algeria
- { 37, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 553,7 , 99,16 , 37,5 , 242,23 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 1876,8 , 2, 1, 1, 6, 7 }, // French/Latin/Belgium
- { 37, 7, 23, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 1884,5 , 0, 0, 1, 6, 7 }, // French/Latin/Benin
- { 37, 7, 34, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 1889,12 , 0, 0, 1, 6, 7 }, // French/Latin/BurkinaFaso
- { 37, 7, 35, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {66,73,70}, 217,3 , 6543,53 , 13,5 , 4,0 , 1855,8 , 1901,7 , 0, 0, 1, 6, 7 }, // French/Latin/Burundi
- { 37, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 1908,8 , 0, 0, 1, 6, 7 }, // French/Latin/Cameroon
- { 37, 7, 38, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 220,8 , 220,8 , 611,8 , 99,16 , 37,5 , 209,24 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {67,65,68}, 12,1 , 6652,54 , 13,5 , 4,0 , 1916,17 , 999,6 , 2, 0, 7, 6, 7 }, // French/Latin/Canada
- { 37, 7, 41, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 1933,25 , 0, 0, 1, 6, 7 }, // French/Latin/CentralAfricanRepublic
- { 37, 7, 42, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 1958,5 , 0, 0, 1, 6, 7 }, // French/Latin/Chad
- { 37, 7, 48, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {75,77,70}, 220,2 , 6706,51 , 13,5 , 4,0 , 1855,8 , 1963,7 , 0, 0, 1, 6, 7 }, // French/Latin/Comoros
- { 37, 7, 49, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {67,68,70}, 222,2 , 6757,53 , 13,5 , 4,0 , 1855,8 , 1970,14 , 2, 1, 1, 6, 7 }, // French/Latin/CongoKinshasa
- { 37, 7, 50, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 1984,17 , 0, 0, 1, 6, 7 }, // French/Latin/CongoBrazzaville
- { 37, 7, 53, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 2001,13 , 0, 0, 1, 6, 7 }, // French/Latin/IvoryCoast
- { 37, 7, 59, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {68,74,70}, 5,3 , 6810,57 , 13,5 , 4,0 , 1855,8 , 2014,8 , 0, 0, 6, 6, 7 }, // French/Latin/Djibouti
- { 37, 7, 66, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 2022,18 , 0, 0, 1, 6, 7 }, // French/Latin/EquatorialGuinea
- { 37, 7, 76, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2040,16 , 2, 1, 1, 6, 7 }, // French/Latin/FrenchGuiana
- { 37, 7, 77, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,80,70}, 224,4 , 6867,35 , 13,5 , 4,0 , 1855,8 , 2056,19 , 0, 0, 1, 6, 7 }, // French/Latin/FrenchPolynesia
- { 37, 7, 79, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,65,70}, 38,4 , 6596,56 , 13,5 , 4,0 , 1855,8 , 2075,5 , 0, 0, 1, 6, 7 }, // French/Latin/Gabon
- { 37, 7, 88, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2080,10 , 2, 1, 1, 6, 7 }, // French/Latin/Guadeloupe
- { 37, 7, 91, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {71,78,70}, 228,2 , 6902,48 , 13,5 , 4,0 , 1855,8 , 2090,6 , 0, 0, 1, 6, 7 }, // French/Latin/Guinea
- { 37, 7, 94, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {72,84,71}, 230,1 , 6950,57 , 13,5 , 4,0 , 1855,8 , 2096,5 , 2, 1, 1, 6, 7 }, // French/Latin/Haiti
- { 37, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2101,10 , 2, 1, 1, 6, 7 }, // French/Latin/Luxembourg
- { 37, 7, 128, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {77,71,65}, 181,2 , 7007,54 , 13,5 , 4,0 , 1855,8 , 1230,10 , 0, 0, 1, 6, 7 }, // French/Latin/Madagascar
- { 37, 7, 132, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 2111,4 , 0, 0, 1, 6, 7 }, // French/Latin/Mali
- { 37, 7, 135, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2115,10 , 2, 1, 1, 6, 7 }, // French/Latin/Martinique
- { 37, 7, 136, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {77,82,79}, 231,2 , 7061,66 , 13,5 , 4,0 , 1855,8 , 2125,10 , 0, 0, 1, 6, 7 }, // French/Latin/Mauritania
- { 37, 7, 137, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {77,85,82}, 185,2 , 7127,63 , 13,5 , 4,0 , 1855,8 , 2135,7 , 0, 0, 1, 6, 7 }, // French/Latin/Mauritius
- { 37, 7, 138, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2142,7 , 2, 1, 1, 6, 7 }, // French/Latin/Mayotte
- { 37, 7, 142, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2149,6 , 2, 1, 1, 6, 7 }, // French/Latin/Monaco
- { 37, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {77,65,68}, 0,0 , 7190,54 , 13,5 , 4,0 , 1855,8 , 2155,5 , 2, 1, 6, 5, 6 }, // French/Latin/Morocco
- { 37, 7, 153, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,80,70}, 224,4 , 6867,35 , 13,5 , 4,0 , 1855,8 , 2160,18 , 0, 0, 1, 6, 7 }, // French/Latin/NewCaledonia
- { 37, 7, 156, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 2178,5 , 0, 0, 1, 6, 7 }, // French/Latin/Niger
- { 37, 7, 176, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2183,10 , 2, 1, 1, 6, 7 }, // French/Latin/Reunion
- { 37, 7, 179, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {82,87,70}, 192,2 , 7244,50 , 13,5 , 4,0 , 1855,8 , 1435,6 , 0, 0, 1, 6, 7 }, // French/Latin/Rwanda
- { 37, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 2193,7 , 0, 0, 1, 6, 7 }, // French/Latin/Senegal
- { 37, 7, 188, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {83,67,82}, 197,2 , 7294,71 , 13,5 , 4,0 , 1855,8 , 1502,10 , 2, 1, 1, 6, 7 }, // French/Latin/Seychelles
- { 37, 7, 200, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2200,24 , 2, 1, 1, 6, 7 }, // French/Latin/SaintPierreAndMiquelon
- { 37, 7, 206, 46, 39, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 220,8 , 220,8 , 179,8 , 10,17 , 37,5 , 265,14 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {67,72,70}, 233,3 , 7365,45 , 8,5 , 35,5 , 2224,15 , 2239,6 , 2, 0, 1, 6, 7 }, // French/Latin/Switzerland
- { 37, 7, 207, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {83,89,80}, 236,2 , 7410,51 , 13,5 , 4,0 , 1855,8 , 2245,5 , 0, 0, 6, 5, 6 }, // French/Latin/Syria
- { 37, 7, 212, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 6484,59 , 13,5 , 4,0 , 1855,8 , 2250,4 , 0, 0, 1, 6, 7 }, // French/Latin/Togo
- { 37, 7, 216, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {84,78,68}, 238,2 , 7461,51 , 13,5 , 4,0 , 1855,8 , 2254,7 , 3, 0, 7, 5, 6 }, // French/Latin/Tunisia
- { 37, 7, 229, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {86,85,86}, 210,2 , 7512,51 , 13,5 , 4,0 , 1855,8 , 1706,7 , 0, 0, 1, 6, 7 }, // French/Latin/Vanuatu
- { 37, 7, 235, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {88,80,70}, 224,4 , 6867,35 , 13,5 , 4,0 , 1855,8 , 2261,16 , 0, 0, 1, 6, 7 }, // French/Latin/WallisAndFutunaIslands
- { 37, 7, 244, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2277,16 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Barthelemy
- { 37, 7, 245, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 220,8 , 220,8 , 133,10 , 99,16 , 37,5 , 8,10 , 6201,63 , 6264,85 , 134,24 , 6201,63 , 6264,85 , 134,24 , 2891,35 , 2926,52 , 2978,14 , 2891,35 , 2926,52 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 1855,8 , 2293,31 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Martin
- { 39, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 228,11 , 239,10 , 133,10 , 10,17 , 37,5 , 8,10 , 6349,61 , 6410,142 , 6552,36 , 6349,61 , 6410,142 , 6552,36 , 2992,28 , 3020,69 , 3089,14 , 2992,28 , 3020,69 , 3089,14 , 0,2 , 0,2 , {71,66,80}, 125,1 , 7563,22 , 4,4 , 4,0 , 2324,8 , 2332,22 , 2, 1, 1, 6, 7 }, // Gaelic/Latin/UnitedKingdom
- { 40, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 82,17 , 37,5 , 8,10 , 6588,48 , 6636,87 , 6723,24 , 6747,48 , 6795,87 , 6723,24 , 3103,28 , 3131,49 , 3180,14 , 3194,28 , 3222,49 , 3180,14 , 93,4 , 91,4 , {69,85,82}, 20,1 , 3687,20 , 4,4 , 4,0 , 2354,6 , 2360,6 , 2, 1, 1, 6, 7 }, // Galician/Latin/Spain
- { 41, 15, 81, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 171, 187, 0,6 , 0,6 , 256,8 , 256,8 , 179,8 , 619,19 , 37,5 , 8,10 , 6882,48 , 6930,99 , 7029,24 , 6882,48 , 6930,99 , 7029,24 , 3271,28 , 3299,62 , 3361,14 , 3271,28 , 3299,62 , 3361,14 , 100,5 , 98,7 , {71,69,76}, 0,0 , 7585,43 , 13,5 , 4,0 , 2366,7 , 2373,10 , 2, 1, 1, 6, 7 }, // Georgian/Georgian/Georgia
- { 42, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 7101,83 , 134,24 , 7184,59 , 7101,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {69,85,82}, 20,1 , 7628,19 , 13,5 , 4,0 , 2383,7 , 2390,11 , 2, 1, 1, 6, 7 }, // German/Latin/Germany
- { 42, 7, 14, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 638,19 , 37,5 , 8,10 , 7243,48 , 7291,83 , 134,24 , 7374,59 , 7291,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {69,85,82}, 20,1 , 7628,19 , 8,5 , 4,0 , 2401,24 , 2425,10 , 2, 1, 1, 6, 7 }, // German/Latin/Austria
- { 42, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 7101,83 , 134,24 , 7184,59 , 7101,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {69,85,82}, 20,1 , 7628,19 , 13,5 , 4,0 , 2383,7 , 2435,7 , 2, 1, 1, 6, 7 }, // German/Latin/Belgium
- { 42, 7, 123, 46, 39, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 7101,83 , 134,24 , 7184,59 , 7101,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {67,72,70}, 0,0 , 7647,58 , 8,5 , 4,0 , 2383,7 , 2442,13 , 2, 0, 1, 6, 7 }, // German/Latin/Liechtenstein
- { 42, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 7101,83 , 134,24 , 7184,59 , 7101,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {69,85,82}, 20,1 , 7628,19 , 13,5 , 4,0 , 2383,7 , 2455,9 , 2, 1, 1, 6, 7 }, // German/Latin/Luxembourg
- { 42, 7, 206, 46, 39, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 7101,83 , 134,24 , 7184,59 , 7101,83 , 134,24 , 3375,21 , 3396,60 , 3456,14 , 3470,28 , 3396,60 , 3456,14 , 105,5 , 105,6 , {67,72,70}, 233,3 , 7647,58 , 8,5 , 35,5 , 2464,21 , 2485,7 , 2, 0, 1, 6, 7 }, // German/Latin/Switzerland
- { 43, 16, 85, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 34, 34, 0,6 , 0,6 , 273,9 , 273,9 , 294,6 , 10,17 , 18,7 , 25,12 , 7433,50 , 7483,115 , 7598,24 , 7622,50 , 7672,115 , 7598,24 , 3498,28 , 3526,55 , 3581,14 , 3498,28 , 3526,55 , 3581,14 , 110,4 , 111,4 , {69,85,82}, 20,1 , 7705,19 , 13,5 , 4,0 , 2492,8 , 2500,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Greece
- { 43, 16, 56, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 34, 34, 0,6 , 0,6 , 273,9 , 273,9 , 294,6 , 10,17 , 18,7 , 25,12 , 7433,50 , 7483,115 , 7598,24 , 7622,50 , 7672,115 , 7598,24 , 3498,28 , 3526,55 , 3581,14 , 3498,28 , 3526,55 , 3581,14 , 110,4 , 111,4 , {69,85,82}, 20,1 , 7705,19 , 4,4 , 4,0 , 2492,8 , 2506,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Cyprus
- { 44, 7, 86, 44, 46, 59, 37, 48, 8722, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 282,11 , 282,11 , 72,10 , 82,17 , 18,7 , 25,12 , 4913,48 , 7787,96 , 134,24 , 4913,48 , 7787,96 , 134,24 , 3595,28 , 3623,98 , 3721,14 , 3595,28 , 3623,98 , 3721,14 , 0,2 , 0,2 , {68,75,75}, 163,2 , 7724,62 , 4,4 , 30,5 , 2512,11 , 2523,16 , 2, 1, 1, 6, 7 }, // Greenlandic/Latin/Greenland
- { 46, 17, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 293,9 , 293,9 , 657,7 , 214,18 , 279,8 , 287,13 , 7883,64 , 7947,87 , 8034,31 , 8065,67 , 7947,87 , 8034,31 , 3735,32 , 3767,53 , 3820,19 , 3735,32 , 3767,53 , 3820,19 , 0,2 , 0,2 , {73,78,82}, 129,1 , 7786,46 , 4,4 , 4,0 , 2539,7 , 2546,4 , 2, 1, 7, 7, 7 }, // Gujarati/Gujarati/India
- { 47, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 294,6 , 214,18 , 37,5 , 8,10 , 8132,48 , 8180,85 , 8265,24 , 8132,48 , 8180,85 , 8265,24 , 3839,21 , 3860,52 , 3912,14 , 3839,21 , 3860,52 , 3912,14 , 0,2 , 0,2 , {78,71,78}, 190,1 , 7832,12 , 8,5 , 4,0 , 2550,5 , 2555,8 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Nigeria
- { 47, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 294,6 , 214,18 , 37,5 , 8,10 , 8132,48 , 8180,85 , 8265,24 , 8132,48 , 8180,85 , 8265,24 , 3839,21 , 3860,52 , 3912,14 , 3839,21 , 3860,52 , 3912,14 , 0,2 , 0,2 , {71,72,83}, 178,3 , 0,7 , 8,5 , 4,0 , 2550,5 , 2563,4 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Ghana
- { 47, 7, 156, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 294,6 , 214,18 , 37,5 , 8,10 , 8132,48 , 8180,85 , 8265,24 , 8132,48 , 8180,85 , 8265,24 , 3839,21 , 3860,52 , 3912,14 , 3839,21 , 3860,52 , 3912,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 7844,36 , 8,5 , 4,0 , 2550,5 , 2567,5 , 0, 0, 1, 6, 7 }, // Hausa/Latin/Niger
- { 48, 18, 105, 46, 44, 59, 37, 48, 45, 43, 101, 1524, 1524, 1523, 1523, 0,6 , 0,6 , 302,6 , 302,6 , 27,8 , 664,18 , 37,5 , 8,10 , 8289,58 , 8347,72 , 158,27 , 8419,48 , 8347,72 , 158,27 , 3926,46 , 3972,65 , 4037,21 , 3926,46 , 3972,65 , 4037,21 , 114,6 , 115,5 , {73,76,83}, 54,1 , 7880,54 , 13,5 , 4,0 , 2572,5 , 2577,5 , 2, 1, 7, 5, 6 }, // Hebrew/Hebrew/Israel
- { 49, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 308,9 , 317,8 , 682,6 , 10,17 , 18,7 , 25,12 , 8467,54 , 8521,73 , 8594,30 , 8467,54 , 8521,73 , 8594,30 , 4058,32 , 4090,53 , 4143,19 , 4058,32 , 4090,53 , 4143,19 , 120,9 , 120,7 , {73,78,82}, 129,1 , 7934,42 , 4,4 , 4,0 , 2582,5 , 2587,4 , 2, 1, 7, 7, 7 }, // Hindi/Devanagari/India
- { 50, 7, 98, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 187, 171, 0,6 , 0,6 , 325,8 , 325,8 , 688,13 , 701,19 , 42,4 , 125,9 , 8624,64 , 8688,98 , 8786,25 , 8624,64 , 8688,98 , 8786,25 , 4162,19 , 4181,52 , 4233,17 , 4162,19 , 4181,52 , 4233,17 , 129,3 , 127,3 , {72,85,70}, 240,2 , 7976,46 , 13,5 , 4,0 , 2591,6 , 2597,12 , 0, 0, 1, 6, 7 }, // Hungarian/Latin/Hungary
- { 51, 7, 99, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,8 , 185,8 , 603,8 , 585,18 , 37,5 , 8,10 , 8811,59 , 8870,82 , 8952,24 , 8811,59 , 8870,82 , 8952,24 , 4250,35 , 4285,81 , 4366,14 , 4250,35 , 4285,81 , 4366,14 , 132,4 , 130,4 , {73,83,75}, 163,2 , 8022,49 , 13,5 , 4,0 , 2609,8 , 2617,6 , 0, 0, 1, 6, 7 }, // Icelandic/Latin/Iceland
- { 52, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 333,10 , 343,9 , 27,8 , 115,18 , 134,5 , 139,10 , 8976,48 , 9024,87 , 134,24 , 8976,48 , 9024,87 , 134,24 , 4380,28 , 4408,43 , 4451,14 , 4380,28 , 4408,43 , 4451,14 , 0,2 , 0,2 , {73,68,82}, 242,2 , 8071,39 , 4,4 , 4,0 , 2623,16 , 2639,9 , 0, 0, 7, 6, 7 }, // Indonesian/Latin/Indonesia
- { 53, 7, 74, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 376,8 , 384,18 , 37,5 , 8,10 , 9111,48 , 9159,93 , 158,27 , 9111,48 , 9159,93 , 158,27 , 4465,28 , 4493,57 , 85,14 , 4465,28 , 4493,57 , 85,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 8110,12 , 8,5 , 4,0 , 2648,11 , 2659,7 , 2, 1, 1, 6, 7 }, // Interlingua/Latin/France
- { 57, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 99,16 , 37,5 , 8,10 , 9252,62 , 9314,107 , 9421,24 , 9252,62 , 9314,107 , 9421,24 , 4550,37 , 4587,75 , 4662,14 , 4550,37 , 4587,75 , 4662,14 , 93,4 , 91,4 , {69,85,82}, 20,1 , 8122,11 , 4,4 , 4,0 , 2666,7 , 2673,4 , 2, 1, 7, 6, 7 }, // Irish/Latin/Ireland
- { 58, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 352,8 , 249,7 , 27,8 , 99,16 , 37,5 , 8,10 , 9445,48 , 9493,94 , 9587,24 , 9445,48 , 9611,94 , 9587,24 , 4676,28 , 4704,57 , 4761,14 , 4676,28 , 4775,57 , 4761,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 179,19 , 13,5 , 4,0 , 2677,8 , 2685,6 , 2, 1, 1, 6, 7 }, // Italian/Latin/Italy
- { 58, 7, 184, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 352,8 , 249,7 , 27,8 , 99,16 , 37,5 , 8,10 , 9445,48 , 9493,94 , 9587,24 , 9445,48 , 9611,94 , 9587,24 , 4676,28 , 4704,57 , 4761,14 , 4676,28 , 4775,57 , 4761,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 179,19 , 13,5 , 4,0 , 2677,8 , 2691,10 , 2, 1, 1, 6, 7 }, // Italian/Latin/SanMarino
- { 58, 7, 206, 46, 39, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 352,8 , 249,7 , 179,8 , 10,17 , 37,5 , 265,14 , 9445,48 , 9493,94 , 9587,24 , 9445,48 , 9611,94 , 9587,24 , 4676,28 , 4704,57 , 4761,14 , 4676,28 , 4775,57 , 4761,14 , 0,2 , 0,2 , {67,72,70}, 233,3 , 8133,53 , 8,5 , 35,5 , 2677,8 , 2701,8 , 2, 0, 1, 6, 7 }, // Italian/Latin/Switzerland
- { 59, 19, 108, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 168,5 , 168,5 , 168,5 , 168,5 , 575,10 , 444,13 , 42,4 , 300,10 , 4318,39 , 4318,39 , 158,27 , 4318,39 , 4318,39 , 158,27 , 4832,14 , 4846,28 , 4832,14 , 4832,14 , 4846,28 , 4832,14 , 136,2 , 134,2 , {74,80,89}, 149,1 , 8186,11 , 4,4 , 4,0 , 2709,3 , 2712,2 , 0, 0, 7, 6, 7 }, // Japanese/Japanese/Japan
- { 61, 21, 100, 46, 44, 59, 37, 48, 45, 43, 3208, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 360,12 , 0,6 , 682,6 , 232,17 , 279,8 , 287,13 , 9705,65 , 9770,86 , 9856,31 , 9705,65 , 9770,86 , 9856,31 , 4874,32 , 4906,53 , 4959,19 , 4978,28 , 4906,53 , 4959,19 , 0,2 , 0,2 , {73,78,82}, 129,1 , 8197,20 , 4,4 , 4,0 , 2714,5 , 2719,4 , 2, 1, 7, 7, 7 }, // Kannada/Kannada/India
- { 62, 1, 100, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 560,6 , 35,18 , 18,7 , 25,12 , 9887,72 , 9887,72 , 9959,24 , 9887,72 , 9887,72 , 9959,24 , 5006,54 , 5060,56 , 5116,14 , 5006,54 , 5060,56 , 5116,14 , 0,2 , 0,2 , {73,78,82}, 129,1 , 8217,23 , 8,5 , 4,0 , 2723,5 , 2728,10 , 2, 1, 7, 7, 7 }, // Kashmiri/Arabic/India
- { 63, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 720,22 , 37,5 , 8,10 , 9983,61 , 10044,83 , 158,27 , 9983,61 , 10044,83 , 158,27 , 5130,28 , 5158,55 , 5213,14 , 5130,28 , 5158,55 , 5213,14 , 138,11 , 136,12 , {75,90,84}, 244,1 , 8240,24 , 13,5 , 4,0 , 2738,10 , 2748,9 , 2, 1, 1, 6, 7 }, // Kazakh/Cyrillic/Kazakhstan
- { 64, 7, 179, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 376,8 , 384,18 , 37,5 , 8,10 , 10127,60 , 10187,101 , 158,27 , 10127,60 , 10187,101 , 158,27 , 5227,35 , 5262,84 , 85,14 , 5227,35 , 5262,84 , 85,14 , 0,2 , 0,2 , {82,87,70}, 192,2 , 0,7 , 8,5 , 4,0 , 2757,11 , 1435,6 , 0, 0, 1, 6, 7 }, // Kinyarwanda/Latin/Rwanda
- { 65, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 372,10 , 372,10 , 179,8 , 742,23 , 37,5 , 8,10 , 10288,59 , 10347,80 , 10427,24 , 10288,59 , 10347,80 , 10427,24 , 5346,28 , 5374,57 , 5431,14 , 5445,21 , 5346,28 , 5431,14 , 149,13 , 148,14 , {75,71,83}, 245,3 , 8264,52 , 13,5 , 4,0 , 2768,8 , 2776,10 , 2, 1, 1, 6, 7 }, // Kirghiz/Cyrillic/Kyrgyzstan
- { 66, 22, 114, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 382,7 , 382,7 , 765,9 , 774,16 , 310,7 , 317,13 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 5466,14 , 5480,28 , 5466,14 , 5466,14 , 5480,28 , 5466,14 , 162,2 , 162,2 , {75,82,87}, 248,1 , 8316,13 , 4,4 , 40,6 , 2786,3 , 2789,4 , 0, 0, 7, 6, 7 }, // Korean/Korean/SouthKorea
- { 66, 22, 113, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 382,7 , 382,7 , 765,9 , 774,16 , 310,7 , 317,13 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 10451,39 , 5466,14 , 5480,28 , 5466,14 , 5466,14 , 5480,28 , 5466,14 , 162,2 , 162,2 , {75,80,87}, 0,0 , 8329,23 , 4,4 , 40,6 , 2786,3 , 2793,14 , 0, 0, 1, 6, 7 }, // Korean/Korean/NorthKorea
- { 68, 7, 35, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 10490,60 , 10550,106 , 158,27 , 10490,60 , 10550,106 , 158,27 , 5508,34 , 5542,89 , 85,14 , 5508,34 , 5542,89 , 85,14 , 164,5 , 164,5 , {66,73,70}, 217,3 , 8352,27 , 0,4 , 4,0 , 2807,8 , 2815,8 , 0, 0, 1, 6, 7 }, // Rundi/Latin/Burundi
- { 69, 23, 117, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 389,9 , 408,8 , 790,19 , 42,4 , 330,24 , 10656,61 , 10717,75 , 158,27 , 10656,61 , 10717,75 , 158,27 , 5631,57 , 5631,57 , 5688,18 , 5631,57 , 5631,57 , 1733,14 , 169,8 , 169,8 , {76,65,75}, 249,1 , 8379,14 , 4,4 , 35,5 , 2823,3 , 2823,3 , 0, 0, 7, 6, 7 }, // Lao/Lao/Laos
- { 71, 7, 118, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 398,8 , 398,8 , 179,8 , 809,26 , 37,5 , 8,10 , 10792,65 , 10857,101 , 134,24 , 10958,65 , 11023,101 , 134,24 , 5706,21 , 5727,72 , 5799,14 , 5706,21 , 5813,72 , 5799,14 , 177,14 , 177,11 , {69,85,82}, 20,1 , 8393,23 , 4,4 , 40,6 , 2826,8 , 2834,7 , 2, 1, 1, 6, 7 }, // Latvian/Latin/Latvia
- { 72, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,9 , 406,9 , 408,8 , 99,16 , 37,5 , 8,10 , 11124,48 , 11172,203 , 11375,24 , 11124,48 , 11172,203 , 11375,24 , 5885,28 , 5913,100 , 6013,14 , 5885,28 , 5913,100 , 6013,14 , 191,8 , 188,6 , {67,68,70}, 222,2 , 8416,23 , 13,5 , 4,0 , 2841,7 , 2848,29 , 2, 1, 1, 6, 7 }, // Lingala/Latin/CongoKinshasa
- { 72, 7, 6, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,9 , 406,9 , 408,8 , 99,16 , 37,5 , 8,10 , 11124,48 , 11172,203 , 11375,24 , 11124,48 , 11172,203 , 11375,24 , 5885,28 , 5913,100 , 6013,14 , 5885,28 , 5913,100 , 6013,14 , 191,8 , 188,6 , {65,79,65}, 250,2 , 8439,23 , 13,5 , 4,0 , 2841,7 , 2877,6 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Angola
- { 72, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,9 , 406,9 , 408,8 , 99,16 , 37,5 , 8,10 , 11124,48 , 11172,203 , 11375,24 , 11124,48 , 11172,203 , 11375,24 , 5885,28 , 5913,100 , 6013,14 , 5885,28 , 5913,100 , 6013,14 , 191,8 , 188,6 , {88,65,70}, 38,4 , 8462,23 , 13,5 , 4,0 , 2841,7 , 2883,26 , 0, 0, 1, 6, 7 }, // Lingala/Latin/CentralAfricanRepublic
- { 72, 7, 50, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,9 , 406,9 , 408,8 , 99,16 , 37,5 , 8,10 , 11124,48 , 11172,203 , 11375,24 , 11124,48 , 11172,203 , 11375,24 , 5885,28 , 5913,100 , 6013,14 , 5885,28 , 5913,100 , 6013,14 , 191,8 , 188,6 , {88,65,70}, 38,4 , 8462,23 , 13,5 , 4,0 , 2841,7 , 2909,5 , 0, 0, 1, 6, 7 }, // Lingala/Latin/CongoBrazzaville
- { 73, 7, 124, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 415,8 , 415,8 , 72,10 , 835,27 , 37,5 , 8,10 , 11399,70 , 11469,96 , 11565,24 , 11399,70 , 11469,96 , 11565,24 , 6027,21 , 6048,89 , 6137,14 , 6027,21 , 6048,89 , 6137,14 , 199,9 , 194,6 , {76,84,76}, 252,2 , 8485,75 , 13,5 , 4,0 , 2914,8 , 2922,7 , 2, 1, 1, 6, 7 }, // Lithuanian/Latin/Lithuania
- { 74, 2, 127, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 0,6 , 0,6 , 862,7 , 869,23 , 37,5 , 8,10 , 11589,61 , 11650,85 , 11735,24 , 11589,61 , 11650,85 , 11735,24 , 6151,34 , 6185,54 , 1514,14 , 6151,34 , 6185,54 , 1514,14 , 208,10 , 200,8 , {77,75,68}, 254,3 , 8560,55 , 8,5 , 4,0 , 2929,10 , 2939,10 , 2, 1, 1, 6, 7 }, // Macedonian/Cyrillic/Macedonia
- { 75, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 11759,48 , 11807,92 , 134,24 , 11759,48 , 11807,92 , 134,24 , 6239,34 , 6273,60 , 6333,14 , 6239,34 , 6273,60 , 6333,14 , 0,2 , 0,2 , {77,71,65}, 181,2 , 8615,13 , 4,4 , 4,0 , 2949,8 , 2957,12 , 0, 0, 1, 6, 7 }, // Malagasy/Latin/Madagascar
- { 76, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 333,10 , 343,9 , 553,7 , 10,17 , 18,7 , 25,12 , 11899,48 , 11947,82 , 12029,24 , 11899,48 , 11947,82 , 12029,24 , 6347,28 , 6375,43 , 6418,14 , 6347,28 , 6375,43 , 6418,14 , 218,2 , 208,3 , {77,89,82}, 257,2 , 8628,39 , 4,4 , 4,0 , 2969,13 , 2982,8 , 2, 1, 1, 6, 7 }, // Malay/Latin/Malaysia
- { 76, 7, 32, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 333,10 , 343,9 , 553,7 , 892,12 , 18,7 , 25,12 , 11899,48 , 11947,82 , 12029,24 , 11899,48 , 11947,82 , 12029,24 , 6347,28 , 6375,43 , 6418,14 , 6347,28 , 6375,43 , 6418,14 , 218,2 , 208,3 , {66,78,68}, 12,1 , 8667,31 , 8,5 , 4,0 , 2969,13 , 2990,6 , 2, 1, 1, 6, 7 }, // Malay/Latin/Brunei
- { 76, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 333,10 , 343,9 , 553,7 , 10,17 , 18,7 , 25,12 , 11899,48 , 11947,82 , 12029,24 , 11899,48 , 11947,82 , 12029,24 , 6347,28 , 6375,43 , 6418,14 , 6347,28 , 6375,43 , 6418,14 , 218,2 , 208,3 , {83,71,68}, 12,1 , 8698,37 , 4,4 , 4,0 , 2969,13 , 2996,9 , 2, 1, 7, 6, 7 }, // Malay/Latin/Singapore
- { 77, 24, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 423,13 , 436,12 , 27,8 , 904,18 , 18,7 , 25,12 , 12053,62 , 12115,88 , 12203,31 , 12053,62 , 12115,88 , 12203,31 , 6432,41 , 6473,77 , 6550,22 , 6432,41 , 6572,76 , 6550,22 , 0,2 , 0,2 , {73,78,82}, 129,1 , 8735,40 , 0,4 , 4,0 , 3005,6 , 3011,6 , 2, 1, 7, 7, 7 }, // Malayalam/Malayalam/India
- { 78, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 448,8 , 456,7 , 133,10 , 922,23 , 37,5 , 8,10 , 12234,48 , 12282,86 , 12368,24 , 12234,48 , 12282,86 , 12368,24 , 6648,28 , 6676,63 , 6739,14 , 6648,28 , 6676,63 , 6739,14 , 220,2 , 211,2 , {69,85,82}, 20,1 , 8775,11 , 4,4 , 4,0 , 3017,5 , 1246,5 , 2, 1, 7, 6, 7 }, // Maltese/Latin/Malta
- { 80, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 463,9 , 463,9 , 294,6 , 214,18 , 18,7 , 25,12 , 12392,66 , 12458,86 , 12544,32 , 12392,66 , 12458,86 , 12544,32 , 6753,32 , 6785,53 , 4143,19 , 6753,32 , 6785,53 , 4143,19 , 222,4 , 213,4 , {73,78,82}, 129,1 , 8786,43 , 4,4 , 4,0 , 3022,5 , 2587,4 , 2, 1, 7, 7, 7 }, // Marathi/Devanagari/India
- { 82, 2, 143, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 945,32 , 37,5 , 8,10 , 12576,99 , 12675,189 , 158,27 , 12576,99 , 12675,189 , 158,27 , 6838,21 , 6859,43 , 1733,14 , 6838,21 , 6859,43 , 1733,14 , 226,2 , 217,2 , {77,78,84}, 259,1 , 8829,25 , 8,5 , 4,0 , 3027,6 , 3033,6 , 0, 0, 1, 6, 7 }, // Mongolian/Cyrillic/Mongolia
- { 84, 13, 150, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 472,7 , 0,6 , 472,7 , 472,7 , 72,10 , 330,17 , 37,5 , 8,10 , 12864,85 , 12864,85 , 12949,27 , 12864,85 , 12864,85 , 12949,27 , 6902,33 , 6935,54 , 6989,18 , 6902,33 , 6935,54 , 6989,18 , 228,14 , 219,14 , {78,80,82}, 260,4 , 8854,52 , 4,4 , 4,0 , 3039,6 , 3045,5 , 2, 1, 7, 6, 7 }, // Nepali/Devanagari/Nepal
- { 84, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 472,7 , 0,6 , 472,7 , 472,7 , 72,10 , 330,17 , 37,5 , 8,10 , 12864,85 , 12864,85 , 12949,27 , 12864,85 , 12976,80 , 12949,27 , 6902,33 , 6935,54 , 6989,18 , 6902,33 , 7007,54 , 6989,18 , 120,9 , 120,7 , {73,78,82}, 129,1 , 8906,49 , 4,4 , 4,0 , 3039,6 , 2587,4 , 2, 1, 7, 7, 7 }, // Nepali/Devanagari/India
- { 85, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 179,8 , 505,17 , 134,5 , 139,10 , 5743,48 , 13056,83 , 134,24 , 13139,59 , 13056,83 , 134,24 , 7061,28 , 2166,51 , 2217,14 , 2231,35 , 2166,51 , 2217,14 , 93,4 , 91,4 , {78,79,75}, 163,2 , 8955,44 , 8,5 , 4,0 , 3050,12 , 3062,5 , 2, 1, 1, 6, 7 }, // NorwegianBokmal/Latin/Norway
- { 85, 7, 203, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 179,8 , 505,17 , 134,5 , 139,10 , 5743,48 , 13056,83 , 134,24 , 13139,59 , 13056,83 , 134,24 , 7061,28 , 2166,51 , 2217,14 , 2231,35 , 2166,51 , 2217,14 , 93,4 , 91,4 , {78,79,75}, 163,2 , 8955,44 , 8,5 , 4,0 , 3050,12 , 3067,21 , 2, 1, 1, 6, 7 }, // NorwegianBokmal/Latin/SvalbardAndJanMayenIslands
- { 87, 26, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 682,6 , 10,17 , 18,7 , 25,12 , 13198,89 , 13198,89 , 13287,32 , 13198,89 , 13198,89 , 13287,32 , 7089,33 , 7122,54 , 7176,18 , 7089,33 , 7122,54 , 7176,18 , 91,2 , 89,2 , {73,78,82}, 129,1 , 8999,11 , 8,5 , 4,0 , 3088,5 , 3093,4 , 2, 1, 7, 7, 7 }, // Oriya/Oriya/India
- { 88, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 171,8 , 977,20 , 42,4 , 354,11 , 13319,68 , 13319,68 , 158,27 , 13319,68 , 13319,68 , 158,27 , 7194,49 , 7194,49 , 85,14 , 7194,49 , 7194,49 , 85,14 , 242,4 , 233,4 , {65,70,78}, 264,1 , 9010,13 , 13,5 , 4,0 , 3097,4 , 3101,9 , 0, 0, 6, 4, 5 }, // Pashto/Arabic/Afghanistan
- { 89, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 479,7 , 479,7 , 52,8 , 66,7 , 171,8 , 99,16 , 42,4 , 354,11 , 13387,70 , 13387,70 , 13457,24 , 13481,74 , 13481,74 , 13457,24 , 7194,49 , 7194,49 , 7243,14 , 7194,49 , 7194,49 , 7243,14 , 246,9 , 237,8 , {73,82,82}, 265,4 , 9023,37 , 46,5 , 4,0 , 3110,5 , 3115,5 , 0, 0, 6, 4, 5 }, // Persian/Arabic/Iran
- { 89, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 479,7 , 479,7 , 52,8 , 66,7 , 171,8 , 99,16 , 42,4 , 354,11 , 13387,70 , 13387,70 , 13555,24 , 13579,64 , 13643,68 , 13457,24 , 7194,49 , 7194,49 , 7243,14 , 7194,49 , 7194,49 , 7243,14 , 246,9 , 237,8 , {65,70,78}, 264,1 , 9060,55 , 46,5 , 4,0 , 3120,3 , 3101,9 , 0, 0, 6, 4, 5 }, // Persian/Arabic/Afghanistan
- { 90, 7, 172, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 161,7 , 161,7 , 997,10 , 10,17 , 37,5 , 8,10 , 13711,48 , 13759,97 , 13856,24 , 13711,48 , 13880,99 , 13856,24 , 7257,34 , 7291,59 , 7350,14 , 7257,34 , 7291,59 , 7350,14 , 0,2 , 0,2 , {80,76,78}, 269,2 , 9115,77 , 13,5 , 4,0 , 3123,6 , 3129,6 , 2, 1, 1, 6, 7 }, // Polish/Latin/Poland
- { 91, 7, 30, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 13979,48 , 14027,89 , 134,24 , 13979,48 , 14027,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 0,2 , 0,2 , {66,82,76}, 271,2 , 9192,54 , 4,4 , 4,0 , 3135,19 , 3154,6 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Brazil
- { 91, 7, 6, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {65,79,65}, 250,2 , 9246,54 , 13,5 , 4,0 , 3160,9 , 3169,6 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Angola
- { 91, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {67,86,69}, 0,0 , 9300,69 , 13,5 , 4,0 , 3160,9 , 3175,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/CapeVerde
- { 91, 7, 62, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {85,83,68}, 187,3 , 9369,81 , 13,5 , 4,0 , 3160,9 , 3185,11 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/EastTimor
- { 91, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {88,79,70}, 214,3 , 9450,65 , 13,5 , 4,0 , 3160,9 , 3196,12 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/GuineaBissau
- { 91, 7, 126, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {77,79,80}, 150,4 , 9515,53 , 13,5 , 4,0 , 3160,9 , 3208,19 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Macau
- { 91, 7, 146, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {77,90,78}, 273,3 , 9568,72 , 13,5 , 4,0 , 3160,9 , 3227,10 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Mozambique
- { 91, 7, 173, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {69,85,82}, 20,1 , 9640,20 , 13,5 , 4,0 , 3237,17 , 3254,8 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Portugal
- { 91, 7, 185, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 14116,48 , 14164,89 , 134,24 , 14116,48 , 14164,89 , 134,24 , 7364,28 , 7392,79 , 7471,14 , 7364,28 , 7392,79 , 7471,14 , 255,8 , 245,8 , {83,84,68}, 276,2 , 9660,92 , 13,5 , 4,0 , 3160,9 , 3262,19 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/SaoTomeAndPrincipe
- { 92, 4, 100, 46, 44, 59, 37, 48, 45, 43, 101, 39, 39, 34, 34, 0,6 , 0,6 , 486,9 , 486,9 , 294,6 , 10,17 , 18,7 , 25,12 , 14253,68 , 14253,68 , 14321,28 , 14253,68 , 14253,68 , 14321,28 , 7485,39 , 7524,53 , 7577,23 , 7485,39 , 7524,53 , 7577,23 , 0,2 , 0,2 , {73,78,82}, 129,1 , 9752,37 , 4,4 , 4,0 , 3281,6 , 3287,4 , 2, 1, 7, 7, 7 }, // Punjabi/Gurmukhi/India
- { 92, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 115,18 , 18,7 , 25,12 , 14349,67 , 14349,67 , 158,27 , 14349,67 , 14349,67 , 158,27 , 7600,37 , 7600,37 , 85,14 , 7600,37 , 7600,37 , 85,14 , 0,2 , 0,2 , {80,75,82}, 278,1 , 9789,13 , 8,5 , 4,0 , 3291,5 , 3296,6 , 0, 0, 7, 6, 7 }, // Punjabi/Arabic/Pakistan
- { 94, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 545,8 , 1034,28 , 37,5 , 8,10 , 14416,67 , 14483,92 , 14575,24 , 14416,67 , 14483,92 , 14575,24 , 7637,23 , 7660,56 , 7716,14 , 7637,23 , 7660,56 , 7716,14 , 91,2 , 253,2 , {67,72,70}, 233,3 , 9802,20 , 13,5 , 4,0 , 3302,9 , 3311,6 , 2, 0, 1, 6, 7 }, // Romansh/Latin/Switzerland
- { 95, 7, 177, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 495,8 , 495,8 , 997,10 , 10,17 , 37,5 , 8,10 , 14599,60 , 14659,98 , 14757,24 , 14599,60 , 14659,98 , 14757,24 , 7730,28 , 7758,48 , 2978,14 , 7730,28 , 7758,48 , 2978,14 , 93,4 , 91,4 , {82,79,78}, 0,0 , 9822,57 , 13,5 , 4,0 , 3317,6 , 3323,7 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Romania
- { 95, 7, 141, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 495,8 , 495,8 , 997,10 , 10,17 , 37,5 , 8,10 , 14599,60 , 14659,98 , 14757,24 , 14599,60 , 14659,98 , 14757,24 , 7730,28 , 7758,48 , 2978,14 , 7730,28 , 7758,48 , 2978,14 , 93,4 , 91,4 , {77,68,76}, 279,1 , 9879,69 , 13,5 , 4,0 , 3317,6 , 3330,17 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Moldova
- { 96, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 42,4 , 125,9 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {82,85,66}, 280,4 , 9948,73 , 13,5 , 4,0 , 3347,7 , 3354,6 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Russia
- { 96, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 42,4 , 125,9 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {66,89,82}, 146,2 , 10021,77 , 13,5 , 4,0 , 3347,7 , 491,8 , 0, 0, 7, 6, 7 }, // Russian/Cyrillic/Belarus
- { 96, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 42,4 , 125,9 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {75,90,84}, 244,1 , 10098,68 , 13,5 , 4,0 , 3347,7 , 3360,9 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kazakhstan
- { 96, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 42,4 , 125,9 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {75,71,83}, 245,3 , 10166,66 , 13,5 , 4,0 , 3347,7 , 3369,8 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kyrgyzstan
- { 96, 2, 141, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 42,4 , 125,9 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {77,68,76}, 279,1 , 10232,65 , 13,5 , 4,0 , 3347,7 , 3377,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Moldova
- { 96, 2, 222, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 179,8 , 354,22 , 37,5 , 8,10 , 14781,62 , 14843,80 , 10427,24 , 14923,63 , 14986,82 , 10427,24 , 7806,21 , 7827,62 , 7889,14 , 7903,21 , 7924,62 , 7903,21 , 263,10 , 255,13 , {85,65,72}, 284,1 , 10297,75 , 13,5 , 4,0 , 3347,7 , 3384,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Ukraine
- { 98, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 15068,48 , 15116,91 , 15207,24 , 15068,48 , 15116,91 , 15207,24 , 7986,28 , 8014,66 , 8080,14 , 7986,28 , 8014,66 , 8080,14 , 273,2 , 268,2 , {88,65,70}, 38,4 , 10372,25 , 4,4 , 35,5 , 3391,5 , 3396,22 , 0, 0, 1, 6, 7 }, // Sango/Latin/CentralAfricanRepublic
- { 100, 2, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15231,48 , 15279,81 , 11735,24 , 15231,48 , 15279,81 , 11735,24 , 8094,28 , 8122,52 , 8174,14 , 8094,28 , 8122,52 , 8174,14 , 275,9 , 270,7 , {82,83,68}, 285,4 , 10397,58 , 13,5 , 4,0 , 3418,6 , 3424,6 , 0, 0, 1, 6, 7 }, // Serbian/Cyrillic/Serbia
- { 100, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15360,48 , 15408,81 , 15489,24 , 15360,48 , 15408,81 , 15489,24 , 8188,28 , 8216,54 , 2026,14 , 8188,28 , 8216,54 , 2026,14 , 284,9 , 277,7 , {66,65,77}, 159,2 , 10455,152 , 13,5 , 4,0 , 3430,6 , 620,19 , 2, 1, 1, 6, 7 }, // Serbian/Latin/BosniaAndHerzegowina
- { 100, 7, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15360,48 , 15408,81 , 15489,24 , 15360,48 , 15408,81 , 15489,24 , 8188,28 , 8216,54 , 2026,14 , 8188,28 , 8216,54 , 2026,14 , 284,9 , 277,7 , {69,85,82}, 20,1 , 10607,23 , 13,5 , 4,0 , 3430,6 , 3436,9 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Montenegro
- { 100, 7, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15360,48 , 15408,81 , 15489,24 , 15360,48 , 15408,81 , 15489,24 , 8188,28 , 8216,54 , 2026,14 , 8188,28 , 8216,54 , 2026,14 , 284,9 , 277,7 , {82,83,68}, 289,4 , 10630,58 , 13,5 , 4,0 , 3430,6 , 3445,6 , 0, 0, 1, 6, 7 }, // Serbian/Latin/Serbia
- { 100, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 611,8 , 1062,20 , 37,5 , 365,40 , 15231,48 , 15279,81 , 11735,24 , 15231,48 , 15513,83 , 11735,24 , 8094,28 , 8122,52 , 8174,14 , 8270,28 , 8298,54 , 8174,14 , 275,9 , 270,7 , {66,65,77}, 293,2 , 10688,152 , 13,5 , 4,0 , 3451,6 , 3457,19 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/BosniaAndHerzegowina
- { 100, 2, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15231,48 , 15279,81 , 11735,24 , 15231,48 , 15279,81 , 11735,24 , 8094,28 , 8122,52 , 8174,14 , 8094,28 , 8122,52 , 8174,14 , 275,9 , 270,7 , {69,85,82}, 20,1 , 10840,23 , 13,5 , 4,0 , 3418,6 , 3476,9 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Montenegro
- { 100, 2, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15231,48 , 15279,81 , 11735,24 , 15231,48 , 15279,81 , 11735,24 , 8094,28 , 8122,52 , 8174,14 , 8094,28 , 8122,52 , 8174,14 , 275,9 , 270,7 , {69,85,82}, 20,1 , 10840,23 , 13,5 , 4,0 , 3418,6 , 3485,6 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Kosovo
- { 100, 7, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 161,7 , 161,7 , 479,7 , 1062,20 , 134,5 , 139,10 , 15360,48 , 15408,81 , 15489,24 , 15360,48 , 15408,81 , 15489,24 , 8188,28 , 8216,54 , 2026,14 , 8188,28 , 8216,54 , 2026,14 , 284,9 , 277,7 , {69,85,82}, 20,1 , 10607,23 , 13,5 , 4,0 , 3430,6 , 3491,6 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Kosovo
- { 101, 2, 81, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 503,9 , 503,9 , 179,8 , 1082,23 , 37,5 , 8,10 , 14781,62 , 15596,82 , 10427,24 , 15678,59 , 15737,86 , 10427,24 , 8352,28 , 8380,61 , 8441,14 , 8455,28 , 8483,61 , 8441,14 , 0,2 , 0,2 , {71,69,76}, 0,0 , 10863,17 , 8,5 , 4,0 , 3497,4 , 3501,11 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Georgia
- { 101, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 503,9 , 503,9 , 179,8 , 1082,23 , 37,5 , 8,10 , 14781,62 , 15596,82 , 10427,24 , 15678,59 , 15737,86 , 10427,24 , 8352,28 , 8380,61 , 8441,14 , 8455,28 , 8483,61 , 8441,14 , 0,2 , 0,2 , {82,85,66}, 280,4 , 10880,17 , 8,5 , 4,0 , 3497,4 , 3512,6 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Russia
- { 102, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 15823,48 , 15871,105 , 158,27 , 15823,48 , 15871,105 , 158,27 , 8544,27 , 8571,61 , 85,14 , 8544,27 , 8571,61 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 3518,7 , 0,0 , 2, 1, 7, 6, 7 }, // Southern Sotho/Latin/SouthAfrica
- { 102, 7, 120, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 15823,48 , 15871,105 , 158,27 , 15823,48 , 15871,105 , 158,27 , 8544,27 , 8571,61 , 85,14 , 8544,27 , 8571,61 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 3518,7 , 0,0 , 2, 1, 1, 6, 7 }, // Southern Sotho/Latin/Lesotho
- { 103, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 15976,48 , 16024,117 , 158,27 , 15976,48 , 16024,117 , 158,27 , 8632,27 , 8659,64 , 85,14 , 8632,27 , 8659,64 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 3525,8 , 0,0 , 2, 1, 7, 6, 7 }, // Tswana/Latin/SouthAfrica
- { 103, 7, 28, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 15976,48 , 16024,117 , 158,27 , 15976,48 , 16024,117 , 158,27 , 8632,27 , 8659,64 , 85,14 , 8632,27 , 8659,64 , 85,14 , 0,2 , 0,2 , {66,87,80}, 176,1 , 0,7 , 4,4 , 4,0 , 3525,8 , 0,0 , 2, 1, 7, 6, 7 }, // Tswana/Latin/Botswana
- { 104, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 16141,47 , 16188,100 , 16288,24 , 16141,47 , 16188,100 , 16288,24 , 8723,32 , 8755,55 , 8810,14 , 8723,32 , 8755,55 , 8810,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 10897,22 , 4,4 , 4,0 , 3533,8 , 1760,8 , 2, 1, 7, 6, 7 }, // Shona/Latin/Zimbabwe
- { 106, 32, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 512,9 , 521,8 , 72,10 , 330,17 , 405,7 , 412,12 , 16312,59 , 16371,96 , 16467,32 , 16499,61 , 16371,96 , 16467,32 , 8824,39 , 8863,62 , 8925,19 , 8824,39 , 8863,62 , 8925,19 , 293,5 , 284,4 , {76,75,82}, 295,3 , 10919,24 , 4,4 , 4,0 , 3541,5 , 3546,11 , 2, 1, 1, 6, 7 }, // Sinhala/Sinhala/SriLanka
- { 107, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 16560,48 , 16608,114 , 158,27 , 16560,48 , 16608,114 , 158,27 , 8944,27 , 8971,68 , 85,14 , 8944,27 , 8971,68 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 3557,7 , 0,0 , 2, 1, 7, 6, 7 }, // Swati/Latin/SouthAfrica
- { 107, 7, 204, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 16560,48 , 16608,114 , 158,27 , 16560,48 , 16608,114 , 158,27 , 8944,27 , 8971,68 , 85,14 , 8944,27 , 8971,68 , 85,14 , 0,2 , 0,2 , {83,90,76}, 201,1 , 0,7 , 4,4 , 4,0 , 3557,7 , 0,0 , 2, 1, 1, 6, 7 }, // Swati/Latin/Swaziland
- { 108, 7, 191, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 178,7 , 178,7 , 603,8 , 585,18 , 42,4 , 125,9 , 16722,48 , 16770,82 , 15489,24 , 16722,48 , 16852,89 , 15489,24 , 9039,21 , 9060,52 , 9112,14 , 9039,21 , 9060,52 , 9112,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 10943,26 , 13,5 , 4,0 , 3564,10 , 3574,9 , 2, 1, 1, 6, 7 }, // Slovak/Latin/Slovakia
- { 109, 7, 192, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 529,8 , 529,8 , 1105,9 , 638,19 , 37,5 , 8,10 , 15360,48 , 16941,86 , 15489,24 , 17027,59 , 16941,86 , 15489,24 , 9126,28 , 9154,52 , 9206,14 , 9220,35 , 9154,52 , 9206,14 , 298,4 , 288,4 , {69,85,82}, 20,1 , 10969,28 , 4,4 , 40,6 , 3583,11 , 3594,9 , 2, 1, 1, 6, 7 }, // Slovenian/Latin/Slovenia
- { 110, 7, 194, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 17086,48 , 17134,189 , 17323,24 , 17086,48 , 17134,189 , 17323,24 , 9255,28 , 9283,47 , 9330,14 , 9255,28 , 9283,47 , 9330,14 , 302,3 , 292,3 , {83,79,83}, 100,1 , 10997,22 , 4,4 , 4,0 , 3603,8 , 3611,10 , 0, 0, 1, 6, 7 }, // Somali/Latin/Somalia
- { 110, 7, 59, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 17086,48 , 17134,189 , 17323,24 , 17086,48 , 17134,189 , 17323,24 , 9255,28 , 9283,47 , 9330,14 , 9255,28 , 9283,47 , 9330,14 , 302,3 , 292,3 , {68,74,70}, 5,3 , 11019,21 , 4,4 , 4,0 , 3603,8 , 3621,7 , 0, 0, 6, 6, 7 }, // Somali/Latin/Djibouti
- { 110, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 17086,48 , 17134,189 , 17323,24 , 17086,48 , 17134,189 , 17323,24 , 9255,28 , 9283,47 , 9330,14 , 9255,28 , 9283,47 , 9330,14 , 302,3 , 292,3 , {69,84,66}, 0,2 , 11040,22 , 4,4 , 4,0 , 3603,8 , 3628,8 , 2, 1, 7, 6, 7 }, // Somali/Latin/Ethiopia
- { 110, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 17086,48 , 17134,189 , 17323,24 , 17086,48 , 17134,189 , 17323,24 , 9255,28 , 9283,47 , 9330,14 , 9255,28 , 9283,47 , 9330,14 , 302,3 , 292,3 , {75,69,83}, 2,3 , 0,7 , 4,4 , 4,0 , 3603,8 , 3636,7 , 2, 1, 7, 6, 7 }, // Somali/Latin/Kenya
- { 111, 7, 197, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 3643,17 , 2360,6 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Spain
- { 111, 7, 10, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 424,14 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {65,82,83}, 12,1 , 11062,51 , 4,4 , 4,0 , 3660,7 , 3667,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Argentina
- { 111, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {66,79,66}, 298,2 , 11113,35 , 4,4 , 4,0 , 3660,7 , 3676,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Bolivia
- { 111, 7, 43, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 545,8 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {67,76,80}, 12,1 , 11148,45 , 4,4 , 35,5 , 3660,7 , 3683,5 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Chile
- { 111, 7, 47, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 553,7 , 1007,27 , 18,7 , 438,14 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {67,79,80}, 12,1 , 11193,54 , 4,4 , 4,0 , 3660,7 , 3688,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Colombia
- { 111, 7, 52, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {67,82,67}, 300,1 , 11247,67 , 4,4 , 4,0 , 3660,7 , 3696,10 , 0, 0, 1, 6, 7 }, // Spanish/Latin/CostaRica
- { 111, 7, 55, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {67,85,80}, 12,1 , 11314,42 , 4,4 , 4,0 , 3660,7 , 3706,4 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Cuba
- { 111, 7, 61, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {68,79,80}, 12,1 , 11356,54 , 4,4 , 4,0 , 3660,7 , 3710,20 , 2, 1, 7, 6, 7 }, // Spanish/Latin/DominicanRepublic
- { 111, 7, 63, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {85,83,68}, 12,1 , 11410,70 , 4,4 , 35,5 , 3660,7 , 3730,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ecuador
- { 111, 7, 65, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {85,83,68}, 12,1 , 11410,70 , 4,4 , 4,0 , 3660,7 , 3737,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/ElSalvador
- { 111, 7, 66, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {88,65,70}, 38,4 , 11480,53 , 4,4 , 4,0 , 3660,7 , 3748,17 , 0, 0, 1, 6, 7 }, // Spanish/Latin/EquatorialGuinea
- { 111, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 553,7 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {71,84,81}, 301,1 , 11533,70 , 4,4 , 4,0 , 3660,7 , 3765,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Guatemala
- { 111, 7, 96, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1114,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {72,78,76}, 279,1 , 11603,60 , 4,4 , 4,0 , 3660,7 , 3774,8 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Honduras
- { 111, 7, 139, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 27,8 , 1007,27 , 37,5 , 8,10 , 17671,56 , 17582,89 , 17727,29 , 17756,59 , 17582,89 , 17727,29 , 9534,33 , 9467,53 , 9520,14 , 9567,36 , 9467,53 , 9520,14 , 93,4 , 91,4 , {77,88,78}, 12,1 , 11663,48 , 4,4 , 4,0 , 3782,17 , 3799,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Mexico
- { 111, 7, 155, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {78,73,79}, 302,2 , 11711,69 , 4,4 , 4,0 , 3660,7 , 3805,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Nicaragua
- { 111, 7, 166, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 1141,8 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {80,65,66}, 304,3 , 11780,54 , 4,4 , 4,0 , 3660,7 , 3814,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Panama
- { 111, 7, 168, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {80,89,71}, 307,1 , 11834,61 , 8,5 , 51,6 , 3660,7 , 3820,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Paraguay
- { 111, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 553,7 , 1007,27 , 42,4 , 452,15 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {80,69,78}, 308,3 , 11895,62 , 4,4 , 4,0 , 3660,7 , 3828,4 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Peru
- { 111, 7, 170, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {80,72,80}, 191,1 , 11957,48 , 13,5 , 4,0 , 3660,7 , 3832,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Philippines
- { 111, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 1141,8 , 1007,27 , 18,7 , 25,12 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {85,83,68}, 12,1 , 11410,70 , 4,4 , 4,0 , 3660,7 , 1424,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/PuertoRico
- { 111, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 560,6 , 1007,27 , 18,7 , 25,12 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 11410,70 , 4,4 , 4,0 , 3660,7 , 3841,14 , 2, 1, 7, 6, 7 }, // Spanish/Latin/UnitedStates
- { 111, 7, 227, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {85,89,85}, 12,1 , 12005,48 , 8,5 , 4,0 , 3660,7 , 3855,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Uruguay
- { 111, 7, 231, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {86,69,70}, 311,3 , 12053,64 , 4,4 , 35,5 , 3660,7 , 3862,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Venezuela
- { 111, 7, 238, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 3660,7 , 3871,14 , 2, 1, 1, 6, 7 }, // Spanish/Latin/CanaryIslands
- { 111, 7, 246, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {0,0,0}, 0,0 , 12117,0 , 4,4 , 4,0 , 3885,18 , 3903,13 , 2, 1, 1, 6, 7 }, // Spanish/Latin/LatinAmericaAndTheCaribbean
- { 111, 7, 250, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1007,27 , 42,4 , 354,11 , 17347,61 , 17408,89 , 17497,24 , 17521,61 , 17582,89 , 17497,24 , 9344,35 , 9379,53 , 2978,14 , 9432,35 , 9467,53 , 9520,14 , 80,5 , 78,5 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 3660,7 , 3916,15 , 2, 1, 1, 6, 7 }, // Spanish/Latin/CeutaAndMelilla
- { 113, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 544,9 , 553,8 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 17863,84 , 134,24 , 17815,48 , 17863,84 , 134,24 , 9603,22 , 9625,60 , 9685,14 , 9603,22 , 9625,60 , 9685,14 , 0,2 , 0,2 , {84,90,83}, 202,3 , 12117,27 , 4,4 , 4,0 , 3931,9 , 1586,8 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Tanzania
- { 113, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 544,9 , 553,8 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 17863,84 , 134,24 , 17815,48 , 17863,84 , 134,24 , 9603,22 , 9625,60 , 9685,14 , 9603,22 , 9625,60 , 9685,14 , 0,2 , 0,2 , {75,69,83}, 2,3 , 12144,24 , 4,4 , 4,0 , 3931,9 , 1188,5 , 2, 1, 7, 6, 7 }, // Swahili/Latin/Kenya
- { 113, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 544,9 , 553,8 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 17863,84 , 134,24 , 17815,48 , 17863,84 , 134,24 , 9603,22 , 9625,60 , 9685,14 , 9603,22 , 9625,60 , 9685,14 , 0,2 , 0,2 , {85,71,88}, 207,3 , 12168,25 , 4,4 , 4,0 , 3931,9 , 1655,6 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Uganda
- { 114, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 561,9 , 561,9 , 72,10 , 1149,30 , 37,5 , 467,16 , 17947,48 , 17995,86 , 134,24 , 4913,48 , 18081,86 , 134,24 , 9699,28 , 9727,50 , 2217,14 , 9777,29 , 9806,50 , 2217,14 , 305,2 , 295,2 , {83,69,75}, 163,2 , 12193,45 , 13,5 , 4,0 , 3940,7 , 3947,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Sweden
- { 114, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 561,9 , 561,9 , 1179,10 , 1149,30 , 37,5 , 467,16 , 17947,48 , 17995,86 , 134,24 , 4913,48 , 18081,86 , 134,24 , 9699,28 , 9727,50 , 2217,14 , 9777,29 , 9806,50 , 2217,14 , 305,2 , 295,2 , {69,85,82}, 20,1 , 12238,19 , 13,5 , 4,0 , 3940,7 , 3954,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Finland
- { 114, 7, 248, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 561,9 , 561,9 , 72,10 , 1149,30 , 37,5 , 467,16 , 17947,48 , 17995,86 , 134,24 , 4913,48 , 18081,86 , 134,24 , 9699,28 , 9727,50 , 2217,14 , 9777,29 , 9806,50 , 2217,14 , 305,2 , 295,2 , {69,85,82}, 20,1 , 12238,19 , 13,5 , 4,0 , 3940,7 , 3961,5 , 2, 1, 1, 6, 7 }, // Swedish/Latin/AlandIslands
- { 116, 2, 209, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 171, 8222, 0,6 , 0,6 , 0,6 , 0,6 , 376,8 , 384,18 , 37,5 , 8,10 , 18167,48 , 18215,71 , 158,27 , 18167,48 , 18215,71 , 158,27 , 9856,28 , 9884,55 , 85,14 , 9856,28 , 9884,55 , 85,14 , 0,2 , 0,2 , {84,74,83}, 245,3 , 12257,13 , 8,5 , 4,0 , 3966,6 , 3972,10 , 2, 1, 1, 6, 7 }, // Tajik/Cyrillic/Tajikistan
- { 117, 27, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 570,13 , 570,13 , 682,6 , 214,18 , 18,7 , 25,12 , 18286,58 , 18344,86 , 18430,31 , 18286,58 , 18461,86 , 18430,31 , 9939,20 , 9959,49 , 9939,20 , 9939,20 , 9959,49 , 9939,20 , 307,8 , 297,8 , {73,78,82}, 129,1 , 12270,13 , 8,5 , 4,0 , 3982,5 , 3987,7 , 2, 1, 7, 7, 7 }, // Tamil/Tamil/India
- { 117, 27, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 570,13 , 570,13 , 682,6 , 214,18 , 18,7 , 25,12 , 18286,58 , 18344,86 , 18430,31 , 18286,58 , 18461,86 , 18430,31 , 9939,20 , 9959,49 , 9939,20 , 9939,20 , 9959,49 , 9939,20 , 307,8 , 297,8 , {77,89,82}, 257,2 , 12283,22 , 8,5 , 4,0 , 3982,5 , 3994,7 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Malaysia
- { 117, 27, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 570,13 , 570,13 , 682,6 , 214,18 , 18,7 , 25,12 , 18286,58 , 18344,86 , 18430,31 , 18286,58 , 18461,86 , 18430,31 , 9939,20 , 9959,49 , 9939,20 , 9939,20 , 9959,49 , 9939,20 , 307,8 , 297,8 , {83,71,68}, 12,1 , 12305,24 , 8,5 , 4,0 , 3982,5 , 4001,11 , 2, 1, 7, 6, 7 }, // Tamil/Tamil/Singapore
- { 117, 27, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 570,13 , 570,13 , 682,6 , 214,18 , 18,7 , 25,12 , 18286,58 , 18344,86 , 18430,31 , 18286,58 , 18461,86 , 18430,31 , 9939,20 , 9959,49 , 9939,20 , 9939,20 , 9959,49 , 9939,20 , 307,8 , 297,8 , {76,75,82}, 314,3 , 12329,20 , 8,5 , 4,0 , 3982,5 , 4012,6 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/SriLanka
- { 119, 28, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 583,11 , 583,11 , 545,8 , 1189,16 , 18,7 , 25,12 , 18547,66 , 18613,86 , 18699,31 , 18730,62 , 18792,86 , 18699,31 , 10008,32 , 10040,60 , 10100,18 , 10008,32 , 10040,60 , 10100,18 , 0,2 , 0,2 , {73,78,82}, 129,1 , 12349,26 , 4,4 , 4,0 , 4018,6 , 4024,9 , 2, 1, 7, 7, 7 }, // Telugu/Telugu/India
- { 120, 30, 211, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 594,5 , 594,5 , 599,8 , 607,7 , 294,6 , 1205,19 , 37,5 , 483,28 , 18878,63 , 18941,98 , 18878,63 , 18878,63 , 18941,98 , 18878,63 , 10118,23 , 10141,68 , 10209,16 , 10118,23 , 10141,68 , 10209,16 , 315,10 , 305,10 , {84,72,66}, 317,1 , 12375,19 , 4,4 , 4,0 , 4033,3 , 4033,3 , 2, 1, 7, 6, 7 }, // Thai/Thai/Thailand
- { 121, 31, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 2880,63 , 19039,158 , 158,27 , 2880,63 , 19039,158 , 158,27 , 10225,49 , 10274,77 , 10351,21 , 10225,49 , 10274,77 , 10372,22 , 325,7 , 315,8 , {67,78,89}, 318,1 , 12394,13 , 8,5 , 4,0 , 4036,8 , 4044,6 , 2, 1, 7, 6, 7 }, // Tibetan/Tibetan/China
- { 121, 31, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 2880,63 , 19039,158 , 158,27 , 2880,63 , 19039,158 , 158,27 , 10225,49 , 10274,77 , 10351,21 , 10225,49 , 10274,77 , 10372,22 , 325,7 , 315,8 , {73,78,82}, 129,1 , 12407,22 , 8,5 , 4,0 , 4036,8 , 4050,7 , 2, 1, 7, 7, 7 }, // Tibetan/Tibetan/India
- { 122, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1224,23 , 18,7 , 25,12 , 19197,46 , 19243,62 , 1050,24 , 19197,46 , 19243,62 , 1050,24 , 10394,29 , 10394,29 , 10423,14 , 10394,29 , 10394,29 , 10423,14 , 332,7 , 323,7 , {69,84,66}, 0,2 , 12429,16 , 4,4 , 4,0 , 4057,4 , 108,5 , 2, 1, 7, 6, 7 }, // Tigrinya/Ethiopic/Ethiopia
- { 122, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1247,23 , 18,7 , 25,12 , 19305,46 , 19351,54 , 1050,24 , 19305,46 , 19351,54 , 1050,24 , 10437,29 , 10437,29 , 10423,14 , 10437,29 , 10437,29 , 10423,14 , 332,7 , 323,7 , {69,82,78}, 8,3 , 0,7 , 4,4 , 4,0 , 4057,4 , 4061,4 , 2, 1, 1, 6, 7 }, // Tigrinya/Ethiopic/Eritrea
- { 123, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 614,8 , 614,8 , 294,6 , 99,16 , 18,7 , 25,12 , 19405,51 , 19456,87 , 19543,24 , 19405,51 , 19456,87 , 19543,24 , 10466,29 , 10495,60 , 10555,14 , 10466,29 , 10495,60 , 10555,14 , 0,2 , 0,2 , {84,79,80}, 205,2 , 12445,21 , 8,5 , 4,0 , 4065,13 , 1601,5 , 2, 1, 1, 6, 7 }, // Tongan/Latin/Tonga
- { 124, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 19567,48 , 19615,122 , 158,27 , 19567,48 , 19615,122 , 158,27 , 10569,27 , 10596,72 , 85,14 , 10569,27 , 10596,72 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 4078,8 , 0,0 , 2, 1, 7, 6, 7 }, // Tsonga/Latin/SouthAfrica
- { 125, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 622,8 , 622,8 , 1270,9 , 1189,16 , 37,5 , 8,10 , 19737,48 , 19785,75 , 19860,24 , 19737,48 , 19785,75 , 19860,24 , 10668,28 , 10696,54 , 10750,14 , 10668,28 , 10696,54 , 10750,14 , 339,2 , 330,2 , {84,82,89}, 319,1 , 12466,40 , 13,5 , 4,0 , 4086,6 , 4092,7 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Turkey
- { 125, 7, 56, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 622,8 , 622,8 , 1270,9 , 1189,16 , 37,5 , 8,10 , 19737,48 , 19785,75 , 19860,24 , 19737,48 , 19785,75 , 19860,24 , 10668,28 , 10696,54 , 10750,14 , 10668,28 , 10696,54 , 10750,14 , 339,2 , 330,2 , {69,85,82}, 20,1 , 7628,19 , 13,5 , 4,0 , 4086,6 , 4099,23 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Cyprus
- { 129, 2, 222, 44, 160, 59, 37, 48, 45, 43, 1077, 171, 187, 8222, 8220, 0,6 , 0,6 , 630,8 , 630,8 , 179,8 , 1279,22 , 37,5 , 8,10 , 19884,48 , 19932,95 , 20027,24 , 20051,67 , 20118,87 , 20027,24 , 10764,21 , 10785,56 , 10841,14 , 10764,21 , 10855,56 , 10841,14 , 341,2 , 332,2 , {85,65,72}, 284,1 , 12506,49 , 13,5 , 4,0 , 4122,10 , 4132,7 , 2, 1, 1, 6, 7 }, // Ukrainian/Cyrillic/Ukraine
- { 130, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 638,10 , 648,9 , 294,6 , 153,18 , 18,7 , 25,12 , 20205,68 , 20205,68 , 134,24 , 20205,68 , 20205,68 , 134,24 , 10911,39 , 10911,39 , 85,14 , 10911,39 , 10911,39 , 85,14 , 343,9 , 334,9 , {80,75,82}, 185,2 , 12555,21 , 57,5 , 4,0 , 4139,4 , 4143,7 , 0, 0, 7, 6, 7 }, // Urdu/Arabic/Pakistan
- { 130, 1, 100, 46, 44, 59, 37, 1776, 45, 43, 1602, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 638,10 , 648,9 , 294,6 , 153,18 , 18,7 , 25,12 , 20205,68 , 20205,68 , 134,24 , 20205,68 , 20205,68 , 134,24 , 10950,36 , 10950,36 , 85,14 , 10950,36 , 10950,36 , 85,14 , 343,9 , 334,9 , {73,78,82}, 129,1 , 12576,18 , 8,5 , 4,0 , 4139,4 , 4150,5 , 2, 1, 7, 7, 7 }, // Urdu/Arabic/India
- { 131, 7, 228, 44, 160, 59, 37, 48, 45, 43, 101, 34, 34, 39, 39, 0,6 , 0,6 , 657,8 , 657,8 , 376,8 , 384,18 , 37,5 , 8,10 , 20273,52 , 20325,77 , 20402,24 , 20273,52 , 20325,77 , 20402,24 , 10986,34 , 11020,61 , 11081,14 , 10986,34 , 11020,61 , 11081,14 , 0,2 , 0,2 , {85,90,83}, 320,4 , 12594,55 , 8,5 , 4,0 , 4155,9 , 4164,11 , 0, 0, 1, 6, 7 }, // Uzbek/Latin/Uzbekistan
- { 131, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 171,8 , 1301,33 , 42,4 , 354,11 , 20426,48 , 13643,68 , 158,27 , 20426,48 , 13643,68 , 158,27 , 11095,21 , 7194,49 , 85,14 , 11095,21 , 7194,49 , 85,14 , 0,2 , 0,2 , {65,70,78}, 264,1 , 12649,13 , 13,5 , 4,0 , 4175,6 , 3101,9 , 0, 0, 6, 4, 5 }, // Uzbek/Arabic/Afghanistan
- { 131, 2, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 376,8 , 384,18 , 37,5 , 8,10 , 18167,48 , 18215,71 , 10427,24 , 18167,48 , 18215,71 , 10427,24 , 11116,28 , 11144,53 , 11197,14 , 11116,28 , 11144,53 , 11197,14 , 0,2 , 0,2 , {85,90,83}, 324,3 , 12662,49 , 8,5 , 4,0 , 4181,5 , 4186,10 , 0, 0, 1, 6, 7 }, // Uzbek/Cyrillic/Uzbekistan
- { 132, 7, 232, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 665,8 , 665,8 , 133,10 , 1334,31 , 37,5 , 8,10 , 20474,75 , 20549,99 , 158,27 , 20648,75 , 20723,99 , 158,27 , 11211,33 , 11244,55 , 11299,21 , 11211,33 , 11244,55 , 11299,21 , 352,2 , 343,2 , {86,78,68}, 327,1 , 12711,33 , 13,5 , 4,0 , 4196,10 , 4206,8 , 0, 0, 1, 6, 7 }, // Vietnamese/Latin/Vietnam
- { 134, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 37,5 , 8,10 , 20822,52 , 20874,87 , 20961,26 , 20987,62 , 20874,87 , 20961,26 , 11320,29 , 11349,77 , 11426,15 , 11441,30 , 11349,77 , 11426,15 , 0,2 , 0,2 , {71,66,80}, 125,1 , 12744,154 , 4,4 , 4,0 , 4214,7 , 4221,16 , 2, 1, 1, 6, 7 }, // Welsh/Latin/UnitedKingdom
- { 136, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 21049,48 , 21097,91 , 158,27 , 21049,48 , 21097,91 , 158,27 , 11471,28 , 11499,61 , 85,14 , 11471,28 , 11499,61 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 4237,8 , 0,0 , 2, 1, 7, 6, 7 }, // Xhosa/Latin/SouthAfrica
- { 138, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 21188,73 , 21261,121 , 158,27 , 21188,73 , 21261,121 , 158,27 , 11560,44 , 11604,69 , 85,14 , 11560,44 , 11604,69 , 85,14 , 354,5 , 345,5 , {78,71,78}, 190,1 , 12898,34 , 4,4 , 4,0 , 4245,10 , 4255,18 , 2, 1, 1, 6, 7 }, // Yoruba/Latin/Nigeria
- { 138, 7, 23, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 21382,74 , 21456,134 , 158,27 , 21382,74 , 21456,134 , 158,27 , 11673,44 , 11717,69 , 85,14 , 11673,44 , 11717,69 , 85,14 , 359,5 , 350,5 , {88,79,70}, 214,3 , 12932,34 , 4,4 , 4,0 , 4245,10 , 4273,16 , 0, 0, 1, 6, 7 }, // Yoruba/Latin/Benin
- { 140, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 673,9 , 682,10 , 72,10 , 82,17 , 18,7 , 25,12 , 21590,48 , 21638,104 , 134,24 , 21590,48 , 21742,90 , 134,24 , 11786,28 , 11814,67 , 11881,14 , 11786,28 , 11814,67 , 11895,14 , 364,7 , 355,8 , {90,65,82}, 11,1 , 12966,27 , 4,4 , 4,0 , 4289,7 , 4296,14 , 2, 1, 7, 6, 7 }, // Zulu/Latin/SouthAfrica
- { 141, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 185,8 , 185,8 , 179,8 , 505,17 , 37,5 , 467,16 , 5743,48 , 13056,83 , 134,24 , 21832,59 , 13056,83 , 134,24 , 11909,28 , 11937,51 , 2217,14 , 11988,28 , 11937,51 , 2217,14 , 371,9 , 363,11 , {78,79,75}, 163,2 , 12993,42 , 13,5 , 4,0 , 4310,7 , 4317,5 , 2, 1, 1, 6, 7 }, // NorwegianNynorsk/Latin/Norway
- { 142, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 161,7 , 161,7 , 1365,9 , 1062,20 , 37,5 , 8,10 , 15360,48 , 21891,83 , 15489,24 , 15360,48 , 21891,83 , 15489,24 , 1940,28 , 1968,58 , 85,14 , 1940,28 , 1968,58 , 85,14 , 284,9 , 277,7 , {66,65,77}, 159,2 , 13035,218 , 8,5 , 4,0 , 4322,8 , 620,19 , 2, 1, 1, 6, 7 }, // Bosnian/Latin/BosniaAndHerzegowina
- { 142, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 479,7 , 1062,20 , 37,5 , 8,10 , 15231,48 , 15513,83 , 11735,24 , 15231,48 , 15513,83 , 11735,24 , 8270,28 , 8298,54 , 8174,14 , 8270,28 , 8298,54 , 8174,14 , 275,9 , 270,7 , {66,65,77}, 293,2 , 13253,195 , 13,5 , 4,0 , 4330,8 , 3457,19 , 2, 1, 1, 6, 7 }, // Bosnian/Cyrillic/BosniaAndHerzegowina
- { 144, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 82,17 , 37,5 , 8,10 , 21974,102 , 22076,140 , 158,27 , 21974,102 , 22076,140 , 158,27 , 12016,30 , 12046,57 , 85,14 , 12016,30 , 12046,57 , 85,14 , 93,4 , 91,4 , {71,66,80}, 125,1 , 0,7 , 4,4 , 4,0 , 4338,5 , 4343,12 , 2, 1, 1, 6, 7 }, // Manx/Latin/IsleOfMan
- { 145, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 99,16 , 37,5 , 8,10 , 22216,46 , 22262,124 , 158,27 , 22216,46 , 22262,124 , 158,27 , 12103,28 , 12131,60 , 85,14 , 12103,28 , 12131,60 , 85,14 , 93,4 , 91,4 , {71,66,80}, 125,1 , 0,7 , 4,4 , 4,0 , 4355,8 , 4363,14 , 2, 1, 1, 6, 7 }, // Cornish/Latin/UnitedKingdom
- { 146, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 376,8 , 384,18 , 37,5 , 8,10 , 22386,48 , 22434,192 , 158,27 , 22386,48 , 22434,192 , 158,27 , 12191,28 , 12219,49 , 12268,14 , 12191,28 , 12219,49 , 12268,14 , 380,2 , 374,2 , {71,72,83}, 178,3 , 13448,17 , 4,4 , 4,0 , 4377,4 , 4381,5 , 2, 1, 1, 6, 7 }, // Akan/Latin/Ghana
- { 147, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 682,6 , 99,16 , 18,7 , 25,12 , 22626,87 , 22626,87 , 158,27 , 22626,87 , 22626,87 , 158,27 , 6753,32 , 12282,55 , 85,14 , 6753,32 , 12282,55 , 85,14 , 382,5 , 376,5 , {73,78,82}, 129,1 , 0,7 , 8,5 , 4,0 , 4386,6 , 2587,4 , 2, 1, 7, 7, 7 }, // Konkani/Devanagari/India
- { 149, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 22713,48 , 22761,86 , 158,27 , 22713,48 , 22761,86 , 158,27 , 12337,29 , 12366,57 , 85,14 , 12337,29 , 12366,57 , 85,14 , 387,4 , 381,4 , {78,71,78}, 190,1 , 13465,12 , 4,4 , 4,0 , 4392,4 , 1319,7 , 2, 1, 1, 6, 7 }, // Igbo/Latin/Nigeria
- { 150, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 22847,48 , 22895,189 , 23084,24 , 22847,48 , 22895,189 , 23084,24 , 12423,28 , 12451,74 , 12525,14 , 12423,28 , 12451,74 , 12525,14 , 391,9 , 385,7 , {75,69,83}, 2,3 , 13477,23 , 4,4 , 4,0 , 4396,7 , 1188,5 , 2, 1, 7, 6, 7 }, // Kamba/Latin/Kenya
- { 152, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1374,22 , 18,7 , 25,12 , 23108,47 , 23155,77 , 23232,24 , 23108,47 , 23155,77 , 23232,24 , 12539,26 , 12565,43 , 12608,14 , 12539,26 , 12565,43 , 12608,14 , 0,2 , 0,2 , {69,82,78}, 8,3 , 0,7 , 4,4 , 4,0 , 4403,3 , 4061,4 , 2, 1, 1, 6, 7 }, // Blin/Ethiopic/Eritrea
- { 157, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1396,21 , 18,7 , 25,12 , 19197,46 , 19243,62 , 1050,24 , 19197,46 , 19243,62 , 1050,24 , 12622,27 , 12649,41 , 12690,14 , 12622,27 , 12649,41 , 12690,14 , 0,2 , 0,2 , {69,82,78}, 8,3 , 0,7 , 4,4 , 4,0 , 4406,3 , 4061,4 , 2, 1, 1, 6, 7 }, // Tigre/Ethiopic/Eritrea
- { 159, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1417,27 , 37,5 , 8,10 , 23256,48 , 23304,77 , 23381,24 , 23256,48 , 23304,77 , 23381,24 , 12704,28 , 12732,50 , 2978,14 , 12704,28 , 12732,50 , 2978,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 8,5 , 4,0 , 4409,6 , 4415,6 , 2, 1, 1, 6, 7 }, // Friulian/Latin/Italy
- { 160, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 23405,48 , 23453,111 , 158,27 , 23405,48 , 23453,111 , 158,27 , 12782,27 , 12809,70 , 85,14 , 12782,27 , 12809,70 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 4421,9 , 0,0 , 2, 1, 7, 6, 7 }, // Venda/Latin/SouthAfrica
- { 161, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 692,11 , 703,10 , 560,6 , 1444,23 , 511,12 , 523,12 , 23564,48 , 23612,87 , 23699,24 , 23564,48 , 23612,87 , 23699,24 , 12879,28 , 12907,44 , 12951,14 , 12879,28 , 12907,44 , 12951,14 , 400,3 , 392,5 , {71,72,83}, 178,3 , 13500,37 , 4,4 , 4,0 , 4430,6 , 4436,12 , 2, 1, 1, 6, 7 }, // Ewe/Latin/Ghana
- { 161, 7, 212, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 692,11 , 703,10 , 560,6 , 1444,23 , 511,12 , 523,12 , 23564,48 , 23612,87 , 23699,24 , 23564,48 , 23612,87 , 23699,24 , 12879,28 , 12907,44 , 12951,14 , 12879,28 , 12907,44 , 12951,14 , 400,3 , 392,5 , {88,79,70}, 214,3 , 13537,106 , 4,4 , 4,0 , 4430,6 , 4448,11 , 0, 0, 1, 6, 7 }, // Ewe/Latin/Togo
- { 162, 14, 69, 46, 8217, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1467,22 , 18,7 , 25,12 , 19197,46 , 19243,62 , 1050,24 , 19197,46 , 19243,62 , 1050,24 , 12965,27 , 12965,27 , 12992,14 , 12965,27 , 12965,27 , 12992,14 , 0,2 , 0,2 , {69,84,66}, 0,2 , 12429,16 , 4,4 , 4,0 , 4459,5 , 108,5 , 2, 1, 7, 6, 7 }, // Walamo/Ethiopic/Ethiopia
- { 163, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 294,6 , 10,17 , 18,7 , 25,12 , 23723,59 , 23782,95 , 158,27 , 23723,59 , 23782,95 , 158,27 , 13006,21 , 13027,57 , 85,14 , 13006,21 , 13027,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 0,7 , 4,4 , 4,0 , 4464,14 , 4478,19 , 2, 1, 7, 6, 7 }, // Hawaiian/Latin/UnitedStates
- { 166, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 193,10 , 713,8 , 560,6 , 35,18 , 18,7 , 25,12 , 23877,48 , 23925,88 , 24013,24 , 23877,48 , 23925,88 , 24013,24 , 13084,28 , 13112,55 , 13167,14 , 13084,28 , 13112,55 , 13167,14 , 0,2 , 0,2 , {80,72,80}, 191,1 , 5279,53 , 4,4 , 4,0 , 4497,8 , 4505,9 , 2, 1, 7, 6, 7 }, // Filipino/Latin/Philippines
- { 167, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 24037,86 , 134,24 , 7053,48 , 24037,86 , 134,24 , 13181,28 , 13209,63 , 3456,14 , 13181,28 , 13209,63 , 3456,14 , 105,5 , 397,4 , {67,72,70}, 233,3 , 13643,55 , 13,5 , 4,0 , 4514,16 , 4530,7 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Switzerland
- { 167, 7, 123, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 179,8 , 585,18 , 37,5 , 8,10 , 7053,48 , 24037,86 , 134,24 , 7053,48 , 24037,86 , 134,24 , 13181,28 , 13209,63 , 3456,14 , 13181,28 , 13209,63 , 3456,14 , 105,5 , 397,4 , {67,72,70}, 233,3 , 13643,55 , 13,5 , 4,0 , 4514,16 , 4537,13 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Liechtenstein
- { 168, 34, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 158,27 , 24123,38 , 158,27 , 158,27 , 24123,38 , 158,27 , 13272,21 , 13293,28 , 13321,14 , 13272,21 , 13293,28 , 13321,14 , 403,2 , 401,2 , {67,78,89}, 318,1 , 0,7 , 8,5 , 4,0 , 4550,3 , 4553,2 , 2, 1, 7, 6, 7 }, // Sichuan Yi/Yi/China
- { 171, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 24161,48 , 24209,100 , 158,27 , 24161,48 , 24209,100 , 158,27 , 13335,27 , 13362,66 , 85,14 , 13335,27 , 13362,66 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 4555,10 , 0,0 , 2, 1, 7, 6, 7 }, // South Ndebele/Latin/SouthAfrica
- { 172, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 330,17 , 37,5 , 8,10 , 24309,48 , 24357,94 , 158,27 , 24309,48 , 24357,94 , 158,27 , 13428,27 , 13455,63 , 85,14 , 13428,27 , 13455,63 , 85,14 , 0,2 , 0,2 , {90,65,82}, 11,1 , 0,7 , 4,4 , 4,0 , 4565,16 , 0,0 , 2, 1, 7, 6, 7 }, // Northern Sotho/Latin/SouthAfrica
- { 173, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 212,8 , 212,8 , 72,10 , 330,17 , 37,5 , 8,10 , 24451,59 , 24510,145 , 24655,24 , 24451,59 , 24510,145 , 24655,24 , 13518,33 , 13551,75 , 13626,14 , 13518,33 , 13551,75 , 13626,14 , 0,2 , 0,2 , {78,79,75}, 163,2 , 13698,63 , 13,5 , 4,0 , 4581,15 , 4596,5 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Norway
- { 173, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 212,8 , 212,8 , 72,10 , 330,17 , 37,5 , 8,10 , 24679,85 , 24510,145 , 24655,24 , 24679,85 , 24510,145 , 24655,24 , 13518,33 , 13640,65 , 13705,14 , 13518,33 , 13640,65 , 13705,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 13761,23 , 13,5 , 4,0 , 4581,15 , 4601,6 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Finland
- { 175, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 24764,48 , 24812,88 , 24900,24 , 24764,48 , 24812,88 , 24900,24 , 13719,28 , 13747,62 , 13809,14 , 13719,28 , 13747,62 , 13809,14 , 405,5 , 403,10 , {75,69,83}, 2,3 , 13784,24 , 4,4 , 4,0 , 4607,8 , 1188,5 , 2, 1, 7, 6, 7 }, // Gusii/Latin/Kenya
- { 176, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 24924,48 , 24972,221 , 25193,24 , 24924,48 , 24972,221 , 25193,24 , 13823,28 , 13851,105 , 13956,14 , 13823,28 , 13851,105 , 13956,14 , 410,10 , 413,10 , {75,69,83}, 2,3 , 13784,24 , 4,4 , 4,0 , 4615,7 , 1188,5 , 2, 1, 7, 6, 7 }, // Taita/Latin/Kenya
- { 177, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 25217,48 , 25265,77 , 25342,24 , 25217,48 , 25265,77 , 25342,24 , 13970,28 , 13998,59 , 14057,14 , 13970,28 , 13998,59 , 14057,14 , 420,6 , 423,7 , {88,79,70}, 214,3 , 13808,26 , 13,5 , 4,0 , 4622,6 , 4628,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Senegal
- { 178, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 25366,48 , 25414,185 , 25599,24 , 25366,48 , 25414,185 , 25599,24 , 14071,28 , 14099,63 , 14162,14 , 14071,28 , 14099,63 , 14162,14 , 426,6 , 430,8 , {75,69,83}, 2,3 , 13834,23 , 4,4 , 4,0 , 4636,6 , 1188,5 , 2, 1, 7, 6, 7 }, // Kikuyu/Latin/Kenya
- { 179, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 25623,48 , 25671,173 , 25844,24 , 25623,48 , 25671,173 , 25844,24 , 14176,28 , 14204,105 , 14309,14 , 14176,28 , 14204,105 , 14309,14 , 432,7 , 438,5 , {75,69,83}, 2,3 , 13857,25 , 4,4 , 4,0 , 4642,8 , 1188,5 , 2, 1, 7, 6, 7 }, // Samburu/Latin/Kenya
- { 180, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 1007,27 , 37,5 , 8,10 , 25868,48 , 25916,88 , 134,24 , 25868,48 , 25916,88 , 134,24 , 14323,28 , 14351,55 , 14406,14 , 14323,28 , 14351,55 , 14406,14 , 0,2 , 0,2 , {77,90,78}, 273,3 , 13882,28 , 0,4 , 4,0 , 4650,4 , 3227,10 , 2, 1, 7, 6, 7 }, // Sena/Latin/Mozambique
- { 181, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 26004,52 , 26056,112 , 26168,24 , 26004,52 , 26056,112 , 26168,24 , 14420,28 , 14448,50 , 14498,14 , 14420,28 , 14448,50 , 14498,14 , 0,2 , 0,2 , {85,83,68}, 187,3 , 13910,24 , 4,4 , 4,0 , 4555,10 , 1760,8 , 2, 1, 7, 6, 7 }, // North Ndebele/Latin/Zimbabwe
- { 182, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 26192,39 , 26231,194 , 26425,24 , 26192,39 , 26231,194 , 26425,24 , 14512,29 , 14541,65 , 14606,14 , 14512,29 , 14541,65 , 14606,14 , 439,8 , 443,7 , {84,90,83}, 202,3 , 13934,25 , 4,4 , 4,0 , 4654,9 , 1586,8 , 0, 0, 1, 6, 7 }, // Rombo/Latin/Tanzania
- { 183, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 26449,48 , 26497,81 , 26578,24 , 26449,48 , 26497,81 , 26578,24 , 14620,30 , 14650,47 , 85,14 , 14620,30 , 14650,47 , 85,14 , 447,6 , 450,8 , {77,65,68}, 0,0 , 13959,21 , 0,4 , 4,0 , 4663,8 , 4671,6 , 2, 1, 6, 5, 6 }, // Tachelhit/Tifinagh/Morocco
- { 183, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 26602,48 , 26650,81 , 26731,24 , 26602,48 , 26650,81 , 26731,24 , 14697,30 , 14727,48 , 85,14 , 14697,30 , 14727,48 , 85,14 , 453,6 , 458,8 , {77,65,68}, 0,0 , 13980,21 , 0,4 , 4,0 , 4677,9 , 4686,6 , 2, 1, 6, 5, 6 }, // Tachelhit/Latin/Morocco
- { 184, 7, 3, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 26755,48 , 26803,84 , 26887,24 , 26755,48 , 26803,84 , 26887,24 , 14775,30 , 14805,51 , 14856,14 , 14775,30 , 14805,51 , 14856,14 , 459,7 , 466,9 , {68,90,68}, 212,2 , 14001,21 , 0,4 , 4,0 , 4692,9 , 4701,8 , 2, 1, 6, 4, 5 }, // Kabyle/Latin/Algeria
- { 185, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 26911,48 , 26959,152 , 134,24 , 26911,48 , 26959,152 , 134,24 , 14870,28 , 14898,74 , 14972,14 , 14870,28 , 14898,74 , 14972,14 , 0,2 , 0,2 , {85,71,88}, 207,3 , 14022,26 , 4,4 , 4,0 , 4709,10 , 1655,6 , 0, 0, 1, 6, 7 }, // Nyankole/Latin/Uganda
- { 186, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 27111,48 , 27159,254 , 27413,24 , 27111,48 , 27159,254 , 27413,24 , 14986,28 , 15014,82 , 15096,14 , 14986,28 , 15014,82 , 15096,14 , 466,7 , 475,7 , {84,90,83}, 202,3 , 14048,29 , 0,4 , 4,0 , 4719,6 , 4725,10 , 0, 0, 1, 6, 7 }, // Bena/Latin/Tanzania
- { 187, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 27437,87 , 134,24 , 17815,48 , 27437,87 , 134,24 , 15110,28 , 15138,62 , 15200,14 , 15110,28 , 15138,62 , 15200,14 , 473,5 , 482,9 , {84,90,83}, 202,3 , 14077,27 , 4,4 , 4,0 , 4735,8 , 1586,8 , 0, 0, 1, 6, 7 }, // Vunjo/Latin/Tanzania
- { 188, 7, 132, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 27524,47 , 27571,92 , 27663,24 , 27524,47 , 27571,92 , 27663,24 , 15214,28 , 15242,44 , 15286,14 , 15214,28 , 15242,44 , 15286,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 14104,24 , 4,4 , 4,0 , 4743,9 , 2111,4 , 0, 0, 1, 6, 7 }, // Bambara/Latin/Mali
- { 189, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 27687,48 , 27735,207 , 27942,24 , 27687,48 , 27735,207 , 27942,24 , 15300,28 , 15328,64 , 15392,14 , 15300,28 , 15328,64 , 15392,14 , 478,2 , 491,2 , {75,69,83}, 2,3 , 13784,24 , 4,4 , 4,0 , 4752,6 , 1188,5 , 2, 1, 7, 6, 7 }, // Embu/Latin/Kenya
- { 190, 12, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 560,6 , 35,18 , 18,7 , 25,12 , 27966,36 , 28002,58 , 28060,24 , 27966,36 , 28002,58 , 28060,24 , 15406,28 , 15434,49 , 15483,14 , 15406,28 , 15434,49 , 15483,14 , 480,3 , 493,6 , {85,83,68}, 12,1 , 14128,19 , 4,4 , 4,0 , 4758,3 , 4761,4 , 2, 1, 7, 6, 7 }, // Cherokee/Cherokee/UnitedStates
- { 191, 7, 137, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 28084,47 , 28131,68 , 28199,24 , 28084,47 , 28131,68 , 28199,24 , 15497,27 , 15524,48 , 15572,14 , 15497,27 , 15524,48 , 15572,14 , 0,2 , 0,2 , {77,85,82}, 185,2 , 14147,21 , 8,5 , 4,0 , 4765,14 , 4779,5 , 0, 0, 1, 6, 7 }, // Morisyen/Latin/Mauritius
- { 192, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 28223,264 , 134,24 , 17815,48 , 28223,264 , 134,24 , 15586,28 , 15614,133 , 14606,14 , 15586,28 , 15614,133 , 14606,14 , 483,4 , 499,5 , {84,90,83}, 202,3 , 14077,27 , 4,4 , 4,0 , 4784,10 , 1586,8 , 0, 0, 1, 6, 7 }, // Makonde/Latin/Tanzania
- { 193, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 28487,83 , 28570,111 , 28681,24 , 28487,83 , 28570,111 , 28681,24 , 15747,36 , 15783,63 , 15846,14 , 15747,36 , 15783,63 , 15846,14 , 487,3 , 504,3 , {84,90,83}, 202,3 , 14168,29 , 8,5 , 4,0 , 4794,8 , 4802,9 , 0, 0, 1, 6, 7 }, // Langi/Latin/Tanzania
- { 194, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 28705,48 , 28753,97 , 134,24 , 28705,48 , 28753,97 , 134,24 , 15860,28 , 15888,66 , 15954,14 , 15860,28 , 15888,66 , 15954,14 , 0,2 , 0,2 , {85,71,88}, 207,3 , 14197,26 , 0,4 , 4,0 , 4811,7 , 4818,7 , 0, 0, 1, 6, 7 }, // Ganda/Latin/Uganda
- { 195, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 28850,48 , 28898,83 , 28981,24 , 28850,48 , 28898,83 , 28981,24 , 15968,80 , 15968,80 , 85,14 , 15968,80 , 15968,80 , 85,14 , 490,8 , 507,7 , {90,77,87}, 145,1 , 0,7 , 4,4 , 4,0 , 4825,9 , 1754,6 , 2, 1, 1, 6, 7 }, // Bemba/Latin/Zambia
- { 196, 7, 39, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 537,7 , 537,7 , 408,8 , 1489,27 , 37,5 , 8,10 , 29005,48 , 29053,86 , 134,24 , 29005,48 , 29053,86 , 134,24 , 16048,28 , 16076,73 , 16149,14 , 16048,28 , 16076,73 , 16149,14 , 91,2 , 89,2 , {67,86,69}, 0,0 , 14223,25 , 0,4 , 4,0 , 4834,12 , 4846,10 , 2, 1, 1, 6, 7 }, // Kabuverdianu/Latin/CapeVerde
- { 197, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 29139,48 , 29187,86 , 29273,24 , 29139,48 , 29187,86 , 29273,24 , 16163,28 , 16191,51 , 16242,14 , 16163,28 , 16191,51 , 16242,14 , 498,2 , 514,2 , {75,69,83}, 2,3 , 13784,24 , 4,4 , 4,0 , 4856,6 , 1188,5 , 2, 1, 7, 6, 7 }, // Meru/Latin/Kenya
- { 198, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 29297,48 , 29345,111 , 29456,24 , 29297,48 , 29345,111 , 29456,24 , 16256,28 , 16284,93 , 16377,14 , 16256,28 , 16284,93 , 16377,14 , 500,4 , 516,4 , {75,69,83}, 2,3 , 14248,26 , 4,4 , 4,0 , 4862,8 , 4870,12 , 2, 1, 7, 6, 7 }, // Kalenjin/Latin/Kenya
- { 199, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 0,48 , 29480,136 , 134,24 , 0,48 , 29480,136 , 134,24 , 16391,23 , 16414,92 , 16506,14 , 16391,23 , 16414,92 , 16506,14 , 504,7 , 520,5 , {78,65,68}, 12,1 , 14274,22 , 4,4 , 4,0 , 4882,13 , 4895,8 , 2, 1, 1, 6, 7 }, // Nama/Latin/Namibia
- { 200, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 27437,87 , 134,24 , 17815,48 , 27437,87 , 134,24 , 15110,28 , 15138,62 , 15200,14 , 15110,28 , 15138,62 , 15200,14 , 473,5 , 482,9 , {84,90,83}, 202,3 , 14077,27 , 4,4 , 4,0 , 4903,9 , 1586,8 , 0, 0, 1, 6, 7 }, // Machame/Latin/Tanzania
- { 201, 7, 82, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 398,8 , 398,8 , 1516,10 , 1526,23 , 37,5 , 8,10 , 29616,59 , 29675,87 , 134,24 , 29762,48 , 29675,87 , 134,24 , 16520,28 , 16548,72 , 3456,14 , 16520,28 , 16548,72 , 3456,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 8122,11 , 13,5 , 4,0 , 4912,6 , 4918,11 , 2, 1, 1, 6, 7 }, // Colognian/Latin/Germany
- { 202, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 29810,51 , 29861,132 , 158,27 , 29810,51 , 29861,132 , 158,27 , 15110,28 , 16620,58 , 14606,14 , 15110,28 , 16620,58 , 14606,14 , 511,9 , 525,6 , {75,69,83}, 2,3 , 14296,25 , 4,4 , 4,0 , 4929,3 , 1188,5 , 2, 1, 7, 6, 7 }, // Masai/Latin/Kenya
- { 202, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 29810,51 , 29861,132 , 158,27 , 29810,51 , 29861,132 , 158,27 , 15110,28 , 16620,58 , 14606,14 , 15110,28 , 16620,58 , 14606,14 , 511,9 , 525,6 , {84,90,83}, 202,3 , 14321,28 , 4,4 , 4,0 , 4929,3 , 4932,8 , 0, 0, 1, 6, 7 }, // Masai/Latin/Tanzania
- { 203, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 28705,48 , 28753,97 , 134,24 , 28705,48 , 28753,97 , 134,24 , 16678,35 , 16713,65 , 16778,14 , 16678,35 , 16713,65 , 16778,14 , 520,6 , 531,6 , {85,71,88}, 207,3 , 14197,26 , 13,5 , 4,0 , 4940,7 , 4818,7 , 0, 0, 1, 6, 7 }, // Soga/Latin/Uganda
- { 204, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 29993,48 , 17863,84 , 134,24 , 29993,48 , 17863,84 , 134,24 , 16792,21 , 16813,75 , 85,14 , 16792,21 , 16813,75 , 85,14 , 93,4 , 91,4 , {75,69,83}, 2,3 , 14349,23 , 4,4 , 62,6 , 4947,7 , 1188,5 , 2, 1, 7, 6, 7 }, // Luyia/Latin/Kenya
- { 205, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 30041,48 , 17863,84 , 134,24 , 30041,48 , 17863,84 , 134,24 , 16888,28 , 9625,60 , 15200,14 , 16888,28 , 9625,60 , 15200,14 , 526,9 , 537,8 , {84,90,83}, 202,3 , 14372,28 , 13,5 , 4,0 , 4954,6 , 4960,8 , 0, 0, 1, 6, 7 }, // Asu/Latin/Tanzania
- { 206, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 30089,48 , 30137,94 , 30231,24 , 30089,48 , 30137,94 , 30231,24 , 16916,28 , 16944,69 , 17013,14 , 16916,28 , 16944,69 , 17013,14 , 535,9 , 545,6 , {85,71,88}, 207,3 , 14400,28 , 4,4 , 4,0 , 4968,6 , 1655,6 , 0, 0, 1, 6, 7 }, // Teso/Latin/Uganda
- { 206, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 30089,48 , 30137,94 , 30231,24 , 30089,48 , 30137,94 , 30231,24 , 16916,28 , 16944,69 , 17013,14 , 16916,28 , 16944,69 , 17013,14 , 535,9 , 545,6 , {75,69,83}, 2,3 , 14428,27 , 4,4 , 4,0 , 4968,6 , 4974,5 , 2, 1, 7, 6, 7 }, // Teso/Latin/Kenya
- { 207, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 53,19 , 18,7 , 25,12 , 344,48 , 392,118 , 510,24 , 344,48 , 392,118 , 510,24 , 17027,28 , 17055,56 , 17111,14 , 17027,28 , 17055,56 , 17111,14 , 0,2 , 0,2 , {69,82,78}, 8,3 , 0,7 , 4,4 , 4,0 , 0,0 , 43,7 , 2, 1, 1, 6, 7 }, // Saho/Latin/Eritrea
- { 208, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 30255,46 , 30301,88 , 30389,24 , 30255,46 , 30301,88 , 30389,24 , 17125,28 , 17153,53 , 17206,14 , 17125,28 , 17153,53 , 17206,14 , 544,6 , 551,6 , {88,79,70}, 214,3 , 14455,23 , 0,4 , 4,0 , 4979,11 , 4990,5 , 0, 0, 1, 6, 7 }, // Koyra Chiini/Latin/Mali
- { 209, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 27437,87 , 134,24 , 17815,48 , 27437,87 , 134,24 , 15110,28 , 15138,62 , 15200,14 , 15110,28 , 15138,62 , 15200,14 , 473,5 , 482,9 , {84,90,83}, 202,3 , 14077,27 , 0,4 , 4,0 , 4995,6 , 1586,8 , 0, 0, 1, 6, 7 }, // Rwa/Latin/Tanzania
- { 210, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 30413,48 , 30461,186 , 30647,24 , 30413,48 , 30461,186 , 30647,24 , 17220,28 , 17248,69 , 17317,14 , 17220,28 , 17248,69 , 17317,14 , 550,2 , 557,2 , {75,69,83}, 2,3 , 14478,23 , 0,4 , 4,0 , 5001,6 , 1188,5 , 2, 1, 7, 6, 7 }, // Luo/Latin/Kenya
- { 211, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 26911,48 , 26959,152 , 134,24 , 26911,48 , 26959,152 , 134,24 , 14870,28 , 14898,74 , 14972,14 , 14870,28 , 14898,74 , 14972,14 , 0,2 , 0,2 , {85,71,88}, 207,3 , 14022,26 , 4,4 , 4,0 , 5007,6 , 1655,6 , 0, 0, 1, 6, 7 }, // Chiga/Latin/Uganda
- { 212, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 30671,48 , 30719,86 , 30805,24 , 30671,48 , 30719,86 , 30805,24 , 17331,28 , 17359,48 , 17407,14 , 17331,28 , 17359,48 , 17407,14 , 552,9 , 559,10 , {77,65,68}, 0,0 , 14501,22 , 13,5 , 4,0 , 5013,8 , 5021,6 , 2, 1, 6, 5, 6 }, // Central Morocco Tamazight/Latin/Morocco
- { 213, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 30255,46 , 30301,88 , 30389,24 , 30255,46 , 30301,88 , 30389,24 , 17421,28 , 17449,54 , 17206,14 , 17421,28 , 17449,54 , 17206,14 , 544,6 , 551,6 , {88,79,70}, 214,3 , 14455,23 , 0,4 , 4,0 , 5027,15 , 4990,5 , 0, 0, 1, 6, 7 }, // Koyraboro Senni/Latin/Mali
- { 214, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 17815,48 , 30829,84 , 134,24 , 17815,48 , 30829,84 , 134,24 , 17503,28 , 17531,63 , 9685,14 , 17503,28 , 17531,63 , 9685,14 , 561,5 , 569,8 , {84,90,83}, 202,3 , 12117,27 , 0,4 , 4,0 , 5042,9 , 1586,8 , 0, 0, 1, 6, 7 }, // Shambala/Latin/Tanzania
- { 215, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 560,6 , 35,18 , 18,7 , 25,12 , 30913,88 , 30913,88 , 31001,31 , 30913,88 , 30913,88 , 31001,31 , 17594,33 , 17627,54 , 17681,19 , 17594,33 , 17627,54 , 17681,19 , 566,3 , 577,6 , {73,78,82}, 129,1 , 14523,10 , 8,5 , 4,0 , 5051,4 , 2587,4 , 2, 1, 7, 7, 7 }, // Bodo/Devanagari/India
- { 230, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31032,49 , 31081,99 , 31180,24 , 31032,49 , 31081,99 , 31180,24 , 17700,28 , 17728,50 , 17778,14 , 17700,28 , 17728,50 , 17778,14 , 569,5 , 583,6 , {67,68,70}, 222,2 , 14533,24 , 0,4 , 4,0 , 5055,8 , 5063,16 , 2, 1, 1, 6, 7 }, // LubaKatanga/Latin/CongoKinshasa
- { 237, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31204,48 , 31252,195 , 31447,24 , 31204,48 , 31252,195 , 31447,24 , 17792,28 , 17820,72 , 17892,14 , 17792,28 , 17820,72 , 17892,14 , 574,3 , 589,3 , {88,65,70}, 38,4 , 14557,21 , 0,4 , 4,0 , 5079,5 , 5084,7 , 0, 0, 1, 6, 7 }, // Aghem/Latin/Cameroon
- { 238, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31471,48 , 31519,90 , 31609,24 , 31471,48 , 31519,90 , 31609,24 , 17906,28 , 17934,70 , 18004,14 , 17906,28 , 17934,70 , 18004,14 , 577,10 , 592,9 , {88,65,70}, 38,4 , 14578,22 , 13,5 , 4,0 , 5091,5 , 5096,8 , 0, 0, 1, 6, 7 }, // Basaa/Latin/Cameroon
- { 239, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 30255,46 , 30301,88 , 30389,24 , 30255,46 , 30301,88 , 30389,24 , 17421,28 , 18018,53 , 18071,14 , 17421,28 , 18018,53 , 18071,14 , 587,8 , 601,10 , {88,79,70}, 214,3 , 14455,23 , 0,4 , 4,0 , 5104,10 , 5114,5 , 0, 0, 1, 6, 7 }, // Zarma/Latin/Niger
- { 240, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31633,49 , 31682,99 , 31781,24 , 31633,49 , 31682,99 , 31781,24 , 18085,28 , 18113,45 , 18158,14 , 18085,28 , 18113,45 , 18158,14 , 595,5 , 611,6 , {88,65,70}, 38,4 , 0,7 , 13,5 , 4,0 , 5119,5 , 1908,8 , 0, 0, 1, 6, 7 }, // Duala/Latin/Cameroon
- { 241, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31805,36 , 31841,82 , 31923,24 , 31805,36 , 31841,82 , 31923,24 , 18172,28 , 18200,50 , 18250,14 , 18172,28 , 18200,50 , 18250,14 , 0,2 , 0,2 , {88,79,70}, 214,3 , 14600,23 , 13,5 , 4,0 , 5124,5 , 5129,7 , 0, 0, 1, 6, 7 }, // JolaFonyi/Latin/Senegal
- { 242, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 31947,50 , 31997,141 , 32138,24 , 31947,50 , 31997,141 , 32138,24 , 18264,30 , 18294,85 , 18379,14 , 18264,30 , 18294,85 , 18379,14 , 600,7 , 617,9 , {88,65,70}, 38,4 , 14623,23 , 13,5 , 4,0 , 5136,6 , 5142,7 , 0, 0, 1, 6, 7 }, // Ewondo/Latin/Cameroon
- { 243, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 32162,39 , 32201,191 , 158,27 , 32162,39 , 32201,191 , 158,27 , 18393,29 , 18422,45 , 18467,14 , 18393,29 , 18422,45 , 18467,14 , 607,6 , 626,7 , {88,65,70}, 38,4 , 14646,11 , 13,5 , 4,0 , 5149,5 , 5154,7 , 0, 0, 1, 6, 7 }, // Bafia/Latin/Cameroon
- { 244, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 32392,48 , 32440,213 , 32653,24 , 32392,48 , 32440,213 , 32653,24 , 18481,28 , 18509,59 , 18568,14 , 18481,28 , 18509,59 , 18568,14 , 613,8 , 633,10 , {77,90,78}, 273,3 , 0,7 , 8,5 , 4,0 , 5161,5 , 5166,10 , 2, 1, 7, 6, 7 }, // MakhuwaMeetto/Latin/Mozambique
- { 245, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 32677,48 , 32725,139 , 32864,24 , 32677,48 , 32725,139 , 32864,24 , 18582,28 , 18610,74 , 18684,14 , 18582,28 , 18610,74 , 18684,14 , 621,5 , 643,5 , {88,65,70}, 38,4 , 14657,17 , 4,4 , 4,0 , 5176,6 , 5182,7 , 0, 0, 1, 6, 7 }, // Mundang/Latin/Cameroon
- { 246, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 32888,51 , 32939,143 , 158,27 , 32888,51 , 32939,143 , 158,27 , 18698,30 , 18728,89 , 18817,14 , 18698,30 , 18728,89 , 18817,14 , 626,4 , 648,4 , {88,65,70}, 38,4 , 14674,20 , 13,5 , 4,0 , 5189,6 , 5195,7 , 0, 0, 1, 6, 7 }, // Kwasio/Latin/Cameroon
- { 247, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 566,9 , 99,16 , 18,7 , 535,12 , 33082,54 , 33136,96 , 33232,24 , 33082,54 , 33136,96 , 33232,24 , 18831,38 , 18869,79 , 18948,14 , 18831,38 , 18869,79 , 18948,14 , 630,2 , 652,2 , {83,68,71}, 0,0 , 0,7 , 4,4 , 4,0 , 5202,9 , 1572,5 , 2, 1, 6, 5, 6 }, // Nuer/Latin/Sudan
- { 248, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 438,6 , 1549,30 , 37,5 , 8,10 , 33256,75 , 33331,121 , 33452,24 , 33256,75 , 33331,121 , 33452,24 , 18962,21 , 18983,73 , 19056,14 , 18962,21 , 18983,73 , 19056,14 , 0,2 , 0,2 , {82,85,66}, 280,4 , 0,7 , 8,5 , 4,0 , 5211,9 , 0,0 , 2, 1, 1, 6, 7 }, // Sakha/Cyrillic/Russia
- { 249, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 33476,48 , 33524,117 , 158,27 , 33476,48 , 33524,117 , 158,27 , 19070,28 , 19098,60 , 19158,14 , 19070,28 , 19098,60 , 19158,14 , 632,9 , 654,9 , {84,90,83}, 202,3 , 14694,25 , 0,4 , 4,0 , 5220,9 , 5229,9 , 0, 0, 1, 6, 7 }, // Sangu/Latin/Tanzania
- { 250, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 33641,48 , 33689,188 , 33877,24 , 33641,48 , 33689,188 , 33877,24 , 19172,28 , 19200,93 , 19293,14 , 19172,28 , 19200,93 , 19293,14 , 641,10 , 663,10 , {67,68,70}, 222,2 , 14719,23 , 4,4 , 4,0 , 5238,18 , 5256,32 , 2, 1, 1, 6, 7 }, // Congo Swahili/Latin/CongoKinshasa
- { 251, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 30255,46 , 30301,88 , 30389,24 , 30255,46 , 30301,88 , 30389,24 , 17421,28 , 17449,54 , 17206,14 , 17421,28 , 17449,54 , 17206,14 , 587,8 , 601,10 , {88,79,70}, 214,3 , 14455,23 , 0,4 , 4,0 , 5288,13 , 5114,5 , 0, 0, 1, 6, 7 }, // Tasawaq/Latin/Niger
- { 252, 35, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 33901,50 , 33901,50 , 158,27 , 33901,50 , 33901,50 , 158,27 , 19307,30 , 19307,30 , 85,14 , 19307,30 , 19307,30 , 85,14 , 0,2 , 0,2 , {76,82,68}, 12,1 , 14742,15 , 4,4 , 4,0 , 5301,2 , 5303,4 , 2, 1, 1, 6, 7 }, // Vai/Vai/Liberia
- { 252, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 133,10 , 10,17 , 18,7 , 25,12 , 33951,81 , 33951,81 , 158,27 , 33951,81 , 33951,81 , 158,27 , 19337,48 , 19337,48 , 85,14 , 19337,48 , 19337,48 , 85,14 , 0,2 , 0,2 , {76,82,68}, 12,1 , 14757,20 , 4,4 , 4,0 , 5307,3 , 5310,8 , 2, 1, 1, 6, 7 }, // Vai/Latin/Liberia
- { 253, 7, 206, 44, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 72,10 , 585,18 , 37,5 , 8,10 , 34032,48 , 34080,99 , 34179,24 , 34032,48 , 34080,99 , 34179,24 , 19385,28 , 19413,53 , 19466,14 , 19385,28 , 19413,53 , 19466,14 , 0,2 , 0,2 , {67,72,70}, 0,0 , 0,7 , 8,5 , 4,0 , 5318,6 , 5324,6 , 2, 0, 1, 6, 7 }, // Walser/Latin/Switzerland
- { 254, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 34203,51 , 34254,191 , 158,27 , 34203,51 , 34254,191 , 158,27 , 19480,21 , 19501,71 , 19572,14 , 19480,21 , 19501,71 , 19572,14 , 651,8 , 673,8 , {88,65,70}, 38,4 , 0,7 , 13,5 , 4,0 , 5330,6 , 5336,7 , 0, 0, 1, 6, 7 }, // Yangben/Latin/Cameroon
- { 256, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 537,7 , 537,7 , 294,6 , 1579,23 , 37,5 , 8,10 , 34445,48 , 34493,85 , 34578,24 , 34602,48 , 34650,117 , 34578,24 , 19586,28 , 19614,54 , 3180,14 , 19586,28 , 19614,54 , 3180,14 , 0,2 , 0,2 , {69,85,82}, 20,1 , 2778,20 , 13,5 , 4,0 , 5343,9 , 2360,6 , 2, 1, 1, 6, 7 }, // Asturian/Latin/Spain
- { 257, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 721,11 , 721,11 , 732,16 , 748,9 , 72,10 , 384,18 , 37,5 , 8,10 , 34767,174 , 34767,174 , 158,27 , 34767,174 , 34767,174 , 158,27 , 19668,60 , 19668,60 , 19728,25 , 19668,60 , 19668,60 , 19728,25 , 659,8 , 681,13 , {88,65,70}, 38,4 , 14777,12 , 8,5 , 4,0 , 5352,5 , 5357,7 , 0, 0, 1, 6, 7 }, // Ngomba/Latin/Cameroon
- { 258, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 1602,10 , 82,17 , 37,5 , 8,10 , 34941,102 , 34941,102 , 158,27 , 34941,102 , 34941,102 , 158,27 , 19753,54 , 19753,54 , 19807,21 , 19753,54 , 19753,54 , 19807,21 , 0,2 , 0,2 , {88,65,70}, 38,4 , 14789,16 , 8,5 , 4,0 , 5364,4 , 5368,7 , 0, 0, 1, 6, 7 }, // Kako/Latin/Cameroon
- { 259, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 72,10 , 384,18 , 37,5 , 8,10 , 35043,137 , 35180,142 , 35322,36 , 35043,137 , 35180,142 , 35322,36 , 19828,49 , 19828,49 , 19877,21 , 19828,49 , 19828,49 , 19877,21 , 0,2 , 0,2 , {88,65,70}, 38,4 , 14805,12 , 8,5 , 4,0 , 5375,5 , 5380,7 , 0, 0, 1, 6, 7 }, // Meta/Latin/Cameroon
- { 260, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1612,32 , 37,5 , 8,10 , 35358,164 , 35358,164 , 158,27 , 35358,164 , 35358,164 , 158,27 , 19898,111 , 19898,111 , 85,14 , 19898,111 , 19898,111 , 85,14 , 667,9 , 694,8 , {88,65,70}, 38,4 , 14817,16 , 8,5 , 4,0 , 5387,16 , 5403,7 , 0, 0, 1, 6, 7 }, // Ngiemboon/Latin/Cameroon
- { 313, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 560,6 , 35,18 , 18,7 , 25,12 , 35522,180 , 35522,180 , 158,27 , 35522,180 , 35522,180 , 158,27 , 20009,87 , 20009,87 , 85,14 , 20009,87 , 20009,87 , 20096,14 , 0,2 , 0,2 , {85,83,68}, 12,1 , 0,7 , 8,5 , 4,0 , 5410,12 , 5422,22 , 2, 1, 7, 6, 7 }, // Lakota/Latin/UnitedStates
- { 314, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 408,8 , 99,16 , 37,5 , 8,10 , 26449,48 , 26497,81 , 26578,24 , 26449,48 , 26497,81 , 26578,24 , 14620,30 , 20110,48 , 85,14 , 14620,30 , 20110,48 , 85,14 , 447,6 , 450,8 , {77,65,68}, 0,0 , 13959,21 , 0,4 , 4,0 , 4663,8 , 4671,6 , 2, 1, 6, 5, 6 }, // Standard Moroccan Tamazight/Tifinagh/Morocco
+ { 4, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Afar/Latin/Ethiopia
+ { 5, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 80,18 , 18,7 , 25,12 , 392,51 , 443,92 , 134,24 , 392,51 , 443,92 , 134,24 , 196,21 , 217,58 , 275,14 , 196,21 , 217,58 , 275,14 , 4,3 , 4,3 , {90,65,82}, 5,1 , 31,67 , 4,4 , 4,0 , 24,9 , 33,11 , 2, 1, 7, 6, 7 }, // Afrikaans/Latin/SouthAfrica
+ { 5, 7, 148, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 98,16 , 37,5 , 8,10 , 392,51 , 443,92 , 134,24 , 392,51 , 443,92 , 134,24 , 196,21 , 217,58 , 275,14 , 196,21 , 217,58 , 275,14 , 4,3 , 4,3 , {78,65,68}, 6,1 , 98,55 , 4,4 , 4,0 , 24,9 , 44,7 , 2, 1, 1, 6, 7 }, // Afrikaans/Latin/Namibia
+ { 6, 7, 2, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 114,6 , 10,17 , 37,5 , 8,10 , 535,48 , 583,78 , 661,24 , 535,48 , 685,78 , 661,24 , 289,28 , 317,58 , 375,14 , 289,28 , 389,58 , 375,14 , 7,8 , 7,7 , {65,76,76}, 7,4 , 153,45 , 13,5 , 4,0 , 51,5 , 56,8 , 0, 0, 1, 6, 7 }, // Albanian/Latin/Albania
+ { 6, 7, 127, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 114,6 , 10,17 , 37,5 , 8,10 , 535,48 , 583,78 , 661,24 , 535,48 , 685,78 , 661,24 , 289,28 , 317,58 , 375,14 , 289,28 , 389,58 , 375,14 , 7,8 , 7,7 , {77,75,68}, 11,3 , 198,54 , 13,5 , 4,0 , 51,5 , 64,8 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Macedonia
+ { 6, 7, 257, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 114,6 , 10,17 , 37,5 , 8,10 , 535,48 , 583,78 , 661,24 , 535,48 , 685,78 , 661,24 , 289,28 , 317,58 , 375,14 , 289,28 , 389,58 , 375,14 , 7,8 , 7,7 , {69,85,82}, 14,1 , 252,21 , 13,5 , 4,0 , 51,5 , 72,6 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Kosovo
+ { 7, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 23,6 , 23,6 , 29,9 , 38,8 , 120,10 , 10,17 , 18,7 , 25,12 , 763,46 , 809,61 , 870,24 , 763,46 , 809,61 , 870,24 , 447,27 , 474,28 , 502,14 , 447,27 , 474,28 , 502,14 , 15,3 , 14,4 , {69,84,66}, 15,2 , 273,34 , 4,4 , 4,0 , 78,4 , 82,5 , 2, 1, 7, 6, 7 }, // Amharic/Ethiopic/Ethiopia
+ { 8, 1, 64, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 60,6 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {69,71,80}, 17,5 , 307,70 , 8,5 , 4,0 , 87,7 , 94,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Egypt
+ { 8, 1, 3, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 993,71 , 993,71 , 1064,24 , 993,71 , 993,71 , 1064,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {68,90,68}, 22,5 , 377,91 , 8,5 , 4,0 , 87,7 , 97,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Algeria
+ { 8, 1, 17, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {66,72,68}, 27,5 , 468,91 , 8,5 , 4,0 , 87,7 , 104,7 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Bahrain
+ { 8, 1, 42, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {88,65,70}, 32,4 , 559,84 , 8,5 , 4,0 , 87,7 , 111,4 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Chad
+ { 8, 1, 48, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {75,77,70}, 36,7 , 643,105 , 8,5 , 4,0 , 87,7 , 115,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Comoros
+ { 8, 1, 59, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {68,74,70}, 43,3 , 748,84 , 8,5 , 4,0 , 87,7 , 124,6 , 0, 0, 6, 6, 7 }, // Arabic/Arabic/Djibouti
+ { 8, 1, 67, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {69,82,78}, 46,3 , 832,91 , 8,5 , 4,0 , 87,7 , 130,7 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Eritrea
+ { 8, 1, 103, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1088,92 , 1088,92 , 1180,24 , 1204,92 , 1088,92 , 1180,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {73,81,68}, 49,5 , 923,84 , 8,5 , 4,0 , 87,7 , 137,6 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Iraq
+ { 8, 1, 105, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {73,76,83}, 54,1 , 1007,133 , 8,5 , 4,0 , 87,7 , 143,7 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Israel
+ { 8, 1, 109, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1088,92 , 1088,92 , 1180,24 , 1088,92 , 1088,92 , 1180,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {74,79,68}, 55,5 , 1140,84 , 8,5 , 4,0 , 87,7 , 150,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Jordan
+ { 8, 1, 115, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {75,87,68}, 60,5 , 1224,84 , 8,5 , 4,0 , 87,7 , 156,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Kuwait
+ { 8, 1, 119, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1088,92 , 1088,92 , 1180,24 , 1088,92 , 1088,92 , 1180,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {76,66,80}, 65,5 , 1308,84 , 8,5 , 4,0 , 87,7 , 162,5 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Lebanon
+ { 8, 1, 122, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {76,89,68}, 70,5 , 1392,77 , 8,5 , 4,0 , 87,7 , 167,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Libya
+ { 8, 1, 136, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1296,72 , 1296,72 , 1368,24 , 1296,72 , 1296,72 , 1368,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {77,82,79}, 75,5 , 1469,112 , 8,5 , 4,0 , 87,7 , 172,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Mauritania
+ { 8, 1, 145, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1392,70 , 1392,70 , 1462,24 , 1392,70 , 1392,70 , 1462,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {77,65,68}, 80,5 , 1581,77 , 8,5 , 4,0 , 87,7 , 181,6 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Morocco
+ { 8, 1, 162, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {79,77,82}, 85,5 , 1658,77 , 8,5 , 4,0 , 87,7 , 187,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Oman
+ { 8, 1, 165, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1088,92 , 1088,92 , 1180,24 , 1088,92 , 1088,92 , 1180,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {73,76,83}, 54,1 , 1007,133 , 8,5 , 4,0 , 87,7 , 192,18 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/PalestinianTerritories
+ { 8, 1, 175, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {81,65,82}, 90,5 , 1735,70 , 8,5 , 4,0 , 87,7 , 210,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Qatar
+ { 8, 1, 186, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {83,65,82}, 95,5 , 1805,77 , 8,5 , 4,0 , 87,7 , 213,24 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/SaudiArabia
+ { 8, 1, 194, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {83,79,83}, 100,1 , 1882,77 , 8,5 , 4,0 , 87,7 , 237,7 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Somalia
+ { 8, 1, 201, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {83,68,71}, 101,4 , 1959,84 , 8,5 , 4,0 , 87,7 , 244,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Sudan
+ { 8, 1, 207, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 1088,92 , 1088,92 , 1180,24 , 1088,92 , 1088,92 , 1180,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {83,89,80}, 105,5 , 2043,77 , 8,5 , 4,0 , 87,7 , 251,5 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Syria
+ { 8, 1, 216, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 993,71 , 993,71 , 1064,24 , 993,71 , 993,71 , 1064,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {84,78,68}, 110,5 , 2120,77 , 8,5 , 4,0 , 87,7 , 256,4 , 3, 0, 7, 5, 6 }, // Arabic/Arabic/Tunisia
+ { 8, 1, 223, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {65,69,68}, 115,5 , 2197,91 , 8,5 , 4,0 , 87,7 , 260,24 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/UnitedArabEmirates
+ { 8, 1, 236, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {77,65,68}, 80,5 , 1581,77 , 8,5 , 4,0 , 87,7 , 284,15 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/WesternSahara
+ { 8, 1, 237, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {89,69,82}, 120,5 , 2288,70 , 8,5 , 4,0 , 87,7 , 299,5 , 0, 0, 7, 5, 6 }, // Arabic/Arabic/Yemen
+ { 8, 1, 254, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,8 , 66,7 , 130,10 , 140,18 , 18,7 , 25,12 , 894,75 , 894,75 , 969,24 , 894,75 , 894,75 , 969,24 , 516,52 , 516,52 , 568,14 , 516,52 , 516,52 , 568,14 , 18,1 , 18,1 , {83,83,80}, 125,1 , 2358,126 , 8,5 , 4,0 , 87,7 , 304,12 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/SouthSudan
+ { 9, 10, 11, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 73,7 , 73,7 , 158,8 , 166,19 , 42,4 , 46,10 , 1486,48 , 1534,94 , 1628,24 , 1486,48 , 1652,106 , 1628,24 , 582,28 , 610,62 , 672,15 , 582,28 , 610,62 , 672,15 , 19,12 , 19,12 , {65,77,68}, 126,1 , 2484,46 , 13,5 , 4,0 , 316,7 , 323,8 , 0, 0, 1, 6, 7 }, // Armenian/Armenian/Armenia
+ { 10, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 185,8 , 193,18 , 56,8 , 64,12 , 1758,62 , 1820,88 , 158,27 , 1758,62 , 1820,88 , 158,27 , 687,37 , 724,58 , 85,14 , 687,37 , 724,58 , 85,14 , 31,9 , 31,7 , {73,78,82}, 127,1 , 0,7 , 8,5 , 4,0 , 331,7 , 338,4 , 2, 1, 7, 7, 7 }, // Assamese/Bengali/India
+ { 12, 7, 15, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 80,8 , 80,8 , 158,8 , 211,17 , 37,5 , 8,10 , 1908,48 , 1956,77 , 158,27 , 1908,48 , 2033,77 , 158,27 , 782,27 , 809,67 , 99,14 , 782,27 , 809,67 , 99,14 , 0,2 , 0,2 , {65,90,78}, 128,3 , 2530,58 , 8,5 , 4,0 , 342,10 , 352,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Latin/Azerbaijan
+ { 12, 2, 15, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 158,8 , 228,19 , 37,5 , 8,10 , 2110,77 , 2110,77 , 158,27 , 2110,77 , 2110,77 , 158,27 , 876,67 , 876,67 , 99,14 , 876,67 , 876,67 , 99,14 , 0,2 , 0,2 , {65,90,78}, 131,4 , 2588,12 , 8,5 , 4,0 , 362,10 , 362,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Cyrillic/Azerbaijan
+ { 13, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {82,85,66}, 135,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Bashkir/Cyrillic/Russia
+ { 14, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 34, 34, 34, 34, 0,6 , 0,6 , 88,9 , 88,9 , 247,10 , 257,26 , 37,5 , 76,12 , 2187,60 , 2247,93 , 2340,24 , 2364,60 , 2424,105 , 2340,24 , 943,28 , 971,68 , 1039,14 , 1053,28 , 1081,68 , 1039,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2600,20 , 13,5 , 4,0 , 372,7 , 379,8 , 2, 1, 1, 6, 7 }, // Basque/Latin/Spain
+ { 15, 11, 18, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 97,10 , 107,9 , 283,6 , 193,18 , 18,7 , 25,12 , 2529,90 , 2529,90 , 2619,33 , 2529,90 , 2529,90 , 2619,33 , 1149,37 , 1186,58 , 1244,18 , 1149,37 , 1262,58 , 1244,18 , 40,9 , 38,7 , {66,68,84}, 136,1 , 2620,49 , 0,4 , 4,0 , 387,5 , 392,8 , 2, 1, 5, 6, 7 }, // Bengali/Bengali/Bangladesh
+ { 15, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 97,10 , 107,9 , 283,6 , 193,18 , 18,7 , 25,12 , 2529,90 , 2529,90 , 2619,33 , 2529,90 , 2529,90 , 2619,33 , 1149,37 , 1186,58 , 1244,18 , 1149,37 , 1262,58 , 1244,18 , 40,9 , 38,7 , {73,78,82}, 127,1 , 2669,43 , 0,4 , 4,0 , 387,5 , 400,4 , 2, 1, 7, 7, 7 }, // Bengali/Bengali/India
+ { 16, 31, 25, 46, 44, 59, 37, 3872, 45, 43, 101, 8220, 8221, 8216, 8217, 116,9 , 116,9 , 116,9 , 116,9 , 53,10 , 289,30 , 88,22 , 110,27 , 2652,63 , 2715,191 , 2906,27 , 2933,27 , 2960,132 , 3092,27 , 1320,34 , 1354,79 , 1433,27 , 1320,34 , 1354,79 , 1433,27 , 49,5 , 45,6 , {66,84,78}, 137,3 , 2712,15 , 4,4 , 4,0 , 404,6 , 410,5 , 2, 1, 7, 6, 7 }, // Dzongkha/Tibetan/Bhutan
+ { 19, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 3119,55 , 3174,78 , 3252,36 , 3119,55 , 3174,78 , 3252,36 , 1460,33 , 1493,43 , 1536,18 , 1460,33 , 1493,43 , 1536,18 , 54,4 , 51,4 , {69,85,82}, 14,1 , 2727,36 , 13,5 , 4,0 , 415,9 , 424,5 , 2, 1, 1, 6, 7 }, // Breton/Latin/France
+ { 20, 2, 33, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 319,12 , 331,22 , 42,4 , 137,9 , 3288,59 , 3347,82 , 3429,24 , 3288,59 , 3347,82 , 3429,24 , 1554,21 , 1575,55 , 1630,14 , 1554,21 , 1575,55 , 1630,14 , 58,6 , 55,6 , {66,71,78}, 140,3 , 2763,47 , 13,5 , 4,0 , 429,9 , 438,8 , 2, 1, 1, 6, 7 }, // Bulgarian/Cyrillic/Bulgaria
+ { 21, 25, 147, 46, 44, 4170, 37, 4160, 45, 43, 101, 8220, 8221, 8216, 8217, 132,6 , 132,6 , 138,11 , 149,9 , 353,8 , 361,18 , 37,5 , 8,10 , 3453,46 , 3499,88 , 3587,24 , 3453,46 , 3499,88 , 3587,24 , 1644,54 , 1644,54 , 1698,14 , 1644,54 , 1644,54 , 1698,14 , 64,5 , 61,3 , {77,77,75}, 143,1 , 2810,27 , 8,5 , 4,0 , 446,3 , 449,6 , 0, 0, 7, 6, 7 }, // Burmese/Myanmar/Myanmar
+ { 22, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 114,6 , 10,17 , 146,5 , 151,10 , 3611,48 , 3659,95 , 3754,24 , 3778,48 , 3826,98 , 3754,24 , 1712,21 , 1733,56 , 1789,14 , 1712,21 , 1733,56 , 1789,14 , 69,10 , 64,13 , {66,89,82}, 144,2 , 2837,23 , 4,4 , 4,0 , 455,10 , 465,8 , 0, 0, 1, 6, 7 }, // Belarusian/Cyrillic/Belarus
+ { 23, 20, 36, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 158,5 , 163,9 , 283,6 , 98,16 , 18,7 , 25,12 , 3924,71 , 3924,71 , 158,27 , 3924,71 , 3924,71 , 158,27 , 1803,46 , 1803,46 , 1849,14 , 1803,46 , 1803,46 , 1849,14 , 79,5 , 77,5 , {75,72,82}, 146,1 , 2860,29 , 4,4 , 4,0 , 473,5 , 478,7 , 2, 1, 7, 6, 7 }, // Khmer/Khmer/Cambodia
+ { 24, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 172,7 , 172,7 , 283,6 , 379,22 , 42,4 , 137,9 , 3995,60 , 4055,82 , 4137,36 , 3995,60 , 4173,115 , 4137,36 , 1863,28 , 1891,60 , 1951,21 , 1863,28 , 1891,60 , 1951,21 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 485,6 , 491,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Spain
+ { 24, 7, 5, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 172,7 , 172,7 , 283,6 , 379,22 , 42,4 , 137,9 , 3995,60 , 4055,82 , 4137,36 , 3995,60 , 4173,115 , 4137,36 , 1863,28 , 1891,60 , 1951,21 , 1863,28 , 1891,60 , 1951,21 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 485,6 , 498,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Andorra
+ { 24, 7, 74, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 172,7 , 172,7 , 283,6 , 379,22 , 42,4 , 137,9 , 3995,60 , 4055,82 , 4137,36 , 3995,60 , 4173,115 , 4137,36 , 1863,28 , 1891,60 , 1951,21 , 1863,28 , 1891,60 , 1951,21 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 485,6 , 505,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/France
+ { 24, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 172,7 , 172,7 , 283,6 , 379,22 , 42,4 , 137,9 , 3995,60 , 4055,82 , 4137,36 , 3995,60 , 4173,115 , 4137,36 , 1863,28 , 1891,60 , 1951,21 , 1863,28 , 1891,60 , 1951,21 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 485,6 , 511,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Italy
+ { 25, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 179,5 , 179,5 , 184,5 , 184,5 , 401,6 , 407,13 , 161,6 , 167,11 , 4288,39 , 4327,38 , 158,27 , 4288,39 , 4327,38 , 158,27 , 1972,21 , 1993,28 , 2021,14 , 1972,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {67,78,89}, 147,1 , 2909,13 , 8,5 , 4,0 , 517,4 , 521,2 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/China
+ { 25, 5, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 179,5 , 179,5 , 184,5 , 184,5 , 283,6 , 407,13 , 161,6 , 167,11 , 4288,39 , 4327,38 , 158,27 , 4288,39 , 4327,38 , 158,27 , 1972,21 , 1993,28 , 2021,14 , 1972,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {72,75,68}, 148,3 , 2922,11 , 4,4 , 4,0 , 517,4 , 523,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/HongKong
+ { 25, 5, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 179,5 , 179,5 , 184,5 , 184,5 , 283,6 , 407,13 , 161,6 , 167,11 , 4288,39 , 4327,38 , 158,27 , 4288,39 , 4327,38 , 158,27 , 1972,21 , 1993,28 , 2021,14 , 1972,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {77,79,80}, 151,4 , 2933,13 , 4,4 , 4,0 , 517,4 , 532,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Macau
+ { 25, 5, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 179,5 , 179,5 , 184,5 , 184,5 , 27,8 , 407,13 , 161,6 , 167,11 , 4288,39 , 4327,38 , 158,27 , 4288,39 , 4327,38 , 158,27 , 1972,21 , 1993,28 , 2021,14 , 1972,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {83,71,68}, 6,1 , 2946,15 , 4,4 , 4,0 , 517,4 , 541,3 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Singapore
+ { 25, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 179,5 , 179,5 , 184,5 , 184,5 , 283,6 , 407,13 , 161,6 , 178,13 , 4288,39 , 4288,39 , 158,27 , 4288,39 , 4288,39 , 158,27 , 2035,21 , 1993,28 , 2021,14 , 2035,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {72,75,68}, 148,3 , 2922,11 , 4,4 , 4,0 , 544,4 , 548,14 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/HongKong
+ { 25, 6, 126, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 179,5 , 179,5 , 184,5 , 184,5 , 283,6 , 407,13 , 161,6 , 178,13 , 4288,39 , 4288,39 , 158,27 , 4288,39 , 4288,39 , 158,27 , 2035,21 , 1993,28 , 2021,14 , 2035,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {77,79,80}, 151,4 , 2961,13 , 4,4 , 4,0 , 544,4 , 562,14 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Macau
+ { 25, 6, 208, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 179,5 , 179,5 , 184,5 , 184,5 , 420,8 , 428,14 , 161,6 , 178,13 , 4288,39 , 4288,39 , 158,27 , 4288,39 , 4288,39 , 158,27 , 2035,21 , 1993,28 , 2021,14 , 2035,21 , 1993,28 , 2021,14 , 89,2 , 87,2 , {84,87,68}, 155,3 , 2974,13 , 4,4 , 4,0 , 544,4 , 576,2 , 2, 0, 7, 6, 7 }, // Chinese/Traditional Han/Taiwan
+ { 26, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Corsican/Latin/France
+ { 27, 7, 54, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 442,11 , 453,19 , 37,5 , 8,10 , 4365,49 , 4414,94 , 4508,39 , 4365,49 , 4547,98 , 4508,39 , 2056,28 , 2084,58 , 2142,14 , 2056,28 , 2084,58 , 2156,14 , 0,2 , 0,2 , {72,82,75}, 158,3 , 2987,60 , 13,5 , 4,0 , 578,8 , 586,8 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Croatia
+ { 27, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 442,11 , 453,19 , 37,5 , 8,10 , 4365,49 , 4414,94 , 4508,39 , 4365,49 , 4547,98 , 4508,39 , 2056,28 , 2084,58 , 2142,14 , 2056,28 , 2084,58 , 2156,14 , 0,2 , 0,2 , {66,65,77}, 161,2 , 3047,85 , 13,5 , 4,0 , 578,8 , 594,19 , 2, 1, 1, 6, 7 }, // Croatian/Latin/BosniaAndHerzegowina
+ { 28, 7, 57, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 189,7 , 189,7 , 158,8 , 472,17 , 42,4 , 137,9 , 4645,48 , 4693,82 , 158,27 , 4645,48 , 4775,84 , 158,27 , 2170,21 , 2191,49 , 2240,14 , 2170,21 , 2191,49 , 2240,14 , 91,9 , 89,9 , {67,90,75}, 163,2 , 3132,68 , 13,5 , 4,0 , 613,7 , 620,15 , 2, 0, 1, 6, 7 }, // Czech/Latin/CzechRepublic
+ { 29, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 120,10 , 489,23 , 146,5 , 151,10 , 4859,48 , 4907,84 , 134,24 , 4991,59 , 4907,84 , 134,24 , 2254,28 , 2282,51 , 2333,14 , 2347,35 , 2282,51 , 2333,14 , 0,2 , 0,2 , {68,75,75}, 165,3 , 3200,42 , 13,5 , 4,0 , 635,5 , 640,7 , 2, 1, 1, 6, 7 }, // Danish/Latin/Denmark
+ { 29, 7, 86, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 120,10 , 489,23 , 146,5 , 151,10 , 4859,48 , 4907,84 , 134,24 , 4991,59 , 4907,84 , 134,24 , 2254,28 , 2282,51 , 2333,14 , 2347,35 , 2282,51 , 2333,14 , 0,2 , 0,2 , {68,75,75}, 165,3 , 3200,42 , 13,5 , 4,0 , 635,5 , 647,8 , 2, 1, 1, 6, 7 }, // Danish/Latin/Greenland
+ { 30, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {69,85,82}, 14,1 , 3242,19 , 8,5 , 18,6 , 655,10 , 665,9 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Netherlands
+ { 30, 7, 12, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {65,87,71}, 168,4 , 3261,55 , 8,5 , 18,6 , 655,10 , 674,5 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Aruba
+ { 30, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 512,7 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {69,85,82}, 14,1 , 3242,19 , 13,5 , 4,0 , 679,6 , 685,6 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Belgium
+ { 30, 7, 152, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {65,78,71}, 172,4 , 3316,97 , 8,5 , 18,6 , 655,10 , 691,7 , 2, 1, 1, 6, 7 }, // Dutch/Latin/CuraSao
+ { 30, 7, 202, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {83,82,68}, 6,1 , 3413,58 , 8,5 , 18,6 , 655,10 , 698,8 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Suriname
+ { 30, 7, 255, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {85,83,68}, 6,1 , 3471,61 , 8,5 , 18,6 , 655,10 , 706,19 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Bonaire
+ { 30, 7, 256, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 5050,59 , 5109,88 , 134,24 , 5197,59 , 5256,88 , 134,24 , 2382,21 , 2403,59 , 2462,14 , 2476,21 , 2497,59 , 2462,14 , 100,4 , 98,4 , {65,78,71}, 172,4 , 3316,97 , 8,5 , 18,6 , 655,10 , 725,12 , 2, 1, 1, 6, 7 }, // Dutch/Latin/SintMaarten
+ { 31, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 737,16 , 753,13 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStates
+ { 31, 3, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // English/Deseret/UnitedStates
+ { 31, 7, 4, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 773,14 , 2, 1, 7, 6, 7 }, // English/Latin/AmericanSamoa
+ { 31, 7, 7, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 787,8 , 2, 1, 1, 6, 7 }, // English/Latin/Anguilla
+ { 31, 7, 9, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 795,17 , 2, 1, 7, 6, 7 }, // English/Latin/AntiguaAndBarbuda
+ { 31, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 525,9 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 812,18 , 830,9 , 2, 1, 7, 6, 7 }, // English/Latin/Australia
+ { 31, 7, 16, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,83,68}, 6,1 , 3697,53 , 4,4 , 4,0 , 766,7 , 839,7 , 2, 1, 7, 6, 7 }, // English/Latin/Bahamas
+ { 31, 7, 19, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,66,68}, 6,1 , 3750,56 , 4,4 , 4,0 , 766,7 , 846,8 , 2, 1, 1, 6, 7 }, // English/Latin/Barbados
+ { 31, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 27,8 , 10,17 , 18,7 , 191,24 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 3806,20 , 13,5 , 4,0 , 766,7 , 854,7 , 2, 1, 1, 6, 7 }, // English/Latin/Belgium
+ { 31, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 27,8 , 80,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,90,68}, 6,1 , 3826,47 , 4,4 , 4,0 , 766,7 , 861,6 , 2, 1, 7, 6, 7 }, // English/Latin/Belize
+ { 31, 7, 24, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,77,68}, 6,1 , 3873,53 , 4,4 , 4,0 , 766,7 , 867,7 , 2, 1, 1, 6, 7 }, // English/Latin/Bermuda
+ { 31, 7, 28, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 27,8 , 80,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {66,87,80}, 179,1 , 3926,50 , 4,4 , 4,0 , 766,7 , 874,8 , 2, 1, 7, 6, 7 }, // English/Latin/Botswana
+ { 31, 7, 31, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 882,30 , 2, 1, 1, 6, 7 }, // English/Latin/BritishIndianOceanTerritory
+ { 31, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 3976,83 , 4,4 , 4,0 , 766,7 , 912,8 , 0, 0, 1, 6, 7 }, // English/Latin/Cameroon
+ { 31, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 53,10 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {67,65,68}, 6,1 , 4059,53 , 4,4 , 4,0 , 920,16 , 936,6 , 2, 0, 7, 6, 7 }, // English/Latin/Canada
+ { 31, 7, 40, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {75,89,68}, 6,1 , 4112,71 , 4,4 , 4,0 , 766,7 , 942,14 , 2, 1, 1, 6, 7 }, // English/Latin/CaymanIslands
+ { 31, 7, 45, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 956,16 , 2, 1, 1, 6, 7 }, // English/Latin/ChristmasIsland
+ { 31, 7, 46, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 972,23 , 2, 1, 1, 6, 7 }, // English/Latin/CocosIslands
+ { 31, 7, 51, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 6,1 , 4183,62 , 4,4 , 4,0 , 766,7 , 995,12 , 2, 1, 1, 6, 7 }, // English/Latin/CookIslands
+ { 31, 7, 60, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1007,8 , 2, 1, 7, 6, 7 }, // English/Latin/Dominica
+ { 31, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {69,82,78}, 46,3 , 4245,50 , 4,4 , 4,0 , 766,7 , 1015,7 , 2, 1, 1, 6, 7 }, // English/Latin/Eritrea
+ { 31, 7, 70, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {70,75,80}, 125,1 , 4295,74 , 4,4 , 4,0 , 766,7 , 1022,16 , 2, 1, 1, 6, 7 }, // English/Latin/FalklandIslands
+ { 31, 7, 72, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {70,74,68}, 6,1 , 4369,47 , 4,4 , 4,0 , 766,7 , 1038,4 , 2, 1, 1, 6, 7 }, // English/Latin/Fiji
+ { 31, 7, 75, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,66,80}, 125,1 , 4416,47 , 4,4 , 4,0 , 766,7 , 1042,8 , 2, 1, 1, 6, 7 }, // English/Latin/Guernsey
+ { 31, 7, 80, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,77,68}, 180,1 , 4463,50 , 4,4 , 4,0 , 766,7 , 1050,6 , 2, 1, 1, 6, 7 }, // English/Latin/Gambia
+ { 31, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,72,83}, 181,3 , 4513,47 , 4,4 , 4,0 , 766,7 , 1056,5 , 2, 1, 1, 6, 7 }, // English/Latin/Ghana
+ { 31, 7, 84, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,73,80}, 125,1 , 4560,53 , 4,4 , 4,0 , 766,7 , 1061,9 , 2, 1, 1, 6, 7 }, // English/Latin/Gibraltar
+ { 31, 7, 87, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1070,7 , 2, 1, 1, 6, 7 }, // English/Latin/Grenada
+ { 31, 7, 89, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1077,4 , 2, 1, 7, 6, 7 }, // English/Latin/Guam
+ { 31, 7, 93, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,89,68}, 6,1 , 4613,56 , 4,4 , 4,0 , 766,7 , 1081,6 , 0, 0, 1, 6, 7 }, // English/Latin/Guyana
+ { 31, 7, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 534,8 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {72,75,68}, 148,3 , 4669,56 , 4,4 , 4,0 , 766,7 , 1087,19 , 2, 1, 7, 6, 7 }, // English/Latin/HongKong
+ { 31, 7, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 27,8 , 98,16 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {73,78,82}, 127,1 , 4725,44 , 8,5 , 4,0 , 766,7 , 1106,5 , 2, 1, 7, 7, 7 }, // English/Latin/India
+ { 31, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 98,16 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 100,4 , 98,4 , {69,85,82}, 14,1 , 3806,20 , 4,4 , 4,0 , 766,7 , 1111,7 , 2, 1, 7, 6, 7 }, // English/Latin/Ireland
+ { 31, 7, 107, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 283,6 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {74,77,68}, 6,1 , 4769,53 , 4,4 , 4,0 , 766,7 , 1118,7 , 2, 1, 7, 6, 7 }, // English/Latin/Jamaica
+ { 31, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {75,69,83}, 2,3 , 4822,53 , 4,4 , 4,0 , 766,7 , 1125,5 , 2, 1, 7, 6, 7 }, // English/Latin/Kenya
+ { 31, 7, 112, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 1130,8 , 2, 1, 1, 6, 7 }, // English/Latin/Kiribati
+ { 31, 7, 120, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 4875,61 , 4,4 , 4,0 , 766,7 , 1138,7 , 2, 1, 1, 6, 7 }, // English/Latin/Lesotho
+ { 31, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {76,82,68}, 6,1 , 4936,53 , 4,4 , 4,0 , 766,7 , 1145,7 , 2, 1, 1, 6, 7 }, // English/Latin/Liberia
+ { 31, 7, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,79,80}, 151,4 , 4989,53 , 4,4 , 4,0 , 766,7 , 1152,15 , 2, 1, 7, 6, 7 }, // English/Latin/Macau
+ { 31, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,71,65}, 184,2 , 5042,54 , 4,4 , 4,0 , 766,7 , 1167,10 , 0, 0, 1, 6, 7 }, // English/Latin/Madagascar
+ { 31, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,87,75}, 186,2 , 5096,53 , 4,4 , 4,0 , 766,7 , 1177,6 , 2, 1, 1, 6, 7 }, // English/Latin/Malawi
+ { 31, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,89,82}, 188,2 , 5149,59 , 4,4 , 4,0 , 766,7 , 1183,8 , 2, 1, 1, 6, 7 }, // English/Latin/Malaysia
+ { 31, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 3806,20 , 4,4 , 4,0 , 766,7 , 1191,5 , 2, 1, 7, 6, 7 }, // English/Latin/Malta
+ { 31, 7, 134, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1196,16 , 2, 1, 7, 6, 7 }, // English/Latin/MarshallIslands
+ { 31, 7, 137, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {77,85,82}, 190,2 , 5208,53 , 4,4 , 4,0 , 766,7 , 1212,9 , 0, 0, 1, 6, 7 }, // English/Latin/Mauritius
+ { 31, 7, 140, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1221,10 , 2, 1, 1, 6, 7 }, // English/Latin/Micronesia
+ { 31, 7, 144, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1231,10 , 2, 1, 1, 6, 7 }, // English/Latin/Montserrat
+ { 31, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,65,68}, 6,1 , 5261,53 , 4,4 , 4,0 , 766,7 , 1241,7 , 2, 1, 1, 6, 7 }, // English/Latin/Namibia
+ { 31, 7, 149, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 1248,5 , 2, 1, 1, 6, 7 }, // English/Latin/Nauru
+ { 31, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 512,7 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 6,1 , 4183,62 , 4,4 , 4,0 , 766,7 , 1253,11 , 2, 1, 7, 6, 7 }, // English/Latin/NewZealand
+ { 31, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 5314,50 , 4,4 , 4,0 , 766,7 , 1264,7 , 2, 1, 1, 6, 7 }, // English/Latin/Nigeria
+ { 31, 7, 158, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 6,1 , 4183,62 , 4,4 , 4,0 , 766,7 , 1271,4 , 2, 1, 1, 6, 7 }, // English/Latin/Niue
+ { 31, 7, 159, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 1275,14 , 2, 1, 1, 6, 7 }, // English/Latin/NorfolkIsland
+ { 31, 7, 160, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1289,24 , 2, 1, 1, 6, 7 }, // English/Latin/NorthernMarianaIslands
+ { 31, 7, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {80,75,82}, 190,2 , 5364,53 , 4,4 , 4,0 , 766,7 , 1313,8 , 0, 0, 7, 6, 7 }, // English/Latin/Pakistan
+ { 31, 7, 164, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1321,5 , 2, 1, 1, 6, 7 }, // English/Latin/Palau
+ { 31, 7, 167, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {80,71,75}, 143,1 , 5417,73 , 4,4 , 4,0 , 766,7 , 1326,16 , 2, 1, 1, 6, 7 }, // English/Latin/PapuaNewGuinea
+ { 31, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {80,72,80}, 193,1 , 5490,53 , 4,4 , 4,0 , 766,7 , 1342,11 , 2, 1, 7, 6, 7 }, // English/Latin/Philippines
+ { 31, 7, 171, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 6,1 , 4183,62 , 4,4 , 4,0 , 766,7 , 1353,16 , 2, 1, 1, 6, 7 }, // English/Latin/Pitcairn
+ { 31, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1369,11 , 2, 1, 7, 6, 7 }, // English/Latin/PuertoRico
+ { 31, 7, 179, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {82,87,70}, 194,2 , 5543,47 , 4,4 , 4,0 , 766,7 , 1380,6 , 0, 0, 1, 6, 7 }, // English/Latin/Rwanda
+ { 31, 7, 180, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1386,17 , 2, 1, 1, 6, 7 }, // English/Latin/SaintKittsAndNevis
+ { 31, 7, 181, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1403,9 , 2, 1, 1, 6, 7 }, // English/Latin/SaintLucia
+ { 31, 7, 182, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {88,67,68}, 6,1 , 3567,71 , 4,4 , 4,0 , 766,7 , 1412,24 , 2, 1, 1, 6, 7 }, // English/Latin/SaintVincentAndTheGrenadines
+ { 31, 7, 183, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {87,83,84}, 196,3 , 5590,40 , 4,4 , 4,0 , 766,7 , 1436,5 , 2, 1, 7, 6, 7 }, // English/Latin/Samoa
+ { 31, 7, 188, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,67,82}, 199,2 , 5630,59 , 4,4 , 4,0 , 766,7 , 1441,10 , 2, 1, 1, 6, 7 }, // English/Latin/Seychelles
+ { 31, 7, 189, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,76,76}, 201,2 , 5689,68 , 4,4 , 4,0 , 766,7 , 1451,12 , 0, 0, 1, 6, 7 }, // English/Latin/SierraLeone
+ { 31, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 283,6 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,71,68}, 6,1 , 5757,56 , 4,4 , 4,0 , 766,7 , 1463,9 , 2, 1, 7, 6, 7 }, // English/Latin/Singapore
+ { 31, 7, 193, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,66,68}, 6,1 , 5813,74 , 4,4 , 4,0 , 766,7 , 1472,15 , 2, 1, 1, 6, 7 }, // English/Latin/SolomonIslands
+ { 31, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 247,10 , 80,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 4875,61 , 4,4 , 4,0 , 766,7 , 1487,12 , 2, 1, 7, 6, 7 }, // English/Latin/SouthAfrica
+ { 31, 7, 199, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,72,80}, 125,1 , 5887,56 , 4,4 , 4,0 , 766,7 , 1499,10 , 2, 1, 1, 6, 7 }, // English/Latin/SaintHelena
+ { 31, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,68,71}, 0,0 , 5943,50 , 4,4 , 4,0 , 766,7 , 1509,5 , 2, 1, 6, 5, 6 }, // English/Latin/Sudan
+ { 31, 7, 204, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,90,76}, 203,1 , 5993,53 , 4,4 , 4,0 , 766,7 , 1514,9 , 2, 1, 1, 6, 7 }, // English/Latin/Swaziland
+ { 31, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,90,83}, 204,3 , 6046,62 , 4,4 , 4,0 , 766,7 , 1523,8 , 0, 0, 1, 6, 7 }, // English/Latin/Tanzania
+ { 31, 7, 213, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {78,90,68}, 6,1 , 4183,62 , 4,4 , 4,0 , 766,7 , 1531,7 , 2, 1, 1, 6, 7 }, // English/Latin/Tokelau
+ { 31, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,79,80}, 207,2 , 6108,49 , 4,4 , 4,0 , 766,7 , 1538,5 , 2, 1, 1, 6, 7 }, // English/Latin/Tonga
+ { 31, 7, 215, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {84,84,68}, 6,1 , 6157,80 , 4,4 , 4,0 , 766,7 , 1543,17 , 2, 1, 7, 6, 7 }, // English/Latin/TrinidadAndTobago
+ { 31, 7, 219, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1560,22 , 2, 1, 1, 6, 7 }, // English/Latin/TurksAndCaicosIslands
+ { 31, 7, 220, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,85,68}, 6,1 , 3638,59 , 4,4 , 4,0 , 766,7 , 1582,6 , 2, 1, 1, 6, 7 }, // English/Latin/Tuvalu
+ { 31, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,71,88}, 209,3 , 6237,56 , 4,4 , 4,0 , 766,7 , 1588,6 , 0, 0, 1, 6, 7 }, // English/Latin/Uganda
+ { 31, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 100,4 , 98,4 , {71,66,80}, 125,1 , 4416,47 , 4,4 , 4,0 , 1594,15 , 1609,14 , 2, 1, 1, 6, 7 }, // English/Latin/UnitedKingdom
+ { 31, 7, 226, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1623,21 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStatesMinorOutlyingIslands
+ { 31, 7, 229, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {86,85,86}, 212,2 , 6293,44 , 4,4 , 4,0 , 766,7 , 1644,7 , 0, 0, 1, 6, 7 }, // English/Latin/Vanuatu
+ { 31, 7, 233, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1651,22 , 2, 1, 1, 6, 7 }, // English/Latin/BritishVirginIslands
+ { 31, 7, 234, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 3532,35 , 4,4 , 4,0 , 766,7 , 1673,19 , 2, 1, 7, 6, 7 }, // English/Latin/UnitedStatesVirginIslands
+ { 31, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {90,77,87}, 143,1 , 6337,50 , 4,4 , 4,0 , 766,7 , 1692,6 , 2, 1, 1, 6, 7 }, // English/Latin/Zambia
+ { 31, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 534,8 , 80,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1698,8 , 2, 1, 7, 6, 7 }, // English/Latin/Zimbabwe
+ { 31, 7, 249, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 3532,35 , 4,4 , 4,0 , 766,7 , 1706,12 , 2, 1, 1, 6, 7 }, // English/Latin/DiegoGarcia
+ { 31, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,66,80}, 125,1 , 4416,47 , 4,4 , 4,0 , 766,7 , 1718,11 , 2, 1, 1, 6, 7 }, // English/Latin/IsleOfMan
+ { 31, 7, 252, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {71,66,80}, 125,1 , 4416,47 , 4,4 , 4,0 , 766,7 , 1729,6 , 2, 1, 1, 6, 7 }, // English/Latin/Jersey
+ { 31, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {83,83,80}, 125,1 , 6387,68 , 4,4 , 4,0 , 766,7 , 1735,11 , 2, 1, 1, 6, 7 }, // English/Latin/SouthSudan
+ { 31, 7, 256, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 204,10 , 214,9 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , {65,78,71}, 172,4 , 6455,95 , 4,4 , 4,0 , 766,7 , 1746,12 , 2, 1, 1, 6, 7 }, // English/Latin/SintMaarten
+ { 33, 7, 68, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 223,8 , 223,8 , 158,8 , 542,18 , 42,4 , 215,9 , 5344,59 , 5403,91 , 5494,24 , 5344,59 , 5403,91 , 5494,24 , 2556,14 , 2570,63 , 2556,14 , 2556,14 , 2570,63 , 2556,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 6550,20 , 13,5 , 4,0 , 1758,5 , 1763,5 , 2, 1, 1, 6, 7 }, // Estonian/Latin/Estonia
+ { 34, 7, 71, 44, 46, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 353,8 , 560,17 , 37,5 , 8,10 , 5518,48 , 5566,83 , 134,24 , 5518,48 , 5566,83 , 134,24 , 2633,28 , 2661,74 , 2735,14 , 2633,28 , 2661,74 , 2735,14 , 104,14 , 102,15 , {68,75,75}, 214,2 , 6570,42 , 4,4 , 24,5 , 1768,8 , 1776,7 , 2, 1, 1, 6, 7 }, // Faroese/Latin/FaroeIslands
+ { 36, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 223,8 , 223,8 , 577,8 , 472,17 , 224,4 , 228,9 , 5649,69 , 5718,105 , 5823,24 , 5847,129 , 5847,129 , 5823,24 , 2749,21 , 2770,67 , 2837,14 , 2749,21 , 2851,81 , 2837,14 , 118,3 , 117,3 , {69,85,82}, 14,1 , 6612,20 , 13,5 , 4,0 , 1783,5 , 1788,5 , 2, 1, 1, 6, 7 }, // Finnish/Latin/Finland
+ { 37, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 1801,6 , 2, 1, 1, 6, 7 }, // French/Latin/France
+ { 37, 7, 3, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {68,90,68}, 216,2 , 6632,51 , 13,5 , 4,0 , 1793,8 , 1807,7 , 2, 1, 6, 5, 6 }, // French/Latin/Algeria
+ { 37, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 512,7 , 98,16 , 37,5 , 237,23 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 1814,8 , 2, 1, 1, 6, 7 }, // French/Latin/Belgium
+ { 37, 7, 23, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 1822,5 , 0, 0, 1, 6, 7 }, // French/Latin/Benin
+ { 37, 7, 34, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 1827,12 , 0, 0, 1, 6, 7 }, // French/Latin/BurkinaFaso
+ { 37, 7, 35, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {66,73,70}, 221,3 , 6742,53 , 13,5 , 4,0 , 1793,8 , 1839,7 , 0, 0, 1, 6, 7 }, // French/Latin/Burundi
+ { 37, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 1846,8 , 0, 0, 1, 6, 7 }, // French/Latin/Cameroon
+ { 37, 7, 38, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 585,8 , 98,16 , 37,5 , 8,10 , 6124,63 , 6187,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 3033,35 , 3068,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {67,65,68}, 6,1 , 6851,54 , 13,5 , 4,0 , 1854,17 , 936,6 , 2, 0, 7, 6, 7 }, // French/Latin/Canada
+ { 37, 7, 41, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 1871,25 , 0, 0, 1, 6, 7 }, // French/Latin/CentralAfricanRepublic
+ { 37, 7, 42, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 1896,5 , 0, 0, 1, 6, 7 }, // French/Latin/Chad
+ { 37, 7, 48, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {75,77,70}, 224,2 , 6905,51 , 13,5 , 4,0 , 1793,8 , 1901,7 , 0, 0, 1, 6, 7 }, // French/Latin/Comoros
+ { 37, 7, 49, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {67,68,70}, 226,2 , 6956,53 , 13,5 , 4,0 , 1793,8 , 1908,14 , 2, 1, 1, 6, 7 }, // French/Latin/CongoKinshasa
+ { 37, 7, 50, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 1922,17 , 0, 0, 1, 6, 7 }, // French/Latin/CongoBrazzaville
+ { 37, 7, 53, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 1939,13 , 0, 0, 1, 6, 7 }, // French/Latin/IvoryCoast
+ { 37, 7, 59, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {68,74,70}, 43,3 , 7009,57 , 13,5 , 4,0 , 1793,8 , 1952,8 , 0, 0, 6, 6, 7 }, // French/Latin/Djibouti
+ { 37, 7, 66, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 1960,18 , 0, 0, 1, 6, 7 }, // French/Latin/EquatorialGuinea
+ { 37, 7, 76, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 1978,16 , 2, 1, 1, 6, 7 }, // French/Latin/FrenchGuiana
+ { 37, 7, 77, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,80,70}, 228,4 , 7066,35 , 13,5 , 4,0 , 1793,8 , 1994,19 , 0, 0, 1, 6, 7 }, // French/Latin/FrenchPolynesia
+ { 37, 7, 79, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 6795,56 , 13,5 , 4,0 , 1793,8 , 2013,5 , 0, 0, 1, 6, 7 }, // French/Latin/Gabon
+ { 37, 7, 88, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2018,10 , 2, 1, 1, 6, 7 }, // French/Latin/Guadeloupe
+ { 37, 7, 91, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {71,78,70}, 232,2 , 7101,48 , 13,5 , 4,0 , 1793,8 , 2028,6 , 0, 0, 1, 6, 7 }, // French/Latin/Guinea
+ { 37, 7, 94, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {72,84,71}, 234,1 , 7149,57 , 13,5 , 4,0 , 1793,8 , 2034,5 , 2, 1, 1, 6, 7 }, // French/Latin/Haiti
+ { 37, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2039,10 , 2, 1, 1, 6, 7 }, // French/Latin/Luxembourg
+ { 37, 7, 128, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {77,71,65}, 184,2 , 7206,54 , 13,5 , 4,0 , 1793,8 , 1167,10 , 0, 0, 1, 6, 7 }, // French/Latin/Madagascar
+ { 37, 7, 132, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 2049,4 , 0, 0, 1, 6, 7 }, // French/Latin/Mali
+ { 37, 7, 135, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2053,10 , 2, 1, 1, 6, 7 }, // French/Latin/Martinique
+ { 37, 7, 136, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {77,82,79}, 235,2 , 7260,66 , 13,5 , 4,0 , 1793,8 , 2063,10 , 0, 0, 1, 6, 7 }, // French/Latin/Mauritania
+ { 37, 7, 137, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {77,85,82}, 190,2 , 7326,63 , 13,5 , 4,0 , 1793,8 , 2073,7 , 0, 0, 1, 6, 7 }, // French/Latin/Mauritius
+ { 37, 7, 138, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2080,7 , 2, 1, 1, 6, 7 }, // French/Latin/Mayotte
+ { 37, 7, 142, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2087,6 , 2, 1, 1, 6, 7 }, // French/Latin/Monaco
+ { 37, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {77,65,68}, 237,3 , 7389,54 , 13,5 , 4,0 , 1793,8 , 2093,5 , 2, 1, 6, 5, 6 }, // French/Latin/Morocco
+ { 37, 7, 153, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,80,70}, 228,4 , 7066,35 , 13,5 , 4,0 , 1793,8 , 2098,18 , 0, 0, 1, 6, 7 }, // French/Latin/NewCaledonia
+ { 37, 7, 156, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 2116,5 , 0, 0, 1, 6, 7 }, // French/Latin/Niger
+ { 37, 7, 176, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2121,10 , 2, 1, 1, 6, 7 }, // French/Latin/Reunion
+ { 37, 7, 179, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {82,87,70}, 194,2 , 7443,50 , 13,5 , 4,0 , 1793,8 , 1380,6 , 0, 0, 1, 6, 7 }, // French/Latin/Rwanda
+ { 37, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 2131,7 , 0, 0, 1, 6, 7 }, // French/Latin/Senegal
+ { 37, 7, 188, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {83,67,82}, 199,2 , 7493,71 , 13,5 , 4,0 , 1793,8 , 1441,10 , 2, 1, 1, 6, 7 }, // French/Latin/Seychelles
+ { 37, 7, 200, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2138,24 , 2, 1, 1, 6, 7 }, // French/Latin/SaintPierreAndMiquelon
+ { 37, 7, 206, 46, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 231,8 , 231,8 , 158,8 , 10,17 , 37,5 , 260,14 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {67,72,70}, 240,3 , 7564,45 , 8,5 , 29,5 , 2162,15 , 2177,6 , 2, 0, 1, 6, 7 }, // French/Latin/Switzerland
+ { 37, 7, 207, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {83,89,80}, 243,2 , 7609,51 , 13,5 , 4,0 , 1793,8 , 2183,5 , 0, 0, 6, 5, 6 }, // French/Latin/Syria
+ { 37, 7, 212, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 6683,59 , 13,5 , 4,0 , 1793,8 , 2188,4 , 0, 0, 1, 6, 7 }, // French/Latin/Togo
+ { 37, 7, 216, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {84,78,68}, 245,2 , 7660,51 , 13,5 , 4,0 , 1793,8 , 2192,7 , 3, 0, 7, 5, 6 }, // French/Latin/Tunisia
+ { 37, 7, 229, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {86,85,86}, 212,2 , 7711,51 , 13,5 , 4,0 , 1793,8 , 1644,7 , 0, 0, 1, 6, 7 }, // French/Latin/Vanuatu
+ { 37, 7, 235, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {88,80,70}, 228,4 , 7066,35 , 13,5 , 4,0 , 1793,8 , 2199,16 , 0, 0, 1, 6, 7 }, // French/Latin/WallisAndFutunaIslands
+ { 37, 7, 244, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2215,16 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Barthelemy
+ { 37, 7, 245, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 231,8 , 231,8 , 120,10 , 98,16 , 37,5 , 8,10 , 5976,63 , 6039,85 , 134,24 , 6124,63 , 6187,85 , 134,24 , 2932,35 , 2967,52 , 3019,14 , 3033,35 , 3068,52 , 3019,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 1793,8 , 2231,12 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Martin
+ { 38, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 353,8 , 98,16 , 37,5 , 8,10 , 6272,48 , 6320,95 , 134,24 , 6415,59 , 6320,95 , 134,24 , 3120,21 , 3141,54 , 2462,14 , 3120,21 , 3141,54 , 2462,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 3242,19 , 8,5 , 34,6 , 2243,10 , 2253,8 , 2, 1, 1, 6, 7 }, // Western Frisian/Latin/Netherlands
+ { 39, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 239,10 , 239,10 , 120,10 , 593,21 , 37,5 , 8,10 , 6474,61 , 6535,142 , 6677,24 , 6474,61 , 6701,167 , 6677,24 , 3195,28 , 3223,69 , 3292,14 , 3195,28 , 3223,69 , 3292,14 , 121,1 , 120,1 , {71,66,80}, 125,1 , 7762,86 , 4,4 , 4,0 , 2261,8 , 2269,22 , 2, 1, 1, 6, 7 }, // Gaelic/Latin/UnitedKingdom
+ { 40, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 560,17 , 37,5 , 8,10 , 6868,48 , 6916,87 , 7003,24 , 7027,48 , 7075,87 , 7003,24 , 3306,28 , 3334,49 , 3383,14 , 3397,28 , 3425,49 , 3383,14 , 100,4 , 98,4 , {69,85,82}, 14,1 , 3806,20 , 4,4 , 4,0 , 2291,6 , 2297,6 , 2, 1, 1, 6, 7 }, // Galician/Latin/Spain
+ { 41, 15, 81, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 171, 187, 0,6 , 0,6 , 256,8 , 256,8 , 158,8 , 614,19 , 37,5 , 8,10 , 7162,48 , 7210,99 , 7309,24 , 7162,48 , 7210,99 , 7309,24 , 3474,28 , 3502,62 , 3564,14 , 3474,28 , 3502,62 , 3564,14 , 0,2 , 0,2 , {71,69,76}, 247,3 , 7848,43 , 13,5 , 4,0 , 2303,7 , 2310,10 , 2, 1, 1, 6, 7 }, // Georgian/Georgian/Georgia
+ { 42, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 7381,83 , 134,24 , 7464,59 , 7381,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 2320,7 , 2327,11 , 2, 1, 1, 6, 7 }, // German/Latin/Germany
+ { 42, 7, 14, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7523,48 , 7571,83 , 134,24 , 7654,59 , 7571,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {69,85,82}, 14,1 , 7891,19 , 8,5 , 4,0 , 2338,24 , 2362,10 , 2, 1, 1, 6, 7 }, // German/Latin/Austria
+ { 42, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 7381,83 , 134,24 , 7464,59 , 7381,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 2320,7 , 2372,7 , 2, 1, 1, 6, 7 }, // German/Latin/Belgium
+ { 42, 7, 123, 46, 39, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 7381,83 , 134,24 , 7464,59 , 7381,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {67,72,70}, 240,3 , 7910,58 , 8,5 , 4,0 , 2320,7 , 2379,13 , 2, 0, 1, 6, 7 }, // German/Latin/Liechtenstein
+ { 42, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 7381,83 , 134,24 , 7464,59 , 7381,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 2320,7 , 2392,9 , 2, 1, 1, 6, 7 }, // German/Latin/Luxembourg
+ { 42, 7, 206, 46, 39, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 7381,83 , 134,24 , 7464,59 , 7381,83 , 134,24 , 3578,21 , 3599,60 , 3659,14 , 3673,28 , 3599,60 , 3659,14 , 122,5 , 121,6 , {67,72,70}, 240,3 , 7910,58 , 8,5 , 29,5 , 2401,21 , 2422,7 , 2, 0, 1, 6, 7 }, // German/Latin/Switzerland
+ { 43, 16, 85, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 34, 34, 0,6 , 0,6 , 273,9 , 273,9 , 283,6 , 10,17 , 18,7 , 25,12 , 7713,50 , 7763,115 , 7878,24 , 7902,50 , 7952,115 , 7878,24 , 3701,28 , 3729,55 , 3784,14 , 3701,28 , 3729,55 , 3784,14 , 127,4 , 127,4 , {69,85,82}, 14,1 , 7968,19 , 13,5 , 4,0 , 2429,8 , 2437,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Greece
+ { 43, 16, 56, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 34, 34, 0,6 , 0,6 , 273,9 , 273,9 , 283,6 , 10,17 , 18,7 , 25,12 , 7713,50 , 7763,115 , 7878,24 , 7902,50 , 7952,115 , 7878,24 , 3701,28 , 3729,55 , 3784,14 , 3701,28 , 3729,55 , 3784,14 , 127,4 , 127,4 , {69,85,82}, 14,1 , 7968,19 , 13,5 , 4,0 , 2429,8 , 2443,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Cyprus
+ { 44, 7, 86, 44, 46, 59, 37, 48, 8722, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 282,11 , 282,11 , 53,10 , 560,17 , 18,7 , 25,12 , 4859,48 , 8067,96 , 134,24 , 4859,48 , 8067,96 , 134,24 , 3798,28 , 3826,98 , 3924,14 , 3798,28 , 3826,98 , 3924,14 , 0,2 , 0,2 , {68,75,75}, 165,3 , 7987,62 , 4,4 , 24,5 , 2449,11 , 2460,16 , 2, 1, 1, 6, 7 }, // Greenlandic/Latin/Greenland
+ { 45, 7, 168, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {80,89,71}, 250,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 7, 6, 7 }, // Guarani/Latin/Paraguay
+ { 46, 17, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 293,9 , 293,9 , 283,6 , 193,18 , 274,8 , 282,13 , 8163,67 , 8230,87 , 8317,31 , 8348,64 , 8230,87 , 8317,31 , 3938,32 , 3970,53 , 4023,19 , 3938,32 , 3970,53 , 4023,19 , 0,2 , 0,2 , {73,78,82}, 127,1 , 8049,46 , 4,4 , 4,0 , 2476,7 , 2483,4 , 2, 1, 7, 7, 7 }, // Gujarati/Gujarati/India
+ { 47, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 283,6 , 193,18 , 37,5 , 8,10 , 8412,48 , 8460,85 , 8545,24 , 8412,48 , 8460,85 , 8545,24 , 4042,21 , 4063,52 , 4115,14 , 4042,21 , 4063,52 , 4115,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 8095,12 , 8,5 , 4,0 , 2487,5 , 2492,8 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Nigeria
+ { 47, 1, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Hausa/Arabic/Nigeria
+ { 47, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 283,6 , 193,18 , 37,5 , 8,10 , 8412,48 , 8460,85 , 8545,24 , 8412,48 , 8460,85 , 8545,24 , 4042,21 , 4063,52 , 4115,14 , 4042,21 , 4063,52 , 4115,14 , 0,2 , 0,2 , {71,72,83}, 181,3 , 0,7 , 8,5 , 4,0 , 2487,5 , 2500,4 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Ghana
+ { 47, 7, 156, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 283,6 , 193,18 , 37,5 , 8,10 , 8412,48 , 8460,85 , 8545,24 , 8412,48 , 8460,85 , 8545,24 , 4042,21 , 4063,52 , 4115,14 , 4042,21 , 4063,52 , 4115,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 8107,36 , 8,5 , 4,0 , 2487,5 , 2504,5 , 0, 0, 1, 6, 7 }, // Hausa/Latin/Niger
+ { 48, 18, 105, 46, 44, 59, 37, 48, 45, 43, 101, 1524, 1524, 1523, 1523, 0,6 , 0,6 , 302,6 , 302,6 , 577,8 , 633,18 , 42,4 , 137,9 , 8569,58 , 8627,72 , 158,27 , 8569,58 , 8627,72 , 158,27 , 4129,46 , 4175,65 , 4240,21 , 4129,46 , 4175,65 , 4240,21 , 131,6 , 131,5 , {73,76,83}, 54,1 , 8143,54 , 13,5 , 4,0 , 2509,5 , 2514,5 , 2, 1, 7, 5, 6 }, // Hebrew/Hebrew/Israel
+ { 49, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 308,9 , 317,8 , 283,6 , 10,17 , 18,7 , 25,12 , 8699,59 , 8758,73 , 8831,30 , 8699,59 , 8758,73 , 8831,30 , 4261,32 , 4293,53 , 4346,19 , 4261,32 , 4293,53 , 4346,19 , 137,9 , 136,7 , {73,78,82}, 127,1 , 8197,42 , 4,4 , 4,0 , 2519,6 , 2525,4 , 2, 1, 7, 7, 7 }, // Hindi/Devanagari/India
+ { 50, 7, 98, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 187, 171, 0,6 , 0,6 , 325,8 , 325,8 , 651,13 , 664,19 , 42,4 , 137,9 , 8861,64 , 8925,98 , 9023,25 , 8861,64 , 8925,98 , 9023,25 , 4365,19 , 4384,52 , 4436,17 , 4365,19 , 4384,52 , 4436,17 , 146,3 , 143,3 , {72,85,70}, 251,3 , 8239,46 , 13,5 , 4,0 , 2529,6 , 2535,12 , 2, 0, 1, 6, 7 }, // Hungarian/Latin/Hungary
+ { 51, 7, 99, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 196,8 , 196,8 , 577,8 , 542,18 , 37,5 , 8,10 , 9048,59 , 9107,82 , 9189,24 , 9048,59 , 9107,82 , 9189,24 , 4453,35 , 4488,81 , 4569,14 , 4453,35 , 4488,81 , 4569,14 , 149,4 , 146,4 , {73,83,75}, 254,3 , 8285,49 , 13,5 , 4,0 , 2547,8 , 2555,6 , 0, 0, 1, 6, 7 }, // Icelandic/Latin/Iceland
+ { 52, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 333,10 , 343,9 , 27,8 , 80,18 , 146,5 , 151,10 , 9213,48 , 9261,87 , 134,24 , 9213,48 , 9261,87 , 134,24 , 4583,28 , 4611,43 , 4654,14 , 4583,28 , 4611,43 , 4654,14 , 0,2 , 0,2 , {73,68,82}, 257,2 , 8334,39 , 4,4 , 4,0 , 2561,16 , 2577,9 , 0, 0, 7, 6, 7 }, // Indonesian/Latin/Indonesia
+ { 53, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Interlingua/Latin/France
+ { 55, 44, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {67,65,68}, 259,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/CanadianAboriginal/Canada
+ { 55, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {67,65,68}, 259,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/Latin/Canada
+ { 57, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 352,11 , 239,10 , 120,10 , 98,16 , 37,5 , 8,10 , 9348,62 , 9410,107 , 9517,24 , 9348,62 , 9410,107 , 9517,24 , 4668,37 , 4705,75 , 4780,14 , 4668,37 , 4705,75 , 4780,14 , 100,4 , 98,4 , {69,85,82}, 14,1 , 8373,31 , 4,4 , 4,0 , 2586,7 , 2593,4 , 2, 1, 7, 6, 7 }, // Irish/Latin/Ireland
+ { 58, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 98,16 , 37,5 , 8,10 , 9541,48 , 9589,94 , 9683,24 , 9541,48 , 9707,94 , 9683,24 , 4794,28 , 4822,57 , 4879,14 , 4794,28 , 4893,57 , 4879,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 8404,19 , 13,5 , 4,0 , 2597,8 , 2605,6 , 2, 1, 1, 6, 7 }, // Italian/Latin/Italy
+ { 58, 7, 184, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 98,16 , 37,5 , 8,10 , 9541,48 , 9589,94 , 9683,24 , 9541,48 , 9707,94 , 9683,24 , 4794,28 , 4822,57 , 4879,14 , 4794,28 , 4893,57 , 4879,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 8404,19 , 13,5 , 4,0 , 2597,8 , 2611,10 , 2, 1, 1, 6, 7 }, // Italian/Latin/SanMarino
+ { 58, 7, 206, 46, 39, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 249,7 , 249,7 , 158,8 , 10,17 , 37,5 , 8,10 , 9541,48 , 9589,94 , 9683,24 , 9541,48 , 9707,94 , 9683,24 , 4794,28 , 4822,57 , 4879,14 , 4794,28 , 4893,57 , 4879,14 , 0,2 , 0,2 , {67,72,70}, 240,3 , 8423,53 , 8,5 , 29,5 , 2597,8 , 2621,8 , 2, 0, 1, 6, 7 }, // Italian/Latin/Switzerland
+ { 59, 19, 108, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 179,5 , 179,5 , 179,5 , 179,5 , 247,10 , 407,13 , 42,4 , 295,10 , 4288,39 , 4288,39 , 158,27 , 4288,39 , 4288,39 , 158,27 , 4950,14 , 4964,28 , 4950,14 , 4950,14 , 4964,28 , 4950,14 , 153,2 , 150,2 , {74,80,89}, 147,1 , 8476,11 , 4,4 , 4,0 , 2629,3 , 2632,2 , 0, 0, 7, 6, 7 }, // Japanese/Japanese/Japan
+ { 60, 7, 101, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {73,68,82}, 257,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 7, 6, 7 }, // Javanese/Latin/Indonesia
+ { 61, 21, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 363,12 , 375,11 , 519,6 , 35,18 , 274,8 , 282,13 , 9801,63 , 9864,87 , 9951,31 , 9801,63 , 9864,87 , 9951,31 , 4992,33 , 5025,54 , 5079,20 , 4992,33 , 5025,54 , 5079,20 , 155,9 , 152,7 , {73,78,82}, 127,1 , 8487,46 , 4,4 , 4,0 , 2634,5 , 2639,4 , 2, 1, 7, 7, 7 }, // Kannada/Kannada/India
+ { 62, 1, 100, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 519,6 , 35,18 , 18,7 , 25,12 , 9982,72 , 9982,72 , 10054,24 , 9982,72 , 9982,72 , 10054,24 , 5099,54 , 5153,56 , 5209,14 , 5099,54 , 5153,56 , 5209,14 , 0,2 , 0,2 , {73,78,82}, 127,1 , 8533,23 , 8,5 , 4,0 , 2643,5 , 2648,10 , 2, 1, 7, 7, 7 }, // Kashmiri/Arabic/India
+ { 63, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 34, 8216, 8217, 0,6 , 0,6 , 0,6 , 386,10 , 27,8 , 10,17 , 37,5 , 8,10 , 10078,61 , 10139,83 , 10222,24 , 10078,61 , 10139,83 , 10222,24 , 5223,29 , 5252,56 , 5308,14 , 5322,29 , 5252,56 , 5308,14 , 164,10 , 159,14 , {75,90,84}, 262,1 , 8556,58 , 13,5 , 4,0 , 2658,10 , 2668,9 , 2, 1, 1, 6, 7 }, // Kazakh/Cyrillic/Kazakhstan
+ { 64, 7, 179, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 683,8 , 691,18 , 37,5 , 8,10 , 10246,60 , 10306,101 , 158,27 , 10246,60 , 10306,101 , 158,27 , 5351,35 , 5386,84 , 85,14 , 5351,35 , 5386,84 , 85,14 , 0,2 , 0,2 , {82,87,70}, 194,2 , 0,7 , 8,5 , 4,0 , 2677,11 , 1380,6 , 0, 0, 1, 6, 7 }, // Kinyarwanda/Latin/Rwanda
+ { 65, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 396,10 , 396,10 , 158,8 , 709,23 , 37,5 , 8,10 , 10407,48 , 10455,80 , 10535,24 , 10559,59 , 10618,80 , 10535,24 , 5470,38 , 5508,57 , 5565,14 , 5470,38 , 5508,57 , 5565,14 , 174,5 , 173,12 , {75,71,83}, 263,3 , 8614,52 , 13,5 , 4,0 , 2688,8 , 2696,10 , 2, 1, 1, 6, 7 }, // Kirghiz/Cyrillic/Kyrgyzstan
+ { 66, 22, 114, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,7 , 406,7 , 732,9 , 741,16 , 305,7 , 312,13 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 5579,14 , 5593,28 , 5579,14 , 5579,14 , 5593,28 , 5579,14 , 179,2 , 185,2 , {75,82,87}, 266,1 , 8666,19 , 4,4 , 4,0 , 2706,3 , 2709,4 , 0, 0, 7, 6, 7 }, // Korean/Korean/SouthKorea
+ { 66, 22, 113, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 406,7 , 406,7 , 732,9 , 741,16 , 305,7 , 312,13 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 10698,39 , 5579,14 , 5593,28 , 5579,14 , 5579,14 , 5593,28 , 5579,14 , 179,2 , 185,2 , {75,80,87}, 267,3 , 8685,39 , 4,4 , 4,0 , 2706,3 , 2713,11 , 0, 0, 1, 6, 7 }, // Korean/Korean/NorthKorea
+ { 67, 7, 217, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {84,82,89}, 270,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Kurdish/Latin/Turkey
+ { 68, 7, 35, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 10737,60 , 10797,106 , 158,27 , 10737,60 , 10797,106 , 158,27 , 5621,34 , 5655,89 , 85,14 , 5621,34 , 5655,89 , 85,14 , 181,5 , 187,5 , {66,73,70}, 221,3 , 8724,27 , 0,4 , 4,0 , 2724,8 , 2732,8 , 0, 0, 1, 6, 7 }, // Rundi/Latin/Burundi
+ { 69, 23, 117, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 413,9 , 534,8 , 757,19 , 42,4 , 325,24 , 10903,61 , 10964,75 , 158,27 , 10903,61 , 10964,75 , 158,27 , 5744,36 , 5780,57 , 5837,16 , 5780,57 , 5780,57 , 1849,14 , 186,8 , 192,8 , {76,65,75}, 271,1 , 8751,21 , 4,4 , 29,5 , 2740,3 , 2740,3 , 0, 0, 7, 6, 7 }, // Lao/Lao/Laos
+ { 71, 7, 118, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 422,8 , 422,8 , 158,8 , 776,26 , 37,5 , 8,10 , 11039,65 , 11104,101 , 134,24 , 11205,65 , 11270,101 , 134,24 , 5853,21 , 5874,72 , 5946,14 , 5853,21 , 5960,72 , 5946,14 , 194,14 , 200,11 , {69,85,82}, 14,1 , 8772,23 , 4,4 , 4,0 , 2743,8 , 2751,7 , 2, 1, 1, 6, 7 }, // Latvian/Latin/Latvia
+ { 72, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 430,9 , 430,9 , 534,8 , 98,16 , 37,5 , 8,10 , 11371,48 , 11419,203 , 11622,24 , 11371,48 , 11419,203 , 11622,24 , 6032,28 , 6060,100 , 6160,14 , 6032,28 , 6060,100 , 6160,14 , 208,8 , 211,6 , {67,68,70}, 226,2 , 8795,23 , 13,5 , 4,0 , 2758,7 , 2765,29 , 2, 1, 1, 6, 7 }, // Lingala/Latin/CongoKinshasa
+ { 72, 7, 6, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 430,9 , 430,9 , 534,8 , 98,16 , 37,5 , 8,10 , 11371,48 , 11419,203 , 11622,24 , 11371,48 , 11419,203 , 11622,24 , 6032,28 , 6060,100 , 6160,14 , 6032,28 , 6060,100 , 6160,14 , 208,8 , 211,6 , {65,79,65}, 272,2 , 8818,23 , 13,5 , 4,0 , 2758,7 , 2794,6 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Angola
+ { 72, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 430,9 , 430,9 , 534,8 , 98,16 , 37,5 , 8,10 , 11371,48 , 11419,203 , 11622,24 , 11371,48 , 11419,203 , 11622,24 , 6032,28 , 6060,100 , 6160,14 , 6032,28 , 6060,100 , 6160,14 , 208,8 , 211,6 , {88,65,70}, 32,4 , 8841,23 , 13,5 , 4,0 , 2758,7 , 2800,26 , 0, 0, 1, 6, 7 }, // Lingala/Latin/CentralAfricanRepublic
+ { 72, 7, 50, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 430,9 , 430,9 , 534,8 , 98,16 , 37,5 , 8,10 , 11371,48 , 11419,203 , 11622,24 , 11371,48 , 11419,203 , 11622,24 , 6032,28 , 6060,100 , 6160,14 , 6032,28 , 6060,100 , 6160,14 , 208,8 , 211,6 , {88,65,70}, 32,4 , 8841,23 , 13,5 , 4,0 , 2758,7 , 2826,5 , 0, 0, 1, 6, 7 }, // Lingala/Latin/CongoBrazzaville
+ { 73, 7, 124, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 439,8 , 439,8 , 53,10 , 802,27 , 37,5 , 8,10 , 11646,70 , 11716,96 , 11812,24 , 11646,70 , 11836,98 , 11812,24 , 6174,21 , 6195,89 , 6284,14 , 6174,21 , 6195,89 , 6284,14 , 216,9 , 217,6 , {69,85,82}, 14,1 , 8864,30 , 13,5 , 4,0 , 2831,8 , 2839,7 , 2, 1, 1, 6, 7 }, // Lithuanian/Latin/Lithuania
+ { 74, 2, 127, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 0,6 , 829,7 , 80,18 , 37,5 , 8,10 , 11934,61 , 11995,85 , 12080,24 , 11934,61 , 11995,85 , 12080,24 , 6298,34 , 6332,54 , 1630,14 , 6298,34 , 6332,54 , 1630,14 , 225,10 , 223,8 , {77,75,68}, 274,3 , 8894,55 , 8,5 , 4,0 , 2846,10 , 2856,10 , 2, 1, 1, 6, 7 }, // Macedonian/Cyrillic/Macedonia
+ { 75, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 12104,48 , 12152,92 , 134,24 , 12104,48 , 12152,92 , 134,24 , 6386,34 , 6420,60 , 6480,14 , 6386,34 , 6420,60 , 6480,14 , 0,2 , 0,2 , {77,71,65}, 184,2 , 8949,13 , 4,4 , 4,0 , 2866,8 , 2874,12 , 0, 0, 1, 6, 7 }, // Malagasy/Latin/Madagascar
+ { 76, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 343,9 , 343,9 , 512,7 , 10,17 , 18,7 , 25,12 , 12244,48 , 12292,82 , 12374,24 , 12244,48 , 12292,82 , 12374,24 , 6494,28 , 6522,43 , 6565,14 , 6494,28 , 6522,43 , 6565,14 , 235,2 , 231,3 , {77,89,82}, 188,2 , 8962,39 , 4,4 , 4,0 , 2886,13 , 1183,8 , 2, 1, 1, 6, 7 }, // Malay/Latin/Malaysia
+ { 76, 1, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {77,89,82}, 188,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Malay/Arabic/Malaysia
+ { 76, 7, 32, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 343,9 , 343,9 , 512,7 , 836,12 , 18,7 , 25,12 , 12244,48 , 12292,82 , 12374,24 , 12244,48 , 12292,82 , 12374,24 , 6494,28 , 6522,43 , 6565,14 , 6494,28 , 6522,43 , 6565,14 , 235,2 , 231,3 , {66,78,68}, 6,1 , 9001,31 , 8,5 , 4,0 , 2886,13 , 2899,6 , 2, 1, 1, 6, 7 }, // Malay/Latin/Brunei
+ { 76, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 343,9 , 343,9 , 512,7 , 10,17 , 18,7 , 25,12 , 12244,48 , 12292,82 , 12374,24 , 12244,48 , 12292,82 , 12374,24 , 6494,28 , 6522,43 , 6565,14 , 6494,28 , 6522,43 , 6565,14 , 235,2 , 231,3 , {83,71,68}, 6,1 , 9032,37 , 4,4 , 4,0 , 2886,13 , 2905,9 , 2, 1, 7, 6, 7 }, // Malay/Latin/Singapore
+ { 77, 24, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 447,13 , 460,12 , 27,8 , 848,18 , 18,7 , 25,12 , 12398,62 , 12460,88 , 12548,29 , 12398,62 , 12460,88 , 12577,29 , 6579,41 , 6620,77 , 6697,17 , 6579,41 , 6714,76 , 6697,17 , 0,2 , 0,2 , {73,78,82}, 127,1 , 9069,40 , 4,4 , 4,0 , 2914,6 , 2920,6 , 2, 1, 7, 7, 7 }, // Malayalam/Malayalam/India
+ { 78, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 472,8 , 480,7 , 120,10 , 866,23 , 37,5 , 8,10 , 12606,48 , 12654,86 , 12740,36 , 12606,48 , 12654,86 , 12776,24 , 6790,28 , 6818,63 , 6881,21 , 6790,28 , 6818,63 , 6902,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 9109,27 , 4,4 , 4,0 , 2926,5 , 1191,5 , 2, 1, 7, 6, 7 }, // Maltese/Latin/Malta
+ { 79, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {78,90,68}, 277,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Maori/Latin/NewZealand
+ { 80, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 487,9 , 487,9 , 283,6 , 193,18 , 18,7 , 25,12 , 12800,66 , 12866,86 , 12952,32 , 12800,66 , 12866,86 , 12952,32 , 6916,32 , 6948,53 , 4346,19 , 6916,32 , 6948,53 , 4346,19 , 237,5 , 234,4 , {73,78,82}, 127,1 , 9136,43 , 4,4 , 4,0 , 2931,5 , 2525,4 , 2, 1, 7, 7, 7 }, // Marathi/Devanagari/India
+ { 82, 2, 143, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 889,29 , 37,5 , 8,10 , 12984,99 , 13083,189 , 158,27 , 12984,99 , 13083,189 , 158,27 , 7001,21 , 7022,43 , 1849,14 , 7001,21 , 7022,43 , 1849,14 , 242,2 , 238,2 , {77,78,84}, 280,1 , 9179,25 , 8,5 , 4,0 , 2936,6 , 2942,6 , 0, 0, 1, 6, 7 }, // Mongolian/Cyrillic/Mongolia
+ { 82, 8, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {67,78,89}, 281,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Mongolian/Mongolian/China
+ { 84, 13, 150, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 496,7 , 0,6 , 496,7 , 496,7 , 53,10 , 63,17 , 37,5 , 8,10 , 13272,85 , 13272,85 , 13357,27 , 13272,85 , 13384,85 , 13357,27 , 7065,33 , 7098,54 , 7152,18 , 7065,33 , 7098,54 , 7152,18 , 137,9 , 136,7 , {78,80,82}, 284,4 , 9204,49 , 8,5 , 4,0 , 2948,6 , 2954,5 , 2, 1, 7, 6, 7 }, // Nepali/Devanagari/Nepal
+ { 84, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 496,7 , 0,6 , 496,7 , 496,7 , 53,10 , 63,17 , 37,5 , 8,10 , 13272,85 , 13272,85 , 13357,27 , 13272,85 , 13384,85 , 13357,27 , 7065,33 , 7098,54 , 7152,18 , 7065,33 , 7098,54 , 7152,18 , 137,9 , 136,7 , {73,78,82}, 127,1 , 9253,49 , 8,5 , 4,0 , 2948,6 , 2525,4 , 2, 1, 7, 7, 7 }, // Nepali/Devanagari/India
+ { 85, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 918,10 , 472,17 , 146,5 , 151,10 , 5518,48 , 13469,83 , 134,24 , 13552,59 , 13469,83 , 134,24 , 7170,28 , 2282,51 , 2333,14 , 2347,35 , 2282,51 , 2333,14 , 100,4 , 98,4 , {78,79,75}, 214,2 , 9302,44 , 8,5 , 4,0 , 2959,12 , 2971,5 , 2, 1, 1, 6, 7 }, // NorwegianBokmal/Latin/Norway
+ { 85, 7, 203, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 918,10 , 472,17 , 146,5 , 151,10 , 5518,48 , 13469,83 , 134,24 , 13552,59 , 13469,83 , 134,24 , 7170,28 , 2282,51 , 2333,14 , 2347,35 , 2282,51 , 2333,14 , 100,4 , 98,4 , {78,79,75}, 214,2 , 9302,44 , 8,5 , 4,0 , 2959,12 , 2976,21 , 2, 1, 1, 6, 7 }, // NorwegianBokmal/Latin/SvalbardAndJanMayenIslands
+ { 86, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Occitan/Latin/France
+ { 87, 26, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 928,6 , 10,17 , 18,7 , 25,12 , 13611,86 , 13611,86 , 13697,32 , 13611,86 , 13611,86 , 13697,32 , 7198,33 , 7231,54 , 7285,18 , 7198,33 , 7231,54 , 7285,18 , 244,2 , 240,2 , {73,78,82}, 127,1 , 9346,11 , 8,5 , 4,0 , 2997,5 , 3002,4 , 2, 1, 7, 7, 7 }, // Oriya/Oriya/India
+ { 88, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 420,8 , 934,20 , 42,4 , 349,11 , 13729,68 , 13729,68 , 158,27 , 13729,68 , 13729,68 , 158,27 , 7303,49 , 7303,49 , 85,14 , 7303,49 , 7303,49 , 85,14 , 246,4 , 242,4 , {65,70,78}, 288,1 , 9357,13 , 13,5 , 4,0 , 3006,4 , 3010,9 , 0, 0, 6, 4, 5 }, // Pashto/Arabic/Afghanistan
+ { 89, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 503,7 , 503,7 , 52,8 , 66,7 , 420,8 , 98,16 , 42,4 , 349,11 , 13797,70 , 13797,70 , 13867,24 , 13891,74 , 13891,74 , 13867,24 , 7303,49 , 7303,49 , 7352,14 , 7303,49 , 7303,49 , 7352,14 , 250,9 , 246,8 , {73,82,82}, 289,4 , 9370,37 , 40,5 , 4,0 , 3019,5 , 3024,5 , 0, 0, 6, 5, 5 }, // Persian/Arabic/Iran
+ { 89, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 503,7 , 503,7 , 52,8 , 66,7 , 420,8 , 98,16 , 42,4 , 349,11 , 13797,70 , 13797,70 , 13965,24 , 13989,64 , 14053,68 , 13867,24 , 7303,49 , 7303,49 , 7352,14 , 7303,49 , 7303,49 , 7352,14 , 250,9 , 246,8 , {65,70,78}, 288,1 , 9407,55 , 40,5 , 4,0 , 3019,5 , 3010,9 , 0, 0, 6, 4, 5 }, // Persian/Arabic/Afghanistan
+ { 90, 7, 172, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 172,7 , 172,7 , 918,10 , 10,17 , 37,5 , 8,10 , 14121,48 , 14169,97 , 14266,24 , 14121,48 , 14290,99 , 14266,24 , 7366,34 , 7400,59 , 7459,14 , 7366,34 , 7400,59 , 7459,14 , 0,2 , 0,2 , {80,76,78}, 293,2 , 9462,77 , 13,5 , 4,0 , 3029,6 , 3035,6 , 2, 1, 1, 6, 7 }, // Polish/Latin/Poland
+ { 91, 7, 30, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 0,2 , 0,2 , {66,82,76}, 295,2 , 9539,54 , 4,4 , 4,0 , 3041,19 , 3060,6 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Brazil
+ { 91, 7, 6, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {65,79,65}, 272,2 , 9593,54 , 13,5 , 4,0 , 3066,9 , 3075,6 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Angola
+ { 91, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {67,86,69}, 297,1 , 9647,69 , 13,5 , 4,0 , 3066,9 , 3081,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/CapeVerde
+ { 91, 7, 62, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {85,83,68}, 176,3 , 9716,81 , 13,5 , 4,0 , 3066,9 , 3091,11 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/EastTimor
+ { 91, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {88,79,70}, 218,3 , 9797,62 , 13,5 , 4,0 , 3066,9 , 3102,12 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/GuineaBissau
+ { 91, 7, 126, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {77,79,80}, 151,4 , 9859,53 , 13,5 , 4,0 , 3066,9 , 3114,19 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Macau
+ { 91, 7, 146, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {77,90,78}, 298,3 , 9912,72 , 13,5 , 4,0 , 3066,9 , 3133,10 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Mozambique
+ { 91, 7, 173, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {69,85,82}, 14,1 , 9984,20 , 13,5 , 4,0 , 3143,17 , 3160,8 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Portugal
+ { 91, 7, 185, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 954,27 , 37,5 , 8,10 , 14389,48 , 14437,89 , 134,24 , 14389,48 , 14437,89 , 134,24 , 7473,28 , 7501,79 , 7580,14 , 7473,28 , 7501,79 , 7580,14 , 259,8 , 254,8 , {83,84,68}, 301,2 , 10004,92 , 13,5 , 4,0 , 3066,9 , 3168,19 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/SaoTomeAndPrincipe
+ { 92, 4, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 510,9 , 510,9 , 283,6 , 10,17 , 18,7 , 25,12 , 14526,50 , 14576,68 , 14644,28 , 14526,50 , 14576,68 , 14644,28 , 7594,36 , 7630,57 , 7687,23 , 7594,36 , 7630,57 , 7687,23 , 267,6 , 262,6 , {73,78,82}, 127,1 , 10096,39 , 4,4 , 4,0 , 3187,6 , 3193,4 , 2, 1, 7, 7, 7 }, // Punjabi/Gurmukhi/India
+ { 92, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 80,18 , 18,7 , 25,12 , 14672,67 , 14672,67 , 158,27 , 14672,67 , 14672,67 , 158,27 , 7710,37 , 7710,37 , 85,14 , 7710,37 , 7710,37 , 85,14 , 0,2 , 0,2 , {80,75,82}, 303,1 , 10135,13 , 8,5 , 4,0 , 3197,6 , 3203,6 , 0, 0, 7, 6, 7 }, // Punjabi/Arabic/Pakistan
+ { 93, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 193,18 , 274,8 , 8,10 , 14739,48 , 14787,128 , 158,27 , 14739,48 , 14787,128 , 158,27 , 7747,28 , 7775,53 , 7828,14 , 7747,28 , 7775,53 , 7828,14 , 100,4 , 98,4 , {80,69,78}, 304,3 , 0,7 , 8,5 , 4,0 , 3209,8 , 3217,4 , 2, 1, 7, 6, 7 }, // Quechua/Latin/Peru
+ { 93, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 193,18 , 274,8 , 8,10 , 14739,48 , 14787,128 , 158,27 , 14739,48 , 14787,128 , 158,27 , 7747,28 , 7775,53 , 7828,14 , 7747,28 , 7775,53 , 7828,14 , 100,4 , 98,4 , {66,79,66}, 307,2 , 0,7 , 8,5 , 4,0 , 3209,8 , 3221,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Bolivia
+ { 93, 7, 63, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 193,18 , 274,8 , 8,10 , 14739,48 , 14787,128 , 158,27 , 14739,48 , 14787,128 , 158,27 , 7747,28 , 7775,53 , 7828,14 , 7747,28 , 7775,53 , 7828,14 , 100,4 , 98,4 , {85,83,68}, 6,1 , 0,7 , 8,5 , 4,0 , 3209,8 , 3228,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Ecuador
+ { 94, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 353,8 , 981,28 , 37,5 , 8,10 , 14915,67 , 14982,92 , 15074,24 , 14915,67 , 14982,92 , 15074,24 , 7842,23 , 7865,56 , 7921,14 , 7842,23 , 7865,56 , 7921,14 , 244,2 , 268,2 , {67,72,70}, 240,3 , 10148,46 , 13,5 , 4,0 , 3235,9 , 3244,6 , 2, 0, 1, 6, 7 }, // Romansh/Latin/Switzerland
+ { 95, 7, 177, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 519,8 , 519,8 , 918,10 , 10,17 , 37,5 , 8,10 , 15098,60 , 15158,98 , 15256,24 , 15098,60 , 15280,98 , 15256,24 , 7935,28 , 7963,48 , 3019,14 , 7935,28 , 8011,48 , 3019,14 , 100,4 , 98,4 , {82,79,78}, 309,3 , 10194,57 , 13,5 , 4,0 , 3250,6 , 3256,7 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Romania
+ { 95, 7, 141, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 519,8 , 519,8 , 918,10 , 10,17 , 37,5 , 8,10 , 15098,60 , 15158,98 , 15256,24 , 15098,60 , 15280,98 , 15256,24 , 7935,28 , 7963,48 , 3019,14 , 7935,28 , 8011,48 , 3019,14 , 100,4 , 98,4 , {77,68,76}, 312,1 , 10251,69 , 13,5 , 4,0 , 3263,13 , 3276,17 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Moldova
+ { 96, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 42,4 , 137,9 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {82,85,66}, 313,4 , 10320,89 , 13,5 , 4,0 , 3293,7 , 3300,6 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Russia
+ { 96, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 42,4 , 137,9 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {66,89,82}, 144,2 , 10409,94 , 13,5 , 4,0 , 3293,7 , 465,8 , 0, 0, 1, 6, 7 }, // Russian/Cyrillic/Belarus
+ { 96, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 42,4 , 137,9 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {75,90,84}, 262,1 , 10503,83 , 13,5 , 4,0 , 3293,7 , 3306,9 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kazakhstan
+ { 96, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 42,4 , 137,9 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {75,71,83}, 263,3 , 10586,81 , 13,5 , 4,0 , 3293,7 , 3315,8 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kyrgyzstan
+ { 96, 2, 141, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 42,4 , 137,9 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {77,68,76}, 312,1 , 10667,79 , 13,5 , 4,0 , 3293,7 , 3323,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Moldova
+ { 96, 2, 222, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 125,7 , 125,7 , 158,8 , 331,22 , 37,5 , 8,10 , 15378,62 , 10618,80 , 10535,24 , 15440,63 , 15503,82 , 10535,24 , 8059,21 , 8080,62 , 8142,14 , 8156,21 , 8177,62 , 8156,21 , 0,2 , 0,2 , {85,65,72}, 317,1 , 10746,92 , 13,5 , 4,0 , 3293,7 , 3330,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Ukraine
+ { 98, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 15585,48 , 15633,91 , 15724,24 , 15585,48 , 15633,91 , 15724,24 , 8239,28 , 8267,66 , 8333,14 , 8239,28 , 8267,66 , 8333,14 , 273,2 , 270,2 , {88,65,70}, 32,4 , 10838,25 , 4,4 , 29,5 , 3337,5 , 3342,22 , 0, 0, 1, 6, 7 }, // Sango/Latin/CentralAfricanRepublic
+ { 99, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {73,78,82}, 127,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 7, 7 }, // Sanskrit/Devanagari/India
+ { 100, 2, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15748,48 , 15796,81 , 12080,24 , 15748,48 , 15796,81 , 12080,24 , 8347,28 , 8375,52 , 8427,14 , 8347,28 , 8375,52 , 8427,14 , 275,9 , 272,8 , {82,83,68}, 318,3 , 10863,58 , 13,5 , 4,0 , 3364,6 , 3370,6 , 0, 0, 1, 6, 7 }, // Serbian/Cyrillic/Serbia
+ { 100, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 1009,7 , 1016,20 , 37,5 , 8,10 , 15877,48 , 15925,81 , 16006,24 , 15877,48 , 15925,81 , 16006,24 , 8441,28 , 8469,54 , 2142,14 , 8441,28 , 8469,54 , 2142,14 , 284,9 , 280,8 , {66,65,77}, 161,2 , 10921,174 , 13,5 , 4,0 , 3376,6 , 594,19 , 2, 1, 1, 6, 7 }, // Serbian/Latin/BosniaAndHerzegowina
+ { 100, 7, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15877,48 , 15925,81 , 16006,24 , 15877,48 , 15925,81 , 16006,24 , 8441,28 , 8469,54 , 2142,14 , 8441,28 , 8469,54 , 2142,14 , 284,9 , 280,8 , {69,85,82}, 14,1 , 11095,23 , 13,5 , 4,0 , 3376,6 , 3382,9 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Montenegro
+ { 100, 7, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15877,48 , 15925,81 , 16006,24 , 15877,48 , 15925,81 , 16006,24 , 8441,28 , 8469,54 , 2142,14 , 8441,28 , 8469,54 , 2142,14 , 284,9 , 280,8 , {82,83,68}, 318,3 , 11118,58 , 13,5 , 4,0 , 3376,6 , 3391,6 , 0, 0, 1, 6, 7 }, // Serbian/Latin/Serbia
+ { 100, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 1009,7 , 1016,20 , 37,5 , 8,10 , 15748,48 , 15796,81 , 12080,24 , 15748,48 , 15796,81 , 12080,24 , 8347,28 , 8375,52 , 8427,14 , 8347,28 , 8375,52 , 8427,14 , 275,9 , 272,8 , {66,65,77}, 321,2 , 11176,174 , 13,5 , 4,0 , 3364,6 , 3397,19 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/BosniaAndHerzegowina
+ { 100, 2, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15748,48 , 15796,81 , 12080,24 , 15748,48 , 15796,81 , 12080,24 , 8347,28 , 8375,52 , 8427,14 , 8347,28 , 8375,52 , 8427,14 , 275,9 , 272,8 , {69,85,82}, 14,1 , 11350,23 , 13,5 , 4,0 , 3364,6 , 3416,9 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Montenegro
+ { 100, 2, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15748,48 , 15796,81 , 12080,24 , 15748,48 , 15796,81 , 12080,24 , 8347,28 , 8375,52 , 8427,14 , 8347,28 , 8375,52 , 8427,14 , 275,9 , 272,8 , {69,85,82}, 14,1 , 11350,23 , 13,5 , 4,0 , 3364,6 , 3425,6 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Kosovo
+ { 100, 7, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 172,7 , 172,7 , 1009,7 , 1016,20 , 146,5 , 151,10 , 15877,48 , 15925,81 , 16006,24 , 15877,48 , 15925,81 , 16006,24 , 8441,28 , 8469,54 , 2142,14 , 8441,28 , 8469,54 , 2142,14 , 284,9 , 280,8 , {69,85,82}, 14,1 , 11095,23 , 13,5 , 4,0 , 3376,6 , 3431,6 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Kosovo
+ { 101, 2, 81, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 527,9 , 527,9 , 158,8 , 1036,23 , 37,5 , 8,10 , 16030,62 , 16092,82 , 10535,24 , 16174,59 , 16233,86 , 10535,24 , 8523,28 , 8551,61 , 8612,14 , 8626,28 , 8654,61 , 8612,14 , 293,15 , 288,15 , {71,69,76}, 0,0 , 11373,17 , 8,5 , 4,0 , 3437,4 , 3441,11 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Georgia
+ { 101, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 527,9 , 527,9 , 158,8 , 1036,23 , 37,5 , 8,10 , 16030,62 , 16092,82 , 10535,24 , 16174,59 , 16233,86 , 10535,24 , 8523,28 , 8551,61 , 8612,14 , 8626,28 , 8654,61 , 8612,14 , 293,15 , 288,15 , {82,85,66}, 313,4 , 11390,17 , 8,5 , 4,0 , 3437,4 , 3452,6 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Russia
+ { 102, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Southern Sotho/Latin/SouthAfrica
+ { 103, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tswana/Latin/SouthAfrica
+ { 104, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 16319,47 , 16366,100 , 16466,24 , 16319,47 , 16366,100 , 16466,24 , 8715,32 , 8747,55 , 8802,14 , 8715,32 , 8747,55 , 8802,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 11407,22 , 4,4 , 4,0 , 3458,8 , 1698,8 , 2, 1, 7, 6, 7 }, // Shona/Latin/Zimbabwe
+ { 105, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {80,75,82}, 190,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 7, 6, 7 }, // Sindhi/Arabic/Pakistan
+ { 106, 32, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 536,9 , 545,8 , 53,10 , 63,17 , 360,7 , 367,12 , 16490,59 , 16549,96 , 16645,32 , 16677,61 , 16549,96 , 16645,32 , 8816,39 , 8855,62 , 8917,19 , 8816,39 , 8855,62 , 8917,19 , 308,5 , 303,4 , {76,75,82}, 323,3 , 11429,58 , 4,4 , 4,0 , 3466,5 , 3471,11 , 2, 1, 1, 6, 7 }, // Sinhala/Sinhala/SriLanka
+ { 107, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Swati/Latin/SouthAfrica
+ { 108, 7, 191, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 189,7 , 189,7 , 158,8 , 542,18 , 42,4 , 137,9 , 16738,48 , 16786,82 , 16006,24 , 16738,48 , 16868,89 , 16006,24 , 8936,21 , 8957,52 , 9009,14 , 8936,21 , 8957,52 , 9009,14 , 313,10 , 307,10 , {69,85,82}, 14,1 , 11487,26 , 13,5 , 4,0 , 3482,10 , 3492,9 , 2, 1, 1, 6, 7 }, // Slovak/Latin/Slovakia
+ { 109, 7, 192, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 553,8 , 553,8 , 1059,9 , 1068,19 , 37,5 , 8,10 , 15877,48 , 16957,86 , 16006,24 , 17043,59 , 16957,86 , 16006,24 , 9023,28 , 9051,52 , 9103,14 , 9117,35 , 9051,52 , 9103,14 , 323,4 , 317,4 , {69,85,82}, 14,1 , 11513,28 , 13,5 , 4,0 , 3501,11 , 3512,9 , 2, 1, 1, 6, 7 }, // Slovenian/Latin/Slovenia
+ { 110, 7, 194, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1087,19 , 18,7 , 25,12 , 17102,48 , 17150,189 , 17339,24 , 17102,48 , 17150,189 , 17339,24 , 9152,28 , 9180,47 , 9227,14 , 9152,28 , 9180,47 , 9227,14 , 327,3 , 321,3 , {83,79,83}, 100,1 , 11541,22 , 4,4 , 4,0 , 3521,8 , 3529,10 , 0, 0, 1, 6, 7 }, // Somali/Latin/Somalia
+ { 110, 7, 59, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1087,19 , 18,7 , 25,12 , 17102,48 , 17150,189 , 17339,24 , 17102,48 , 17150,189 , 17339,24 , 9152,28 , 9180,47 , 9227,14 , 9152,28 , 9180,47 , 9227,14 , 327,3 , 321,3 , {68,74,70}, 43,3 , 11563,21 , 4,4 , 4,0 , 3521,8 , 3539,7 , 0, 0, 6, 6, 7 }, // Somali/Latin/Djibouti
+ { 110, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1087,19 , 18,7 , 25,12 , 17102,48 , 17150,189 , 17339,24 , 17102,48 , 17150,189 , 17339,24 , 9152,28 , 9180,47 , 9227,14 , 9152,28 , 9180,47 , 9227,14 , 327,3 , 321,3 , {69,84,66}, 0,2 , 11584,22 , 4,4 , 4,0 , 3521,8 , 3546,8 , 2, 1, 7, 6, 7 }, // Somali/Latin/Ethiopia
+ { 110, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1087,19 , 18,7 , 25,12 , 17102,48 , 17150,189 , 17339,24 , 17102,48 , 17150,189 , 17339,24 , 9152,28 , 9180,47 , 9227,14 , 9152,28 , 9180,47 , 9227,14 , 327,3 , 321,3 , {75,69,83}, 2,3 , 0,7 , 4,4 , 4,0 , 3521,8 , 3554,7 , 2, 1, 7, 6, 7 }, // Somali/Latin/Kenya
+ { 111, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 42,4 , 349,11 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 7828,14 , 9276,35 , 9311,53 , 7828,14 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 3561,17 , 2297,6 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Spain
+ { 111, 7, 10, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {65,82,83}, 6,1 , 11606,51 , 4,4 , 4,0 , 3578,7 , 3585,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Argentina
+ { 111, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {66,79,66}, 307,2 , 11657,35 , 4,4 , 4,0 , 3578,7 , 3221,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Bolivia
+ { 111, 7, 43, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 353,8 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {67,76,80}, 6,1 , 11692,45 , 4,4 , 29,5 , 3578,7 , 3594,5 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Chile
+ { 111, 7, 47, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 512,7 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {67,79,80}, 6,1 , 11737,54 , 4,4 , 4,0 , 3578,7 , 3599,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Colombia
+ { 111, 7, 52, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {67,82,67}, 326,1 , 11791,67 , 4,4 , 4,0 , 3578,7 , 3607,10 , 0, 0, 1, 6, 7 }, // Spanish/Latin/CostaRica
+ { 111, 7, 55, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {67,85,80}, 6,1 , 11858,42 , 4,4 , 4,0 , 3578,7 , 3617,4 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Cuba
+ { 111, 7, 61, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {68,79,80}, 6,1 , 11900,54 , 4,4 , 4,0 , 3578,7 , 3621,20 , 2, 1, 7, 6, 7 }, // Spanish/Latin/DominicanRepublic
+ { 111, 7, 63, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {85,83,68}, 6,1 , 11954,70 , 4,4 , 29,5 , 3578,7 , 3228,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ecuador
+ { 111, 7, 65, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {85,83,68}, 6,1 , 11954,70 , 4,4 , 4,0 , 3578,7 , 3641,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/ElSalvador
+ { 111, 7, 66, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 42,4 , 349,11 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 7828,14 , 9276,35 , 9311,53 , 7828,14 , 84,5 , 82,5 , {88,65,70}, 32,4 , 12024,53 , 4,4 , 4,0 , 3578,7 , 3652,17 , 0, 0, 1, 6, 7 }, // Spanish/Latin/EquatorialGuinea
+ { 111, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 512,7 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {71,84,81}, 327,1 , 12077,70 , 4,4 , 4,0 , 3578,7 , 3669,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Guatemala
+ { 111, 7, 96, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 1106,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {72,78,76}, 312,1 , 12147,60 , 4,4 , 4,0 , 3578,7 , 3678,8 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Honduras
+ { 111, 7, 139, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 27,8 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17687,48 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 3019,14 , 100,4 , 98,4 , {77,88,78}, 6,1 , 12207,48 , 4,4 , 4,0 , 3686,17 , 3703,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Mexico
+ { 111, 7, 155, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {78,73,79}, 328,2 , 12255,69 , 4,4 , 4,0 , 3578,7 , 3709,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Nicaragua
+ { 111, 7, 166, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 1133,8 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {80,65,66}, 330,3 , 12324,54 , 4,4 , 4,0 , 3578,7 , 3718,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Panama
+ { 111, 7, 168, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {80,89,71}, 250,1 , 12378,61 , 8,5 , 18,6 , 3578,7 , 3724,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Paraguay
+ { 111, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 512,7 , 954,27 , 18,7 , 25,12 , 17735,60 , 17795,88 , 17513,24 , 17883,60 , 17943,88 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {80,69,78}, 304,3 , 12439,62 , 4,4 , 4,0 , 3578,7 , 3217,4 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Peru
+ { 111, 7, 170, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 42,4 , 349,11 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 7828,14 , 9276,35 , 9311,53 , 7828,14 , 84,5 , 82,5 , {80,72,80}, 193,1 , 12501,48 , 13,5 , 4,0 , 3578,7 , 3732,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Philippines
+ { 111, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 1133,8 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {85,83,68}, 6,1 , 11954,70 , 4,4 , 4,0 , 3578,7 , 1369,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/PuertoRico
+ { 111, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 11954,70 , 4,4 , 4,0 , 3578,7 , 3741,14 , 2, 1, 7, 6, 7 }, // Spanish/Latin/UnitedStates
+ { 111, 7, 227, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17735,60 , 17795,88 , 17513,24 , 17883,60 , 17943,88 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {85,89,85}, 6,1 , 12549,48 , 8,5 , 4,0 , 3578,7 , 3755,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Uruguay
+ { 111, 7, 231, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {86,69,70}, 333,3 , 12597,64 , 4,4 , 29,5 , 3578,7 , 3762,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Venezuela
+ { 111, 7, 238, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 42,4 , 349,11 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 7828,14 , 9276,35 , 9311,53 , 7828,14 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 3578,7 , 3771,14 , 2, 1, 1, 6, 7 }, // Spanish/Latin/CanaryIslands
+ { 111, 7, 246, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 18,7 , 25,12 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 3019,14 , 9276,35 , 9311,53 , 9364,14 , 84,5 , 82,5 , {0,0,0}, 0,0 , 12661,0 , 4,4 , 4,0 , 3785,23 , 3808,13 , 2, 1, 1, 6, 7 }, // Spanish/Latin/LatinAmericaAndTheCaribbean
+ { 111, 7, 250, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 954,27 , 42,4 , 349,11 , 17363,61 , 17424,89 , 17513,24 , 17537,61 , 17598,89 , 17513,24 , 9241,35 , 7775,53 , 7828,14 , 9276,35 , 9311,53 , 7828,14 , 84,5 , 82,5 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 3578,7 , 3821,15 , 2, 1, 1, 6, 7 }, // Spanish/Latin/CeutaAndMelilla
+ { 113, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 568,9 , 577,8 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 18079,84 , 134,24 , 18031,48 , 18079,84 , 134,24 , 9378,60 , 9378,60 , 85,14 , 9378,60 , 9378,60 , 85,14 , 0,2 , 0,2 , {84,90,83}, 204,3 , 12661,67 , 4,4 , 4,0 , 3836,9 , 1523,8 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Tanzania
+ { 113, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 568,9 , 577,8 , 534,8 , 98,16 , 37,5 , 8,10 , 18031,48 , 18079,84 , 18163,24 , 18187,48 , 18235,188 , 134,24 , 9378,60 , 9378,60 , 9438,14 , 9452,28 , 9480,93 , 85,14 , 330,10 , 324,10 , {67,68,70}, 226,2 , 12728,55 , 4,4 , 4,0 , 3836,9 , 3845,32 , 2, 1, 1, 6, 7 }, // Swahili/Latin/CongoKinshasa
+ { 113, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 568,9 , 577,8 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 18079,84 , 134,24 , 18031,48 , 18079,84 , 134,24 , 9378,60 , 9378,60 , 85,14 , 9378,60 , 9378,60 , 85,14 , 0,2 , 0,2 , {75,69,83}, 2,3 , 12783,58 , 4,4 , 4,0 , 3836,9 , 1125,5 , 2, 1, 7, 6, 7 }, // Swahili/Latin/Kenya
+ { 113, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 568,9 , 577,8 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 18079,84 , 134,24 , 18031,48 , 18079,84 , 134,24 , 9378,60 , 9378,60 , 85,14 , 9378,60 , 9378,60 , 85,14 , 0,2 , 0,2 , {85,71,88}, 209,3 , 12841,61 , 4,4 , 4,0 , 3836,9 , 1588,6 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Uganda
+ { 114, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 585,9 , 585,9 , 53,10 , 98,16 , 37,5 , 379,16 , 18423,59 , 18482,86 , 134,24 , 18568,59 , 18627,86 , 134,24 , 9573,28 , 9601,50 , 2333,14 , 9651,29 , 9680,50 , 2333,14 , 340,2 , 334,2 , {83,69,75}, 214,2 , 12902,45 , 13,5 , 4,0 , 3877,7 , 3884,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Sweden
+ { 114, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 585,9 , 585,9 , 1141,10 , 98,16 , 37,5 , 379,16 , 18423,59 , 18482,86 , 134,24 , 18568,59 , 18627,86 , 134,24 , 9573,28 , 9601,50 , 2333,14 , 9651,29 , 9680,50 , 2333,14 , 340,2 , 334,2 , {69,85,82}, 14,1 , 8404,19 , 13,5 , 4,0 , 3877,7 , 3891,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Finland
+ { 114, 7, 248, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 585,9 , 585,9 , 53,10 , 98,16 , 37,5 , 379,16 , 18423,59 , 18482,86 , 134,24 , 18568,59 , 18627,86 , 134,24 , 9573,28 , 9601,50 , 2333,14 , 9651,29 , 9680,50 , 2333,14 , 340,2 , 334,2 , {69,85,82}, 14,1 , 8404,19 , 13,5 , 4,0 , 3877,7 , 3898,5 , 2, 1, 1, 6, 7 }, // Swedish/Latin/AlandIslands
+ { 116, 2, 209, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {84,74,83}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tajik/Cyrillic/Tajikistan
+ { 117, 27, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 594,13 , 594,13 , 928,6 , 193,18 , 18,7 , 25,12 , 18713,58 , 18771,86 , 18857,31 , 18713,58 , 18888,86 , 18857,31 , 9730,20 , 9750,49 , 9730,20 , 9730,20 , 9750,49 , 9730,20 , 342,8 , 336,8 , {73,78,82}, 127,1 , 12947,49 , 8,5 , 4,0 , 3903,5 , 3908,7 , 2, 1, 7, 7, 7 }, // Tamil/Tamil/India
+ { 117, 27, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 594,13 , 594,13 , 928,6 , 193,18 , 18,7 , 25,12 , 18713,58 , 18771,86 , 18857,31 , 18713,58 , 18888,86 , 18857,31 , 9730,20 , 9750,49 , 9730,20 , 9730,20 , 9750,49 , 9730,20 , 342,8 , 336,8 , {77,89,82}, 188,2 , 12996,61 , 8,5 , 4,0 , 3903,5 , 3915,7 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Malaysia
+ { 117, 27, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 594,13 , 594,13 , 928,6 , 193,18 , 18,7 , 25,12 , 18713,58 , 18771,86 , 18857,31 , 18713,58 , 18888,86 , 18857,31 , 9730,20 , 9750,49 , 9730,20 , 9730,20 , 9750,49 , 9730,20 , 342,8 , 336,8 , {83,71,68}, 6,1 , 13057,61 , 8,5 , 4,0 , 3903,5 , 3922,11 , 2, 1, 7, 6, 7 }, // Tamil/Tamil/Singapore
+ { 117, 27, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 594,13 , 594,13 , 928,6 , 193,18 , 18,7 , 25,12 , 18713,58 , 18771,86 , 18857,31 , 18713,58 , 18888,86 , 18857,31 , 9730,20 , 9750,49 , 9730,20 , 9730,20 , 9750,49 , 9730,20 , 342,8 , 336,8 , {76,75,82}, 336,3 , 13118,49 , 8,5 , 4,0 , 3903,5 , 3933,6 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/SriLanka
+ { 118, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {82,85,66}, 135,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tatar/Cyrillic/Russia
+ { 119, 28, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 607,11 , 607,11 , 353,8 , 1151,18 , 18,7 , 25,12 , 18974,66 , 19040,86 , 19126,31 , 19157,62 , 19040,86 , 19126,31 , 9799,32 , 9831,60 , 9891,18 , 9799,32 , 9831,60 , 9891,18 , 350,4 , 344,4 , {73,78,82}, 127,1 , 13167,26 , 4,4 , 4,0 , 3939,6 , 3945,9 , 2, 1, 7, 7, 7 }, // Telugu/Telugu/India
+ { 120, 30, 211, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 158,5 , 158,5 , 618,8 , 626,7 , 283,6 , 1169,19 , 37,5 , 395,28 , 19219,63 , 19282,98 , 19219,63 , 19219,63 , 19282,98 , 19219,63 , 9909,23 , 9932,68 , 10000,16 , 9909,23 , 9932,68 , 10000,16 , 354,10 , 348,10 , {84,72,66}, 339,3 , 13193,19 , 4,4 , 4,0 , 3954,3 , 3954,3 , 2, 1, 7, 6, 7 }, // Thai/Thai/Thailand
+ { 121, 31, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 2652,63 , 19380,158 , 158,27 , 2652,63 , 19380,158 , 158,27 , 10016,51 , 10067,79 , 10146,21 , 10016,51 , 10067,79 , 10146,21 , 364,7 , 358,8 , {67,78,89}, 342,1 , 13212,13 , 8,5 , 4,0 , 3957,8 , 3965,6 , 2, 1, 7, 6, 7 }, // Tibetan/Tibetan/China
+ { 121, 31, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 2652,63 , 19380,158 , 158,27 , 2652,63 , 19380,158 , 158,27 , 10016,51 , 10067,79 , 10146,21 , 10016,51 , 10067,79 , 10146,21 , 364,7 , 358,8 , {73,78,82}, 127,1 , 13225,22 , 8,5 , 4,0 , 3957,8 , 3971,7 , 2, 1, 7, 7, 7 }, // Tibetan/Tibetan/India
+ { 122, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1188,23 , 18,7 , 25,12 , 19538,46 , 19584,62 , 870,24 , 19538,46 , 19584,62 , 870,24 , 10167,29 , 10167,29 , 10196,14 , 10167,29 , 10167,29 , 10196,14 , 371,7 , 366,7 , {69,84,66}, 0,2 , 13247,16 , 4,4 , 4,0 , 3978,4 , 82,5 , 2, 1, 7, 6, 7 }, // Tigrinya/Ethiopic/Ethiopia
+ { 122, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1211,23 , 18,7 , 25,12 , 19646,46 , 19692,54 , 870,24 , 19646,46 , 19692,54 , 870,24 , 10210,29 , 10210,29 , 10196,14 , 10210,29 , 10210,29 , 10196,14 , 371,7 , 366,7 , {69,82,78}, 46,3 , 0,7 , 4,4 , 4,0 , 3978,4 , 3982,4 , 2, 1, 1, 6, 7 }, // Tigrinya/Ethiopic/Eritrea
+ { 123, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 633,8 , 633,8 , 633,8 , 633,8 , 283,6 , 98,16 , 18,7 , 25,12 , 19746,51 , 19797,87 , 19884,24 , 19746,51 , 19797,87 , 19884,24 , 10239,29 , 10268,60 , 10328,14 , 10239,29 , 10268,60 , 10328,14 , 0,2 , 0,2 , {84,79,80}, 207,2 , 13263,41 , 8,5 , 4,0 , 3986,13 , 1538,5 , 2, 1, 1, 6, 7 }, // Tongan/Latin/Tonga
+ { 124, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tsonga/Latin/SouthAfrica
+ { 125, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 641,8 , 641,8 , 1234,9 , 1243,16 , 37,5 , 8,10 , 19908,48 , 19956,75 , 20031,24 , 19908,48 , 19956,75 , 20031,24 , 10342,28 , 10370,54 , 10424,14 , 10342,28 , 10370,54 , 10424,14 , 378,2 , 373,2 , {84,82,89}, 270,1 , 13304,40 , 13,5 , 4,0 , 3999,6 , 4005,7 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Turkey
+ { 125, 7, 56, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 641,8 , 641,8 , 1234,9 , 1243,16 , 37,5 , 8,10 , 19908,48 , 19956,75 , 20031,24 , 19908,48 , 19956,75 , 20031,24 , 10342,28 , 10370,54 , 10424,14 , 10342,28 , 10370,54 , 10424,14 , 378,2 , 373,2 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 3999,6 , 4012,23 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Cyprus
+ { 126, 7, 218, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {84,77,84}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Turkmen/Latin/Turkmenistan
+ { 128, 1, 44, 46, 44, 59, 37, 48, 45, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 204,10 , 214,9 , 519,6 , 1259,18 , 18,7 , 25,12 , 20055,84 , 20139,84 , 158,27 , 20055,84 , 20139,84 , 158,27 , 10438,21 , 10459,55 , 10514,14 , 10438,21 , 10459,55 , 10514,14 , 380,12 , 375,12 , {67,78,89}, 147,1 , 13344,40 , 4,4 , 4,0 , 4035,8 , 4043,5 , 2, 1, 7, 6, 7 }, // Uighur/Arabic/China
+ { 129, 2, 222, 44, 160, 59, 37, 48, 45, 43, 1077, 171, 187, 8222, 8220, 0,6 , 0,6 , 649,7 , 649,7 , 158,8 , 1277,22 , 37,5 , 8,10 , 20223,48 , 20271,95 , 20366,24 , 20390,67 , 20457,87 , 20366,24 , 10528,21 , 10549,56 , 10605,14 , 10528,21 , 10619,56 , 10605,14 , 392,2 , 387,2 , {85,65,72}, 317,1 , 13384,49 , 13,5 , 4,0 , 4048,10 , 4058,7 , 2, 1, 1, 6, 7 }, // Ukrainian/Cyrillic/Ukraine
+ { 130, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 656,10 , 666,9 , 283,6 , 140,18 , 18,7 , 25,12 , 20544,68 , 20544,68 , 134,24 , 20544,68 , 20544,68 , 134,24 , 10675,39 , 10675,39 , 85,14 , 10675,39 , 10675,39 , 85,14 , 394,9 , 389,9 , {80,75,82}, 190,2 , 13433,49 , 8,5 , 4,0 , 4065,4 , 4069,7 , 0, 0, 7, 6, 7 }, // Urdu/Arabic/Pakistan
+ { 130, 1, 100, 46, 44, 59, 37, 1776, 45, 43, 1602, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 675,6 , 675,6 , 283,6 , 140,18 , 18,7 , 25,12 , 20544,68 , 20544,68 , 134,24 , 20544,68 , 20544,68 , 134,24 , 10675,39 , 10675,39 , 85,14 , 10675,39 , 10675,39 , 85,14 , 394,9 , 389,9 , {73,78,82}, 127,1 , 13482,42 , 8,5 , 4,0 , 4065,4 , 4076,5 , 2, 1, 7, 7, 7 }, // Urdu/Arabic/India
+ { 131, 7, 228, 44, 160, 59, 37, 48, 45, 43, 101, 34, 34, 39, 39, 0,6 , 0,6 , 681,8 , 681,8 , 683,8 , 691,18 , 37,5 , 8,10 , 20612,52 , 20664,75 , 20739,24 , 20612,52 , 20664,75 , 20739,24 , 10714,34 , 10748,61 , 10809,14 , 10714,34 , 10748,61 , 10809,14 , 403,2 , 398,2 , {85,90,83}, 343,4 , 13524,55 , 8,5 , 4,0 , 4081,9 , 4090,11 , 0, 0, 1, 6, 7 }, // Uzbek/Latin/Uzbekistan
+ { 131, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 420,8 , 1299,33 , 42,4 , 349,11 , 20763,48 , 14053,68 , 158,27 , 20763,48 , 14053,68 , 158,27 , 10823,21 , 7303,49 , 85,14 , 10823,21 , 7303,49 , 85,14 , 0,2 , 0,2 , {65,70,78}, 288,1 , 13579,13 , 13,5 , 4,0 , 4101,6 , 3010,9 , 0, 0, 6, 4, 5 }, // Uzbek/Arabic/Afghanistan
+ { 131, 2, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 683,8 , 691,18 , 37,5 , 8,10 , 10407,48 , 20811,71 , 10535,24 , 10407,48 , 20811,71 , 10535,24 , 10844,28 , 10872,53 , 10925,14 , 10844,28 , 10872,53 , 10925,14 , 0,2 , 0,2 , {85,90,83}, 347,3 , 13592,49 , 8,5 , 4,0 , 4107,5 , 4112,10 , 0, 0, 1, 6, 7 }, // Uzbek/Cyrillic/Uzbekistan
+ { 132, 7, 232, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 689,8 , 689,8 , 120,10 , 1332,31 , 37,5 , 8,10 , 20882,75 , 20957,99 , 158,27 , 21056,75 , 21131,99 , 158,27 , 10939,33 , 10972,55 , 11027,21 , 10939,33 , 10972,55 , 11027,21 , 405,2 , 400,2 , {86,78,68}, 350,1 , 13641,33 , 13,5 , 4,0 , 4122,10 , 4132,8 , 0, 0, 1, 6, 7 }, // Vietnamese/Latin/Vietnam
+ { 134, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 10,17 , 37,5 , 8,10 , 21230,52 , 21282,87 , 21369,26 , 21395,62 , 21282,87 , 21369,26 , 11048,29 , 11077,77 , 11154,15 , 11169,30 , 11077,77 , 11154,15 , 0,2 , 0,2 , {71,66,80}, 125,1 , 13674,91 , 4,4 , 4,0 , 4140,7 , 4147,16 , 2, 1, 1, 6, 7 }, // Welsh/Latin/UnitedKingdom
+ { 135, 7, 187, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Wolof/Latin/Senegal
+ { 136, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Xhosa/Latin/SouthAfrica
+ { 138, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 21457,73 , 21530,121 , 158,27 , 21457,73 , 21530,121 , 158,27 , 11199,44 , 11243,69 , 85,14 , 11199,44 , 11243,69 , 85,14 , 407,5 , 402,5 , {78,71,78}, 192,1 , 13765,34 , 4,4 , 4,0 , 4163,10 , 4173,18 , 2, 1, 1, 6, 7 }, // Yoruba/Latin/Nigeria
+ { 138, 7, 23, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 21651,74 , 21725,134 , 158,27 , 21651,74 , 21725,134 , 158,27 , 11312,44 , 11356,69 , 85,14 , 11312,44 , 11356,69 , 85,14 , 412,5 , 407,5 , {88,79,70}, 218,3 , 13799,34 , 4,4 , 4,0 , 4163,10 , 4191,16 , 0, 0, 1, 6, 7 }, // Yoruba/Latin/Benin
+ { 140, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 697,9 , 706,10 , 519,6 , 35,18 , 18,7 , 25,12 , 21859,48 , 21907,90 , 134,24 , 21859,48 , 21907,90 , 134,24 , 11425,28 , 11453,67 , 11520,14 , 11425,28 , 11453,67 , 11534,14 , 417,7 , 412,8 , {90,65,82}, 5,1 , 13833,67 , 4,4 , 4,0 , 4207,7 , 4214,14 , 2, 1, 7, 6, 7 }, // Zulu/Latin/SouthAfrica
+ { 141, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 196,8 , 196,8 , 918,10 , 472,17 , 37,5 , 379,16 , 5518,48 , 13469,83 , 134,24 , 21997,59 , 13469,83 , 134,24 , 11548,28 , 11576,51 , 2333,14 , 11627,28 , 11576,51 , 2333,14 , 424,9 , 420,11 , {78,79,75}, 214,2 , 13900,42 , 13,5 , 4,0 , 4228,7 , 4235,5 , 2, 1, 1, 6, 7 }, // NorwegianNynorsk/Latin/Norway
+ { 142, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8217, 0,6 , 0,6 , 172,7 , 172,7 , 1363,9 , 1016,20 , 37,5 , 8,10 , 4859,48 , 22056,83 , 16006,24 , 4859,48 , 22056,83 , 16006,24 , 2056,28 , 2084,58 , 2142,14 , 2056,28 , 2084,58 , 2156,14 , 433,11 , 431,7 , {66,65,77}, 161,2 , 13942,174 , 13,5 , 4,0 , 4240,8 , 594,19 , 2, 1, 1, 6, 7 }, // Bosnian/Latin/BosniaAndHerzegowina
+ { 142, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 125,7 , 125,7 , 1009,7 , 1016,20 , 37,5 , 8,10 , 15748,48 , 22139,83 , 12080,24 , 15748,48 , 22139,83 , 12080,24 , 11655,28 , 11683,54 , 8427,14 , 11655,28 , 11683,54 , 8427,14 , 275,9 , 438,7 , {66,65,77}, 321,2 , 14116,151 , 13,5 , 4,0 , 4248,8 , 3397,19 , 2, 1, 1, 6, 7 }, // Bosnian/Cyrillic/BosniaAndHerzegowina
+ { 143, 29, 131, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {77,86,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 5, 6, 7 }, // Divehi/Thaana/Maldives
+ { 144, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 560,17 , 37,5 , 8,10 , 22222,102 , 22324,140 , 158,27 , 22222,102 , 22324,140 , 158,27 , 11737,30 , 11767,57 , 85,14 , 11737,30 , 11767,57 , 85,14 , 100,4 , 98,4 , {71,66,80}, 125,1 , 0,7 , 4,4 , 4,0 , 4256,5 , 4261,12 , 2, 1, 1, 6, 7 }, // Manx/Latin/IsleOfMan
+ { 145, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 98,16 , 37,5 , 8,10 , 22464,46 , 22510,130 , 158,27 , 22464,46 , 22510,130 , 158,27 , 11824,28 , 11852,61 , 85,14 , 11824,28 , 11852,61 , 85,14 , 100,4 , 98,4 , {71,66,80}, 125,1 , 0,7 , 4,4 , 4,0 , 4273,8 , 4281,14 , 2, 1, 1, 6, 7 }, // Cornish/Latin/UnitedKingdom
+ { 146, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 683,8 , 691,18 , 37,5 , 8,10 , 22640,48 , 22688,192 , 158,27 , 22640,48 , 22688,192 , 158,27 , 11913,28 , 11941,49 , 11990,14 , 11913,28 , 11941,49 , 11990,14 , 444,2 , 445,2 , {71,72,83}, 181,3 , 14267,17 , 4,4 , 4,0 , 4295,4 , 4299,5 , 2, 1, 1, 6, 7 }, // Akan/Latin/Ghana
+ { 147, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 928,6 , 98,16 , 18,7 , 25,12 , 22880,87 , 22880,87 , 158,27 , 22880,87 , 22880,87 , 158,27 , 6916,32 , 12004,55 , 85,14 , 6916,32 , 12004,55 , 85,14 , 237,5 , 447,5 , {73,78,82}, 127,1 , 0,7 , 8,5 , 4,0 , 4304,6 , 2525,4 , 2, 1, 7, 7, 7 }, // Konkani/Devanagari/India
+ { 148, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {71,72,83}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Ga/Latin/Ghana
+ { 149, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 22967,48 , 23015,86 , 158,27 , 22967,48 , 23015,86 , 158,27 , 12059,29 , 12088,57 , 85,14 , 12059,29 , 12088,57 , 85,14 , 54,4 , 452,4 , {78,71,78}, 192,1 , 14284,12 , 4,4 , 4,0 , 4310,4 , 1264,7 , 2, 1, 1, 6, 7 }, // Igbo/Latin/Nigeria
+ { 150, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 23101,48 , 23149,189 , 23338,24 , 23101,48 , 23149,189 , 23338,24 , 12145,28 , 12173,74 , 12247,14 , 12145,28 , 12173,74 , 12247,14 , 446,9 , 456,7 , {75,69,83}, 2,3 , 14296,23 , 4,4 , 4,0 , 4314,7 , 1125,5 , 2, 1, 7, 6, 7 }, // Kamba/Latin/Kenya
+ { 151, 33, 103, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {73,81,68}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 6 }, // Syriac/Syriac/Iraq
+ { 152, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Blin/Ethiopic/Eritrea
+ { 153, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Geez/Ethiopic/Ethiopia
+ { 155, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Sidamo/Latin/Ethiopia
+ { 156, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Atsam/Latin/Nigeria
+ { 157, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tigre/Ethiopic/Eritrea
+ { 158, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Jju/Latin/Nigeria
+ { 159, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 249,7 , 249,7 , 27,8 , 1372,27 , 37,5 , 8,10 , 23362,48 , 23410,77 , 23487,24 , 23362,48 , 23410,77 , 23487,24 , 12261,28 , 12289,50 , 3019,14 , 12261,28 , 12289,50 , 3019,14 , 455,2 , 463,2 , {69,85,82}, 14,1 , 2889,20 , 8,5 , 4,0 , 4321,6 , 4327,6 , 2, 1, 1, 6, 7 }, // Friulian/Latin/Italy
+ { 160, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Venda/Latin/SouthAfrica
+ { 161, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 716,11 , 727,10 , 519,6 , 1399,23 , 423,12 , 435,12 , 23511,48 , 23559,87 , 23646,24 , 23511,48 , 23559,87 , 23646,24 , 12339,28 , 12367,44 , 12411,14 , 12339,28 , 12367,44 , 12411,14 , 457,3 , 465,5 , {71,72,83}, 181,3 , 14319,37 , 4,4 , 4,0 , 4333,6 , 4339,12 , 2, 1, 1, 6, 7 }, // Ewe/Latin/Ghana
+ { 161, 7, 212, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 716,11 , 727,10 , 519,6 , 1399,23 , 423,12 , 435,12 , 23511,48 , 23559,87 , 23646,24 , 23511,48 , 23559,87 , 23646,24 , 12339,28 , 12367,44 , 12411,14 , 12339,28 , 12367,44 , 12411,14 , 457,3 , 465,5 , {88,79,70}, 218,3 , 14356,106 , 4,4 , 4,0 , 4333,6 , 4351,11 , 0, 0, 1, 6, 7 }, // Ewe/Latin/Togo
+ { 162, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Walamo/Ethiopic/Ethiopia
+ { 163, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 283,6 , 10,17 , 18,7 , 25,12 , 23670,59 , 23729,95 , 158,27 , 23670,59 , 23729,95 , 158,27 , 12425,21 , 12446,57 , 85,14 , 12425,21 , 12446,57 , 85,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 0,7 , 4,4 , 4,0 , 4362,14 , 4376,19 , 2, 1, 7, 6, 7 }, // Hawaiian/Latin/UnitedStates
+ { 164, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {78,71,78}, 192,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tyap/Latin/Nigeria
+ { 165, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {77,87,75}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Nyanja/Latin/Malawi
+ { 166, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 737,9 , 746,8 , 519,6 , 35,18 , 18,7 , 25,12 , 23824,48 , 23872,88 , 23960,24 , 23824,48 , 23872,88 , 23960,24 , 12503,28 , 12531,55 , 12586,14 , 12503,28 , 12531,55 , 12586,14 , 0,2 , 0,2 , {80,72,80}, 193,1 , 14462,58 , 4,4 , 4,0 , 4395,8 , 4403,9 , 2, 1, 7, 6, 7 }, // Filipino/Latin/Philippines
+ { 167, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 23984,86 , 134,24 , 7333,48 , 23984,86 , 134,24 , 12600,28 , 12628,63 , 3659,14 , 12600,28 , 12628,63 , 3659,14 , 122,5 , 470,4 , {67,72,70}, 240,3 , 14520,55 , 13,5 , 4,0 , 4412,16 , 4428,7 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Switzerland
+ { 167, 7, 74, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 23984,86 , 134,24 , 7333,48 , 23984,86 , 134,24 , 12600,28 , 12628,63 , 3659,14 , 12600,28 , 12628,63 , 3659,14 , 122,5 , 470,4 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 4412,16 , 4435,10 , 2, 1, 1, 6, 7 }, // Swiss German/Latin/France
+ { 167, 7, 123, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 158,8 , 542,18 , 37,5 , 8,10 , 7333,48 , 23984,86 , 134,24 , 7333,48 , 23984,86 , 134,24 , 12600,28 , 12628,63 , 3659,14 , 12600,28 , 12628,63 , 3659,14 , 122,5 , 470,4 , {67,72,70}, 240,3 , 14520,55 , 13,5 , 4,0 , 4412,16 , 4445,13 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Liechtenstein
+ { 168, 34, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 158,27 , 24070,38 , 158,27 , 158,27 , 24070,38 , 158,27 , 12691,21 , 12712,28 , 12740,14 , 12691,21 , 12712,28 , 12740,14 , 460,2 , 474,2 , {67,78,89}, 342,1 , 0,7 , 8,5 , 4,0 , 4458,3 , 4461,2 , 2, 1, 7, 6, 7 }, // Sichuan Yi/Yi/China
+ { 169, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {76,82,68}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Kpelle/Latin/Liberia
+ { 170, 7, 82, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Low German/Latin/Germany
+ { 171, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // South Ndebele/Latin/SouthAfrica
+ { 172, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Northern Sotho/Latin/SouthAfrica
+ { 173, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 223,8 , 223,8 , 53,10 , 63,17 , 37,5 , 8,10 , 24108,59 , 24167,145 , 24312,24 , 24108,59 , 24167,145 , 24312,24 , 12754,33 , 12787,75 , 12862,14 , 12754,33 , 12787,75 , 12862,14 , 462,11 , 476,13 , {78,79,75}, 214,2 , 14575,63 , 13,5 , 4,0 , 4463,15 , 4478,5 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Norway
+ { 173, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 223,8 , 223,8 , 53,10 , 63,17 , 37,5 , 8,10 , 24336,85 , 24167,145 , 24312,24 , 24336,85 , 24167,145 , 24312,24 , 12754,33 , 12876,65 , 12941,14 , 12754,33 , 12876,65 , 12941,14 , 462,11 , 476,13 , {69,85,82}, 14,1 , 14638,23 , 13,5 , 4,0 , 4463,15 , 4483,6 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Finland
+ { 173, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 223,8 , 223,8 , 53,10 , 63,17 , 37,5 , 8,10 , 24108,59 , 24167,145 , 24312,24 , 24108,59 , 24167,145 , 24312,24 , 12754,33 , 12787,75 , 12862,14 , 12754,33 , 12787,75 , 12862,14 , 462,11 , 476,13 , {83,69,75}, 214,2 , 14661,63 , 13,5 , 4,0 , 4463,15 , 4489,6 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Sweden
+ { 174, 7, 208, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {84,87,68}, 155,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Taroko/Latin/Taiwan
+ { 175, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 24421,48 , 24469,88 , 24557,24 , 24421,48 , 24469,88 , 24557,24 , 12955,28 , 12983,62 , 13045,14 , 12955,28 , 12983,62 , 13045,14 , 473,5 , 489,10 , {75,69,83}, 2,3 , 14724,24 , 4,4 , 4,0 , 4495,8 , 1125,5 , 2, 1, 7, 6, 7 }, // Gusii/Latin/Kenya
+ { 176, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 24581,48 , 24629,221 , 24850,24 , 24581,48 , 24629,221 , 24850,24 , 13059,28 , 13087,105 , 13192,14 , 13059,28 , 13087,105 , 13192,14 , 478,10 , 499,10 , {75,69,83}, 2,3 , 14724,24 , 4,4 , 4,0 , 4503,7 , 1125,5 , 2, 1, 7, 6, 7 }, // Taita/Latin/Kenya
+ { 177, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 24874,48 , 24922,77 , 24999,24 , 24874,48 , 24922,77 , 24999,24 , 13206,28 , 13234,59 , 13293,14 , 13206,28 , 13234,59 , 13293,14 , 488,6 , 509,7 , {88,79,70}, 218,3 , 14748,26 , 13,5 , 4,0 , 4510,6 , 4516,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Senegal
+ { 177, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 24874,48 , 24922,77 , 24999,24 , 24874,48 , 24922,77 , 24999,24 , 13206,28 , 13234,59 , 13293,14 , 13206,28 , 13234,59 , 13293,14 , 488,6 , 509,7 , {88,65,70}, 32,4 , 14774,25 , 13,5 , 4,0 , 4510,6 , 4524,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Cameroon
+ { 177, 7, 91, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 24874,48 , 24922,77 , 24999,24 , 24874,48 , 24922,77 , 24999,24 , 13206,28 , 13234,59 , 13293,14 , 13206,28 , 13234,59 , 13293,14 , 488,6 , 509,7 , {71,78,70}, 232,2 , 0,7 , 13,5 , 4,0 , 4510,6 , 4532,4 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Guinea
+ { 177, 7, 136, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 24874,48 , 24922,77 , 24999,24 , 24874,48 , 24922,77 , 24999,24 , 13206,28 , 13234,59 , 13293,14 , 13206,28 , 13234,59 , 13293,14 , 488,6 , 509,7 , {77,82,79}, 235,2 , 14799,22 , 13,5 , 4,0 , 4510,6 , 4536,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Mauritania
+ { 178, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 25023,48 , 25071,185 , 25256,24 , 25023,48 , 25071,185 , 25256,24 , 13307,28 , 13335,63 , 13398,14 , 13307,28 , 13335,63 , 13398,14 , 494,6 , 516,8 , {75,69,83}, 2,3 , 14821,23 , 4,4 , 4,0 , 4544,6 , 1125,5 , 2, 1, 7, 6, 7 }, // Kikuyu/Latin/Kenya
+ { 179, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 25280,48 , 25328,173 , 25501,24 , 25280,48 , 25328,173 , 25501,24 , 13412,28 , 13440,105 , 13545,14 , 13412,28 , 13440,105 , 13545,14 , 500,7 , 524,5 , {75,69,83}, 2,3 , 14844,25 , 4,4 , 4,0 , 4550,8 , 1125,5 , 2, 1, 7, 6, 7 }, // Samburu/Latin/Kenya
+ { 180, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 954,27 , 37,5 , 8,10 , 25525,48 , 25573,88 , 134,24 , 25525,48 , 25573,88 , 134,24 , 13559,28 , 13587,55 , 13642,14 , 13559,28 , 13587,55 , 13642,14 , 0,2 , 0,2 , {77,90,78}, 298,3 , 14869,28 , 0,4 , 4,0 , 4558,4 , 3133,10 , 2, 1, 7, 6, 7 }, // Sena/Latin/Mozambique
+ { 181, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 25661,52 , 25713,112 , 25825,24 , 25661,52 , 25713,112 , 25825,24 , 13656,28 , 13684,50 , 13734,14 , 13656,28 , 13684,50 , 13734,14 , 0,2 , 0,2 , {85,83,68}, 176,3 , 14897,24 , 4,4 , 4,0 , 4562,10 , 1698,8 , 2, 1, 7, 6, 7 }, // North Ndebele/Latin/Zimbabwe
+ { 182, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 25849,39 , 25888,194 , 26082,24 , 25849,39 , 25888,194 , 26082,24 , 13748,29 , 13777,65 , 13842,14 , 13748,29 , 13777,65 , 13842,14 , 507,8 , 529,7 , {84,90,83}, 204,3 , 14921,25 , 4,4 , 4,0 , 4572,9 , 1523,8 , 0, 0, 1, 6, 7 }, // Rombo/Latin/Tanzania
+ { 183, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 26106,48 , 26154,81 , 26235,24 , 26106,48 , 26154,81 , 26235,24 , 13856,30 , 13886,47 , 85,14 , 13856,30 , 13886,47 , 85,14 , 515,6 , 536,8 , {77,65,68}, 0,0 , 14946,21 , 0,4 , 4,0 , 4581,8 , 4589,6 , 2, 1, 6, 5, 6 }, // Tachelhit/Tifinagh/Morocco
+ { 183, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 26259,48 , 26307,81 , 26388,24 , 26259,48 , 26307,81 , 26388,24 , 13933,30 , 13963,48 , 85,14 , 13933,30 , 13963,48 , 85,14 , 521,6 , 544,8 , {77,65,68}, 0,0 , 14967,21 , 0,4 , 4,0 , 4595,9 , 4604,6 , 2, 1, 6, 5, 6 }, // Tachelhit/Latin/Morocco
+ { 184, 7, 3, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 26412,48 , 26460,84 , 26544,24 , 26412,48 , 26460,84 , 26544,24 , 14011,30 , 14041,51 , 14092,14 , 14011,30 , 14041,51 , 14092,14 , 527,7 , 552,9 , {68,90,68}, 216,2 , 14988,21 , 0,4 , 4,0 , 4610,9 , 4619,8 , 2, 1, 6, 5, 6 }, // Kabyle/Latin/Algeria
+ { 185, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 26568,48 , 26616,152 , 134,24 , 26568,48 , 26616,152 , 134,24 , 14106,28 , 14134,74 , 14208,14 , 14106,28 , 14134,74 , 14208,14 , 0,2 , 0,2 , {85,71,88}, 209,3 , 15009,26 , 4,4 , 4,0 , 4627,10 , 1588,6 , 0, 0, 1, 6, 7 }, // Nyankole/Latin/Uganda
+ { 186, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 26768,48 , 26816,254 , 27070,24 , 26768,48 , 26816,254 , 27070,24 , 14222,28 , 14250,82 , 14332,14 , 14222,28 , 14250,82 , 14332,14 , 534,7 , 561,7 , {84,90,83}, 204,3 , 15035,29 , 0,4 , 4,0 , 4637,6 , 4643,10 , 0, 0, 1, 6, 7 }, // Bena/Latin/Tanzania
+ { 187, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 27094,87 , 134,24 , 18031,48 , 27094,87 , 134,24 , 14346,28 , 14374,62 , 14436,14 , 14346,28 , 14374,62 , 14436,14 , 541,5 , 568,9 , {84,90,83}, 204,3 , 15064,27 , 4,4 , 4,0 , 4653,8 , 1523,8 , 0, 0, 1, 6, 7 }, // Vunjo/Latin/Tanzania
+ { 188, 7, 132, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 27181,47 , 27228,92 , 27320,24 , 27181,47 , 27228,92 , 27320,24 , 14450,28 , 14478,44 , 14522,14 , 14450,28 , 14478,44 , 14522,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 15091,24 , 4,4 , 4,0 , 4661,9 , 2049,4 , 0, 0, 1, 6, 7 }, // Bambara/Latin/Mali
+ { 188, 75, 132, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Bambara/Nko/Mali
+ { 189, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 27344,48 , 27392,207 , 27599,24 , 27344,48 , 27392,207 , 27599,24 , 14536,28 , 14564,64 , 14628,14 , 14536,28 , 14564,64 , 14628,14 , 546,2 , 577,2 , {75,69,83}, 2,3 , 14724,24 , 4,4 , 4,0 , 4670,6 , 1125,5 , 2, 1, 7, 6, 7 }, // Embu/Latin/Kenya
+ { 190, 12, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 519,6 , 35,18 , 18,7 , 25,12 , 27623,36 , 27659,58 , 27717,24 , 27623,36 , 27659,58 , 27717,24 , 14642,28 , 14670,49 , 14719,14 , 14642,28 , 14670,49 , 14719,14 , 548,3 , 579,6 , {85,83,68}, 6,1 , 15115,19 , 4,4 , 4,0 , 4676,3 , 4679,4 , 2, 1, 7, 6, 7 }, // Cherokee/Cherokee/UnitedStates
+ { 191, 7, 137, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 27741,47 , 27788,68 , 27856,24 , 27741,47 , 27788,68 , 27856,24 , 14733,27 , 14760,48 , 14808,14 , 14733,27 , 14760,48 , 14808,14 , 0,2 , 0,2 , {77,85,82}, 190,2 , 15134,21 , 8,5 , 4,0 , 4683,14 , 4697,5 , 0, 0, 1, 6, 7 }, // Morisyen/Latin/Mauritius
+ { 192, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 27880,264 , 134,24 , 18031,48 , 27880,264 , 134,24 , 14822,28 , 14850,133 , 13842,14 , 14822,28 , 14850,133 , 13842,14 , 551,4 , 585,5 , {84,90,83}, 204,3 , 15064,27 , 4,4 , 4,0 , 4702,10 , 1523,8 , 0, 0, 1, 6, 7 }, // Makonde/Latin/Tanzania
+ { 193, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28144,83 , 28227,111 , 28338,24 , 28144,83 , 28227,111 , 28338,24 , 14983,36 , 15019,63 , 15082,14 , 14983,36 , 15019,63 , 15082,14 , 555,3 , 590,3 , {84,90,83}, 204,3 , 15155,29 , 8,5 , 4,0 , 4712,8 , 4720,9 , 0, 0, 1, 6, 7 }, // Langi/Latin/Tanzania
+ { 194, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28362,48 , 28410,97 , 134,24 , 28362,48 , 28410,97 , 134,24 , 15096,28 , 15124,66 , 15190,14 , 15096,28 , 15124,66 , 15190,14 , 0,2 , 0,2 , {85,71,88}, 209,3 , 15184,26 , 0,4 , 4,0 , 4729,7 , 4736,7 , 0, 0, 1, 6, 7 }, // Ganda/Latin/Uganda
+ { 195, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28507,48 , 28555,83 , 28638,24 , 28507,48 , 28555,83 , 28638,24 , 15204,80 , 15204,80 , 85,14 , 15204,80 , 15204,80 , 85,14 , 558,8 , 593,7 , {90,77,87}, 143,1 , 0,7 , 4,4 , 4,0 , 4743,9 , 1692,6 , 2, 1, 1, 6, 7 }, // Bemba/Latin/Zambia
+ { 196, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 561,7 , 561,7 , 534,8 , 1422,27 , 37,5 , 8,10 , 28662,48 , 28710,85 , 134,24 , 28662,48 , 28710,85 , 134,24 , 15284,28 , 15312,73 , 15385,14 , 15284,28 , 15312,73 , 15399,14 , 244,2 , 240,2 , {67,86,69}, 297,1 , 15210,43 , 13,5 , 4,0 , 4752,12 , 4764,10 , 2, 1, 1, 6, 7 }, // Kabuverdianu/Latin/CapeVerde
+ { 197, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28795,48 , 28843,86 , 28929,24 , 28795,48 , 28843,86 , 28929,24 , 15413,28 , 15441,51 , 15492,14 , 15413,28 , 15441,51 , 15492,14 , 566,2 , 600,2 , {75,69,83}, 2,3 , 14724,24 , 4,4 , 4,0 , 4774,6 , 1125,5 , 2, 1, 7, 6, 7 }, // Meru/Latin/Kenya
+ { 198, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28953,49 , 29002,121 , 29123,24 , 28953,49 , 29002,121 , 29123,24 , 15506,28 , 15534,53 , 15587,14 , 15506,28 , 15534,53 , 15587,14 , 568,6 , 602,10 , {75,69,83}, 2,3 , 15253,26 , 4,4 , 4,0 , 4780,8 , 4788,12 , 2, 1, 7, 6, 7 }, // Kalenjin/Latin/Kenya
+ { 199, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 0,48 , 29147,136 , 134,24 , 0,48 , 29147,136 , 134,24 , 15601,23 , 15624,92 , 15716,14 , 15601,23 , 15624,92 , 15716,14 , 574,7 , 612,5 , {78,65,68}, 6,1 , 15279,22 , 4,4 , 4,0 , 4800,13 , 4813,8 , 2, 1, 1, 6, 7 }, // Nama/Latin/Namibia
+ { 200, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 27094,87 , 134,24 , 18031,48 , 27094,87 , 134,24 , 14346,28 , 14374,62 , 14436,14 , 14346,28 , 14374,62 , 14436,14 , 541,5 , 568,9 , {84,90,83}, 204,3 , 15064,27 , 4,4 , 4,0 , 4821,9 , 1523,8 , 0, 0, 1, 6, 7 }, // Machame/Latin/Tanzania
+ { 201, 7, 82, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 422,8 , 422,8 , 1449,10 , 1459,23 , 37,5 , 8,10 , 29283,59 , 29342,87 , 134,24 , 29429,48 , 29342,87 , 134,24 , 15730,28 , 15758,72 , 3659,14 , 15730,28 , 15758,72 , 3659,14 , 581,16 , 617,16 , {69,85,82}, 14,1 , 15301,11 , 13,5 , 4,0 , 4830,6 , 4836,11 , 2, 1, 1, 6, 7 }, // Colognian/Latin/Germany
+ { 202, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29477,51 , 29528,132 , 158,27 , 29477,51 , 29528,132 , 158,27 , 14346,28 , 15830,58 , 13842,14 , 14346,28 , 15830,58 , 13842,14 , 597,9 , 633,6 , {75,69,83}, 2,3 , 15312,25 , 4,4 , 4,0 , 4847,3 , 1125,5 , 2, 1, 7, 6, 7 }, // Masai/Latin/Kenya
+ { 202, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29477,51 , 29528,132 , 158,27 , 29477,51 , 29528,132 , 158,27 , 14346,28 , 15830,58 , 13842,14 , 14346,28 , 15830,58 , 13842,14 , 597,9 , 633,6 , {84,90,83}, 204,3 , 15337,28 , 4,4 , 4,0 , 4847,3 , 4850,8 , 0, 0, 1, 6, 7 }, // Masai/Latin/Tanzania
+ { 203, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 28362,48 , 28410,97 , 134,24 , 28362,48 , 28410,97 , 134,24 , 15888,35 , 15923,65 , 15988,14 , 15888,35 , 15923,65 , 15988,14 , 606,6 , 639,6 , {85,71,88}, 209,3 , 15184,26 , 13,5 , 4,0 , 4858,7 , 4736,7 , 0, 0, 1, 6, 7 }, // Soga/Latin/Uganda
+ { 204, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29660,48 , 18079,84 , 134,24 , 29660,48 , 18079,84 , 134,24 , 16002,21 , 16023,75 , 85,14 , 16002,21 , 16023,75 , 85,14 , 100,4 , 98,4 , {75,69,83}, 2,3 , 15365,23 , 4,4 , 45,6 , 4865,7 , 1125,5 , 2, 1, 7, 6, 7 }, // Luyia/Latin/Kenya
+ { 205, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29708,48 , 18079,84 , 134,24 , 29708,48 , 18079,84 , 134,24 , 16098,28 , 9378,60 , 14436,14 , 16098,28 , 9378,60 , 14436,14 , 612,9 , 645,8 , {84,90,83}, 204,3 , 15388,28 , 13,5 , 4,0 , 4872,6 , 4878,8 , 0, 0, 1, 6, 7 }, // Asu/Latin/Tanzania
+ { 206, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29756,48 , 29804,94 , 29898,24 , 29756,48 , 29804,94 , 29898,24 , 16126,28 , 16154,69 , 16223,14 , 16126,28 , 16154,69 , 16223,14 , 621,9 , 653,6 , {85,71,88}, 209,3 , 15416,28 , 4,4 , 4,0 , 4886,6 , 1588,6 , 0, 0, 1, 6, 7 }, // Teso/Latin/Uganda
+ { 206, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 29756,48 , 29804,94 , 29898,24 , 29756,48 , 29804,94 , 29898,24 , 16126,28 , 16154,69 , 16223,14 , 16126,28 , 16154,69 , 16223,14 , 621,9 , 653,6 , {75,69,83}, 2,3 , 15444,27 , 4,4 , 4,0 , 4886,6 , 4892,5 , 2, 1, 7, 6, 7 }, // Teso/Latin/Kenya
+ { 207, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Saho/Latin/Eritrea
+ { 208, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 29922,46 , 29968,88 , 30056,24 , 29922,46 , 29968,88 , 30056,24 , 16237,28 , 16265,53 , 16318,14 , 16237,28 , 16265,53 , 16318,14 , 630,6 , 659,6 , {88,79,70}, 218,3 , 15471,23 , 0,4 , 4,0 , 4897,11 , 4908,5 , 0, 0, 1, 6, 7 }, // Koyra Chiini/Latin/Mali
+ { 209, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 27094,87 , 134,24 , 18031,48 , 27094,87 , 134,24 , 14346,28 , 14374,62 , 14436,14 , 14346,28 , 14374,62 , 14436,14 , 541,5 , 568,9 , {84,90,83}, 204,3 , 15064,27 , 0,4 , 4,0 , 4913,6 , 1523,8 , 0, 0, 1, 6, 7 }, // Rwa/Latin/Tanzania
+ { 210, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 30080,48 , 30128,186 , 30314,24 , 30080,48 , 30128,186 , 30314,24 , 16332,28 , 16360,69 , 16429,14 , 16332,28 , 16360,69 , 16429,14 , 636,2 , 665,2 , {75,69,83}, 2,3 , 15494,23 , 0,4 , 4,0 , 4919,6 , 1125,5 , 2, 1, 7, 6, 7 }, // Luo/Latin/Kenya
+ { 211, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 26568,48 , 26616,152 , 134,24 , 26568,48 , 26616,152 , 134,24 , 14106,28 , 14134,74 , 14208,14 , 14106,28 , 14134,74 , 14208,14 , 0,2 , 0,2 , {85,71,88}, 209,3 , 15009,26 , 4,4 , 4,0 , 4925,6 , 1588,6 , 0, 0, 1, 6, 7 }, // Chiga/Latin/Uganda
+ { 212, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 30338,48 , 30386,86 , 30472,24 , 30338,48 , 30386,86 , 30472,24 , 16443,28 , 16471,48 , 16519,14 , 16443,28 , 16471,48 , 16519,14 , 638,9 , 667,10 , {77,65,68}, 0,0 , 15517,22 , 13,5 , 4,0 , 4931,8 , 4939,6 , 2, 1, 6, 5, 6 }, // Central Morocco Tamazight/Latin/Morocco
+ { 213, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 29922,46 , 29968,88 , 30056,24 , 29922,46 , 29968,88 , 30056,24 , 16533,28 , 16561,54 , 16318,14 , 16533,28 , 16561,54 , 16318,14 , 630,6 , 659,6 , {88,79,70}, 218,3 , 15471,23 , 0,4 , 4,0 , 4945,15 , 4908,5 , 0, 0, 1, 6, 7 }, // Koyraboro Senni/Latin/Mali
+ { 214, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 18031,48 , 30496,84 , 134,24 , 18031,48 , 30496,84 , 134,24 , 16615,28 , 16643,63 , 16706,14 , 16615,28 , 16643,63 , 16706,14 , 647,5 , 677,8 , {84,90,83}, 204,3 , 15539,27 , 0,4 , 4,0 , 4960,9 , 1523,8 , 0, 0, 1, 6, 7 }, // Shambala/Latin/Tanzania
+ { 215, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 519,6 , 35,18 , 18,7 , 25,12 , 30580,88 , 30580,88 , 30668,31 , 30580,88 , 30580,88 , 30668,31 , 16720,33 , 16753,54 , 16807,19 , 16720,33 , 16753,54 , 16807,19 , 652,3 , 685,6 , {73,78,82}, 127,1 , 15566,10 , 8,5 , 4,0 , 4969,4 , 2525,4 , 2, 1, 7, 7, 7 }, // Bodo/Devanagari/India
+ { 218, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {82,85,66}, 135,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Chechen/Cyrillic/Russia
+ { 219, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {82,85,66}, 135,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Church/Cyrillic/Russia
+ { 230, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 30699,49 , 30748,99 , 30847,24 , 30699,49 , 30748,99 , 30847,24 , 16826,28 , 16854,50 , 16904,14 , 16826,28 , 16854,50 , 16904,14 , 655,5 , 691,6 , {67,68,70}, 226,2 , 15576,24 , 0,4 , 4,0 , 4973,8 , 4981,16 , 2, 1, 1, 6, 7 }, // LubaKatanga/Latin/CongoKinshasa
+ { 231, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 754,10 , 754,10 , 158,8 , 542,18 , 37,5 , 8,10 , 30871,48 , 30919,85 , 134,24 , 31004,59 , 30919,85 , 134,24 , 16918,28 , 16946,65 , 3659,14 , 17011,35 , 16946,65 , 3659,14 , 660,5 , 697,8 , {69,85,82}, 14,1 , 7891,19 , 13,5 , 4,0 , 4997,14 , 5011,10 , 2, 1, 1, 6, 7 }, // Luxembourgish/Latin/Luxembourg
+ { 236, 7, 21, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Walloon/Latin/Belgium
+ { 237, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 31063,48 , 31111,195 , 31306,24 , 31063,48 , 31111,195 , 31306,24 , 17046,28 , 17074,72 , 17146,14 , 17046,28 , 17074,72 , 17146,14 , 665,3 , 705,3 , {88,65,70}, 32,4 , 15600,21 , 0,4 , 4,0 , 5021,5 , 5026,7 , 0, 0, 1, 6, 7 }, // Aghem/Latin/Cameroon
+ { 238, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 31330,48 , 31378,90 , 31468,24 , 31330,48 , 31378,90 , 31468,24 , 17160,28 , 17188,70 , 17258,14 , 17160,28 , 17188,70 , 17258,14 , 668,10 , 708,9 , {88,65,70}, 32,4 , 15621,22 , 13,5 , 4,0 , 5033,5 , 5038,8 , 0, 0, 1, 6, 7 }, // Basaa/Latin/Cameroon
+ { 239, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 29922,46 , 29968,88 , 30056,24 , 29922,46 , 29968,88 , 30056,24 , 16533,28 , 17272,53 , 17325,14 , 16533,28 , 17272,53 , 17325,14 , 678,8 , 717,10 , {88,79,70}, 218,3 , 15471,23 , 0,4 , 4,0 , 5046,10 , 5056,5 , 0, 0, 1, 6, 7 }, // Zarma/Latin/Niger
+ { 240, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 31492,49 , 31541,99 , 31640,24 , 31492,49 , 31541,99 , 31640,24 , 17339,28 , 17367,45 , 17412,14 , 17339,28 , 17367,45 , 17412,14 , 686,5 , 727,6 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5061,5 , 1846,8 , 0, 0, 1, 6, 7 }, // Duala/Latin/Cameroon
+ { 241, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 31664,36 , 31700,82 , 31782,24 , 31664,36 , 31700,82 , 31782,24 , 17426,28 , 17454,50 , 17504,14 , 17426,28 , 17454,50 , 17504,14 , 0,2 , 0,2 , {88,79,70}, 218,3 , 15643,23 , 13,5 , 4,0 , 5066,5 , 5071,7 , 0, 0, 1, 6, 7 }, // JolaFonyi/Latin/Senegal
+ { 242, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 31806,50 , 31856,141 , 31997,24 , 31806,50 , 31856,141 , 31997,24 , 17518,30 , 17548,85 , 17633,14 , 17518,30 , 17548,85 , 17633,14 , 691,7 , 733,9 , {88,65,70}, 32,4 , 15666,23 , 13,5 , 4,0 , 5078,6 , 5084,7 , 0, 0, 1, 6, 7 }, // Ewondo/Latin/Cameroon
+ { 243, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 32021,39 , 32060,191 , 158,27 , 32021,39 , 32060,191 , 158,27 , 17647,29 , 17676,45 , 17721,14 , 17647,29 , 17676,45 , 17721,14 , 698,6 , 742,7 , {88,65,70}, 32,4 , 15689,11 , 13,5 , 4,0 , 5091,5 , 5096,7 , 0, 0, 1, 6, 7 }, // Bafia/Latin/Cameroon
+ { 244, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 32251,48 , 32299,213 , 32512,24 , 32251,48 , 32299,213 , 32512,24 , 17735,28 , 17763,59 , 17822,14 , 17735,28 , 17763,59 , 17822,14 , 704,8 , 749,10 , {77,90,78}, 298,3 , 0,7 , 8,5 , 4,0 , 5103,5 , 5108,10 , 2, 1, 7, 6, 7 }, // MakhuwaMeetto/Latin/Mozambique
+ { 245, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 32536,48 , 32584,139 , 32723,24 , 32536,48 , 32584,139 , 32723,24 , 17836,28 , 17864,74 , 17938,14 , 17836,28 , 17864,74 , 17938,14 , 712,5 , 759,5 , {88,65,70}, 32,4 , 15700,17 , 4,4 , 4,0 , 5118,6 , 5124,7 , 0, 0, 1, 6, 7 }, // Mundang/Latin/Cameroon
+ { 246, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 32747,51 , 32798,143 , 158,27 , 32747,51 , 32798,143 , 158,27 , 17952,30 , 17982,89 , 18071,14 , 17952,30 , 17982,89 , 18071,14 , 717,4 , 764,4 , {88,65,70}, 32,4 , 15717,20 , 13,5 , 4,0 , 5131,6 , 5137,7 , 0, 0, 1, 6, 7 }, // Kwasio/Latin/Cameroon
+ { 247, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 525,9 , 98,16 , 18,7 , 447,12 , 32941,54 , 32995,96 , 33091,24 , 32941,54 , 32995,96 , 33091,24 , 18085,38 , 18123,79 , 18202,14 , 18085,38 , 18123,79 , 18202,14 , 721,2 , 768,2 , {83,68,71}, 0,0 , 0,7 , 4,4 , 4,0 , 5144,9 , 1509,5 , 2, 1, 6, 5, 6 }, // Nuer/Latin/Sudan
+ { 248, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 401,6 , 1482,30 , 37,5 , 8,10 , 33115,75 , 33190,121 , 33311,24 , 33115,75 , 33190,121 , 33311,24 , 18216,21 , 18237,73 , 18310,14 , 18216,21 , 18237,73 , 18310,14 , 723,2 , 770,2 , {82,85,66}, 313,4 , 0,7 , 8,5 , 4,0 , 5153,9 , 0,0 , 2, 1, 1, 6, 7 }, // Sakha/Cyrillic/Russia
+ { 249, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 33335,48 , 33383,117 , 158,27 , 33335,48 , 33383,117 , 158,27 , 18324,28 , 18352,60 , 18412,14 , 18324,28 , 18352,60 , 18412,14 , 725,9 , 772,9 , {84,90,83}, 204,3 , 15737,25 , 0,4 , 4,0 , 5162,9 , 5171,9 , 0, 0, 1, 6, 7 }, // Sangu/Latin/Tanzania
+ { 251, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 29922,46 , 29968,88 , 30056,24 , 29922,46 , 29968,88 , 30056,24 , 16533,28 , 16561,54 , 16318,14 , 16533,28 , 16561,54 , 16318,14 , 678,8 , 717,10 , {88,79,70}, 218,3 , 15471,23 , 0,4 , 4,0 , 5180,13 , 5056,5 , 0, 0, 1, 6, 7 }, // Tasawaq/Latin/Niger
+ { 252, 35, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 33500,50 , 33500,50 , 158,27 , 33500,50 , 33500,50 , 158,27 , 18426,30 , 18426,30 , 85,14 , 18426,30 , 18426,30 , 85,14 , 0,2 , 0,2 , {76,82,68}, 6,1 , 15762,15 , 4,4 , 4,0 , 5193,2 , 5195,4 , 2, 1, 1, 6, 7 }, // Vai/Vai/Liberia
+ { 252, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 120,10 , 10,17 , 18,7 , 25,12 , 33550,81 , 33550,81 , 158,27 , 33550,81 , 33550,81 , 158,27 , 18456,48 , 18456,48 , 85,14 , 18456,48 , 18456,48 , 85,14 , 0,2 , 0,2 , {76,82,68}, 6,1 , 15777,20 , 4,4 , 4,0 , 5199,3 , 5202,8 , 2, 1, 1, 6, 7 }, // Vai/Latin/Liberia
+ { 253, 7, 206, 44, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 264,9 , 264,9 , 53,10 , 542,18 , 37,5 , 8,10 , 33631,48 , 33679,99 , 33778,24 , 33631,48 , 33679,99 , 33778,24 , 18504,28 , 18532,53 , 18585,14 , 18504,28 , 18532,53 , 18585,14 , 0,2 , 0,2 , {67,72,70}, 0,0 , 0,7 , 8,5 , 4,0 , 5210,6 , 5216,6 , 2, 0, 1, 6, 7 }, // Walser/Latin/Switzerland
+ { 254, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 33802,51 , 33853,191 , 158,27 , 33802,51 , 33853,191 , 158,27 , 18599,21 , 18620,71 , 18691,14 , 18599,21 , 18620,71 , 18691,14 , 734,8 , 781,8 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5222,6 , 5228,7 , 0, 0, 1, 6, 7 }, // Yangben/Latin/Cameroon
+ { 256, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 561,7 , 561,7 , 283,6 , 379,22 , 37,5 , 8,10 , 34044,48 , 34092,85 , 34177,24 , 34201,48 , 34249,117 , 34177,24 , 18705,28 , 18733,54 , 3383,14 , 18705,28 , 18733,54 , 3383,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 2889,20 , 13,5 , 4,0 , 5235,9 , 2297,6 , 2, 1, 1, 6, 7 }, // Asturian/Latin/Spain
+ { 257, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 764,11 , 764,11 , 775,16 , 791,9 , 53,10 , 691,18 , 37,5 , 8,10 , 34366,174 , 34366,174 , 158,27 , 34366,174 , 34366,174 , 158,27 , 18787,60 , 18787,60 , 18847,25 , 18787,60 , 18787,60 , 18847,25 , 742,8 , 789,13 , {88,65,70}, 32,4 , 15797,12 , 8,5 , 4,0 , 5244,5 , 5249,7 , 0, 0, 1, 6, 7 }, // Ngomba/Latin/Cameroon
+ { 258, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 1512,10 , 560,17 , 37,5 , 8,10 , 34540,102 , 34540,102 , 158,27 , 34540,102 , 34540,102 , 158,27 , 18872,54 , 18872,54 , 18926,21 , 18872,54 , 18872,54 , 18926,21 , 0,2 , 0,2 , {88,65,70}, 32,4 , 15809,16 , 8,5 , 4,0 , 5256,4 , 5260,7 , 0, 0, 1, 6, 7 }, // Kako/Latin/Cameroon
+ { 259, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 691,18 , 37,5 , 8,10 , 34642,137 , 34779,142 , 34921,36 , 34642,137 , 34779,142 , 34921,36 , 18947,49 , 18947,49 , 18996,21 , 18947,49 , 18947,49 , 18996,21 , 0,2 , 0,2 , {88,65,70}, 32,4 , 15825,12 , 8,5 , 4,0 , 5267,5 , 5272,7 , 0, 0, 1, 6, 7 }, // Meta/Latin/Cameroon
+ { 260, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1522,32 , 37,5 , 8,10 , 34957,164 , 34957,164 , 158,27 , 34957,164 , 34957,164 , 158,27 , 19017,111 , 19017,111 , 85,14 , 19017,111 , 19017,111 , 85,14 , 750,9 , 802,8 , {88,65,70}, 32,4 , 15837,16 , 8,5 , 4,0 , 5279,16 , 5295,7 , 0, 0, 1, 6, 7 }, // Ngiemboon/Latin/Cameroon
+ { 312, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Akoose/Latin/Cameroon
+ { 313, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 519,6 , 35,18 , 18,7 , 25,12 , 35121,180 , 35121,180 , 158,27 , 35121,180 , 35121,180 , 158,27 , 19128,87 , 19128,87 , 85,14 , 19128,87 , 19128,87 , 19215,14 , 0,2 , 0,2 , {85,83,68}, 6,1 , 0,7 , 8,5 , 4,0 , 5302,12 , 5314,22 , 2, 1, 7, 6, 7 }, // Lakota/Latin/UnitedStates
+ { 314, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 534,8 , 98,16 , 37,5 , 8,10 , 26106,48 , 26154,81 , 26235,24 , 26106,48 , 26154,81 , 26235,24 , 13856,30 , 19229,48 , 85,14 , 13856,30 , 19229,48 , 85,14 , 515,6 , 536,8 , {77,65,68}, 0,0 , 14946,21 , 0,4 , 4,0 , 4581,8 , 4589,6 , 2, 1, 6, 5, 6 }, // Standard Moroccan Tamazight/Tifinagh/Morocco
+ { 315, 7, 43, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {67,76,80}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Mapuche/Latin/Chile
+ { 316, 1, 103, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {73,81,68}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 6 }, // Central Kurdish/Arabic/Iraq
+ { 317, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 189,7 , 189,7 , 114,6 , 542,18 , 42,4 , 137,9 , 35301,48 , 35349,85 , 16006,24 , 35434,60 , 35494,93 , 16006,24 , 19277,28 , 19305,53 , 19358,14 , 19277,28 , 19305,53 , 19358,14 , 759,9 , 810,10 , {69,85,82}, 14,1 , 15853,27 , 13,5 , 4,0 , 5336,14 , 5350,6 , 2, 1, 1, 6, 7 }, // LowerSorbian/Latin/Germany
+ { 318, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 189,7 , 189,7 , 114,6 , 542,18 , 459,12 , 137,9 , 35587,48 , 35635,86 , 16006,24 , 35721,60 , 35781,93 , 16006,24 , 19372,28 , 19400,53 , 19453,14 , 19372,28 , 19400,53 , 19453,14 , 759,9 , 820,9 , {69,85,82}, 14,1 , 15880,29 , 13,5 , 4,0 , 5356,15 , 5371,6 , 2, 1, 1, 6, 7 }, // UpperSorbian/Latin/Germany
+ { 319, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Kenyang/Latin/Cameroon
+ { 320, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {67,65,68}, 259,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Mohawk/Latin/Canada
+ { 321, 75, 91, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {71,78,70}, 232,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Nko/Nko/Guinea
+ { 323, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {71,84,81}, 327,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Kiche/Latin/Guatemala
+ { 324, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {83,69,75}, 214,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Southern Sami/Latin/Sweden
+ { 325, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {83,69,75}, 214,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Lule Sami/Latin/Sweden
+ { 326, 7, 73, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 35874,140 , 158,27 , 344,48 , 344,48 , 158,27 , 19467,21 , 19488,70 , 85,14 , 19467,21 , 19558,73 , 19631,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 15909,11 , 8,5 , 4,0 , 5377,11 , 0,0 , 2, 1, 1, 6, 7 }, // Inari Sami/Latin/Finland
+ { 327, 7, 73, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Skolt Sami/Latin/Finland
+ { 328, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 344,48 , 344,48 , 158,27 , 344,48 , 344,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , {65,85,68}, 351,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Warlpiri/Latin/Australia
{ 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,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, 0,0, 0, 0, 0, 0, 0, 0,0, 0,0 } // trailing 0s
};
@@ -1550,155 +1715,149 @@ static const ushort list_pattern_part_data[] = {
0x25, 0x31, 0x20, 0x648, 0x25, 0x32, 0x25, 0x31, 0x20, 0x648, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x587, 0x20, 0x25, 0x32,
0x25, 0x31, 0x20, 0x76, 0x259, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x65, 0x74, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c,
0x20, 0x98f, 0x9ac, 0x982, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x98f, 0x9ac, 0x982, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xf51,
-0xf44, 0xf0b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x438, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x1014, 0x103e, 0x1004, 0x1037,
-0x103a, 0x25, 0x32, 0x25, 0x31, 0x1014, 0x103e, 0x1004, 0x1037, 0x103a, 0x25, 0x32, 0x25, 0x31, 0x20, 0x1793, 0x17b7, 0x1784, 0x20, 0x25,
-0x32, 0x25, 0x31, 0x20, 0x69, 0x20, 0x25, 0x32, 0x25, 0x31, 0x3001, 0x25, 0x32, 0x25, 0x31, 0x548c, 0x25, 0x32, 0x25, 0x31,
-0x20, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6f, 0x67, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x61, 0x6e, 0x64,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6a, 0x61, 0x20, 0x25, 0x32,
-0x25, 0x31, 0x20, 0x65, 0x74, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x61, 0x67, 0x75, 0x73, 0x20, 0x25, 0x32, 0x25,
+0xf44, 0xf0b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x438, 0x20, 0x25, 0x32, 0x25, 0x31, 0x104a, 0x20, 0x25, 0x32, 0x25, 0x31,
+0x104a, 0x20, 0x1014, 0x103e, 0x1004, 0x1037, 0x103a, 0x25, 0x32, 0x25, 0x31, 0x1014, 0x103e, 0x1004, 0x1037, 0x103a, 0x25, 0x32, 0x25, 0x31,
+0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x1793, 0x17b7, 0x1784, 0x200b, 0x25, 0x32, 0x25, 0x31, 0x20, 0x69, 0x20, 0x25, 0x32, 0x25,
+0x31, 0x3001, 0x25, 0x32, 0x25, 0x31, 0x548c, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6f,
+0x67, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x6e, 0x64,
+0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6a, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x65, 0x74, 0x20, 0x25, 0x32, 0x25,
0x31, 0x20, 0x61, 0x67, 0x75, 0x73, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x10d3,
0x10d0, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x75, 0x6e, 0x64, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x3ba, 0x3b1, 0x3b9, 0x20,
0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x61, 0x6d, 0x6d, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xa85, 0xaa8, 0xac7, 0x20,
0x25, 0x32, 0x25, 0x31, 0x20, 0x5d5, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x914, 0x930, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20,
0x914, 0x930, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xe9, 0x73, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x64, 0x61, 0x6e,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x64, 0x61, 0x6e, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x65, 0x20, 0x25, 0x32,
-0x25, 0x31, 0x2c, 0x20, 0xcae, 0xca4, 0xccd, 0xca4, 0xcc1, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x436, 0x430, 0x43d, 0x430, 0x20,
-0x25, 0x32, 0x25, 0x31, 0x20, 0xbc0f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xec1, 0xea5, 0xeb0, 0x20, 0x25, 0x32, 0x25, 0x31,
-0x20, 0x75, 0x6e, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6d, 0x70, 0xe9, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x69, 0x72,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x25, 0x32, 0x20, 0xd0e, 0xd28, 0xd4d, 0xd28, 0xd3f, 0xd35, 0x25, 0x31, 0x20, 0xd15,
-0xd42, 0xd1f, 0xd3e, 0xd24, 0xd46, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x75, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x75,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x906, 0x923, 0x93f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x930, 0x20, 0x25, 0x32, 0x25,
-0x31, 0x60c, 0x200f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xa05, 0xa24, 0xa47, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x219, 0x69,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x4d5, 0x43c, 0x4d5, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0xdc3, 0xdc4, 0x20, 0x25,
-0x32, 0x25, 0x31, 0x20, 0xdc3, 0xdc4, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x69, 0x6e, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20,
-0x79, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x6e, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6e, 0x61, 0x20, 0x25,
-0x32, 0x25, 0x31, 0x20, 0x6f, 0x63, 0x68, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xbae, 0xbb1, 0xbcd, 0xbb1, 0xbc1, 0xbae, 0xbcd,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xc2e, 0xc30, 0xc3f, 0xc2f, 0xc41, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x25, 0x32, 0x25,
-0x31, 0x20, 0xe41, 0xe25, 0xe30, 0x25, 0x32, 0x25, 0x31, 0xe41, 0xe25, 0xe30, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6d, 0x6f, 0x20,
-0x25, 0x32, 0x25, 0x31, 0x20, 0x76, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x442, 0x430, 0x20, 0x25, 0x32, 0x25, 0x31,
-0x60c, 0x20, 0x627, 0x648, 0x631, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x627, 0x648, 0x631, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20,
-0x76, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x76, 0xe0, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x6e, 0x6f, 0x2d,
-0x25, 0x32, 0x49, 0x2d, 0x25, 0x31, 0x20, 0x6e, 0x65, 0x2d, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x6b, 0x70, 0x6c, 0x65,
-0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6b, 0x70, 0x6c, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x74, 0x20, 0x25,
-0x32, 0x25, 0x31, 0x2c, 0x20, 0x14b, 0x301, 0x67, 0x25b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x1e3f, 0x62, 0x25b, 0x6e,
-0x20, 0x14b, 0x301, 0x67, 0x25b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x70, 0x254, 0x70, 0x20, 0x25, 0x32
+0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x64, 0x61, 0x6e, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x61, 0x67, 0x75, 0x73,
+0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0xcae, 0xca4, 0xccd, 0xca4, 0xcc1, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xcae, 0xca4,
+0xccd, 0xca4, 0xcc1, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x436, 0x4d9, 0x43d, 0x435, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x436,
+0x430, 0x43d, 0x430, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xbc0f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xec1, 0xea5, 0xeb0, 0x20,
+0x25, 0x32, 0x25, 0x31, 0x20, 0x75, 0x6e, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6d, 0x70, 0xe9, 0x20, 0x25, 0x32, 0x25,
+0x31, 0x20, 0x69, 0x72, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x25, 0x32, 0x20, 0xd0e, 0xd28, 0xd4d, 0xd28, 0xd3f, 0xd35,
+0x25, 0x31, 0x20, 0xd15, 0xd42, 0xd1f, 0xd3e, 0xd24, 0xd46, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x75, 0x20, 0x25, 0x32,
+0x25, 0x31, 0x20, 0x75, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x906, 0x923, 0x93f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x930,
+0x20, 0x25, 0x32, 0x25, 0x31, 0x60c, 0x200f, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xa05, 0xa24, 0xa47, 0x20, 0x25, 0x32, 0x25,
+0x31, 0x20, 0x219, 0x69, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x4d5, 0x43c, 0x4d5, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20,
+0xdc3, 0xdc4, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xdc3, 0xdc4, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x69, 0x6e, 0x20, 0x25,
+0x32, 0x25, 0x31, 0x20, 0x79, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x6e, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20,
+0x6e, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6f, 0x63, 0x68, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xbae, 0xbb1, 0xbcd,
+0xbb1, 0xbc1, 0xbae, 0xbcd, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0xc2e, 0xc30, 0xc3f, 0xc2f, 0xc41, 0x20, 0x25, 0x32, 0x25, 0x31,
+0x20, 0xe41, 0xe25, 0xe30, 0x25, 0x32, 0x25, 0x31, 0xe41, 0xe25, 0xe30, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6d, 0x6f, 0x20, 0x25,
+0x32, 0x25, 0x31, 0x20, 0x76, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x456, 0x20, 0x25, 0x32, 0x25, 0x31, 0x60c, 0x20,
+0x627, 0x648, 0x631, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x627, 0x648, 0x631, 0x20, 0x25, 0x32, 0x25, 0x32, 0x60c, 0x20, 0x25,
+0x31, 0x25, 0x31, 0x20, 0x76, 0x61, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x76, 0xe0, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c,
+0x20, 0x6e, 0x65, 0x2d, 0x25, 0x32, 0x49, 0x2d, 0x25, 0x31, 0x20, 0x6e, 0x65, 0x2d, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20,
+0x6b, 0x70, 0x6c, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x6b, 0x70, 0x6c, 0x65, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c,
+0x20, 0x61, 0x74, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x74, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x61, 0x28, 0x6e,
+0x29, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x14b, 0x301, 0x67, 0x25b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x2c, 0x20, 0x1e3f,
+0x62, 0x25b, 0x6e, 0x20, 0x14b, 0x301, 0x67, 0x25b, 0x20, 0x25, 0x32, 0x25, 0x31, 0x20, 0x70, 0x254, 0x70, 0x20, 0x25, 0x32,
+
};
static const ushort date_format_data[] = {
0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d,
0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c,
-0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x4d,
-0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2d, 0x4d, 0x4d, 0x2d,
-0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64,
-0x64, 0x64, 0x64, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c,
-0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79,
-0x79, 0x79, 0x79, 0x64, 0x200f, 0x2f, 0x4d, 0x200f, 0x2f, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x60c, 0x20, 0x64,
-0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x60c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2f, 0x4d, 0x2f, 0x64, 0x64,
-0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x569, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64,
-0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2d, 0x4d, 0x2d, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
-0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79,
-0x79, 0x79, 0x79, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x4d, 0x4d,
-0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x27, 0x65, 0x27, 0x29, 0x27, 0x6b, 0x6f,
-0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2f, 0x4d, 0x2f, 0x79, 0x79,
-0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf63, 0xf7c, 0xf0b, 0x79, 0x79, 0x79, 0x79, 0x20, 0x4d,
-0x4d, 0x4d, 0x4d, 0x20, 0xf5a, 0xf7a, 0xf66, 0xf0b, 0x64, 0x64, 0x79, 0x79, 0x79, 0x79, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
-0x64, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
-0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x433, 0x27, 0x2e, 0x79, 0x79, 0x2f, 0x4d,
-0x4d, 0x2f, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
-0x64, 0x64, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x2f, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64,
-0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
-0x2f, 0x4d, 0x2f, 0x64, 0x79, 0x79, 0x79, 0x79, 0x5e74, 0x4d, 0x6708, 0x64, 0x65e5, 0x64, 0x64, 0x64, 0x64, 0x79, 0x79, 0x5e74,
-0x4d, 0x6708, 0x64, 0x65e5, 0x79, 0x79, 0x79, 0x79, 0x5e74, 0x4d, 0x4d, 0x6708, 0x64, 0x64, 0x65e5, 0x64, 0x64, 0x64, 0x64, 0x64,
-0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
-0x79, 0x79, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79,
-0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x27, 0x64, 0x65, 0x6e, 0x27, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d,
-0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x2d, 0x4d, 0x4d, 0x2d, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79,
-0x4d, 0x2f, 0x64, 0x2f, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2f,
-0x4d, 0x4d, 0x2f, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79,
-0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2d, 0x4d, 0x4d, 0x2d, 0x64, 0x64, 0x64,
-0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64,
-0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2d, 0x4d,
-0x4d, 0x2d, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x5d1, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79,
-0x79, 0x79, 0x64, 0x2d, 0x4d, 0x2d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x4d, 0x2e, 0x20, 0x64, 0x64,
-0x2e, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2e, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64,
-0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x436,
-0x27, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2d, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79,
-0x2d, 0x27, 0x436, 0x27, 0x2e, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x2e, 0x20, 0x64, 0x2e, 0x79, 0x79, 0x79, 0x79, 0xb144, 0x20,
-0x4d, 0xc6d4, 0x20, 0x64, 0xc77c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x20, 0xe97, 0xeb5, 0x20, 0x64, 0x20,
-0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x2e,
-0x20, 0x27, 0x67, 0x61, 0x64, 0x61, 0x27, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x79, 0x79, 0x79, 0x79, 0x20,
-0x27, 0x6d, 0x27, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20, 0x27, 0x64, 0x27, 0x2e, 0x2c, 0x20, 0x64, 0x64,
-0x64, 0x64, 0x64, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d,
-0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x433, 0x27, 0x2e, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
-0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x64, 0x64,
-0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x27, 0x74, 0x61, 0x27, 0x2019, 0x20, 0x4d, 0x4d, 0x4d, 0x4d,
-0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x43e, 0x43d, 0x44b,
-0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x441, 0x430, 0x440, 0x44b, 0x43d, 0x27, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64,
-0x64, 0x20, 0x62f, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x62f, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64, 0x64, 0x2e,
-0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20,
-0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
-0x27, 0x69, 0x6c, 0x73, 0x27, 0x20, 0x64, 0x20, 0x27, 0x64, 0x61, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79,
-0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79,
-0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79,
-0x20, 0x27, 0x430, 0x437, 0x27, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x2e, 0x20, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64,
+0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2d, 0x4d, 0x4d,
+0x2d, 0x64, 0x64, 0x79, 0x79, 0x79, 0x79, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64,
+0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64,
+0x64, 0x64, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79,
+0x64, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79, 0x79, 0x79, 0x64, 0x200f, 0x2f, 0x4d, 0x200f, 0x2f, 0x79, 0x79, 0x79, 0x79,
+0x64, 0x64, 0x64, 0x64, 0x60c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x60c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64,
+0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x569, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c,
+0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2d, 0x4d, 0x2d, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64,
+0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79,
+0x79, 0x79, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x4d, 0x4d, 0x4d,
+0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2f, 0x4d, 0x4d, 0x2f, 0x64, 0x64, 0x79, 0x79, 0x79,
+0x79, 0x28, 0x27, 0x65, 0x27, 0x29, 0x27, 0x6b, 0x6f, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2c, 0x20, 0x64,
+0x64, 0x64, 0x64, 0x64, 0x2f, 0x4d, 0x2f, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b,
+0xf63, 0xf7c, 0xf0b, 0x79, 0x79, 0x79, 0x79, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0xf5a, 0xf7a, 0xf66, 0xf0b, 0x64, 0x64, 0x64,
+0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x20, 0x27, 0x433, 0x27, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d,
+0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x433, 0x27, 0x2e, 0x64, 0x64, 0x2d, 0x4d, 0x4d, 0x2d, 0x79,
+0x79, 0x64, 0x64, 0x64, 0x64, 0x104a, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64,
+0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79, 0x79,
+0x79, 0x79, 0x79, 0x2f, 0x4d, 0x2f, 0x64, 0x79, 0x79, 0x79, 0x79, 0x5e74, 0x4d, 0x6708, 0x64, 0x65e5, 0x64, 0x64, 0x64, 0x64,
+0x79, 0x79, 0x79, 0x79, 0x2f, 0x4d, 0x2f, 0x64, 0x79, 0x79, 0x79, 0x79, 0x5e74, 0x4d, 0x6708, 0x64, 0x65e5, 0x20, 0x64, 0x64,
+0x64, 0x64, 0x64, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64,
+0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x2e, 0x20,
+0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x27, 0x64, 0x65, 0x6e, 0x27, 0x20,
+0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79, 0x4d,
+0x2f, 0x64, 0x2f, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x4d, 0x2f, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2f, 0x4d, 0x2f, 0x79, 0x79,
+0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79,
+0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d,
+0x2e, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2d, 0x4d, 0x4d, 0x2d, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64,
+0x27, 0x6d, 0x68, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
+0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64,
+0x20, 0x5d1, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x4d, 0x2e,
+0x20, 0x64, 0x64, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x2e, 0x2c, 0x20, 0x64,
+0x64, 0x64, 0x64, 0x79, 0x79, 0x2f, 0x4d, 0x4d, 0x2f, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79,
+0x79, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x2d, 0x4d, 0x4d, 0x4d,
+0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x2d, 0x27, 0x436, 0x27, 0x2e, 0x79, 0x79, 0x2e, 0x20, 0x4d, 0x2e, 0x20, 0x64,
+0x2e, 0x79, 0x79, 0x79, 0x79, 0xb144, 0x20, 0x4d, 0xc6d4, 0x20, 0x64, 0xc77c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64,
+0x64, 0x20, 0xe97, 0xeb5, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64,
+0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x20, 0x27, 0x67, 0x61, 0x64, 0x61, 0x27, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d,
+0x4d, 0x4d, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x6d, 0x27, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20, 0x27,
+0x64, 0x27, 0x2e, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x64, 0x64, 0x20, 0x4d,
+0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64,
+0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x27, 0x74, 0x61, 0x27, 0x2019, 0x20,
+0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20,
+0x27, 0x43e, 0x43d, 0x44b, 0x27, 0x20, 0x4d, 0x4d, 0x20, 0x27, 0x441, 0x430, 0x440, 0x44b, 0x43d, 0x27, 0x20, 0x64, 0x64, 0x64,
+0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2d, 0x4d, 0x2d, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x62f,
+0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x62f, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
0x64, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79, 0x79,
-0x79, 0x4d, 0x4d, 0x2f, 0x64, 0x64, 0x2f, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x27, 0x65, 0x6e, 0x27, 0x20, 0x27, 0x64,
-0x65, 0x6e, 0x27, 0x20, 0x64, 0x3a, 0x27, 0x65, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64,
-0x64, 0x2d, 0x4d, 0x4d, 0x2d, 0x79, 0x79, 0x79, 0x79, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79,
-0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0xe17, 0xe35, 0xe48, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
-0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x1363, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x1218, 0x12d3,
-0x120d, 0x1272, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x1361, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d,
-0x20, 0x1218, 0x12d3, 0x120d, 0x1272, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x79, 0x79, 0x64,
-0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x440, 0x27,
-0x2e, 0x79, 0x79, 0x79, 0x79, 0x20, 0x646, 0x686, 0x6cc, 0x20, 0x6cc, 0x6cc, 0x644, 0x20, 0x64, 0x20, 0x646, 0x686, 0x6cc, 0x20,
-0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64, 0x64, 0x64, 0x20, 0x6a9, 0x648, 0x646, 0x6cc, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20,
-0x27, 0x6e, 0x67, 0xe0, 0x79, 0x27, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x6e, 0x103, 0x6d, 0x27,
-0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x1361, 0x20,
-0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x130d, 0x122d, 0x130b, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64,
-0x1361, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x12ee, 0x121d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64,
-0x64, 0x20, 0x64, 0x20, 0x27, 0x64, 0x69, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x61, 0x6c, 0x27, 0x20,
-0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20, 0x27, 0x6c, 0x69,
-0x61, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x1365, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d,
-0x20, 0x130b, 0x120b, 0x1233, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x27, 0x64, 0x69,
-0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x69, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x20, 0x4d,
-0x2e, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x27, 0x64, 0xe4, 0x27, 0x20, 0x64, 0x2e, 0x20,
-0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x441, 0x44b, 0x43b, 0x27, 0x20,
-0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20, 0x27, 0x43a, 0x4af, 0x43d, 0x44d, 0x27, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64,
-0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79,
-0x79, 0x79, 0x64, 0x64, 0x2f, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x2c, 0x20, 0x27,
-0x6c, 0x79, 0x25b, 0x27, 0x30c, 0x2bc, 0x20, 0x64, 0x20, 0x27, 0x6e, 0x61, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20,
-0x79, 0x79, 0x79, 0x79
+0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x27, 0x69, 0x6c, 0x73, 0x27, 0x20, 0x64, 0x20, 0x27, 0x64, 0x61, 0x27, 0x20,
+0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d, 0x2e, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64,
+0x2c, 0x20, 0x64, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64,
+0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x430, 0x437, 0x27, 0x64,
+0x2e, 0x20, 0x4d, 0x4d, 0x2e, 0x20, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x64, 0x2e, 0x20, 0x4d, 0x4d,
+0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x64,
+0x2c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x64, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x4d,
+0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x65, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x4d, 0x4d, 0x2f, 0x64, 0x64, 0x2f, 0x79,
+0x79, 0x64, 0x64, 0x2d, 0x4d, 0x4d, 0x2d, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79,
+0x79, 0x79, 0x79, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0xe17, 0xe35, 0xe48, 0x20, 0x64, 0x20, 0x4d,
+0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x1363, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d,
+0x4d, 0x20, 0x1218, 0x12d3, 0x120d, 0x1272, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x1361, 0x20, 0x64, 0x64, 0x20,
+0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x1218, 0x12d3, 0x120d, 0x1272, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79,
+0x79, 0x79, 0x79, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64,
+0x64, 0x64, 0x64, 0x60c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x60c, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x64, 0x64,
+0x64, 0x2c, 0x20, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x440, 0x27, 0x2e, 0x79,
+0x79, 0x79, 0x79, 0x20, 0x646, 0x686, 0x6cc, 0x20, 0x6cc, 0x6cc, 0x644, 0x20, 0x64, 0x20, 0x646, 0x686, 0x6cc, 0x20, 0x4d, 0x4d,
+0x4d, 0x4d, 0x20, 0x64, 0x64, 0x64, 0x64, 0x20, 0x6a9, 0x648, 0x646, 0x6cc, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x27, 0x6e,
+0x67, 0xe0, 0x79, 0x27, 0x20, 0x64, 0x64, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x6e, 0x103, 0x6d, 0x27, 0x20, 0x79,
+0x79, 0x79, 0x79, 0x64, 0x64, 0x2e, 0x4d, 0x4d, 0x2e, 0x79, 0x79, 0x2e, 0x64, 0x64, 0x64, 0x64, 0x20, 0x64, 0x20, 0x27,
+0x64, 0x69, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x27, 0x64, 0x61, 0x6c, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64,
+0x64, 0x64, 0x64, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20, 0x27, 0x6c, 0x69, 0x61, 0x27, 0x20, 0x79, 0x79,
+0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x2c, 0x20, 0x64, 0x20, 0x27, 0x64, 0x69, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20,
+0x27, 0x64, 0x69, 0x27, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64, 0x2e, 0x20, 0x4d, 0x2e, 0x20, 0x79, 0x79, 0x79, 0x79, 0x64,
+0x64, 0x64, 0x64, 0x2c, 0x20, 0x27, 0x64, 0xe4, 0x27, 0x20, 0x64, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x79, 0x79,
+0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x20, 0x27, 0x441, 0x44b, 0x43b, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x64, 0x20,
+0x27, 0x43a, 0x4af, 0x43d, 0x44d, 0x27, 0x2c, 0x20, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x2f, 0x4d, 0x4d, 0x20, 0x79, 0x79,
+0x79, 0x79, 0x64, 0x64, 0x64, 0x64, 0x20, 0x2c, 0x20, 0x27, 0x6c, 0x79, 0x25b, 0x27, 0x30c, 0x2bc, 0x20, 0x64, 0x20, 0x27,
+0x6e, 0x61, 0x27, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x2c, 0x20, 0x79, 0x79, 0x79, 0x79
};
static const ushort time_format_data[] = {
0x48, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x48, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x68, 0x3a,
0x6d, 0x6d, 0x20, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74, 0x48, 0x48, 0x3a,
0x6d, 0x6d, 0x48, 0x3a, 0x6d, 0x6d, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x2c, 0x20, 0x74, 0x68, 0x2e, 0x6d, 0x6d,
-0x2e, 0x20, 0x41, 0x50, 0x68, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74, 0xf46, 0xf74, 0xf0b, 0xf5a,
-0xf7c, 0xf51, 0xf0b, 0x20, 0x68, 0x20, 0xf66, 0xf90, 0xf62, 0xf0b, 0xf58, 0xf0b, 0x20, 0x6d, 0x6d, 0x20, 0x41, 0x50, 0xf46, 0xf74,
-0xf0b, 0xf5a, 0xf7c, 0xf51, 0xf0b, 0x20, 0x68, 0x20, 0xf66, 0xf90, 0xf62, 0xf0b, 0xf58, 0xf0b, 0x20, 0x6d, 0x6d, 0x3a, 0x73, 0x73,
-0x20, 0x41, 0x50, 0x20, 0x74, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x48, 0x48, 0x2e, 0x6d, 0x6d, 0x48,
-0x48, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20, 0x74, 0x48, 0x2e, 0x6d, 0x6d, 0x48, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73,
-0x20, 0x74, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x74, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x41, 0x50,
-0x68, 0x68, 0x3a, 0x6d, 0x6d, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x5b, 0x74, 0x5d, 0x74, 0x41,
-0x50, 0x68, 0x6642, 0x6d, 0x6d, 0x5206, 0x73, 0x73, 0x79d2, 0x48, 0x48, 0x20, 0x27, 0x68, 0x27, 0x20, 0x6d, 0x6d, 0x20, 0x27,
-0x6d, 0x69, 0x6e, 0x27, 0x20, 0x73, 0x73, 0x20, 0x27, 0x73, 0x27, 0x20, 0x74, 0x48, 0x3a, 0x6d, 0x6d, 0x2e, 0x73, 0x73,
-0x20, 0x74, 0x48, 0x20, 0x27, 0x68, 0x27, 0x20, 0x6d, 0x6d, 0x20, 0x27, 0x6d, 0x69, 0x6e, 0x27, 0x20, 0x73, 0x73, 0x20,
-0x27, 0x73, 0x27, 0x20, 0x74, 0x48, 0x48, 0x2e, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x27, 0x68, 0x27, 0x20, 0x74, 0x68,
-0x68, 0x3a, 0x6d, 0x6d, 0x20, 0x41, 0x50, 0x68, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74,
-0x48, 0x6642, 0x6d, 0x6d, 0x5206, 0x73, 0x73, 0x79d2, 0x20, 0x74, 0x41, 0x50, 0x20, 0x68, 0x3a, 0x6d, 0x6d, 0x41, 0x50, 0x20,
-0x68, 0xc2dc, 0x20, 0x6d, 0xbd84, 0x20, 0x73, 0xcd08, 0x20, 0x74, 0x48, 0x20, 0xec2, 0xea1, 0xe87, 0x20, 0x6d, 0x20, 0xe99, 0xeb2,
-0xe97, 0xeb5, 0x20, 0x73, 0x73, 0x20, 0xea7, 0xeb4, 0xe99, 0xeb2, 0xe97, 0xeb5, 0x20, 0x74, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73,
-0x73, 0x20, 0x28, 0x74, 0x29, 0x48, 0x48, 0x20, 0x27, 0x447, 0x430, 0x441, 0x43e, 0x432, 0x430, 0x27, 0x2c, 0x20, 0x6d, 0x6d,
-0x20, 0x27, 0x43c, 0x438, 0x43d, 0x443, 0x442, 0x430, 0x27, 0x2c, 0x20, 0x73, 0x73, 0x20, 0x27, 0x441, 0x435, 0x43a, 0x443, 0x43d,
-0x434, 0x438, 0x27, 0x20, 0x74, 0x41, 0x50, 0x20, 0x68, 0x2e, 0x6d, 0x6d, 0x41, 0x50, 0x20, 0x68, 0x2e, 0x6d, 0x6d, 0x2e,
-0x73, 0x73, 0x20, 0x74, 0x48, 0x48, 0x27, 0x68, 0x27, 0x27, 0x27, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x68, 0x3a,
-0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x28, 0x74, 0x29, 0x48, 0x48, 0x27, 0x48, 0x27, 0x6d, 0x6d, 0x27,
-0x27, 0x73, 0x73, 0x27, 0x27, 0x20, 0x74, 0x27, 0x6b, 0x6c, 0x27, 0x2e, 0x20, 0x48, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73,
-0x73, 0x20, 0x74, 0x48, 0x20, 0xe19, 0xe32, 0xe2c, 0xe34, 0xe01, 0xe32, 0x20, 0x6d, 0x6d, 0x20, 0xe19, 0xe32, 0xe17, 0xe35, 0x20,
-0x73, 0x73, 0x20, 0xe27, 0xe34, 0xe19, 0xe32, 0xe17, 0xe35, 0x20, 0x74, 0x41, 0x50, 0x20, 0x27, 0x67, 0x61, 0x27, 0x20, 0x68,
-0x3a, 0x6d, 0x6d, 0x41, 0x50, 0x20, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x74, 0x20, 0x68, 0x3a, 0x6d,
-0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50
+0x2e, 0x20, 0x41, 0x50, 0x68, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74, 0x48, 0x48, 0x3a, 0x6d,
+0x6d, 0x3a, 0x73, 0x73, 0x20, 0x28, 0x74, 0x29, 0xf46, 0xf74, 0xf0b, 0xf5a, 0xf7c, 0xf51, 0xf0b, 0x20, 0x68, 0x20, 0xf66, 0xf90,
+0xf62, 0xf0b, 0xf58, 0xf0b, 0x20, 0x6d, 0x6d, 0x20, 0x41, 0x50, 0xf46, 0xf74, 0xf0b, 0xf5a, 0xf7c, 0xf51, 0xf0b, 0x20, 0x68, 0x20,
+0xf66, 0xf90, 0xf62, 0xf0b, 0xf58, 0xf0b, 0x20, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74, 0x48, 0x3a, 0x6d,
+0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x48, 0x48, 0x2e, 0x6d, 0x6d, 0x48, 0x48, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20,
+0x74, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x74, 0x20, 0x41, 0x50, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x41, 0x50,
+0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x5b, 0x74, 0x5d, 0x48, 0x48, 0x20, 0x27, 0x68, 0x27, 0x20, 0x6d, 0x6d,
+0x20, 0x27, 0x6d, 0x69, 0x6e, 0x27, 0x20, 0x73, 0x73, 0x20, 0x27, 0x73, 0x27, 0x20, 0x74, 0x48, 0x3a, 0x6d, 0x6d, 0x2e,
+0x73, 0x73, 0x20, 0x74, 0x48, 0x2e, 0x6d, 0x6d, 0x48, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20, 0x74, 0x48, 0x20, 0x27,
+0x68, 0x27, 0x20, 0x6d, 0x6d, 0x20, 0x27, 0x6d, 0x69, 0x6e, 0x27, 0x20, 0x73, 0x73, 0x20, 0x27, 0x73, 0x27, 0x20, 0x74,
+0x48, 0x48, 0x2e, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x27, 0x68, 0x27, 0x20, 0x74, 0x68, 0x68, 0x3a, 0x6d, 0x6d, 0x20,
+0x41, 0x50, 0x68, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x20, 0x74, 0x48, 0x6642, 0x6d, 0x6d, 0x5206,
+0x73, 0x73, 0x79d2, 0x20, 0x74, 0x41, 0x50, 0x20, 0x68, 0x3a, 0x6d, 0x6d, 0x41, 0x50, 0x20, 0x68, 0xc2dc, 0x20, 0x6d, 0xbd84,
+0x20, 0x73, 0xcd08, 0x20, 0x74, 0x48, 0x20, 0xec2, 0xea1, 0xe87, 0x20, 0x6d, 0x20, 0xe99, 0xeb2, 0xe97, 0xeb5, 0x20, 0x73, 0x73,
+0x20, 0xea7, 0xeb4, 0xe99, 0xeb2, 0xe97, 0xeb5, 0x20, 0x74, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x28, 0x74, 0x29,
+0x41, 0x50, 0x20, 0x68, 0x2e, 0x6d, 0x6d, 0x41, 0x50, 0x20, 0x68, 0x2e, 0x6d, 0x6d, 0x2e, 0x73, 0x73, 0x20, 0x74, 0x27,
+0x6b, 0x6c, 0x27, 0x2e, 0x20, 0x48, 0x48, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x48, 0x20, 0xe19, 0xe32, 0xe2c,
+0xe34, 0xe01, 0xe32, 0x20, 0x6d, 0x6d, 0x20, 0xe19, 0xe32, 0xe17, 0xe35, 0x20, 0x73, 0x73, 0x20, 0xe27, 0xe34, 0xe19, 0xe32, 0xe17,
+0xe35, 0x20, 0x74, 0x41, 0x50, 0x20, 0x27, 0x67, 0x61, 0x27, 0x20, 0x68, 0x3a, 0x6d, 0x6d, 0x41, 0x50, 0x20, 0x68, 0x3a,
+0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x74, 0x74, 0x20, 0x68, 0x3a, 0x6d, 0x6d, 0x3a, 0x73, 0x73, 0x20, 0x41, 0x50, 0x48,
+0x3a, 0x6d, 0x6d, 0x20, 0x27, 0x68, 0x6f, 0x64, 0x17a, 0x27, 0x2e
};
static const ushort months_data[] = {
@@ -1719,319 +1878,333 @@ static const ushort months_data[] = {
0x61, 0x62, 0x61, 0x6a, 0x6a, 0x69, 0x69, 0x3b, 0x41, 0x64, 0x6f, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x48,
0x61, 0x67, 0x61, 0x79, 0x79, 0x61, 0x3b, 0x46, 0x75, 0x75, 0x6c, 0x62, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6e, 0x6b, 0x6f,
0x6c, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x53, 0x61, 0x64, 0x61, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x75, 0x64,
-0x64, 0x65, 0x65, 0x3b, 0x51, 0x75, 0x6e, 0x3b, 0x4e, 0x61, 0x68, 0x3b, 0x43, 0x69, 0x67, 0x3b, 0x41, 0x67, 0x64, 0x3b,
-0x43, 0x61, 0x78, 0x3b, 0x51, 0x61, 0x73, 0x3b, 0x51, 0x61, 0x64, 0x3b, 0x4c, 0x65, 0x71, 0x3b, 0x57, 0x61, 0x79, 0x3b,
-0x44, 0x69, 0x74, 0x3b, 0x58, 0x69, 0x6d, 0x3b, 0x4b, 0x61, 0x78, 0x3b, 0x51, 0x75, 0x6e, 0x78, 0x61, 0x20, 0x47, 0x61,
-0x72, 0x61, 0x62, 0x6c, 0x75, 0x3b, 0x4b, 0x75, 0x64, 0x6f, 0x3b, 0x43, 0x69, 0x67, 0x67, 0x69, 0x6c, 0x74, 0x61, 0x20,
-0x4b, 0x75, 0x64, 0x6f, 0x3b, 0x41, 0x67, 0x64, 0x61, 0x20, 0x42, 0x61, 0x78, 0x69, 0x73, 0x3b, 0x43, 0x61, 0x78, 0x61,
-0x68, 0x20, 0x41, 0x6c, 0x73, 0x61, 0x3b, 0x51, 0x61, 0x73, 0x61, 0x20, 0x44, 0x69, 0x72, 0x72, 0x69, 0x3b, 0x51, 0x61,
-0x64, 0x6f, 0x20, 0x44, 0x69, 0x72, 0x72, 0x69, 0x3b, 0x4c, 0x69, 0x69, 0x71, 0x65, 0x6e, 0x3b, 0x57, 0x61, 0x79, 0x73,
-0x75, 0x3b, 0x44, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x3b, 0x58, 0x69, 0x6d, 0x6f, 0x6c, 0x69, 0x3b, 0x4b, 0x61, 0x78, 0x78,
-0x61, 0x20, 0x47, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x75, 0x3b, 0x51, 0x3b, 0x4e, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x43, 0x3b,
-0x51, 0x3b, 0x51, 0x3b, 0x4c, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x58, 0x3b, 0x4b, 0x3b, 0x51, 0x75, 0x6e, 0x78, 0x61, 0x20,
-0x47, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x75, 0x3b, 0x4b, 0x75, 0x64, 0x6f, 0x3b, 0x43, 0x69, 0x67, 0x67, 0x69, 0x6c, 0x74,
-0x61, 0x20, 0x4b, 0x75, 0x64, 0x6f, 0x3b, 0x41, 0x67, 0x64, 0x61, 0x20, 0x42, 0x61, 0x78, 0x69, 0x73, 0x3b, 0x43, 0x61,
-0x78, 0x61, 0x68, 0x20, 0x41, 0x6c, 0x73, 0x61, 0x3b, 0x51, 0x61, 0x73, 0x61, 0x20, 0x44, 0x69, 0x72, 0x72, 0x69, 0x3b,
-0x51, 0x61, 0x64, 0x6f, 0x20, 0x44, 0x69, 0x72, 0x72, 0x69, 0x3b, 0x4c, 0x65, 0x71, 0x65, 0x65, 0x6e, 0x69, 0x3b, 0x57,
-0x61, 0x79, 0x73, 0x75, 0x3b, 0x44, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x3b, 0x58, 0x69, 0x6d, 0x6f, 0x6c, 0x69, 0x3b, 0x4b,
-0x61, 0x78, 0x78, 0x61, 0x20, 0x47, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x75, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62,
-0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c,
-0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73,
-0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b,
-0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69,
-0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70,
-0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d,
-0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x53, 0x68, 0x6b,
-0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x50, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x51, 0x65, 0x72, 0x3b, 0x4b, 0x6f, 0x72,
-0x3b, 0x47, 0x73, 0x68, 0x3b, 0x53, 0x68, 0x74, 0x3b, 0x54, 0x65, 0x74, 0x3b, 0x4e, 0xeb, 0x6e, 0x3b, 0x44, 0x68, 0x6a,
-0x3b, 0x6a, 0x61, 0x6e, 0x61, 0x72, 0x3b, 0x73, 0x68, 0x6b, 0x75, 0x72, 0x74, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x70,
-0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x72, 0x3b, 0x6b, 0x6f, 0x72,
-0x72, 0x69, 0x6b, 0x3b, 0x67, 0x75, 0x73, 0x68, 0x74, 0x3b, 0x73, 0x68, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x74, 0x65,
-0x74, 0x6f, 0x72, 0x3b, 0x6e, 0xeb, 0x6e, 0x74, 0x6f, 0x72, 0x3b, 0x64, 0x68, 0x6a, 0x65, 0x74, 0x6f, 0x72, 0x3b, 0x4a,
-0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x51, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4e,
-0x3b, 0x44, 0x3b, 0x1303, 0x1295, 0x12e9, 0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x3b, 0x121c,
+0x64, 0x65, 0x65, 0x3b, 0x4d, 0x30, 0x31, 0x3b, 0x4d, 0x30, 0x32, 0x3b, 0x4d, 0x30, 0x33, 0x3b, 0x4d, 0x30, 0x34, 0x3b,
+0x4d, 0x30, 0x35, 0x3b, 0x4d, 0x30, 0x36, 0x3b, 0x4d, 0x30, 0x37, 0x3b, 0x4d, 0x30, 0x38, 0x3b, 0x4d, 0x30, 0x39, 0x3b,
+0x4d, 0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62,
+0x2e, 0x3b, 0x4d, 0x72, 0x74, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a,
+0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44,
+0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69,
+0x65, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75,
+0x6e, 0x69, 0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53,
+0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76,
+0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x53,
+0x68, 0x6b, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x50, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x51, 0x65, 0x72, 0x3b, 0x4b,
+0x6f, 0x72, 0x3b, 0x47, 0x73, 0x68, 0x3b, 0x53, 0x68, 0x74, 0x3b, 0x54, 0x65, 0x74, 0x3b, 0x4e, 0xeb, 0x6e, 0x3b, 0x44,
+0x68, 0x6a, 0x3b, 0x4a, 0x61, 0x6e, 0x61, 0x72, 0x3b, 0x53, 0x68, 0x6b, 0x75, 0x72, 0x74, 0x3b, 0x4d, 0x61, 0x72, 0x73,
+0x3b, 0x50, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x51, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x72, 0x3b, 0x4b,
+0x6f, 0x72, 0x72, 0x69, 0x6b, 0x3b, 0x47, 0x75, 0x73, 0x68, 0x74, 0x3b, 0x53, 0x68, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x3b,
+0x54, 0x65, 0x74, 0x6f, 0x72, 0x3b, 0x4e, 0xeb, 0x6e, 0x74, 0x6f, 0x72, 0x3b, 0x44, 0x68, 0x6a, 0x65, 0x74, 0x6f, 0x72,
+0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x51, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x54,
+0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x61, 0x72, 0x3b, 0x73, 0x68, 0x6b, 0x75, 0x72, 0x74, 0x3b, 0x6d, 0x61,
+0x72, 0x73, 0x3b, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x72,
+0x3b, 0x6b, 0x6f, 0x72, 0x72, 0x69, 0x6b, 0x3b, 0x67, 0x75, 0x73, 0x68, 0x74, 0x3b, 0x73, 0x68, 0x74, 0x61, 0x74, 0x6f,
+0x72, 0x3b, 0x74, 0x65, 0x74, 0x6f, 0x72, 0x3b, 0x6e, 0xeb, 0x6e, 0x74, 0x6f, 0x72, 0x3b, 0x64, 0x68, 0x6a, 0x65, 0x74,
+0x6f, 0x72, 0x3b, 0x1303, 0x1295, 0x12e9, 0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x3b, 0x121c,
0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1276,
0x3b, 0x1296, 0x126c, 0x121d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x3b, 0x1303, 0x1295, 0x12e9, 0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a,
0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x120d, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b,
0x12a6, 0x1308, 0x1235, 0x1275, 0x3b, 0x1234, 0x1355, 0x1274, 0x121d, 0x1260, 0x122d, 0x3b, 0x12a6, 0x12ad, 0x1276, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c,
0x121d, 0x1260, 0x122d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x1260, 0x122d, 0x3b, 0x1303, 0x3b, 0x134c, 0x3b, 0x121b, 0x3b, 0x12a4, 0x3b, 0x121c, 0x3b,
-0x1301, 0x3b, 0x1301, 0x3b, 0x12a6, 0x3b, 0x1234, 0x3b, 0x12a6, 0x3b, 0x1296, 0x3b, 0x12f2, 0x3b, 0x1303, 0x1295, 0x12e9, 0x3b, 0x134c, 0x1265,
-0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b,
-0x12a6, 0x1308, 0x1235, 0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x3b, 0x1296, 0x126c, 0x121d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x3b,
-0x1303, 0x1295, 0x12e9, 0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x120d,
-0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x1275, 0x3b, 0x1234, 0x1355, 0x1274, 0x121d,
-0x1260, 0x122d, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x12cd, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c, 0x121d, 0x1260, 0x122d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x1260,
-0x122d, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b,
-0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644,
-0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x633, 0x637, 0x633, 0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648,
-0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641,
-0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x648, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x633, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f,
-0x3b, 0x62c, 0x627, 0x646, 0x641, 0x64a, 0x3b, 0x641, 0x64a, 0x641, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x641,
-0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x62c, 0x648, 0x627, 0x646, 0x3b, 0x62c, 0x648, 0x64a, 0x644, 0x64a, 0x629, 0x3b,
-0x623, 0x648, 0x62a, 0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648,
-0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b,
-0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x623, 0x3b, 0x633, 0x3b, 0x623, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x643, 0x627, 0x646, 0x648,
-0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646,
-0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648,
-0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x623,
-0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648,
-0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x643, 0x3b, 0x634, 0x3b, 0x622, 0x3b, 0x646, 0x3b, 0x623, 0x3b, 0x62d, 0x3b,
-0x62a, 0x3b, 0x622, 0x3b, 0x623, 0x3b, 0x62a, 0x3b, 0x62a, 0x3b, 0x643, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644,
-0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646,
-0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628,
-0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x6cc, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a,
-0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644,
-0x623, 0x648, 0x644, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631,
-0x633, 0x3b, 0x625, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a,
-0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648,
-0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b,
-0x645, 0x3b, 0x625, 0x3b, 0x648, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b,
-0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628,
-0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x632,
-0x3b, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x646, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648,
-0x646, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x646, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b,
-0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x570, 0x576, 0x57e, 0x3b, 0x583, 0x57f,
-0x57e, 0x3b, 0x574, 0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x3b, 0x574, 0x575, 0x57d, 0x3b, 0x570, 0x576, 0x57d, 0x3b, 0x570, 0x56c,
-0x57d, 0x3b, 0x585, 0x563, 0x57d, 0x3b, 0x57d, 0x57a, 0x57f, 0x3b, 0x570, 0x56f, 0x57f, 0x3b, 0x576, 0x575, 0x574, 0x3b, 0x564, 0x56f,
-0x57f, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x3b, 0x574, 0x561,
-0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b,
-0x57d, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x3b, 0x57d, 0x565, 0x57a,
-0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x576, 0x578, 0x575,
-0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x540, 0x3b, 0x553, 0x3b,
-0x544, 0x3b, 0x531, 0x3b, 0x544, 0x3b, 0x540, 0x3b, 0x540, 0x3b, 0x555, 0x3b, 0x54d, 0x3b, 0x540, 0x3b, 0x546, 0x3b, 0x534, 0x3b,
-0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x574, 0x561,
-0x580, 0x57f, 0x56b, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, 0x56b, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578,
-0x582, 0x576, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d, 0x56b, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578,
-0x57d, 0x56b, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574,
-0x562, 0x565, 0x580, 0x56b, 0x3b, 0x576, 0x578, 0x575, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565,
-0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x3b, 0x9ae, 0x9be,
-0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1,
-0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x3b, 0x9b8, 0x9c7, 0x9aa, 0x9cd, 0x99f, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x3b, 0x9a8,
-0x9ad, 0x9c7, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac,
-0x9cd, 0x9f0, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, 0x9b2,
-0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b7, 0x9cd, 0x99f, 0x3b,
-0x99b, 0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9f0, 0x3b, 0x9a8,
-0x9f1, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x9a1, 0x9bf, 0x99a, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x79, 0x61, 0x6e, 0x3b,
-0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x6e, 0x3b,
-0x69, 0x79, 0x6c, 0x3b, 0x61, 0x76, 0x71, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x79, 0x3b,
-0x64, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61,
-0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x130, 0x79, 0x75, 0x6e, 0x3b, 0x130, 0x79,
-0x75, 0x6c, 0x3b, 0x41, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4f,
-0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72,
-0x3b, 0x79, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b,
-0x61, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x75, 0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b,
-0x61, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x79,
-0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x458, 0x430,
-0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440,
-0x435, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x458, 0x443, 0x43d, 0x3b, 0x438, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433,
-0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x458, 0x430, 0x431, 0x440,
-0x3b, 0x43d, 0x43e, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x75, 0x72, 0x74, 0x2e, 0x3b,
-0x6f, 0x74, 0x73, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x2e, 0x3b,
-0x65, 0x6b, 0x61, 0x2e, 0x3b, 0x75, 0x7a, 0x74, 0x2e, 0x3b, 0x61, 0x62, 0x75, 0x2e, 0x3b, 0x69, 0x72, 0x61, 0x2e, 0x3b,
-0x75, 0x72, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x61, 0x2e, 0x3b, 0x61, 0x62, 0x65, 0x2e, 0x3b, 0x75, 0x72, 0x74, 0x61, 0x72,
-0x72, 0x69, 0x6c, 0x61, 0x3b, 0x6f, 0x74, 0x73, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x78, 0x6f, 0x61,
-0x3b, 0x61, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x3b, 0x65, 0x6b, 0x61,
-0x69, 0x6e, 0x61, 0x3b, 0x75, 0x7a, 0x74, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x61, 0x62, 0x75, 0x7a, 0x74, 0x75, 0x61, 0x3b,
-0x69, 0x72, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x75, 0x72, 0x72, 0x69, 0x61, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x6f, 0x61, 0x3b,
-0x61, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x3b, 0x55, 0x3b, 0x4f, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x45, 0x3b,
-0x55, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x55, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x75, 0x72, 0x74, 0x61, 0x72, 0x72, 0x69, 0x6c,
-0x61, 0x6b, 0x3b, 0x6f, 0x74, 0x73, 0x61, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x78, 0x6f, 0x61, 0x6b,
-0x3b, 0x61, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x6d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x6b, 0x3b, 0x65,
-0x6b, 0x61, 0x69, 0x6e, 0x61, 0x6b, 0x3b, 0x75, 0x7a, 0x74, 0x61, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x61, 0x62, 0x75, 0x7a,
-0x74, 0x75, 0x61, 0x6b, 0x3b, 0x69, 0x72, 0x61, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x75, 0x72, 0x72, 0x69, 0x61, 0x6b, 0x3b,
-0x61, 0x7a, 0x61, 0x72, 0x6f, 0x61, 0x6b, 0x3b, 0x61, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x6b, 0x3b, 0x99c, 0x9be, 0x9a8,
-0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9b0, 0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ae,
-0x9be, 0x9b0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9b0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c,
-0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b8, 0x9cd, 0x99f, 0x3b, 0x9b8, 0x9c7, 0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac,
-0x9b0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9b0, 0x3b, 0x9a8, 0x9ad, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf,
-0x9b8, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x99c, 0x9be, 0x3b, 0x9ab, 0x9c7, 0x3b, 0x9ae, 0x9be, 0x3b, 0x98f, 0x3b, 0x9ae, 0x9c7,
-0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x3b, 0x986, 0x3b, 0x9b8, 0x9c7, 0x3b, 0x985, 0x3b, 0x9a8, 0x3b, 0x9a1, 0x9bf, 0x3b,
-0xf5f, 0xfb3, 0xf0b, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf22, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf23, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf24, 0x3b,
-0xf5f, 0xfb3, 0xf0b, 0xf25, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf26, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf27, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf28, 0x3b,
-0xf5f, 0xfb3, 0xf0b, 0xf29, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf20, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b,
-0xf21, 0xf22, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72,
-0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b,
-0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b,
-0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72,
-0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56,
-0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51,
-0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66,
-0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b,
-0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22,
-0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21,
-0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0x31, 0x32, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42,
-0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3,
-0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b,
-0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3,
-0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b,
-0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72,
-0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b,
-0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0x34, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0x39, 0x3b, 0xf21, 0xf20,
-0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0x47, 0x65, 0x6e, 0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x3b, 0x4d, 0x65, 0x75,
-0x72, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x3b,
-0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65,
-0x72, 0x3b, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x4d,
-0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68,
-0x65, 0x76, 0x65, 0x6e, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x72, 0x65, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65,
-0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x72, 0x7a, 0x75, 0x3b,
-0x44f, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b,
-0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43f,
-0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f,
-0x43d, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b,
-0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432,
-0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c,
-0x432, 0x440, 0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438,
-0x3b, 0x44f, 0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x44e, 0x3b, 0x44e, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e,
-0x3b, 0x43d, 0x3b, 0x434, 0x3b, 0x1007, 0x1014, 0x103a, 0x1014, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1016, 0x1031, 0x1016, 0x1031, 0x102c, 0x103a,
-0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1019, 0x1010, 0x103a, 0x3b, 0x1027, 0x1015, 0x103c, 0x102e, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, 0x1014,
-0x103a, 0x3b, 0x1007, 0x1030, 0x101c, 0x102d, 0x102f, 0x1004, 0x103a, 0x3b, 0x1029, 0x1002, 0x102f, 0x1010, 0x103a, 0x3b, 0x1005, 0x1000, 0x103a, 0x1010,
-0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1021, 0x1031, 0x102c, 0x1000, 0x103a, 0x1010, 0x102d, 0x102f, 0x1018, 0x102c, 0x3b, 0x1014, 0x102d, 0x102f, 0x101d,
-0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1012, 0x102e, 0x1007, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1007, 0x3b, 0x1016, 0x3b, 0x1019, 0x3b, 0x1027,
-0x3b, 0x1019, 0x3b, 0x1007, 0x3b, 0x1007, 0x3b, 0x1029, 0x3b, 0x1005, 0x3b, 0x1021, 0x3b, 0x1014, 0x3b, 0x1012, 0x3b, 0x441, 0x442, 0x443,
-0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, 0x440,
-0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441,
-0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x44b, 0x3b, 0x441,
-0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43c, 0x430, 0x439, 0x3b,
-0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43d, 0x456, 0x432, 0x435,
-0x43d, 0x44c, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x435, 0x43d, 0x44c, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, 0x43d,
-0x456, 0x43a, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, 0x430, 0x434, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x430, 0x43d, 0x44c, 0x3b,
-0x441, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x43a, 0x3b, 0x43c, 0x3b, 0x447, 0x3b, 0x43b, 0x3b, 0x436, 0x3b, 0x432, 0x3b, 0x43a, 0x3b,
-0x43b, 0x3b, 0x441, 0x3b, 0x441, 0x442, 0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b,
-0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b,
-0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44f,
-0x3b, 0x43b, 0x44e, 0x442, 0x430, 0x433, 0x430, 0x3b, 0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43a, 0x440, 0x430,
-0x441, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44f, 0x3b, 0x43b,
-0x456, 0x43f, 0x435, 0x43d, 0x44f, 0x3b, 0x436, 0x43d, 0x456, 0x45e, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x43d, 0x44f,
-0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, 0x43d, 0x456, 0x43a, 0x430, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, 0x430,
-0x434, 0x430, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x43d, 0x44f, 0x3b, 0x1798, 0x1780, 0x179a, 0x17b6, 0x3b, 0x1780, 0x17bb, 0x1798, 0x17d2, 0x1797,
-0x17c8, 0x3b, 0x1798, 0x17b8, 0x1793, 0x17b6, 0x3b, 0x1798, 0x17c1, 0x179f, 0x17b6, 0x3b, 0x17a7, 0x179f, 0x1797, 0x17b6, 0x3b, 0x1798, 0x17b7, 0x1790,
-0x17bb, 0x1793, 0x17b6, 0x3b, 0x1780, 0x1780, 0x17d2, 0x1780, 0x178a, 0x17b6, 0x3b, 0x179f, 0x17b8, 0x17a0, 0x17b6, 0x3b, 0x1780, 0x1789, 0x17d2, 0x1789,
-0x17b6, 0x3b, 0x178f, 0x17bb, 0x179b, 0x17b6, 0x3b, 0x179c, 0x17b7, 0x1785, 0x17d2, 0x1786, 0x17b7, 0x1780, 0x17b6, 0x3b, 0x1792, 0x17d2, 0x1793, 0x17bc,
-0x3b, 0x67, 0x65, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x2e,
-0x3b, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x2e, 0x3b,
-0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b,
-0x67, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62,
-0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c,
-0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75,
-0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x72,
-0x65, 0x3b, 0x47, 0x4e, 0x3b, 0x46, 0x42, 0x3b, 0x4d, 0xc7, 0x3b, 0x41, 0x42, 0x3b, 0x4d, 0x47, 0x3b, 0x4a, 0x4e, 0x3b,
-0x4a, 0x4c, 0x3b, 0x41, 0x47, 0x3b, 0x53, 0x54, 0x3b, 0x4f, 0x43, 0x3b, 0x4e, 0x56, 0x3b, 0x44, 0x53, 0x3b, 0x31, 0x6708,
-0x3b, 0x32, 0x6708, 0x3b, 0x33, 0x6708, 0x3b, 0x34, 0x6708, 0x3b, 0x35, 0x6708, 0x3b, 0x36, 0x6708, 0x3b, 0x37, 0x6708, 0x3b, 0x38,
-0x6708, 0x3b, 0x39, 0x6708, 0x3b, 0x31, 0x30, 0x6708, 0x3b, 0x31, 0x31, 0x6708, 0x3b, 0x31, 0x32, 0x6708, 0x3b, 0x4e00, 0x6708, 0x3b,
-0x4e8c, 0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, 0x56db, 0x6708, 0x3b, 0x4e94, 0x6708, 0x3b, 0x516d, 0x6708, 0x3b, 0x4e03, 0x6708, 0x3b, 0x516b, 0x6708,
-0x3b, 0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, 0x3b, 0x5341, 0x4e00, 0x6708, 0x3b, 0x5341, 0x4e8c, 0x6708, 0x3b, 0x73, 0x69, 0x6a, 0x3b, 0x76,
-0x65, 0x6c, 0x6a, 0x3b, 0x6f, 0x17e, 0x75, 0x3b, 0x74, 0x72, 0x61, 0x3b, 0x73, 0x76, 0x69, 0x3b, 0x6c, 0x69, 0x70, 0x3b,
-0x73, 0x72, 0x70, 0x3b, 0x6b, 0x6f, 0x6c, 0x3b, 0x72, 0x75, 0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x73, 0x74, 0x75, 0x3b,
-0x70, 0x72, 0x6f, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x61, 0x6e, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x61,
-0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x61, 0x6b, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x76, 0x69, 0x62,
-0x61, 0x6e, 0x6a, 0x3b, 0x6c, 0x69, 0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x72, 0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x6b, 0x6f,
-0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x3b, 0x72, 0x75, 0x6a, 0x61, 0x6e, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64,
-0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x69, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x61, 0x63, 0x3b, 0x31, 0x2e,
-0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, 0x3b, 0x34, 0x2e, 0x3b, 0x35, 0x2e, 0x3b, 0x36, 0x2e, 0x3b, 0x37, 0x2e, 0x3b, 0x38,
-0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, 0x30, 0x2e, 0x3b, 0x31, 0x31, 0x2e, 0x3b, 0x31, 0x32, 0x2e, 0x3b, 0x73, 0x69, 0x6a,
-0x65, 0x10d, 0x6e, 0x6a, 0x61, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x65, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x6b, 0x61,
-0x3b, 0x74, 0x72, 0x61, 0x76, 0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x76, 0x69, 0x62, 0x6e, 0x6a, 0x61, 0x3b, 0x6c, 0x69, 0x70,
-0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x72, 0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x61, 0x3b,
-0x72, 0x75, 0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, 0x3b, 0x73, 0x74, 0x75, 0x64,
-0x65, 0x6e, 0x6f, 0x67, 0x61, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x61, 0x3b, 0x6c, 0x65, 0x64, 0x3b, 0xfa,
-0x6e, 0x6f, 0x3b, 0x62, 0x159, 0x65, 0x3b, 0x64, 0x75, 0x62, 0x3b, 0x6b, 0x76, 0x11b, 0x3b, 0x10d, 0x76, 0x6e, 0x3b, 0x10d,
-0x76, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x7a, 0xe1, 0x159, 0x3b, 0x159, 0xed, 0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x70,
-0x72, 0x6f, 0x3b, 0x6c, 0x65, 0x64, 0x65, 0x6e, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x65, 0x6e,
-0x3b, 0x64, 0x75, 0x62, 0x65, 0x6e, 0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e,
-0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x65, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x65, 0x6e, 0x3b, 0x7a, 0xe1, 0x159, 0xed,
-0x3b, 0x159, 0xed, 0x6a, 0x65, 0x6e, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x70, 0x72, 0x6f, 0x73,
-0x69, 0x6e, 0x65, 0x63, 0x3b, 0x6c, 0x3b, 0xfa, 0x3b, 0x62, 0x3b, 0x64, 0x3b, 0x6b, 0x3b, 0x10d, 0x3b, 0x10d, 0x3b, 0x73,
-0x3b, 0x7a, 0x3b, 0x159, 0x3b, 0x6c, 0x3b, 0x70, 0x3b, 0x6c, 0x65, 0x64, 0x6e, 0x61, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x61,
-0x3b, 0x62, 0x159, 0x65, 0x7a, 0x6e, 0x61, 0x3b, 0x64, 0x75, 0x62, 0x6e, 0x61, 0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x6e, 0x61,
-0x3b, 0x10d, 0x65, 0x72, 0x76, 0x6e, 0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x63, 0x65, 0x3b, 0x73, 0x72, 0x70,
-0x6e, 0x61, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70,
-0x61, 0x64, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62,
-0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c,
-0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63,
-0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74,
-0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c,
-0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f,
-0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65,
-0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b,
-0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61,
-0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64,
-0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x3b,
-0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b,
-0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b,
-0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c,
-0x3b, 0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73,
-0x74, 0x75, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65,
-0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b,
-0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x72, 0x74, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b,
-0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73,
-0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0xd801,
-0xdc16, 0xd801, 0xdc30, 0xd801, 0xdc4c, 0x3b, 0xd801, 0xdc19, 0xd801, 0xdc2f, 0xd801, 0xdc3a, 0x3b, 0xd801, 0xdc23, 0xd801, 0xdc2a, 0xd801, 0xdc49, 0x3b,
-0xd801, 0xdc01, 0xd801, 0xdc39, 0xd801, 0xdc49, 0x3b, 0xd801, 0xdc23, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc16, 0xd801, 0xdc2d, 0xd801, 0xdc4c, 0x3b, 0xd801,
-0xdc16, 0xd801, 0xdc2d, 0xd801, 0xdc4a, 0x3b, 0xd801, 0xdc02, 0xd801, 0xdc40, 0x3b, 0xd801, 0xdc1d, 0xd801, 0xdc2f, 0xd801, 0xdc39, 0x3b, 0xd801, 0xdc09,
-0xd801, 0xdc3f, 0xd801, 0xdc3b, 0x3b, 0xd801, 0xdc24, 0xd801, 0xdc2c, 0xd801, 0xdc42, 0x3b, 0xd801, 0xdc14, 0xd801, 0xdc28, 0xd801, 0xdc45, 0x3b, 0xd801,
-0xdc16, 0xd801, 0xdc30, 0xd801, 0xdc4c, 0xd801, 0xdc37, 0xd801, 0xdc2d, 0xd801, 0xdc2f, 0xd801, 0xdc49, 0xd801, 0xdc28, 0x3b, 0xd801, 0xdc19, 0xd801, 0xdc2f,
-0xd801, 0xdc3a, 0xd801, 0xdc49, 0xd801, 0xdc2d, 0xd801, 0xdc2f, 0xd801, 0xdc49, 0xd801, 0xdc28, 0x3b, 0xd801, 0xdc23, 0xd801, 0xdc2a, 0xd801, 0xdc49, 0xd801,
-0xdc3d, 0x3b, 0xd801, 0xdc01, 0xd801, 0xdc39, 0xd801, 0xdc49, 0xd801, 0xdc2e, 0xd801, 0xdc4a, 0x3b, 0xd801, 0xdc23, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc16,
-0xd801, 0xdc2d, 0xd801, 0xdc4c, 0x3b, 0xd801, 0xdc16, 0xd801, 0xdc2d, 0xd801, 0xdc4a, 0xd801, 0xdc34, 0x3b, 0xd801, 0xdc02, 0xd801, 0xdc40, 0xd801, 0xdc32,
-0xd801, 0xdc45, 0xd801, 0xdc3b, 0x3b, 0xd801, 0xdc1d, 0xd801, 0xdc2f, 0xd801, 0xdc39, 0xd801, 0xdc3b, 0xd801, 0xdc2f, 0xd801, 0xdc4b, 0xd801, 0xdc3a, 0xd801,
-0xdc32, 0xd801, 0xdc49, 0x3b, 0xd801, 0xdc09, 0xd801, 0xdc3f, 0xd801, 0xdc3b, 0xd801, 0xdc2c, 0xd801, 0xdc3a, 0xd801, 0xdc32, 0xd801, 0xdc49, 0x3b, 0xd801,
-0xdc24, 0xd801, 0xdc2c, 0xd801, 0xdc42, 0xd801, 0xdc2f, 0xd801, 0xdc4b, 0xd801, 0xdc3a, 0xd801, 0xdc32, 0xd801, 0xdc49, 0x3b, 0xd801, 0xdc14, 0xd801, 0xdc28,
-0xd801, 0xdc45, 0xd801, 0xdc2f, 0xd801, 0xdc4b, 0xd801, 0xdc3a, 0xd801, 0xdc32, 0xd801, 0xdc49, 0x3b, 0xd801, 0xdc16, 0x3b, 0xd801, 0xdc19, 0x3b, 0xd801,
-0xdc23, 0x3b, 0xd801, 0xdc01, 0x3b, 0xd801, 0xdc23, 0x3b, 0xd801, 0xdc16, 0x3b, 0xd801, 0xdc16, 0x3b, 0xd801, 0xdc02, 0x3b, 0xd801, 0xdc1d, 0x3b,
-0xd801, 0xdc09, 0x3b, 0xd801, 0xdc24, 0x3b, 0xd801, 0xdc14, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x3b, 0x76, 0x65, 0x65, 0x62, 0x72, 0x3b,
-0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, 0x3b,
-0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e,
-0x6f, 0x76, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x76, 0x65, 0x65, 0x62,
-0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61,
-0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74,
-0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b,
-0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a,
-0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e,
-0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d,
-0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f,
-0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65,
-0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0x69,
-0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65,
-0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65,
-0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x3b,
-0x68, 0x65, 0x6c, 0x6d, 0x69, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x3b, 0x74,
-0x6f, 0x75, 0x6b, 0x6f, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x3b, 0x65, 0x6c, 0x6f, 0x3b,
-0x73, 0x79, 0x79, 0x73, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x3b, 0x6a, 0x6f, 0x75,
-0x6c, 0x75, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75,
-0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x3b,
-0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x69,
-0x6e, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75,
-0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x6a,
-0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x3b, 0x54, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x4b, 0x3b,
-0x48, 0x3b, 0x45, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75,
-0x74, 0x61, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73,
-0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x74, 0x6f, 0x75,
-0x6b, 0x6f, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65,
-0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x73, 0x79,
-0x79, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61,
-0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x74, 0x61,
-0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76,
-0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x2e, 0x3b, 0x61, 0x6f,
-0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64,
-0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x72, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x69, 0x65, 0x72, 0x3b,
-0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b,
-0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x65, 0x74, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
-0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b,
-0x64, 0xe9, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x46, 0x61, 0x6f, 0x69, 0x3b, 0x47, 0x65, 0x61, 0x72, 0x72, 0x3b,
-0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x47, 0x69, 0x62, 0x6c, 0x3b, 0x43, 0xe8, 0x69, 0x74, 0x3b, 0xd2, 0x67, 0x6d, 0x68, 0x3b,
-0x49, 0x75, 0x63, 0x68, 0x3b, 0x4c, 0xf9, 0x6e, 0x61, 0x3b, 0x53, 0x75, 0x6c, 0x74, 0x3b, 0x44, 0xe0, 0x6d, 0x68, 0x3b,
-0x53, 0x61, 0x6d, 0x68, 0x3b, 0x44, 0xf9, 0x62, 0x68, 0x3b, 0x41, 0x6d, 0x20, 0x46, 0x61, 0x6f, 0x69, 0x6c, 0x6c, 0x65,
-0x61, 0x63, 0x68, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, 0x41, 0x6d, 0x20, 0x4d, 0xe0,
-0x72, 0x74, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x43, 0xe8, 0x69,
-0x74, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0xd2, 0x67, 0x6d, 0x68, 0x69, 0x6f, 0x73, 0x3b, 0x41, 0x6e,
-0x20, 0x74, 0x2d, 0x49, 0x75, 0x63, 0x68, 0x61, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x4c, 0xf9, 0x6e, 0x61, 0x73, 0x74, 0x61,
-0x6c, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x44, 0xe0,
-0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x41,
-0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, 0x61, 0x63, 0x68, 0x64, 0x3b, 0x46, 0x41, 0x3b, 0x47, 0x45, 0x3b, 0x4d, 0xc0,
-0x3b, 0x47, 0x49, 0x3b, 0x43, 0xc8, 0x3b, 0xd2, 0x47, 0x3b, 0x49, 0x55, 0x3b, 0x4c, 0xd9, 0x3b, 0x53, 0x55, 0x3b, 0x44,
-0xc0, 0x3b, 0x53, 0x41, 0x3b, 0x44, 0xd9, 0x3b, 0x58, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b,
+0x1301, 0x3b, 0x1301, 0x3b, 0x12a6, 0x3b, 0x1234, 0x3b, 0x12a6, 0x3b, 0x1296, 0x3b, 0x12f2, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b,
+0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627,
+0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x633, 0x637, 0x633,
+0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628,
+0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x648, 0x3b, 0x646,
+0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x633, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x62c, 0x627, 0x646, 0x641, 0x64a, 0x3b, 0x641,
+0x64a, 0x641, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x641, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b,
+0x62c, 0x648, 0x627, 0x646, 0x3b, 0x62c, 0x648, 0x64a, 0x644, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x62a, 0x3b, 0x633, 0x628, 0x62a, 0x645,
+0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633,
+0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x623, 0x3b,
+0x633, 0x3b, 0x623, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a,
+0x3b, 0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627,
+0x631, 0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644,
+0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646,
+0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b,
+0x643, 0x3b, 0x634, 0x3b, 0x622, 0x3b, 0x646, 0x3b, 0x623, 0x3b, 0x62d, 0x3b, 0x62a, 0x3b, 0x622, 0x3b, 0x623, 0x3b, 0x62a, 0x3b,
+0x62a, 0x3b, 0x643, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627,
+0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632,
+0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a,
+0x634, 0x631, 0x6cc, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b,
+0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x64a, 0x646, 0x627, 0x64a,
+0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x625, 0x628, 0x631, 0x64a, 0x644, 0x3b,
+0x645, 0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x634,
+0x62a, 0x3b, 0x634, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628,
+0x631, 0x3b, 0x62f, 0x62c, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x625, 0x3b, 0x648, 0x3b, 0x646, 0x3b,
+0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628,
+0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b,
+0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x632, 0x3b, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x646,
+0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x646, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x646, 0x628,
+0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b,
+0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x570, 0x576, 0x57e, 0x3b, 0x583, 0x57f, 0x57e, 0x3b, 0x574, 0x580, 0x57f, 0x3b, 0x561, 0x57a,
+0x580, 0x3b, 0x574, 0x575, 0x57d, 0x3b, 0x570, 0x576, 0x57d, 0x3b, 0x570, 0x56c, 0x57d, 0x3b, 0x585, 0x563, 0x57d, 0x3b, 0x57d, 0x565,
+0x57a, 0x3b, 0x570, 0x578, 0x56f, 0x3b, 0x576, 0x578, 0x575, 0x3b, 0x564, 0x565, 0x56f, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561,
+0x580, 0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x3b, 0x574, 0x561, 0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c,
+0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d,
+0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x570,
+0x578, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x576, 0x578, 0x575, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x564, 0x565,
+0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x540, 0x3b, 0x553, 0x3b, 0x544, 0x3b, 0x531, 0x3b, 0x544, 0x3b, 0x540, 0x3b,
+0x540, 0x3b, 0x555, 0x3b, 0x54d, 0x3b, 0x540, 0x3b, 0x546, 0x3b, 0x534, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x56b,
+0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x574, 0x561, 0x580, 0x57f, 0x56b, 0x3b, 0x561, 0x57a, 0x580, 0x56b,
+0x56c, 0x56b, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578,
+0x582, 0x56c, 0x56b, 0x57d, 0x56b, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x56b, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565,
+0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x576, 0x578, 0x575,
+0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x99c, 0x9be,
+0x9a8, 0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x3b, 0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0,
+0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x3b, 0x9b8,
+0x9c7, 0x9aa, 0x9cd, 0x99f, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x3b, 0x9a8, 0x9ad, 0x9c7, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x3b,
+0x99c, 0x9be, 0x9a8, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b,
+0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b,
+0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b7, 0x9cd, 0x99f, 0x3b, 0x99b, 0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, 0x9ae, 0x9cd,
+0x9ac, 0x9f0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9f0, 0x3b, 0x9a8, 0x9f1, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x9a1,
+0x9bf, 0x99a, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b,
+0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x6e, 0x3b, 0x69, 0x79, 0x6c, 0x3b, 0x61, 0x76, 0x71, 0x3b,
+0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x79, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76,
+0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c,
+0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x130, 0x79, 0x75, 0x6e, 0x3b, 0x130, 0x79, 0x75, 0x6c, 0x3b, 0x41, 0x76, 0x71, 0x75, 0x73,
+0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4e,
+0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x79, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b,
+0x66, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61,
+0x79, 0x3b, 0x69, 0x79, 0x75, 0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x73,
+0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, 0x79, 0x61,
+0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x458, 0x430, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432,
+0x440, 0x430, 0x43b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438,
+0x458, 0x443, 0x43d, 0x3b, 0x438, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442,
+0x458, 0x430, 0x431, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x43d, 0x43e, 0x458, 0x430, 0x431, 0x440, 0x3b,
+0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x55, 0x72, 0x74, 0x2e, 0x3b, 0x4f, 0x74, 0x73, 0x2e, 0x3b, 0x4d, 0x61, 0x72,
+0x2e, 0x3b, 0x41, 0x70, 0x69, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x2e, 0x3b, 0x45, 0x6b, 0x61, 0x2e, 0x3b, 0x55, 0x7a, 0x74,
+0x2e, 0x3b, 0x41, 0x62, 0x75, 0x2e, 0x3b, 0x49, 0x72, 0x61, 0x2e, 0x3b, 0x55, 0x72, 0x72, 0x2e, 0x3b, 0x41, 0x7a, 0x61,
+0x2e, 0x3b, 0x41, 0x62, 0x65, 0x2e, 0x3b, 0x55, 0x72, 0x74, 0x61, 0x72, 0x72, 0x69, 0x6c, 0x61, 0x3b, 0x4f, 0x74, 0x73,
+0x61, 0x69, 0x6c, 0x61, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x78, 0x6f, 0x61, 0x3b, 0x41, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61,
+0x3b, 0x4d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x3b, 0x45, 0x6b, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x55, 0x7a, 0x74, 0x61,
+0x69, 0x6c, 0x61, 0x3b, 0x41, 0x62, 0x75, 0x7a, 0x74, 0x75, 0x61, 0x3b, 0x49, 0x72, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x55,
+0x72, 0x72, 0x69, 0x61, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x6f, 0x61, 0x3b, 0x41, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x3b,
+0x55, 0x3b, 0x4f, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x55, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x55, 0x3b,
+0x41, 0x3b, 0x41, 0x3b, 0x75, 0x72, 0x74, 0x2e, 0x3b, 0x6f, 0x74, 0x73, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61,
+0x70, 0x69, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x2e, 0x3b, 0x65, 0x6b, 0x61, 0x2e, 0x3b, 0x75, 0x7a, 0x74, 0x2e, 0x3b, 0x61,
+0x62, 0x75, 0x2e, 0x3b, 0x69, 0x72, 0x61, 0x2e, 0x3b, 0x75, 0x72, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x61, 0x2e, 0x3b, 0x61,
+0x62, 0x65, 0x2e, 0x3b, 0x75, 0x72, 0x74, 0x61, 0x72, 0x72, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x6f, 0x74, 0x73, 0x61, 0x69,
+0x6c, 0x61, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x78, 0x6f, 0x61, 0x6b, 0x3b, 0x61, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61,
+0x6b, 0x3b, 0x6d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x6b, 0x3b, 0x65, 0x6b, 0x61, 0x69, 0x6e, 0x61, 0x6b, 0x3b, 0x75,
+0x7a, 0x74, 0x61, 0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x61, 0x62, 0x75, 0x7a, 0x74, 0x75, 0x61, 0x6b, 0x3b, 0x69, 0x72, 0x61,
+0x69, 0x6c, 0x61, 0x6b, 0x3b, 0x75, 0x72, 0x72, 0x69, 0x61, 0x6b, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x6f, 0x61, 0x6b, 0x3b,
+0x61, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x6b, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ab,
+0x9c7, 0x9ac, 0x9cd, 0x9b0, 0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ae, 0x9be, 0x9b0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd,
+0x9b0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b8,
+0x9cd, 0x99f, 0x3b, 0x9b8, 0x9c7, 0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac,
+0x9b0, 0x3b, 0x9a8, 0x9ad, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x99c,
+0x9be, 0x3b, 0x9ab, 0x9c7, 0x3b, 0x9ae, 0x9be, 0x3b, 0x98f, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x3b,
+0x986, 0x3b, 0x9b8, 0x9c7, 0x3b, 0x985, 0x3b, 0x9a8, 0x3b, 0x9a1, 0x9bf, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b,
+0xf22, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf23, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf24, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf25, 0x3b, 0xf5f, 0xfb3, 0xf0b,
+0xf26, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf27, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf28, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf29, 0x3b, 0xf5f, 0xfb3, 0xf0b,
+0xf21, 0xf20, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf22, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b,
+0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66,
+0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b,
+0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f,
+0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42,
+0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66,
+0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72,
+0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56,
+0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45,
+0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49,
+0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b,
+0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0xf24,
+0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0x31, 0x32, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f,
+0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f,
+0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54,
+0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54,
+0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b,
+0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0x34, 0x3b,
+0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0x39, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0x47,
+0x65, 0x6e, 0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61,
+0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65,
+0x6e, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x72, 0x3b, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72,
+0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x45, 0x62,
+0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, 0x47, 0x6f, 0x75,
+0x65, 0x72, 0x65, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x48, 0x65,
+0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x72, 0x7a, 0x75, 0x3b, 0x30, 0x31, 0x3b, 0x30, 0x32, 0x3b, 0x30, 0x33,
+0x3b, 0x30, 0x34, 0x3b, 0x30, 0x35, 0x3b, 0x30, 0x36, 0x3b, 0x30, 0x37, 0x3b, 0x30, 0x38, 0x3b, 0x30, 0x39, 0x3b, 0x31,
+0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x44f, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430,
+0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b,
+0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x435, 0x43c,
+0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430,
+0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d,
+0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432,
+0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b,
+0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x44f, 0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x44e,
+0x3b, 0x44e, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, 0x3b, 0x434, 0x3b, 0x1007, 0x1014, 0x103a, 0x3b, 0x1016, 0x1031, 0x3b,
+0x1019, 0x1010, 0x103a, 0x3b, 0x1027, 0x1015, 0x103c, 0x102e, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, 0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x3b,
+0x1029, 0x3b, 0x1005, 0x1000, 0x103a, 0x3b, 0x1021, 0x1031, 0x102c, 0x1000, 0x103a, 0x3b, 0x1014, 0x102d, 0x102f, 0x3b, 0x1012, 0x102e, 0x3b, 0x1007,
+0x1014, 0x103a, 0x1014, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1016, 0x1031, 0x1016, 0x1031, 0x102c, 0x103a, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1019,
+0x1010, 0x103a, 0x3b, 0x1027, 0x1015, 0x103c, 0x102e, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, 0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x101c, 0x102d,
+0x102f, 0x1004, 0x103a, 0x3b, 0x1029, 0x1002, 0x102f, 0x1010, 0x103a, 0x3b, 0x1005, 0x1000, 0x103a, 0x1010, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1021,
+0x1031, 0x102c, 0x1000, 0x103a, 0x1010, 0x102d, 0x102f, 0x1018, 0x102c, 0x3b, 0x1014, 0x102d, 0x102f, 0x101d, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1012,
+0x102e, 0x1007, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1007, 0x3b, 0x1016, 0x3b, 0x1019, 0x3b, 0x1027, 0x3b, 0x1019, 0x3b, 0x1007, 0x3b, 0x1007,
+0x3b, 0x1029, 0x3b, 0x1005, 0x3b, 0x1021, 0x3b, 0x1014, 0x3b, 0x1012, 0x3b, 0x441, 0x442, 0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441,
+0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, 0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436,
+0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441,
+0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x44b, 0x3b, 0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a,
+0x3b, 0x43a, 0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d,
+0x44c, 0x3b, 0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43d, 0x456, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x432, 0x435, 0x440,
+0x430, 0x441, 0x435, 0x43d, 0x44c, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, 0x43d, 0x456, 0x43a, 0x3b, 0x43b, 0x456, 0x441,
+0x442, 0x430, 0x43f, 0x430, 0x434, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x430, 0x43d, 0x44c, 0x3b, 0x441, 0x3b, 0x43b, 0x3b, 0x441, 0x3b,
+0x43a, 0x3b, 0x43c, 0x3b, 0x447, 0x3b, 0x43b, 0x3b, 0x436, 0x3b, 0x432, 0x3b, 0x43a, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x441, 0x442,
+0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d,
+0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456,
+0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x430, 0x433,
+0x430, 0x3b, 0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43a, 0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x430,
+0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44f, 0x3b, 0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44f, 0x3b,
+0x436, 0x43d, 0x456, 0x45e, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x43d, 0x44f, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440,
+0x44b, 0x447, 0x43d, 0x456, 0x43a, 0x430, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, 0x430, 0x434, 0x430, 0x3b, 0x441, 0x43d, 0x435,
+0x436, 0x43d, 0x44f, 0x3b, 0x1798, 0x1780, 0x179a, 0x17b6, 0x3b, 0x1780, 0x17bb, 0x1798, 0x17d2, 0x1797, 0x17c8, 0x3b, 0x1798, 0x17b8, 0x1793, 0x17b6,
+0x3b, 0x1798, 0x17c1, 0x179f, 0x17b6, 0x3b, 0x17a7, 0x179f, 0x1797, 0x17b6, 0x3b, 0x1798, 0x17b7, 0x1790, 0x17bb, 0x1793, 0x17b6, 0x3b, 0x1780, 0x1780,
+0x17d2, 0x1780, 0x178a, 0x17b6, 0x3b, 0x179f, 0x17b8, 0x17a0, 0x17b6, 0x3b, 0x1780, 0x1789, 0x17d2, 0x1789, 0x17b6, 0x3b, 0x178f, 0x17bb, 0x179b, 0x17b6,
+0x3b, 0x179c, 0x17b7, 0x1785, 0x17d2, 0x1786, 0x17b7, 0x1780, 0x17b6, 0x3b, 0x1792, 0x17d2, 0x1793, 0x17bc, 0x3b, 0x67, 0x65, 0x6e, 0x2e, 0x3b,
+0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x67,
+0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b,
+0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x67, 0x65, 0x6e, 0x65, 0x72,
+0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d,
+0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x61, 0x67, 0x6f, 0x73,
+0x74, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e,
+0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x47, 0x4e, 0x3b,
+0x46, 0x42, 0x3b, 0x4d, 0xc7, 0x3b, 0x41, 0x42, 0x3b, 0x4d, 0x47, 0x3b, 0x4a, 0x4e, 0x3b, 0x4a, 0x4c, 0x3b, 0x41, 0x47,
+0x3b, 0x53, 0x54, 0x3b, 0x4f, 0x43, 0x3b, 0x4e, 0x56, 0x3b, 0x44, 0x53, 0x3b, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65,
+0x72, 0x3b, 0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0xe7, 0x3b,
+0x64, 0x2019, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x64, 0x65, 0x20, 0x6a,
+0x75, 0x6e, 0x79, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x64, 0x2019, 0x61, 0x67, 0x6f, 0x73,
+0x74, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x74, 0x75,
+0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x64,
+0x65, 0x73, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x31, 0x6708, 0x3b, 0x32, 0x6708, 0x3b, 0x33, 0x6708, 0x3b, 0x34, 0x6708, 0x3b,
+0x35, 0x6708, 0x3b, 0x36, 0x6708, 0x3b, 0x37, 0x6708, 0x3b, 0x38, 0x6708, 0x3b, 0x39, 0x6708, 0x3b, 0x31, 0x30, 0x6708, 0x3b, 0x31,
+0x31, 0x6708, 0x3b, 0x31, 0x32, 0x6708, 0x3b, 0x4e00, 0x6708, 0x3b, 0x4e8c, 0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, 0x56db, 0x6708, 0x3b, 0x4e94,
+0x6708, 0x3b, 0x516d, 0x6708, 0x3b, 0x4e03, 0x6708, 0x3b, 0x516b, 0x6708, 0x3b, 0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, 0x3b, 0x5341, 0x4e00, 0x6708,
+0x3b, 0x5341, 0x4e8c, 0x6708, 0x3b, 0x73, 0x69, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x3b, 0x6f, 0x17e, 0x75, 0x3b, 0x74, 0x72,
+0x61, 0x3b, 0x73, 0x76, 0x69, 0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x6b, 0x6f, 0x6c, 0x3b, 0x72, 0x75,
+0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x73, 0x74, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x61,
+0x6e, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x61, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x61, 0x6b, 0x3b, 0x74, 0x72,
+0x61, 0x76, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x76, 0x69, 0x62, 0x61, 0x6e, 0x6a, 0x3b, 0x6c, 0x69, 0x70, 0x61, 0x6e, 0x6a,
+0x3b, 0x73, 0x72, 0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x3b, 0x72, 0x75, 0x6a, 0x61,
+0x6e, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x69, 0x3b, 0x70,
+0x72, 0x6f, 0x73, 0x69, 0x6e, 0x61, 0x63, 0x3b, 0x31, 0x2e, 0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, 0x3b, 0x34, 0x2e, 0x3b,
+0x35, 0x2e, 0x3b, 0x36, 0x2e, 0x3b, 0x37, 0x2e, 0x3b, 0x38, 0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, 0x30, 0x2e, 0x3b, 0x31,
+0x31, 0x2e, 0x3b, 0x31, 0x32, 0x2e, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x6e, 0x6a, 0x61, 0x3b, 0x76, 0x65, 0x6c, 0x6a,
+0x61, 0x10d, 0x65, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x6b, 0x61, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x6e, 0x6a, 0x61, 0x3b, 0x73,
+0x76, 0x69, 0x62, 0x6e, 0x6a, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x72, 0x70, 0x6e, 0x6a, 0x61,
+0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x61, 0x3b, 0x72, 0x75, 0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74,
+0x6f, 0x70, 0x61, 0x64, 0x61, 0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x6f, 0x67, 0x61, 0x3b, 0x70, 0x72, 0x6f, 0x73,
+0x69, 0x6e, 0x63, 0x61, 0x3b, 0x6c, 0x65, 0x64, 0x3b, 0xfa, 0x6e, 0x6f, 0x3b, 0x62, 0x159, 0x65, 0x3b, 0x64, 0x75, 0x62,
+0x3b, 0x6b, 0x76, 0x11b, 0x3b, 0x10d, 0x76, 0x6e, 0x3b, 0x10d, 0x76, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x7a, 0xe1, 0x159,
+0x3b, 0x159, 0xed, 0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x6c, 0x65, 0x64, 0x65, 0x6e, 0x3b, 0xfa,
+0x6e, 0x6f, 0x72, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x65, 0x6e, 0x3b, 0x64, 0x75, 0x62, 0x65, 0x6e, 0x3b, 0x6b, 0x76, 0x11b,
+0x74, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x65, 0x63, 0x3b,
+0x73, 0x72, 0x70, 0x65, 0x6e, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x65, 0x6e, 0x3b, 0x6c, 0x69, 0x73,
+0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x65, 0x63, 0x3b, 0x6c, 0x65, 0x64, 0x6e, 0x61,
+0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x61, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x6e, 0x61, 0x3b, 0x64, 0x75, 0x62, 0x6e, 0x61, 0x3b,
+0x6b, 0x76, 0x11b, 0x74, 0x6e, 0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x6e, 0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e,
+0x63, 0x65, 0x3b, 0x73, 0x72, 0x70, 0x6e, 0x61, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x6e, 0x61, 0x3b,
+0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x3b, 0x6a,
+0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a,
+0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e,
+0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61,
+0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75,
+0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65,
+0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65,
+0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e,
+0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b,
+0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b,
+0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b,
+0x4d, 0x72, 0x74, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a,
+0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e,
+0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62,
+0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65,
+0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73,
+0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e,
+0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e,
+0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x72, 0x74, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x69,
+0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e,
+0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75,
+0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x61,
+0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61,
+0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b,
+0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d,
+0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x3b, 0x76, 0x65, 0x65, 0x62, 0x72, 0x3b, 0x6d, 0xe4, 0x72, 0x74, 0x73,
+0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69,
+0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65,
+0x74, 0x73, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x76, 0x65, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b,
+0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75,
+0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
+0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d,
+0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x4d, 0x3b,
+0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61,
+0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75,
+0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f,
+0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72,
+0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69,
+0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b,
+0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69,
+0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x3b,
+0x6b, 0x65, 0x73, 0xe4, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x3b, 0x65, 0x6c, 0x6f, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x3b,
+0x6c, 0x6f, 0x6b, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x3b, 0x74, 0x61,
+0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x61, 0x61, 0x6c,
+0x69, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f,
+0x6b, 0x75, 0x75, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75,
+0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x6c, 0x6f, 0x6b, 0x61,
+0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b,
+0x75, 0x75, 0x3b, 0x54, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x48, 0x3b, 0x45, 0x3b, 0x53,
+0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65,
+0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61,
+0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75,
+0x74, 0x61, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x75,
+0x75, 0x74, 0x61, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75,
+0x74, 0x61, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b,
+0x75, 0x75, 0x74, 0x61, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x76,
+0x2e, 0x3b, 0x46, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x76, 0x72, 0x2e, 0x3b, 0x4d, 0x61,
+0x69, 0x3b, 0x4a, 0x75, 0x69, 0x6e, 0x3b, 0x4a, 0x75, 0x69, 0x6c, 0x2e, 0x3b, 0x41, 0x6f, 0xfb, 0x74, 0x3b, 0x53, 0x65,
+0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0xe9, 0x63, 0x2e, 0x3b, 0x4a,
+0x61, 0x6e, 0x76, 0x69, 0x65, 0x72, 0x3b, 0x46, 0xe9, 0x76, 0x72, 0x69, 0x65, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b,
+0x41, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x69, 0x6e, 0x3b, 0x4a, 0x75, 0x69, 0x6c, 0x6c,
+0x65, 0x74, 0x3b, 0x41, 0x6f, 0xfb, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x63,
+0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0xe9, 0x63, 0x65, 0x6d,
+0x62, 0x72, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73,
+0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x2e,
+0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76,
+0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x72, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x69,
+0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75,
+0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x65, 0x74, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
+0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62,
+0x72, 0x65, 0x3b, 0x64, 0xe9, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b,
+0x6d, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b,
+0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b,
+0x6a, 0x61, 0x6e, 0x6e, 0x65, 0x77, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x77, 0x61, 0x72, 0x69,
+0x73, 0x3b, 0x6d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x61, 0x69, 0x65, 0x3b,
+0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x79, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x73,
+0x65, 0x70, 0x74, 0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76,
+0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b,
+0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x72, 0x74, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a,
+0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f,
+0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x46, 0x61, 0x6f, 0x69, 0x3b, 0x47,
+0x65, 0x61, 0x72, 0x72, 0x3b, 0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x47, 0x69, 0x62, 0x6c, 0x3b, 0x43, 0xe8, 0x69, 0x74, 0x3b,
+0xd2, 0x67, 0x6d, 0x68, 0x3b, 0x49, 0x75, 0x63, 0x68, 0x3b, 0x4c, 0xf9, 0x6e, 0x61, 0x3b, 0x53, 0x75, 0x6c, 0x74, 0x3b,
+0x44, 0xe0, 0x6d, 0x68, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x3b, 0x44, 0xf9, 0x62, 0x68, 0x3b, 0x41, 0x6d, 0x20, 0x46, 0x61,
+0x6f, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b,
+0x41, 0x6d, 0x20, 0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x41,
+0x6e, 0x20, 0x43, 0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0xd2, 0x67, 0x6d, 0x68, 0x69,
+0x6f, 0x73, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x49, 0x75, 0x63, 0x68, 0x61, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x4c, 0xf9,
+0x6e, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x3b,
+0x41, 0x6e, 0x20, 0x44, 0xe0, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68,
+0x61, 0x69, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, 0x61, 0x63, 0x68, 0x64, 0x3b, 0x46, 0x3b, 0x47,
+0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x43, 0x3b, 0xd2, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x44,
+0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x46, 0x68, 0x61, 0x6f, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x64, 0x68,
+0x65, 0x6e, 0x20, 0x47, 0x68, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x4d, 0x68, 0xe0,
+0x72, 0x74, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x47, 0x68, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65,
+0x6e, 0x20, 0x43, 0x68, 0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0xd2, 0x67, 0x6d, 0x68,
+0x69, 0x6f, 0x73, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x75, 0x63, 0x68, 0x61, 0x72, 0x3b, 0x64, 0x68, 0x65, 0x6e,
+0x20, 0x4c, 0xf9, 0x6e, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c,
+0x74, 0x61, 0x69, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xe0, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x64, 0x68,
+0x65, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xf9,
+0x62, 0x68, 0x6c, 0x61, 0x63, 0x68, 0x64, 0x3b, 0x58, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b,
0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x58, 0x75, 0xf1, 0x3b, 0x58, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b,
0x53, 0x65, 0x74, 0x3b, 0x4f, 0x75, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x58, 0x61, 0x6e, 0x65,
0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41,
@@ -2098,16 +2271,16 @@ static const ushort months_data[] = {
0x72, 0x69, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x69, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, 0xab0, 0xac1, 0x3b, 0xaae, 0xabe, 0xab0,
0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2,
-0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0x3b, 0xaa8, 0xab5,
-0xac7, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaab, 0xac7, 0xaac,
-0xacd, 0xab0, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b,
-0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8,
-0xaaa, 0xacd, 0xa9f, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0xaac, 0xab0, 0x3b, 0xaa8, 0xab5, 0xac7,
-0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa9c, 0xabe, 0x3b, 0xaab, 0xac7, 0x3b,
-0xaae, 0xabe, 0x3b, 0xa8f, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0x3b, 0xa9c, 0xac1, 0x3b, 0xa91, 0x3b, 0xab8, 0x3b, 0xa91, 0x3b,
-0xaa8, 0x3b, 0xaa1, 0xabf, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, 0xab0, 0xac1, 0x3b, 0xaae,
-0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c,
-0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0x3b, 0xa91, 0xa95, 0xacd,
+0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb,
+0x3b, 0xaa8, 0xab5, 0xac7, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b,
+0xaab, 0xac7, 0xaac, 0xacd, 0xab0, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0,
+0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd,
+0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0xaac, 0xab0, 0x3b,
+0xaa8, 0xab5, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa9c, 0xabe, 0x3b,
+0xaab, 0xac7, 0x3b, 0xaae, 0xabe, 0x3b, 0xa8f, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0x3b, 0xa9c, 0xac1, 0x3b, 0xa91, 0x3b, 0xab8,
+0x3b, 0xa91, 0x3b, 0xaa8, 0x3b, 0xaa1, 0xabf, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, 0xab0,
+0xac1, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2,
+0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0x3b, 0xa91, 0xa95, 0xacd,
0xa9f, 0xacb, 0x3b, 0xaa8, 0xab5, 0xac7, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x61, 0x62, 0x3b,
0x4d, 0x61, 0x72, 0x3b, 0x41, 0x66, 0x69, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b,
0x41, 0x67, 0x75, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x75, 0x77, 0x3b, 0x44, 0x69, 0x73, 0x3b,
@@ -2117,1377 +2290,1378 @@ static const ushort months_data[] = {
0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x75, 0x77, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73,
0x61, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x41,
0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x5d9, 0x5e0, 0x5d5, 0x5f3, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5f3, 0x3b, 0x5de,
-0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5f3, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dc,
-0x5f3, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5f3, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5f3, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x5f3, 0x3b, 0x5e0, 0x5d5, 0x5d1,
+0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5f3, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc,
+0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5f3, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5f3, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x5f3, 0x3b, 0x5e0, 0x5d5, 0x5d1,
0x5f3, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5f3, 0x3b, 0x5d9, 0x5e0, 0x5d5, 0x5d0, 0x5e8, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5d5, 0x5d0, 0x5e8, 0x3b,
0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5d9, 0x5dc, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9,
0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5d5, 0x5e1, 0x5d8, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d0, 0x5d5,
-0x5e7, 0x5d8, 0x5d5, 0x5d1, 0x5e8, 0x3b, 0x5e0, 0x5d5, 0x5d1, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d9,
-0x5e0, 0x5d5, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x3b, 0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9,
-0x5d5, 0x5e0, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x3b, 0x5e0,
-0x5d5, 0x5d1, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x3b, 0x91c, 0x928, 0x3b, 0x92b, 0x93c, 0x930, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b,
-0x905, 0x92a, 0x94d, 0x930, 0x948, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x3b, 0x905, 0x917,
-0x3b, 0x938, 0x93f, 0x924, 0x902, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x942, 0x3b, 0x928, 0x935, 0x902, 0x3b, 0x926, 0x93f, 0x938, 0x902,
-0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x93c, 0x930, 0x935, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b,
-0x905, 0x92a, 0x94d, 0x930, 0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b,
-0x905, 0x917, 0x938, 0x94d, 0x924, 0x3b, 0x938, 0x93f, 0x924, 0x902, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x942, 0x92c, 0x930,
-0x3b, 0x928, 0x935, 0x902, 0x92c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x93c, 0x3b, 0x92e,
-0x93e, 0x3b, 0x905, 0x3b, 0x92e, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, 0x905, 0x3b, 0x938, 0x93f, 0x3b, 0x905, 0x3b, 0x928,
-0x3b, 0x926, 0x93f, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x2e,
-0x3b, 0xe1, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x6a, 0x2e, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c, 0x2e,
-0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f,
-0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75,
-0xe1, 0x72, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x69, 0x75, 0x73, 0x3b, 0xe1, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x73, 0x3b, 0x6d,
-0xe1, 0x6a, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6e, 0x69, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6c, 0x69, 0x75, 0x73, 0x3b, 0x61,
-0x75, 0x67, 0x75, 0x73, 0x7a, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b,
-0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63,
-0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0xc1, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b,
-0x41, 0x3b, 0x53, 0x7a, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e,
-0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b,
-0x6a, 0xfa, 0x6c, 0x2e, 0x3b, 0xe1, 0x67, 0xfa, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b,
-0x6e, 0xf3, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0xfa, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62,
-0x72, 0xfa, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0xed, 0x3b,
-0x6a, 0xfa, 0x6e, 0xed, 0x3b, 0x6a, 0xfa, 0x6c, 0xed, 0x3b, 0xe1, 0x67, 0xfa, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
-0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0xf3, 0x76, 0x65, 0x6d, 0x62,
-0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b,
-0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0xc1, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b,
-0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b,
-0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b,
-0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69,
-0x3b, 0x4d, 0x61, 0x72, 0x65, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e,
-0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65,
-0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65,
-0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d,
-0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61,
-0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x63, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a,
-0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6d, 0x61,
-0x72, 0x74, 0x69, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69,
-0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74,
-0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62,
-0x72, 0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x61, 0x62,
-0x68, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x3b, 0x4d, 0x65, 0x69,
-0x74, 0x68, 0x3b, 0x49, 0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x3b, 0x4d, 0x46, 0xf3, 0x6d, 0x68, 0x3b, 0x44, 0x46,
-0xf3, 0x6d, 0x68, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x3b, 0x45, 0x61, 0x6e, 0xe1, 0x69, 0x72,
-0x3b, 0x46, 0x65, 0x61, 0x62, 0x68, 0x72, 0x61, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x72, 0x65,
-0xe1, 0x6e, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x74, 0x68, 0x65, 0x61,
-0x6d, 0x68, 0x3b, 0x49, 0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x65, 0xe1, 0x6e, 0x20,
-0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x44, 0x65, 0x69, 0x72, 0x65, 0x61, 0x64, 0x68, 0x20, 0x46, 0xf3, 0x6d,
-0x68, 0x61, 0x69, 0x72, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x61, 0x69, 0x67,
-0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x42, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x44,
-0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x67, 0x65, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72,
-0x3b, 0x6d, 0x61, 0x67, 0x3b, 0x67, 0x69, 0x75, 0x3b, 0x6c, 0x75, 0x67, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74,
-0x3b, 0x6f, 0x74, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x69, 0x63, 0x3b, 0x47, 0x65, 0x6e, 0x6e, 0x61, 0x69, 0x6f,
-0x3b, 0x46, 0x65, 0x62, 0x62, 0x72, 0x61, 0x69, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x70, 0x72, 0x69,
-0x6c, 0x65, 0x3b, 0x4d, 0x61, 0x67, 0x67, 0x69, 0x6f, 0x3b, 0x47, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, 0x4c, 0x75, 0x67,
-0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65,
-0x3b, 0x4f, 0x74, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69,
-0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x47, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x4c,
-0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x67, 0x65, 0x6e, 0x6e, 0x61, 0x69, 0x6f, 0x3b, 0x66,
-0x65, 0x62, 0x62, 0x72, 0x61, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x65,
-0x3b, 0x6d, 0x61, 0x67, 0x67, 0x69, 0x6f, 0x3b, 0x67, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, 0x6c, 0x75, 0x67, 0x6c, 0x69,
-0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f,
-0x74, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63, 0x65,
-0x6d, 0x62, 0x72, 0x65, 0x3b, 0xc9c, 0xca8, 0x2e, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcc1, 0x2e, 0x3b, 0xcae, 0xcbe, 0x3b,
-0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0x2e, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0x3b, 0xc9c, 0xcc1, 0x2e, 0x3b, 0xc86, 0xc97, 0x2e,
-0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x2e, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0x2e, 0x3b, 0xca8, 0xcb5, 0xcc6,
-0xc82, 0x2e, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0x2e, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd,
-0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0xcb2, 0xccd, 0x3b,
-0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0xcb8, 0xccd, 0xc9f, 0xccd, 0x3b,
-0xcb8, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca8,
-0xcb5, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc9c, 0x3b, 0xcab, 0xcc6,
-0x3b, 0xcae, 0xcbe, 0x3b, 0xc8f, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0x3b, 0xc9c, 0xcc1, 0x3b, 0xc86, 0x3b, 0xcb8, 0xcc6, 0x3b,
-0xc85, 0x3b, 0xca8, 0x3b, 0xca1, 0xcbf, 0x3b, 0x62c, 0x646, 0x624, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x624, 0x631, 0x6cc, 0x3b, 0x645,
-0x627, 0x631, 0x655, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x654, 0x3b, 0x62c, 0x648, 0x657, 0x646, 0x3b,
-0x62c, 0x648, 0x657, 0x644, 0x627, 0x6cc, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627,
-0x6a9, 0x62a, 0x648, 0x657, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c,
-0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x633, 0x3b, 0x627,
-0x3b, 0x646, 0x3b, 0x49b, 0x430, 0x4a3, 0x2e, 0x3b, 0x430, 0x49b, 0x43f, 0x2e, 0x3b, 0x43d, 0x430, 0x443, 0x2e, 0x3b, 0x441, 0x4d9,
-0x443, 0x2e, 0x3b, 0x43c, 0x430, 0x43c, 0x2e, 0x3b, 0x43c, 0x430, 0x443, 0x2e, 0x3b, 0x448, 0x456, 0x43b, 0x2e, 0x3b, 0x442, 0x430,
-0x43c, 0x2e, 0x3b, 0x49b, 0x44b, 0x440, 0x2e, 0x3b, 0x49b, 0x430, 0x437, 0x2e, 0x3b, 0x49b, 0x430, 0x440, 0x2e, 0x3b, 0x436, 0x435,
-0x43b, 0x442, 0x2e, 0x3b, 0x49b, 0x430, 0x4a3, 0x442, 0x430, 0x440, 0x3b, 0x430, 0x49b, 0x43f, 0x430, 0x43d, 0x3b, 0x43d, 0x430, 0x443,
-0x440, 0x44b, 0x437, 0x3b, 0x441, 0x4d9, 0x443, 0x456, 0x440, 0x3b, 0x43c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, 0x43c, 0x430, 0x443, 0x441,
-0x44b, 0x43c, 0x3b, 0x448, 0x456, 0x43b, 0x434, 0x435, 0x3b, 0x442, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49b, 0x44b, 0x440, 0x43a, 0x4af,
-0x439, 0x435, 0x43a, 0x3b, 0x49b, 0x430, 0x437, 0x430, 0x43d, 0x3b, 0x49b, 0x430, 0x440, 0x430, 0x448, 0x430, 0x3b, 0x436, 0x435, 0x43b,
-0x442, 0x43e, 0x49b, 0x441, 0x430, 0x43d, 0x3b, 0x6d, 0x75, 0x74, 0x2e, 0x3b, 0x67, 0x61, 0x73, 0x2e, 0x3b, 0x77, 0x65, 0x72,
-0x2e, 0x3b, 0x6d, 0x61, 0x74, 0x2e, 0x3b, 0x67, 0x69, 0x63, 0x2e, 0x3b, 0x6b, 0x61, 0x6d, 0x2e, 0x3b, 0x6e, 0x79, 0x61,
-0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x6e, 0x7a, 0x65, 0x2e, 0x3b, 0x75, 0x6b, 0x77, 0x2e, 0x3b, 0x75, 0x67, 0x75,
-0x2e, 0x3b, 0x75, 0x6b, 0x75, 0x2e, 0x3b, 0x4d, 0x75, 0x74, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0x47, 0x61, 0x73, 0x68,
-0x79, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x3b, 0x57, 0x65, 0x72, 0x75, 0x72, 0x77, 0x65, 0x3b, 0x4d, 0x61, 0x74, 0x61,
-0x3b, 0x47, 0x69, 0x63, 0x75, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x3b, 0x4b, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x3b, 0x4e, 0x79,
-0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x4b, 0x61, 0x6e, 0x61, 0x6d, 0x61, 0x3b, 0x4e, 0x7a, 0x65, 0x6c, 0x69, 0x3b,
-0x55, 0x6b, 0x77, 0x61, 0x6b, 0x69, 0x72, 0x61, 0x3b, 0x55, 0x67, 0x75, 0x73, 0x68, 0x79, 0x69, 0x6e, 0x67, 0x6f, 0x3b,
-0x55, 0x6b, 0x75, 0x62, 0x6f, 0x7a, 0x61, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430,
-0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, 0x438, 0x44e, 0x43b,
-0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f,
-0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b,
-0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e,
-0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f,
-0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x434,
-0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x42f, 0x3b, 0x424, 0x3b, 0x41c, 0x3b, 0x410, 0x3b, 0x41c, 0x3b, 0x418, 0x3b, 0x418,
-0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x41e, 0x3b, 0x41d, 0x3b, 0x414, 0x3b, 0x31, 0xc6d4, 0x3b, 0x32, 0xc6d4, 0x3b, 0x33, 0xc6d4, 0x3b,
-0x34, 0xc6d4, 0x3b, 0x35, 0xc6d4, 0x3b, 0x36, 0xc6d4, 0x3b, 0x37, 0xc6d4, 0x3b, 0x38, 0xc6d4, 0x3b, 0x39, 0xc6d4, 0x3b, 0x31, 0x30,
-0xc6d4, 0x3b, 0x31, 0x31, 0xc6d4, 0x3b, 0x31, 0x32, 0xc6d4, 0x3b, 0x4d, 0x75, 0x74, 0x2e, 0x3b, 0x47, 0x61, 0x73, 0x2e, 0x3b,
-0x57, 0x65, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x74, 0x2e, 0x3b, 0x47, 0x69, 0x63, 0x2e, 0x3b, 0x4b, 0x61, 0x6d, 0x2e, 0x3b,
-0x4e, 0x79, 0x61, 0x2e, 0x3b, 0x4b, 0x61, 0x6e, 0x2e, 0x3b, 0x4e, 0x7a, 0x65, 0x2e, 0x3b, 0x55, 0x6b, 0x77, 0x2e, 0x3b,
-0x55, 0x67, 0x75, 0x2e, 0x3b, 0x55, 0x6b, 0x75, 0x2e, 0x3b, 0x4e, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x52, 0x75, 0x68, 0x75,
-0x68, 0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x74, 0x77, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x3b, 0x4e, 0x64, 0x61, 0x6d, 0x75,
-0x6b, 0x69, 0x7a, 0x61, 0x3b, 0x52, 0x75, 0x73, 0x61, 0x6d, 0x61, 0x3b, 0x52, 0x75, 0x68, 0x65, 0x73, 0x68, 0x69, 0x3b,
-0x4d, 0x75, 0x6b, 0x61, 0x6b, 0x61, 0x72, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x61, 0x72, 0x6f, 0x3b,
-0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x47, 0x69, 0x74, 0x75, 0x67, 0x75, 0x74, 0x75, 0x3b, 0x4d, 0x75,
-0x6e, 0x79, 0x6f, 0x6e, 0x79, 0x6f, 0x3b, 0x4b, 0x69, 0x67, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0xea1, 0x2e, 0xe81, 0x2e,
-0x3b, 0xe81, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0x2e, 0xe99, 0x2e, 0x3b, 0xea1, 0x2e, 0xeaa, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe9e, 0x2e,
-0x3b, 0xea1, 0xeb4, 0x2e, 0xe96, 0x2e, 0x3b, 0xe81, 0x2e, 0xea5, 0x2e, 0x3b, 0xeaa, 0x2e, 0xeab, 0x2e, 0x3b, 0xe81, 0x2e, 0xe8d,
-0x2e, 0x3b, 0xe95, 0x2e, 0xea5, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe88, 0x2e, 0x3b, 0xe97, 0x2e, 0xea7, 0x2e, 0x3b, 0xea1, 0xeb1, 0xe87,
-0xe81, 0xead, 0xe99, 0x3b, 0xe81, 0xeb8, 0xea1, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb5, 0xe99, 0xeb2, 0x3b, 0xec0, 0xea1, 0xeaa, 0xeb2, 0x3b,
-0xe9e, 0xeb6, 0xe94, 0xeaa, 0xeb0, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb4, 0xe96, 0xeb8, 0xe99, 0xeb2, 0x3b, 0xe81, 0xecd, 0xea5, 0xeb0, 0xe81,
-0xebb, 0xe94, 0x3b, 0xeaa, 0xeb4, 0xe87, 0xeab, 0xeb2, 0x3b, 0xe81, 0xeb1, 0xe99, 0xe8d, 0xeb2, 0x3b, 0xe95, 0xeb8, 0xea5, 0xeb2, 0x3b,
-0xe9e, 0xeb0, 0xe88, 0xeb4, 0xe81, 0x3b, 0xe97, 0xeb1, 0xe99, 0xea7, 0xeb2, 0x3b, 0x4a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x46, 0x65,
-0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x6a, 0x73,
-0x3b, 0x4a, 0x16b, 0x6e, 0x2e, 0x3b, 0x4a, 0x16b, 0x6c, 0x2e, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x74,
-0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e,
-0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74,
-0x73, 0x3b, 0x41, 0x70, 0x72, 0x12b, 0x6c, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x4a, 0x16b, 0x6e, 0x69,
-0x6a, 0x73, 0x3b, 0x4a, 0x16b, 0x6c, 0x69, 0x6a, 0x73, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x73, 0x3b, 0x53, 0x65,
-0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x4e, 0x6f,
-0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6a, 0x61,
-0x6e, 0x76, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e,
-0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x2e, 0x3b, 0x6a, 0x16b, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67,
-0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65,
-0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x101, 0x72, 0x69,
-0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x12b, 0x6c, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x69, 0x6a,
-0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6c, 0x69, 0x6a, 0x73, 0x3b, 0x61, 0x75, 0x67, 0x75,
-0x73, 0x74, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62,
-0x72, 0x69, 0x73, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62,
-0x72, 0x69, 0x73, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x62, 0x6c, 0x3b, 0x6d, 0x73, 0x69, 0x3b, 0x61, 0x70, 0x6c, 0x3b,
-0x6d, 0x61, 0x69, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x74, 0x3b, 0x73, 0x74, 0x62, 0x3b,
-0x254, 0x74, 0x62, 0x3b, 0x6e, 0x76, 0x62, 0x3b, 0x64, 0x73, 0x62, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61,
-0x20, 0x79, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61,
-0x6c, 0xe9, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x73, 0xe1, 0x74, 0x6f, 0x3b, 0x73,
-0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x6e, 0x65, 0x69, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20,
-0x79, 0x61, 0x20, 0x6d, 0xed, 0x74, 0xe1, 0x6e, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d,
-0x6f, 0x74, 0xf3, 0x62, 0xe1, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6e, 0x73, 0x61, 0x6d, 0x62,
-0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x77, 0x61, 0x6d, 0x62, 0x65, 0x3b, 0x73, 0xe1,
-0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6c, 0x69, 0x62, 0x77, 0x61, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79,
-0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69,
-0x20, 0x6e, 0x61, 0x20, 0x6d, 0x254, 0x30c, 0x6b, 0x254, 0x301, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20,
-0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x79, 0x3b, 0x66, 0x3b, 0x6d,
-0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x61, 0x3b, 0x73, 0x3b, 0x254, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x73,
-0x61, 0x75, 0x73, 0x2e, 0x3b, 0x76, 0x61, 0x73, 0x2e, 0x3b, 0x6b, 0x6f, 0x76, 0x2e, 0x3b, 0x62, 0x61, 0x6c, 0x2e, 0x3b,
-0x67, 0x65, 0x67, 0x2e, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x2e, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67,
-0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x2e, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x2e, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72,
-0x2e, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x2e, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x69, 0x73, 0x3b, 0x76, 0x61, 0x73, 0x61,
-0x72, 0x69, 0x73, 0x3b, 0x6b, 0x6f, 0x76, 0x61, 0x73, 0x3b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x3b, 0x67,
-0x65, 0x67, 0x75, 0x17e, 0x117, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69, 0x73, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x61,
-0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, 0x16b, 0x74, 0x69, 0x73, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x117, 0x6a, 0x69, 0x73, 0x3b,
-0x73, 0x70, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69, 0x74, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75,
-0x6f, 0x64, 0x69, 0x73, 0x3b, 0x53, 0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x42, 0x3b, 0x47, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x52,
-0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x47, 0x3b, 0x458, 0x430, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c,
-0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x2e, 0x3b, 0x458, 0x443,
-0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d,
-0x43e, 0x435, 0x43c, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x444, 0x435,
-0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430,
-0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441,
-0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43d, 0x43e,
-0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x458, 0x3b, 0x444, 0x3b, 0x43c,
-0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x458, 0x3b, 0x458, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, 0x3b, 0x434, 0x3b, 0x4a,
-0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a,
-0x6f, 0x6e, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x41, 0x6f, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e,
-0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x6f,
-0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x61, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x79, 0x3b, 0x4d, 0x65,
-0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x61, 0x3b, 0x4a, 0x6f, 0x6c, 0x61, 0x79, 0x3b, 0x41, 0x6f, 0x67, 0x6f, 0x73, 0x69, 0x74,
-0x72, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61,
-0x3b, 0x4e, 0x6f, 0x76, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4a,
-0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a,
-0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e,
-0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75,
-0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75,
-0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f, 0x67, 0x6f, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
-0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b,
-0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a,
-0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xd1c, 0xd28, 0xd41, 0x3b, 0xd2b, 0xd46, 0xd2c,
-0xd4d, 0xd30, 0xd41, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c,
-0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, 0xd13, 0xd17, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd02, 0x3b,
-0xd12, 0xd15, 0xd4d, 0xd1f, 0xd4b, 0x3b, 0xd28, 0xd35, 0xd02, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0x3b, 0xd1c, 0xd28, 0xd41, 0xd35, 0xd30,
-0xd3f, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0xd1a, 0xd4d, 0xd1a, 0xd4d, 0x3b,
-0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0xd7d, 0x3b, 0xd2e, 0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48,
-0x3b, 0xd06, 0xd17, 0xd38, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd4d, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd02, 0xd2c, 0xd7c,
-0x3b, 0xd12, 0xd15, 0xd4d, 0x200c, 0xd1f, 0xd4b, 0xd2c, 0xd7c, 0x3b, 0xd28, 0xd35, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02,
-0xd2c, 0xd7c, 0x3b, 0xd1c, 0x3b, 0xd2b, 0xd46, 0x3b, 0xd2e, 0xd3e, 0x3b, 0xd0f, 0x3b, 0xd2e, 0xd47, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd1c,
-0xd42, 0x3b, 0xd13, 0x3b, 0xd38, 0xd46, 0x3b, 0xd12, 0x3b, 0xd28, 0x3b, 0xd21, 0xd3f, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x72,
-0x61, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x6a, 0x3b, 0x120, 0x75, 0x6e, 0x3b, 0x4c, 0x75,
-0x6c, 0x3b, 0x41, 0x77, 0x77, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69,
-0x10b, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, 0x72, 0x3b, 0x46, 0x72, 0x61, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x75, 0x3b,
-0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x6a, 0x6a, 0x75, 0x3b, 0x120, 0x75, 0x6e, 0x6a, 0x75, 0x3b, 0x4c, 0x75,
-0x6c, 0x6a, 0x75, 0x3b, 0x41, 0x77, 0x77, 0x69, 0x73, 0x73, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72,
-0x75, 0x3b, 0x4f, 0x74, 0x74, 0x75, 0x62, 0x72, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x44,
-0x69, 0x10b, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x120, 0x3b,
-0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x3b, 0x92b, 0x947, 0x92c,
-0x94d, 0x930, 0x941, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c,
-0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x3b, 0x911, 0x915,
-0x94d, 0x91f, 0x94b, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x3b, 0x91c, 0x93e,
-0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e,
-0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941,
-0x932, 0x948, 0x3b, 0x911, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x911, 0x915,
-0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947,
-0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x93e, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942,
-0x3b, 0x91c, 0x941, 0x3b, 0x911, 0x3b, 0x938, 0x3b, 0x911, 0x3b, 0x928, 0x94b, 0x3b, 0x921, 0x93f, 0x3b, 0x31, 0x2d, 0x440, 0x20,
-0x441, 0x430, 0x440, 0x3b, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x33, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
-0x34, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x35, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x36, 0x2d, 0x440, 0x20,
-0x441, 0x430, 0x440, 0x3b, 0x37, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x38, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
-0x39, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x30, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x31, 0x2d,
-0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x41d, 0x44d, 0x433, 0x434, 0x4af,
-0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x425, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20,
-0x441, 0x430, 0x440, 0x3b, 0x413, 0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
-0x414, 0x4e9, 0x440, 0x4e9, 0x432, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x422, 0x430, 0x432, 0x434,
-0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x417, 0x443, 0x440, 0x433, 0x430, 0x434, 0x443, 0x433, 0x430, 0x430,
-0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x43e, 0x43b, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
-0x41d, 0x430, 0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x415, 0x441, 0x434, 0x4af, 0x433,
-0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441,
-0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441,
-0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20,
-0x441, 0x430, 0x440, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x905, 0x930, 0x940, 0x3b,
-0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b,
-0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d,
-0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b,
-0x921, 0x93f, 0x938, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x967, 0x3b, 0x968, 0x3b, 0x969, 0x3b, 0x96a, 0x3b, 0x96b, 0x3b, 0x96c,
-0x3b, 0x96d, 0x3b, 0x96e, 0x3b, 0x96f, 0x3b, 0x967, 0x966, 0x3b, 0x967, 0x967, 0x3b, 0x967, 0x968, 0x3b, 0x91c, 0x928, 0x935, 0x930,
-0x940, 0x3b, 0x92b, 0x930, 0x935, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x947, 0x932,
-0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x924, 0x3b,
-0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928,
-0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x6a, 0x61, 0x6e, 0x75,
-0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69,
-0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75,
-0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72,
-0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a,
-0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d,
-0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65,
-0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0xb1c, 0xb3e,
-0xb28, 0xb41, 0xb06, 0xb30, 0xb40, 0x3b, 0xb2b, 0xb47, 0xb2c, 0xb4d, 0xb30, 0xb41, 0xb5f, 0xb3e, 0xb30, 0xb40, 0x3b, 0xb2e, 0xb3e, 0xb30,
-0xb4d, 0xb1a, 0xb4d, 0xb1a, 0x3b, 0xb05, 0xb2a, 0xb4d, 0xb30, 0xb47, 0xb32, 0x3b, 0xb2e, 0xb47, 0x3b, 0xb1c, 0xb41, 0xb28, 0x3b, 0xb1c,
-0xb41, 0xb32, 0xb3e, 0xb07, 0x3b, 0xb05, 0xb17, 0xb37, 0xb4d, 0xb1f, 0x3b, 0xb38, 0xb47, 0xb2a, 0xb4d, 0xb1f, 0xb47, 0xb2e, 0xb4d, 0xb2c,
-0xb30, 0x3b, 0xb05, 0xb15, 0xb4d, 0xb1f, 0xb4b, 0xb2c, 0xb30, 0x3b, 0xb28, 0xb2d, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb21, 0xb3f,
-0xb38, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb1c, 0xb3e, 0x3b, 0xb2b, 0xb47, 0x3b, 0xb2e, 0xb3e, 0x3b, 0xb05, 0x3b, 0xb2e, 0xb47,
-0x3b, 0xb1c, 0xb41, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb05, 0x3b, 0xb38, 0xb47, 0x3b, 0xb05, 0x3b, 0xb28, 0x3b, 0xb21, 0xb3f, 0x3b, 0x62c,
-0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631,
-0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6ab, 0x633, 0x62a,
-0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631,
-0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x3b,
-0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698,
-0x648, 0x626, 0x6cc, 0x647, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a,
-0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x698, 0x3b, 0x641,
-0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x645, 0x3b, 0x698, 0x3b, 0x698, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f,
-0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, 0x654, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x654, 0x3b, 0x645, 0x627, 0x631, 0x633,
-0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x654, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc,
-0x647, 0x654, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631,
-0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645,
-0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x62c,
-0x646, 0x648, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x654, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644,
-0x3b, 0x645, 0x640, 0x6cc, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e,
-0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f,
-0x633, 0x645, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686,
-0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b,
-0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646,
-0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x73, 0x74, 0x79, 0x3b, 0x6c, 0x75, 0x74, 0x3b, 0x6d,
-0x61, 0x72, 0x3b, 0x6b, 0x77, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73,
-0x69, 0x65, 0x3b, 0x77, 0x72, 0x7a, 0x3b, 0x70, 0x61, 0x17a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x3b, 0x73,
-0x74, 0x79, 0x63, 0x7a, 0x65, 0x144, 0x3b, 0x6c, 0x75, 0x74, 0x79, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x65, 0x63, 0x3b, 0x6b,
-0x77, 0x69, 0x65, 0x63, 0x69, 0x65, 0x144, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x69, 0x65, 0x63,
-0x3b, 0x6c, 0x69, 0x70, 0x69, 0x65, 0x63, 0x3b, 0x73, 0x69, 0x65, 0x72, 0x70, 0x69, 0x65, 0x144, 0x3b, 0x77, 0x72, 0x7a,
-0x65, 0x73, 0x69, 0x65, 0x144, 0x3b, 0x70, 0x61, 0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x3b, 0x6c, 0x69,
-0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x67, 0x72, 0x75, 0x64, 0x7a, 0x69, 0x65, 0x144, 0x3b, 0x73, 0x3b, 0x6c, 0x3b,
-0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x63, 0x3b, 0x6c, 0x3b, 0x73, 0x3b, 0x77, 0x3b, 0x70, 0x3b, 0x6c, 0x3b, 0x67, 0x3b,
-0x73, 0x74, 0x79, 0x63, 0x7a, 0x6e, 0x69, 0x61, 0x3b, 0x6c, 0x75, 0x74, 0x65, 0x67, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x63,
-0x61, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x74, 0x6e, 0x69, 0x61, 0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x63, 0x7a, 0x65, 0x72,
-0x77, 0x63, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x63, 0x61, 0x3b, 0x73, 0x69, 0x65, 0x72, 0x70, 0x6e, 0x69, 0x61, 0x3b, 0x77,
-0x72, 0x7a, 0x65, 0x15b, 0x6e, 0x69, 0x61, 0x3b, 0x70, 0x61, 0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x61,
-0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, 0x3b, 0x67, 0x72, 0x75, 0x64, 0x6e, 0x69, 0x61, 0x3b, 0x6a,
-0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a,
-0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x6e,
-0x6f, 0x76, 0x3b, 0x64, 0x65, 0x7a, 0x3b, 0x6a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x76, 0x65, 0x72,
-0x65, 0x69, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69,
-0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f,
-0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f,
-0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4a, 0x61, 0x6e, 0x3b,
-0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b,
-0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x75, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b,
-0x44, 0x65, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x76, 0x65, 0x72, 0x65, 0x69, 0x72,
-0x6f, 0x3b, 0x4d, 0x61, 0x72, 0xe7, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x4a,
-0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65,
-0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d,
-0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0xa1c, 0xa28, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2b,
-0xa3c, 0xa30, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a, 0xa4d, 0xa30, 0xa48, 0xa32, 0x3b, 0xa2e, 0xa08,
-0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0xa08, 0x3b, 0xa05, 0xa17, 0xa38, 0xa24, 0x3b, 0xa38, 0xa24, 0xa70, 0xa2c,
-0xa30, 0x3b, 0xa05, 0xa15, 0xa24, 0xa42, 0xa2c, 0xa30, 0x3b, 0xa28, 0xa35, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa26, 0xa38, 0xa70, 0xa2c, 0xa30,
-0x3b, 0xa1c, 0x3b, 0xa2b, 0xa3c, 0x3b, 0xa2e, 0xa3e, 0x3b, 0xa05, 0x3b, 0xa2e, 0x3b, 0xa1c, 0xa42, 0x3b, 0xa1c, 0xa41, 0x3b, 0xa05,
-0x3b, 0xa38, 0x3b, 0xa05, 0x3b, 0xa28, 0x3b, 0xa26, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc,
-0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c,
-0x648, 0x644, 0x627, 0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a,
-0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x73, 0x63, 0x68, 0x61,
-0x6e, 0x2e, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d,
-0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c, 0x2e, 0x3b, 0x66, 0x61, 0x6e, 0x2e, 0x3b, 0x61, 0x76, 0x75, 0x73,
-0x74, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65,
-0x63, 0x2e, 0x3b, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61,
-0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x67, 0x6c, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c,
-0x61, 0x64, 0x75, 0x72, 0x3b, 0x66, 0x61, 0x6e, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x61, 0x76, 0x75, 0x73, 0x74, 0x3b, 0x73,
-0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76,
-0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d,
-0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x69,
-0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d,
-0x61, 0x69, 0x3b, 0x69, 0x75, 0x6e, 0x2e, 0x3b, 0x69, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65,
-0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x69,
-0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x6d, 0x61,
-0x72, 0x74, 0x69, 0x65, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x65, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x69, 0x75, 0x6e,
-0x69, 0x65, 0x3b, 0x69, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
-0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6e, 0x6f, 0x69,
-0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x49, 0x3b, 0x46,
-0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44,
-0x3b, 0x42f, 0x43d, 0x432, 0x2e, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440,
-0x2e, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x2e,
-0x3b, 0x421, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x41e, 0x43a, 0x442, 0x2e, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x414, 0x435,
-0x43a, 0x2e, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430,
-0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418,
-0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b,
-0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431,
-0x440, 0x44c, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x430, 0x3b,
-0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x44f, 0x3b, 0x438, 0x44e, 0x43b, 0x44f, 0x3b, 0x430,
-0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e,
-0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44f, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44f,
-0x3b, 0x43c, 0x430, 0x440, 0x442, 0x430, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e,
-0x43d, 0x44f, 0x3b, 0x438, 0x44e, 0x43b, 0x44f, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x430, 0x3b, 0x441, 0x435, 0x43d, 0x442,
-0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44f, 0x3b,
-0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44f, 0x3b, 0x4e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x3b, 0x4d, 0x62, 0xe4, 0x3b,
-0x4e, 0x67, 0x75, 0x3b, 0x42, 0xea, 0x6c, 0x3b, 0x46, 0xf6, 0x6e, 0x3b, 0x4c, 0x65, 0x6e, 0x3b, 0x4b, 0xfc, 0x6b, 0x3b,
-0x4d, 0x76, 0x75, 0x3b, 0x4e, 0x67, 0x62, 0x3b, 0x4e, 0x61, 0x62, 0x3b, 0x4b, 0x61, 0x6b, 0x3b, 0x4e, 0x79, 0x65, 0x6e,
-0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x75, 0x6e, 0x64, 0xef, 0x67, 0x69, 0x3b, 0x4d, 0x62, 0xe4, 0x6e, 0x67, 0xfc, 0x3b,
-0x4e, 0x67, 0x75, 0x62, 0xf9, 0x65, 0x3b, 0x42, 0xea, 0x6c, 0xe4, 0x77, 0xfc, 0x3b, 0x46, 0xf6, 0x6e, 0x64, 0x6f, 0x3b,
-0x4c, 0x65, 0x6e, 0x67, 0x75, 0x61, 0x3b, 0x4b, 0xfc, 0x6b, 0xfc, 0x72, 0xfc, 0x3b, 0x4d, 0x76, 0x75, 0x6b, 0x61, 0x3b,
-0x4e, 0x67, 0x62, 0x65, 0x72, 0x65, 0x72, 0x65, 0x3b, 0x4e, 0x61, 0x62, 0xe4, 0x6e, 0x64, 0xfc, 0x72, 0x75, 0x3b, 0x4b,
-0x61, 0x6b, 0x61, 0x75, 0x6b, 0x61, 0x3b, 0x4e, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x46, 0x3b, 0x4c,
-0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c,
-0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430,
-0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, 0x458,
-0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430,
-0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433,
-0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430,
-0x440, 0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b,
-0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b,
-0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b,
-0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75,
-0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75,
-0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
-0x61, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b,
-0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6a, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x6a,
-0x3b, 0x6a, 0x3b, 0x61, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b,
-0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c,
-0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b,
-0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430, 0x440, 0x3b, 0x43d, 0x43e,
-0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x42f, 0x43d, 0x432, 0x430,
-0x440, 0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x3b, 0x410, 0x43f,
-0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410,
-0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431,
-0x440, 0x44c, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x44f, 0x43d,
-0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430,
-0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d,
-0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432,
-0x430, 0x440, 0x44b, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x439, 0x44b,
-0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x439, 0x44b, 0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e,
-0x43b, 0x44b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x44b, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b,
-0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431,
-0x440, 0x44b, 0x3b, 0x50, 0x68, 0x65, 0x3b, 0x4b, 0x6f, 0x6c, 0x3b, 0x55, 0x62, 0x65, 0x3b, 0x4d, 0x6d, 0x65, 0x3b, 0x4d,
-0x6f, 0x74, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x55, 0x70, 0x75, 0x3b, 0x50, 0x68, 0x61, 0x3b, 0x4c, 0x65, 0x6f, 0x3b, 0x4d,
-0x70, 0x68, 0x3b, 0x50, 0x75, 0x6e, 0x3b, 0x54, 0x73, 0x68, 0x3b, 0x50, 0x68, 0x65, 0x73, 0x65, 0x6b, 0x67, 0x6f, 0x6e,
-0x67, 0x3b, 0x48, 0x6c, 0x61, 0x6b, 0x6f, 0x6c, 0x61, 0x3b, 0x48, 0x6c, 0x61, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x3b,
-0x4d, 0x6d, 0x65, 0x73, 0x65, 0x3b, 0x4d, 0x6f, 0x74, 0x73, 0x68, 0x65, 0x61, 0x6e, 0x6f, 0x6e, 0x67, 0x3b, 0x50, 0x68,
-0x75, 0x70, 0x6a, 0x61, 0x6e, 0x65, 0x3b, 0x50, 0x68, 0x75, 0x70, 0x75, 0x3b, 0x50, 0x68, 0x61, 0x74, 0x61, 0x3b, 0x4c,
-0x65, 0x6f, 0x74, 0x73, 0x68, 0x65, 0x3b, 0x4d, 0x70, 0x68, 0x61, 0x6c, 0x61, 0x6e, 0x65, 0x3b, 0x50, 0x75, 0x6e, 0x64,
-0x75, 0x6e, 0x67, 0x77, 0x61, 0x6e, 0x65, 0x3b, 0x54, 0x73, 0x68, 0x69, 0x74, 0x77, 0x65, 0x3b, 0x46, 0x65, 0x72, 0x3b,
-0x54, 0x6c, 0x68, 0x3b, 0x4d, 0x6f, 0x70, 0x3b, 0x4d, 0x6f, 0x72, 0x3b, 0x4d, 0x6f, 0x74, 0x3b, 0x53, 0x65, 0x65, 0x3b,
-0x50, 0x68, 0x75, 0x3b, 0x50, 0x68, 0x61, 0x3b, 0x4c, 0x77, 0x65, 0x3b, 0x44, 0x69, 0x70, 0x3b, 0x4e, 0x67, 0x77, 0x3b,
-0x53, 0x65, 0x64, 0x3b, 0x46, 0x65, 0x72, 0x69, 0x6b, 0x67, 0x6f, 0x6e, 0x67, 0x3b, 0x54, 0x6c, 0x68, 0x61, 0x6b, 0x6f,
-0x6c, 0x65, 0x3b, 0x4d, 0x6f, 0x70, 0x69, 0x74, 0x6c, 0x6f, 0x3b, 0x4d, 0x6f, 0x72, 0x61, 0x6e, 0x61, 0x6e, 0x67, 0x3b,
-0x4d, 0x6f, 0x74, 0x73, 0x68, 0x65, 0x67, 0x61, 0x6e, 0x61, 0x6e, 0x67, 0x3b, 0x53, 0x65, 0x65, 0x74, 0x65, 0x62, 0x6f,
-0x73, 0x69, 0x67, 0x6f, 0x3b, 0x50, 0x68, 0x75, 0x6b, 0x77, 0x69, 0x3b, 0x50, 0x68, 0x61, 0x74, 0x77, 0x65, 0x3b, 0x4c,
-0x77, 0x65, 0x74, 0x73, 0x65, 0x3b, 0x44, 0x69, 0x70, 0x68, 0x61, 0x6c, 0x61, 0x6e, 0x65, 0x3b, 0x4e, 0x67, 0x77, 0x61,
-0x6e, 0x61, 0x74, 0x73, 0x65, 0x6c, 0x65, 0x3b, 0x53, 0x65, 0x64, 0x69, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6f, 0x6c, 0x65,
-0x3b, 0x4e, 0x64, 0x69, 0x3b, 0x4b, 0x75, 0x6b, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x4b, 0x75, 0x62, 0x3b, 0x43, 0x68, 0x76,
-0x3b, 0x43, 0x68, 0x6b, 0x3b, 0x43, 0x68, 0x67, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x47, 0x75, 0x6e, 0x3b, 0x47, 0x75, 0x6d,
-0x3b, 0x4d, 0x62, 0x3b, 0x5a, 0x76, 0x69, 0x3b, 0x4e, 0x64, 0x69, 0x72, 0x61, 0x3b, 0x4b, 0x75, 0x6b, 0x61, 0x64, 0x7a,
-0x69, 0x3b, 0x4b, 0x75, 0x72, 0x75, 0x6d, 0x65, 0x3b, 0x4b, 0x75, 0x62, 0x76, 0x75, 0x6d, 0x62, 0x69, 0x3b, 0x43, 0x68,
-0x69, 0x76, 0x61, 0x62, 0x76, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75,
-0x6e, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4e, 0x79, 0x61, 0x6d, 0x61, 0x76, 0x68, 0x75, 0x76, 0x68, 0x75, 0x3b, 0x47, 0x75,
-0x6e, 0x79, 0x61, 0x6e, 0x61, 0x3b, 0x47, 0x75, 0x6d, 0x69, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4d, 0x62, 0x75, 0x64, 0x7a,
-0x69, 0x3b, 0x5a, 0x76, 0x69, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x43, 0x3b,
-0x43, 0x3b, 0x4e, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8,
-0xdcf, 0xdbb, 0xdca, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6,
-0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca,
-0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b, 0xda2, 0xdb1, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb4, 0xdd9,
-0xdb6, 0xdbb, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda,
-0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c,
-0xddd, 0xdc3, 0xdca, 0xdad, 0xdd4, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0xdad, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xd94, 0xd9a,
-0xdca, 0xdad, 0xddd, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdaf, 0xdd9, 0xdc3,
-0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xda2, 0x3b, 0xdb4, 0xdd9, 0x3b, 0xdb8, 0xdcf, 0x3b, 0xd85, 0x3b, 0xdb8, 0xdd0, 0x3b,
-0xda2, 0xdd6, 0x3b, 0xda2, 0xdd6, 0x3b, 0xd85, 0x3b, 0xdc3, 0xdd0, 0x3b, 0xd94, 0x3b, 0xdb1, 0xdd9, 0x3b, 0xdaf, 0xdd9, 0x3b, 0xda2,
-0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd,
-0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd,
-0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b,
-0x42, 0x68, 0x69, 0x3b, 0x56, 0x61, 0x6e, 0x3b, 0x56, 0x6f, 0x6c, 0x3b, 0x4d, 0x61, 0x62, 0x3b, 0x4e, 0x6b, 0x68, 0x3b,
-0x4e, 0x68, 0x6c, 0x3b, 0x4b, 0x68, 0x6f, 0x3b, 0x4e, 0x67, 0x63, 0x3b, 0x4e, 0x79, 0x6f, 0x3b, 0x4d, 0x70, 0x68, 0x3b,
-0x4c, 0x77, 0x65, 0x3b, 0x4e, 0x67, 0x6f, 0x3b, 0x42, 0x68, 0x69, 0x6d, 0x62, 0x69, 0x64, 0x76, 0x77, 0x61, 0x6e, 0x65,
-0x3b, 0x69, 0x4e, 0x64, 0x6c, 0x6f, 0x76, 0x61, 0x6e, 0x61, 0x3b, 0x69, 0x4e, 0x64, 0x6c, 0x6f, 0x76, 0x75, 0x2d, 0x6c,
-0x65, 0x6e, 0x6b, 0x68, 0x75, 0x6c, 0x75, 0x3b, 0x4d, 0x61, 0x62, 0x61, 0x73, 0x61, 0x3b, 0x69, 0x4e, 0x6b, 0x68, 0x77,
-0x65, 0x6b, 0x68, 0x77, 0x65, 0x74, 0x69, 0x3b, 0x69, 0x4e, 0x68, 0x6c, 0x61, 0x62, 0x61, 0x3b, 0x4b, 0x68, 0x6f, 0x6c,
-0x77, 0x61, 0x6e, 0x65, 0x3b, 0x69, 0x4e, 0x67, 0x63, 0x69, 0x3b, 0x69, 0x4e, 0x79, 0x6f, 0x6e, 0x69, 0x3b, 0x69, 0x4d,
-0x70, 0x68, 0x61, 0x6c, 0x61, 0x3b, 0x4c, 0x77, 0x65, 0x74, 0x69, 0x3b, 0x69, 0x4e, 0x67, 0x6f, 0x6e, 0x67, 0x6f, 0x6e,
-0x69, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0xe1,
-0x6a, 0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b,
-0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62,
-0x72, 0x75, 0xe1, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0xe1, 0x6a,
-0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
-0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62,
-0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x61, 0x3b,
-0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c,
-0x61, 0x3b, 0x6d, 0xe1, 0x6a, 0x61, 0x3b, 0x6a, 0xfa, 0x6e, 0x61, 0x3b, 0x6a, 0xfa, 0x6c, 0x61, 0x3b, 0x61, 0x75, 0x67,
-0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62,
-0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61,
-0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65,
-0x63, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75,
-0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72,
-0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65,
-0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72,
-0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e,
-0x3b, 0x61, 0x76, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e,
-0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x4b, 0x6f, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x41, 0x66,
-0x72, 0x3b, 0x53, 0x68, 0x61, 0x3b, 0x4c, 0x69, 0x78, 0x3b, 0x54, 0x6f, 0x64, 0x3b, 0x53, 0x69, 0x64, 0x3b, 0x53, 0x61,
-0x67, 0x3b, 0x54, 0x6f, 0x62, 0x3b, 0x4b, 0x49, 0x54, 0x3b, 0x4c, 0x49, 0x54, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20,
-0x4b, 0x6f, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x61, 0x64,
-0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x64, 0x64, 0x65, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73,
-0x68, 0x61, 0x20, 0x41, 0x66, 0x72, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x68, 0x61, 0x6e,
-0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x69, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73,
-0x68, 0x61, 0x20, 0x54, 0x6f, 0x64, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x69,
-0x64, 0x65, 0x65, 0x64, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x67, 0x61, 0x61, 0x6c,
-0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69,
-0x73, 0x68, 0x61, 0x20, 0x4b, 0x6f, 0x77, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b,
-0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61,
-0x61, 0x64, 0x3b, 0x4b, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53,
-0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4c, 0x3b, 0x45, 0x6e, 0x65, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72,
-0x2e, 0x3b, 0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x2e, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c,
-0x2e, 0x3b, 0x41, 0x67, 0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f,
-0x76, 0x2e, 0x3b, 0x44, 0x69, 0x63, 0x2e, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x72,
-0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x4a,
-0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65,
-0x70, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76,
-0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x46,
-0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44,
-0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e,
-0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e,
-0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63,
-0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a,
-0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a,
-0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x69, 0x65, 0x6d, 0x62,
-0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65,
-0x3b, 0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x65, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e,
-0x3b, 0x6d, 0x7a, 0x6f, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a,
-0x75, 0x6c, 0x3b, 0x61, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76,
-0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, 0x61, 0x3b, 0x41, 0x3b, 0x4d, 0x79, 0x3b, 0x4a,
-0x6e, 0x3b, 0x4a, 0x6c, 0x3b, 0x41, 0x67, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x65, 0x6e, 0x65, 0x2e,
-0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x7a, 0x6f, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x79, 0x2e,
-0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b,
-0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46,
-0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a,
-0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44,
-0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b,
-0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e,
-0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65,
-0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44,
-0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41,
-0x70, 0x72, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53,
-0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61,
-0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x70, 0x72,
-0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67,
-0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62,
-0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72,
-0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61,
-0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75,
-0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72,
-0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65,
-0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x42f, 0x43d, 0x432, 0x3b, 0x424, 0x435, 0x432, 0x3b, 0x41c, 0x430, 0x440, 0x3b, 0x410,
+0x5e7, 0x5d8, 0x5d5, 0x5d1, 0x5e8, 0x3b, 0x5e0, 0x5d5, 0x5d1, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x91c,
+0x928, 0x970, 0x3b, 0x92b, 0x93c, 0x930, 0x970, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x948, 0x932,
+0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x970, 0x3b, 0x905, 0x917, 0x970, 0x3b, 0x938, 0x93f, 0x924,
+0x970, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, 0x970, 0x3b, 0x928, 0x935, 0x970, 0x3b, 0x926, 0x93f, 0x938, 0x970, 0x3b, 0x91c, 0x928,
+0x935, 0x930, 0x940, 0x3b, 0x92b, 0x93c, 0x930, 0x935, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d,
+0x930, 0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938,
+0x94d, 0x924, 0x3b, 0x938, 0x93f, 0x924, 0x902, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, 0x92c, 0x930, 0x3b, 0x928, 0x935,
+0x902, 0x92c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x93c, 0x3b, 0x92e, 0x93e, 0x3b, 0x905,
+0x3b, 0x92e, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, 0x905, 0x3b, 0x938, 0x93f, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f,
+0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x2e, 0x3b, 0xe1, 0x70,
+0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x6a, 0x2e, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c, 0x2e, 0x3b, 0x61, 0x75,
+0x67, 0x2e, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b,
+0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x3b,
+0x6d, 0xe1, 0x72, 0x63, 0x69, 0x75, 0x73, 0x3b, 0xe1, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x73, 0x3b, 0x6d, 0xe1, 0x6a, 0x75,
+0x73, 0x3b, 0x6a, 0xfa, 0x6e, 0x69, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6c, 0x69, 0x75, 0x73, 0x3b, 0x61, 0x75, 0x67, 0x75,
+0x73, 0x7a, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74,
+0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0xc1, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53,
+0x7a, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61,
+0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c,
+0x2e, 0x3b, 0xe1, 0x67, 0xfa, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0xf3, 0x76,
+0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0xfa, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0xfa, 0x61,
+0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e,
+0xed, 0x3b, 0x6a, 0xfa, 0x6c, 0xed, 0x3b, 0xe1, 0x67, 0xfa, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0xf3, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b,
+0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a,
+0x3b, 0x4a, 0x3b, 0xc1, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62,
+0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c,
+0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73,
+0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61,
+0x72, 0x65, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a,
+0x75, 0x6c, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65,
+0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44,
+0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x45, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x61, 0x62, 0x68, 0x3b, 0x4d, 0xe1,
+0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x74, 0x68, 0x3b, 0x49,
+0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x3b, 0x4d, 0x46, 0xf3, 0x6d, 0x68, 0x3b, 0x44, 0x46, 0xf3, 0x6d, 0x68, 0x3b,
+0x53, 0x61, 0x6d, 0x68, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x3b, 0x45, 0x61, 0x6e, 0xe1, 0x69, 0x72, 0x3b, 0x46, 0x65, 0x61,
+0x62, 0x68, 0x72, 0x61, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x72, 0x65, 0xe1, 0x6e, 0x3b, 0x42,
+0x65, 0x61, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x74, 0x68, 0x65, 0x61, 0x6d, 0x68, 0x3b, 0x49,
+0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x65, 0xe1, 0x6e, 0x20, 0x46, 0xf3, 0x6d, 0x68,
+0x61, 0x69, 0x72, 0x3b, 0x44, 0x65, 0x69, 0x72, 0x65, 0x61, 0x64, 0x68, 0x20, 0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, 0x72,
+0x3b, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x61, 0x69, 0x67, 0x3b, 0x45, 0x3b, 0x46,
+0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x42, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x4e,
+0x3b, 0x67, 0x65, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x67,
+0x3b, 0x67, 0x69, 0x75, 0x3b, 0x6c, 0x75, 0x67, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x74, 0x74,
+0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x69, 0x63, 0x3b, 0x47, 0x65, 0x6e, 0x6e, 0x61, 0x69, 0x6f, 0x3b, 0x46, 0x65, 0x62,
+0x62, 0x72, 0x61, 0x69, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x65, 0x3b, 0x4d,
+0x61, 0x67, 0x67, 0x69, 0x6f, 0x3b, 0x47, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, 0x4c, 0x75, 0x67, 0x6c, 0x69, 0x6f, 0x3b,
+0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x74, 0x74,
+0x6f, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62,
+0x72, 0x65, 0x3b, 0x47, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53,
+0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x67, 0x65, 0x6e, 0x6e, 0x61, 0x69, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x62, 0x72,
+0x61, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x65, 0x3b, 0x6d, 0x61, 0x67,
+0x67, 0x69, 0x6f, 0x3b, 0x67, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, 0x6c, 0x75, 0x67, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67,
+0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x74, 0x74, 0x6f, 0x62,
+0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65,
+0x3b, 0xc9c, 0xca8, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd,
+0xcb0, 0xcbf, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0x3b, 0xcb8,
+0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0x3b, 0xca1, 0xcbf,
+0xcb8, 0xcc6, 0xc82, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcae,
+0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0xcb2, 0xccd, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8,
+0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0xcb8, 0xccd, 0xc9f, 0xccd, 0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6,
+0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0xcac, 0xcb0,
+0xccd, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc9c, 0x3b, 0xcab, 0xcc6, 0x3b, 0xcae, 0xcbe, 0x3b, 0xc8f,
+0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0x3b, 0xc9c, 0xcc1, 0x3b, 0xc86, 0x3b, 0xcb8, 0xcc6, 0x3b, 0xc85, 0x3b, 0xca8, 0x3b, 0xca1,
+0xcbf, 0x3b, 0x62c, 0x646, 0x624, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x624, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x655, 0x686, 0x3b,
+0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x654, 0x3b, 0x62c, 0x648, 0x657, 0x646, 0x3b, 0x62c, 0x648, 0x657, 0x644, 0x627,
+0x6cc, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x657, 0x628,
+0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b,
+0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x49b, 0x430,
+0x4a3, 0x2e, 0x3b, 0x430, 0x49b, 0x43f, 0x2e, 0x3b, 0x43d, 0x430, 0x443, 0x2e, 0x3b, 0x441, 0x4d9, 0x443, 0x2e, 0x3b, 0x43c, 0x430,
+0x43c, 0x2e, 0x3b, 0x43c, 0x430, 0x443, 0x2e, 0x3b, 0x448, 0x456, 0x43b, 0x2e, 0x3b, 0x442, 0x430, 0x43c, 0x2e, 0x3b, 0x49b, 0x44b,
+0x440, 0x2e, 0x3b, 0x49b, 0x430, 0x437, 0x2e, 0x3b, 0x49b, 0x430, 0x440, 0x2e, 0x3b, 0x436, 0x435, 0x43b, 0x442, 0x2e, 0x3b, 0x49b,
+0x430, 0x4a3, 0x442, 0x430, 0x440, 0x3b, 0x430, 0x49b, 0x43f, 0x430, 0x43d, 0x3b, 0x43d, 0x430, 0x443, 0x440, 0x44b, 0x437, 0x3b, 0x441,
+0x4d9, 0x443, 0x456, 0x440, 0x3b, 0x43c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, 0x43c, 0x430, 0x443, 0x441, 0x44b, 0x43c, 0x3b, 0x448, 0x456,
+0x43b, 0x434, 0x435, 0x3b, 0x442, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49b, 0x44b, 0x440, 0x43a, 0x4af, 0x439, 0x435, 0x43a, 0x3b, 0x49b,
+0x430, 0x437, 0x430, 0x43d, 0x3b, 0x49b, 0x430, 0x440, 0x430, 0x448, 0x430, 0x3b, 0x436, 0x435, 0x43b, 0x442, 0x43e, 0x49b, 0x441, 0x430,
+0x43d, 0x3b, 0x49a, 0x3b, 0x410, 0x3b, 0x41d, 0x3b, 0x421, 0x3b, 0x41c, 0x3b, 0x41c, 0x3b, 0x428, 0x3b, 0x422, 0x3b, 0x49a, 0x3b,
+0x49a, 0x3b, 0x49a, 0x3b, 0x416, 0x3b, 0x6d, 0x75, 0x74, 0x2e, 0x3b, 0x67, 0x61, 0x73, 0x2e, 0x3b, 0x77, 0x65, 0x72, 0x2e,
+0x3b, 0x6d, 0x61, 0x74, 0x2e, 0x3b, 0x67, 0x69, 0x63, 0x2e, 0x3b, 0x6b, 0x61, 0x6d, 0x2e, 0x3b, 0x6e, 0x79, 0x61, 0x2e,
+0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x6e, 0x7a, 0x65, 0x2e, 0x3b, 0x75, 0x6b, 0x77, 0x2e, 0x3b, 0x75, 0x67, 0x75, 0x2e,
+0x3b, 0x75, 0x6b, 0x75, 0x2e, 0x3b, 0x4d, 0x75, 0x74, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0x47, 0x61, 0x73, 0x68, 0x79,
+0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x3b, 0x57, 0x65, 0x72, 0x75, 0x72, 0x77, 0x65, 0x3b, 0x4d, 0x61, 0x74, 0x61, 0x3b,
+0x47, 0x69, 0x63, 0x75, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x3b, 0x4b, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x3b, 0x4e, 0x79, 0x61,
+0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x4b, 0x61, 0x6e, 0x61, 0x6d, 0x61, 0x3b, 0x4e, 0x7a, 0x65, 0x6c, 0x69, 0x3b, 0x55,
+0x6b, 0x77, 0x61, 0x6b, 0x69, 0x72, 0x61, 0x3b, 0x55, 0x67, 0x75, 0x73, 0x68, 0x79, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x55,
+0x6b, 0x75, 0x62, 0x6f, 0x7a, 0x61, 0x3b, 0x42f, 0x43d, 0x432, 0x3b, 0x424, 0x435, 0x432, 0x3b, 0x41c, 0x430, 0x440, 0x3b, 0x410,
0x43f, 0x440, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x3b, 0x421,
0x435, 0x43d, 0x3b, 0x41e, 0x43a, 0x442, 0x3b, 0x41d, 0x43e, 0x44f, 0x3b, 0x414, 0x435, 0x43a, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440,
-0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x41c,
-0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435,
-0x43d, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x3b, 0x414,
-0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0xb9c, 0xba9, 0x2e, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd,
-0x2e, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b,
-0xb86, 0xb95, 0x2e, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xb85, 0xb95, 0xbcd, 0x2e, 0x3b, 0xba8, 0xbb5, 0x2e, 0x3b, 0xb9f,
-0xbbf, 0xb9a, 0x2e, 0x3b, 0xb9c, 0xba9, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0xbb0, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbae,
-0xbbe, 0xbb0, 0xbcd, 0xb9a, 0xbcd, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd,
-0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbc1, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0xb9f, 0xbae, 0xbcd,
-0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xb95, 0xbcd, 0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xba8, 0xbb5, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd,
-0x3b, 0xb9f, 0xbbf, 0xb9a, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9c, 0x3b, 0xbaa, 0xbbf, 0x3b, 0xbae, 0xbbe, 0x3b, 0xb8f, 0x3b,
-0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb86, 0x3b, 0xb9a, 0xbc6, 0x3b, 0xb85, 0x3b, 0xba8, 0x3b, 0xb9f, 0xbbf,
-0x3b, 0xb9c, 0xba9, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0xbb0, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd,
-0xb9a, 0xbcd, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2,
-0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0xb9f, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd,
-0x3b, 0xb85, 0xb95, 0xbcd, 0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xba8, 0xbb5, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9f, 0xbbf,
-0xb9a, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xc1c, 0xc28, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d,
-0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32,
-0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f, 0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d,
-0xc1f, 0xc4b, 0x3b, 0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b, 0xc1c, 0xc28, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2b,
-0xc3f, 0xc2c, 0xc4d, 0xc30, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0e, 0xc2a, 0xc4d, 0xc30, 0xc3f,
-0xc32, 0xc4d, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc42, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d,
-0xc1f, 0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0xc2c,
-0xc30, 0xc4d, 0x3b, 0xc28, 0xc35, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc1c,
-0x3b, 0xc2b, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0x3b, 0xc0f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0x3b, 0xc1c, 0xc41, 0x3b, 0xc06, 0x3b,
-0xc38, 0xc46, 0x3b, 0xc05, 0x3b, 0xc28, 0x3b, 0xc21, 0xc3f, 0x3b, 0xc1c, 0xc28, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0x3b, 0xc2e,
-0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b,
-0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f,
-0xc4b, 0x3b, 0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b, 0xc1c, 0xc28, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2b, 0xc3f,
-0xc2c, 0xc4d, 0xc30, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0e, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0xc32,
-0xc4d, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f,
-0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0xc2c, 0xc30,
-0xc4d, 0x3b, 0xc28, 0xc35, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xe21, 0x2e,
-0xe04, 0x2e, 0x3b, 0xe01, 0x2e, 0xe1e, 0x2e, 0x3b, 0xe21, 0xe35, 0x2e, 0xe04, 0x2e, 0x3b, 0xe40, 0xe21, 0x2e, 0xe22, 0x2e, 0x3b,
-0xe1e, 0x2e, 0xe04, 0x2e, 0x3b, 0xe21, 0xe34, 0x2e, 0xe22, 0x2e, 0x3b, 0xe01, 0x2e, 0xe04, 0x2e, 0x3b, 0xe2a, 0x2e, 0xe04, 0x2e,
-0x3b, 0xe01, 0x2e, 0xe22, 0x2e, 0x3b, 0xe15, 0x2e, 0xe04, 0x2e, 0x3b, 0xe1e, 0x2e, 0xe22, 0x2e, 0x3b, 0xe18, 0x2e, 0xe04, 0x2e,
-0x3b, 0xe21, 0xe01, 0xe23, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe38, 0xe21, 0xe20, 0xe32, 0xe1e, 0xe31, 0xe19, 0xe18, 0xe4c, 0x3b, 0xe21,
-0xe35, 0xe19, 0xe32, 0xe04, 0xe21, 0x3b, 0xe40, 0xe21, 0xe29, 0xe32, 0xe22, 0xe19, 0x3b, 0xe1e, 0xe24, 0xe29, 0xe20, 0xe32, 0xe04, 0xe21,
-0x3b, 0xe21, 0xe34, 0xe16, 0xe38, 0xe19, 0xe32, 0xe22, 0xe19, 0x3b, 0xe01, 0xe23, 0xe01, 0xe0e, 0xe32, 0xe04, 0xe21, 0x3b, 0xe2a, 0xe34,
-0xe07, 0xe2b, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe31, 0xe19, 0xe22, 0xe32, 0xe22, 0xe19, 0x3b, 0xe15, 0xe38, 0xe25, 0xe32, 0xe04, 0xe21,
-0x3b, 0xe1e, 0xe24, 0xe28, 0xe08, 0xe34, 0xe01, 0xe32, 0xe22, 0xe19, 0x3b, 0xe18, 0xe31, 0xe19, 0xe27, 0xe32, 0xe04, 0xe21, 0x3b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66,
-0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56,
-0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf51, 0xf74,
-0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b,
-0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b,
-0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0x1303, 0x1295, 0x12e9,
-0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x1228, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301,
-0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x3b, 0x1296, 0x126c, 0x121d, 0x3b, 0x12f2,
-0x1234, 0x121d, 0x3b, 0x1303, 0x1295, 0x12e9, 0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4,
-0x1355, 0x1228, 0x120d, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x1275, 0x3b, 0x1234,
-0x1355, 0x1274, 0x121d, 0x1260, 0x122d, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x12cd, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c, 0x121d, 0x1260, 0x122d, 0x3b, 0x12f2,
-0x1234, 0x121d, 0x1260, 0x122d, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x3b, 0x1218, 0x130b, 0x1262, 0x3b, 0x121a, 0x12eb, 0x12dd, 0x3b,
-0x130d, 0x1295, 0x1266, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x1208, 0x3b, 0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x3b, 0x1325,
-0x1245, 0x121d, 0x3b, 0x1215, 0x12f3, 0x122d, 0x3b, 0x1273, 0x1215, 0x1233, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x1275, 0x3b, 0x1218,
-0x130b, 0x1262, 0x1275, 0x3b, 0x121a, 0x12eb, 0x12dd, 0x12eb, 0x3b, 0x130d, 0x1295, 0x1266, 0x1275, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x1208,
-0x3b, 0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x1228, 0x121d, 0x3b, 0x1325, 0x1245, 0x121d, 0x1272, 0x3b, 0x1215, 0x12f3, 0x122d, 0x3b,
-0x1273, 0x1215, 0x1233, 0x1235, 0x3b, 0x53, 0x101, 0x6e, 0x3b, 0x46, 0x113, 0x70, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x3b, 0x2bb, 0x45,
-0x70, 0x65, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x53, 0x69, 0x75, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x3b, 0x53,
-0x65, 0x70, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x3b, 0x54, 0x12b, 0x73, 0x3b, 0x53, 0x101, 0x6e, 0x75,
-0x61, 0x6c, 0x69, 0x3b, 0x46, 0x113, 0x70, 0x75, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x73, 0x69, 0x3b, 0x2bb,
-0x45, 0x70, 0x65, 0x6c, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x65, 0x3b, 0x53, 0x69, 0x75, 0x6c,
-0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x6f, 0x73, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x3b,
-0x2bb, 0x4f, 0x6b, 0x61, 0x74, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x65, 0x6d, 0x61, 0x3b, 0x54, 0x12b, 0x73, 0x65,
-0x6d, 0x61, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x53,
-0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x59, 0x61, 0x6e, 0x3b, 0x4b, 0x75, 0x6c, 0x3b, 0x44,
-0x7a, 0x69, 0x3b, 0x4d, 0x75, 0x64, 0x3b, 0x4b, 0x68, 0x6f, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x4d, 0x68, 0x61, 0x3b, 0x4e,
-0x64, 0x7a, 0x3b, 0x4e, 0x68, 0x6c, 0x3b, 0x48, 0x75, 0x6b, 0x3b, 0x4e, 0x27, 0x77, 0x3b, 0x53, 0x75, 0x6e, 0x67, 0x75,
-0x74, 0x69, 0x3b, 0x4e, 0x79, 0x65, 0x6e, 0x79, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x69, 0x3b, 0x4e, 0x79, 0x65, 0x6e, 0x79,
-0x61, 0x6e, 0x6b, 0x75, 0x6c, 0x75, 0x3b, 0x44, 0x7a, 0x69, 0x76, 0x61, 0x6d, 0x69, 0x73, 0x6f, 0x6b, 0x6f, 0x3b, 0x4d,
-0x75, 0x64, 0x79, 0x61, 0x78, 0x69, 0x68, 0x69, 0x3b, 0x4b, 0x68, 0x6f, 0x74, 0x61, 0x76, 0x75, 0x78, 0x69, 0x6b, 0x61,
-0x3b, 0x4d, 0x61, 0x77, 0x75, 0x77, 0x61, 0x6e, 0x69, 0x3b, 0x4d, 0x68, 0x61, 0x77, 0x75, 0x72, 0x69, 0x3b, 0x4e, 0x64,
-0x7a, 0x68, 0x61, 0x74, 0x69, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x3b, 0x48, 0x75, 0x6b, 0x75,
-0x72, 0x69, 0x3b, 0x4e, 0x27, 0x77, 0x65, 0x6e, 0x64, 0x7a, 0x61, 0x6d, 0x68, 0x61, 0x6c, 0x61, 0x3b, 0x4f, 0x63, 0x61,
-0x3b, 0x15e, 0x75, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4e, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x61, 0x7a,
-0x3b, 0x54, 0x65, 0x6d, 0x3b, 0x41, 0x11f, 0x75, 0x3b, 0x45, 0x79, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x3b, 0x4b, 0x61, 0x73,
-0x3b, 0x41, 0x72, 0x61, 0x3b, 0x4f, 0x63, 0x61, 0x6b, 0x3b, 0x15e, 0x75, 0x62, 0x61, 0x74, 0x3b, 0x4d, 0x61, 0x72, 0x74,
-0x3b, 0x4e, 0x69, 0x73, 0x61, 0x6e, 0x3b, 0x4d, 0x61, 0x79, 0x131, 0x73, 0x3b, 0x48, 0x61, 0x7a, 0x69, 0x72, 0x61, 0x6e,
-0x3b, 0x54, 0x65, 0x6d, 0x6d, 0x75, 0x7a, 0x3b, 0x41, 0x11f, 0x75, 0x73, 0x74, 0x6f, 0x73, 0x3b, 0x45, 0x79, 0x6c, 0xfc,
-0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x6d, 0x3b, 0x4b, 0x61, 0x73, 0x131, 0x6d, 0x3b, 0x41, 0x72, 0x61, 0x6c, 0x131, 0x6b, 0x3b,
-0x4f, 0x3b, 0x15e, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x45, 0x3b, 0x45, 0x3b,
-0x4b, 0x3b, 0x41, 0x3b, 0x421, 0x456, 0x447, 0x3b, 0x41b, 0x44e, 0x442, 0x3b, 0x411, 0x435, 0x440, 0x3b, 0x41a, 0x432, 0x456, 0x3b,
-0x422, 0x440, 0x430, 0x3b, 0x427, 0x435, 0x440, 0x3b, 0x41b, 0x438, 0x43f, 0x3b, 0x421, 0x435, 0x440, 0x3b, 0x412, 0x435, 0x440, 0x3b,
-0x416, 0x43e, 0x432, 0x3b, 0x41b, 0x438, 0x441, 0x3b, 0x413, 0x440, 0x443, 0x3b, 0x421, 0x456, 0x447, 0x435, 0x43d, 0x44c, 0x3b, 0x41b,
-0x44e, 0x442, 0x438, 0x439, 0x3b, 0x411, 0x435, 0x440, 0x435, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x41a, 0x432, 0x456, 0x442, 0x435, 0x43d,
-0x44c, 0x3b, 0x422, 0x440, 0x430, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x427, 0x435, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x41b, 0x438,
-0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x421, 0x435, 0x440, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x412, 0x435, 0x440, 0x435, 0x441, 0x435, 0x43d,
-0x44c, 0x3b, 0x416, 0x43e, 0x432, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x41b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x3b, 0x413,
-0x440, 0x443, 0x434, 0x435, 0x43d, 0x44c, 0x3b, 0x421, 0x3b, 0x41b, 0x3b, 0x411, 0x3b, 0x41a, 0x3b, 0x422, 0x3b, 0x427, 0x3b, 0x41b,
-0x3b, 0x421, 0x3b, 0x412, 0x3b, 0x416, 0x3b, 0x41b, 0x3b, 0x413, 0x3b, 0x441, 0x456, 0x447, 0x2e, 0x3b, 0x43b, 0x44e, 0x442, 0x2e,
-0x3b, 0x431, 0x435, 0x440, 0x2e, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x2e, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x2e, 0x3b, 0x447, 0x435,
-0x440, 0x432, 0x2e, 0x3b, 0x43b, 0x438, 0x43f, 0x2e, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x2e, 0x3b, 0x432, 0x435, 0x440, 0x2e, 0x3b,
-0x436, 0x43e, 0x432, 0x442, 0x2e, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x2e, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x2e, 0x3b, 0x441, 0x456,
-0x447, 0x43d, 0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x43e, 0x433, 0x43e, 0x3b, 0x431, 0x435, 0x440, 0x435, 0x437, 0x43d, 0x44f, 0x3b, 0x43a,
-0x432, 0x456, 0x442, 0x43d, 0x44f, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x43d, 0x44f, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x43d, 0x44f, 0x3b,
-0x43b, 0x438, 0x43f, 0x43d, 0x44f, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x435, 0x441, 0x43d, 0x44f,
-0x3b, 0x436, 0x43e, 0x432, 0x442, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x430, 0x3b, 0x433, 0x440,
-0x443, 0x434, 0x43d, 0x44f, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631,
-0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627,
-0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631,
-0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x3b, 0x46, 0x65,
-0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x75, 0x6e, 0x3b, 0x49,
-0x79, 0x75, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x79, 0x61,
-0x3b, 0x44, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d,
-0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x75, 0x6e, 0x3b, 0x49,
-0x79, 0x75, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b,
-0x4f, 0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62,
-0x72, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b,
-0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x3b, 0x627, 0x67e,
-0x631, 0x3b, 0x645, 0x640, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, 0x6af, 0x633, 0x3b, 0x633, 0x67e,
-0x62a, 0x3b, 0x627, 0x6a9, 0x62a, 0x3b, 0x646, 0x648, 0x645, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x3b,
-0x54, 0x68, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68,
-0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0x67, 0x20,
-0x38, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31,
-0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0xe1,
-0x6e, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34,
-0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0xe1,
-0x6e, 0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39,
-0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54,
-0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x32, 0x3b,
-0x74, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68,
-0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0x67, 0x20,
-0x39, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0x67, 0x20,
-0x31, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, 0x74,
-0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67,
-0x20, 0x35, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, 0x74,
-0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67,
-0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31,
-0x32, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61,
-0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b,
-0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x3b, 0x49, 0x6f, 0x6e, 0x61, 0x77, 0x72,
-0x3b, 0x43, 0x68, 0x77, 0x65, 0x66, 0x72, 0x6f, 0x72, 0x3b, 0x4d, 0x61, 0x77, 0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72,
-0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x65, 0x66, 0x69, 0x6e, 0x3b, 0x47, 0x6f, 0x72, 0x66,
-0x66, 0x65, 0x6e, 0x6e, 0x61, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64,
-0x72, 0x65, 0x66, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x77, 0x65, 0x64, 0x64, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x66, 0x79, 0x72,
-0x3b, 0x49, 0x3b, 0x43, 0x68, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x41, 0x3b, 0x4d, 0x3b,
-0x48, 0x3b, 0x54, 0x3b, 0x52, 0x68, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x65, 0x66, 0x3b, 0x4d, 0x61, 0x77,
-0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47,
-0x6f, 0x72, 0x66, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54,
-0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x74,
-0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x61,
-0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e,
-0x79, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x74,
-0x73, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69,
-0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65,
-0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b,
-0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8,
-0x3b, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b,
-0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd, 0x3b, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65,
-0x77, 0x65, 0x3b, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300,
-0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c,
-0xe8, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xcc, 0x67, 0x62,
-0xe9, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x6b, 0xfa,
-0x64, 0x75, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x67, 0xfa,
-0x6e, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x77, 0xe0,
-0x72, 0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x70, 0x1eb9,
-0x300, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x190, 0x72, 0x25b, 0x300,
-0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x190, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75,
-0x3b, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x186, 0x300,
-0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x4f, 0x73, 0x68, 0xf9,
-0x20, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b,
-0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xcc, 0x67, 0x62,
-0xe9, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xd2,
-0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0x4f, 0x73, 0x68, 0xf9,
-0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, 0x73, 0x68,
-0xf9, 0x20, 0x186, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x4f,
-0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61,
-0x73, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67,
-0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x75, 0x4a,
-0x61, 0x6e, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x75, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x75,
-0x4d, 0x61, 0x73, 0x68, 0x69, 0x3b, 0x75, 0x2d, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x75, 0x4d, 0x65, 0x79, 0x69,
-0x3b, 0x75, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x75, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x75, 0x41, 0x67, 0x61, 0x73,
-0x74, 0x69, 0x3b, 0x75, 0x53, 0x65, 0x70, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x75, 0x2d, 0x4f, 0x6b, 0x74, 0x68,
-0x6f, 0x62, 0x61, 0x3b, 0x75, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x75, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62,
-0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69,
-0x3b, 0x4d, 0x61, 0x73, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a,
-0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65,
-0x70, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65,
-0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62,
-0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69,
-0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e,
-0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65,
-0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a,
-0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65,
-0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65,
-0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4a, 0x2d, 0x67, 0x75, 0x65, 0x72,
-0x3b, 0x54, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, 0x72, 0x72,
-0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b,
-0x4a, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d,
-0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4a, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x2e, 0x48,
-0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x2e, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, 0x3b, 0x4a, 0x65, 0x72, 0x72,
-0x65, 0x79, 0x2d, 0x67, 0x65, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x54, 0x6f, 0x73, 0x68, 0x69, 0x61, 0x67, 0x68, 0x74, 0x2d,
-0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, 0x65, 0x72, 0x69, 0x6c, 0x3b,
-0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b,
-0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73,
-0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4a, 0x65, 0x72, 0x72,
-0x65, 0x79, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79,
-0x3b, 0x4d, 0x65, 0x65, 0x20, 0x6e, 0x79, 0x20, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, 0x3b, 0x47, 0x65, 0x6e, 0x3b,
-0x57, 0x68, 0x65, 0x3b, 0x4d, 0x65, 0x72, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x3b, 0x45, 0x66, 0x6e, 0x3b, 0x47,
-0x6f, 0x72, 0x3b, 0x45, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x6e, 0x3b, 0x48, 0x65, 0x64, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65,
-0x76, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x57, 0x68, 0x65,
-0x76, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x4d, 0x65, 0x72, 0x74, 0x68, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x45,
-0x62, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x4d, 0x65, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x45, 0x66, 0x61, 0x6e,
-0x3b, 0x4d, 0x79, 0x73, 0x20, 0x47, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x3b, 0x4d, 0x79, 0x65, 0x20, 0x45,
-0x73, 0x74, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x47, 0x77, 0x79, 0x6e, 0x67, 0x61, 0x6c, 0x61, 0x3b, 0x4d, 0x79, 0x73, 0x20,
-0x48, 0x65, 0x64, 0x72, 0x61, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x44, 0x75, 0x3b, 0x4d, 0x79, 0x73, 0x20, 0x4b, 0x65, 0x76,
-0x61, 0x72, 0x64, 0x68, 0x75, 0x3b, 0x53, 0x2d, 0x186, 0x3b, 0x4b, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x186, 0x3b, 0x45, 0x2d,
-0x4f, 0x3b, 0x45, 0x2d, 0x4b, 0x3b, 0x4f, 0x2d, 0x41, 0x3b, 0x41, 0x2d, 0x4b, 0x3b, 0x44, 0x2d, 0x186, 0x3b, 0x46, 0x2d,
-0x190, 0x3b, 0x186, 0x2d, 0x41, 0x3b, 0x186, 0x2d, 0x4f, 0x3b, 0x4d, 0x2d, 0x186, 0x3b, 0x53, 0x61, 0x6e, 0x64, 0x61, 0x2d,
-0x186, 0x70, 0x25b, 0x70, 0x254, 0x6e, 0x3b, 0x4b, 0x77, 0x61, 0x6b, 0x77, 0x61, 0x72, 0x2d, 0x186, 0x67, 0x79, 0x65, 0x66,
-0x75, 0x6f, 0x3b, 0x45, 0x62, 0x254, 0x77, 0x2d, 0x186, 0x62, 0x65, 0x6e, 0x65, 0x6d, 0x3b, 0x45, 0x62, 0x254, 0x62, 0x69,
-0x72, 0x61, 0x2d, 0x4f, 0x66, 0x6f, 0x72, 0x69, 0x73, 0x75, 0x6f, 0x3b, 0x45, 0x73, 0x75, 0x73, 0x6f, 0x77, 0x20, 0x41,
-0x6b, 0x65, 0x74, 0x73, 0x65, 0x61, 0x62, 0x61, 0x2d, 0x4b, 0x254, 0x74, 0x254, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x4f,
-0x62, 0x69, 0x72, 0x61, 0x64, 0x65, 0x2d, 0x41, 0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x6d, 0x75, 0x6d, 0x75, 0x3b, 0x41,
-0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x2d, 0x4b, 0x69, 0x74, 0x61, 0x77, 0x6f, 0x6e, 0x73, 0x61, 0x3b, 0x44, 0x69, 0x66,
-0x75, 0x75, 0x2d, 0x186, 0x73, 0x61, 0x6e, 0x64, 0x61, 0x61, 0x3b, 0x46, 0x61, 0x6e, 0x6b, 0x77, 0x61, 0x2d, 0x190, 0x62,
-0x254, 0x3b, 0x186, 0x62, 0x25b, 0x73, 0x25b, 0x2d, 0x41, 0x68, 0x69, 0x6e, 0x69, 0x6d, 0x65, 0x3b, 0x186, 0x62, 0x65, 0x72,
-0x25b, 0x66, 0x25b, 0x77, 0x2d, 0x4f, 0x62, 0x75, 0x62, 0x75, 0x6f, 0x3b, 0x4d, 0x75, 0x6d, 0x75, 0x2d, 0x186, 0x70, 0x25b,
-0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930,
+0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b,
+0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443,
+0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b,
+0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x42f, 0x3b, 0x424, 0x3b, 0x41c,
+0x3b, 0x410, 0x3b, 0x41c, 0x3b, 0x418, 0x3b, 0x418, 0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x41e, 0x3b, 0x41d, 0x3b, 0x414, 0x3b, 0x44f,
+0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c,
+0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, 0x438, 0x44e, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435,
+0x43d, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d,
+0x432, 0x430, 0x440, 0x44c, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f,
+0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430,
+0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431,
+0x440, 0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x31, 0xc6d4,
+0x3b, 0x32, 0xc6d4, 0x3b, 0x33, 0xc6d4, 0x3b, 0x34, 0xc6d4, 0x3b, 0x35, 0xc6d4, 0x3b, 0x36, 0xc6d4, 0x3b, 0x37, 0xc6d4, 0x3b, 0x38,
+0xc6d4, 0x3b, 0x39, 0xc6d4, 0x3b, 0x31, 0x30, 0xc6d4, 0x3b, 0x31, 0x31, 0xc6d4, 0x3b, 0x31, 0x32, 0xc6d4, 0x3b, 0x4d, 0x75, 0x74,
+0x2e, 0x3b, 0x47, 0x61, 0x73, 0x2e, 0x3b, 0x57, 0x65, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x74, 0x2e, 0x3b, 0x47, 0x69, 0x63,
+0x2e, 0x3b, 0x4b, 0x61, 0x6d, 0x2e, 0x3b, 0x4e, 0x79, 0x61, 0x2e, 0x3b, 0x4b, 0x61, 0x6e, 0x2e, 0x3b, 0x4e, 0x7a, 0x65,
+0x2e, 0x3b, 0x55, 0x6b, 0x77, 0x2e, 0x3b, 0x55, 0x67, 0x75, 0x2e, 0x3b, 0x55, 0x6b, 0x75, 0x2e, 0x3b, 0x4e, 0x7a, 0x65,
+0x72, 0x6f, 0x3b, 0x52, 0x75, 0x68, 0x75, 0x68, 0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x74, 0x77, 0x61, 0x72, 0x61, 0x6e, 0x74,
+0x65, 0x3b, 0x4e, 0x64, 0x61, 0x6d, 0x75, 0x6b, 0x69, 0x7a, 0x61, 0x3b, 0x52, 0x75, 0x73, 0x61, 0x6d, 0x61, 0x3b, 0x52,
+0x75, 0x68, 0x65, 0x73, 0x68, 0x69, 0x3b, 0x4d, 0x75, 0x6b, 0x61, 0x6b, 0x61, 0x72, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x6e,
+0x64, 0x61, 0x67, 0x61, 0x72, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x47, 0x69, 0x74, 0x75,
+0x67, 0x75, 0x74, 0x75, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x6f, 0x6e, 0x79, 0x6f, 0x3b, 0x4b, 0x69, 0x67, 0x61, 0x72, 0x61,
+0x6d, 0x61, 0x3b, 0xea1, 0x2e, 0xe81, 0x2e, 0x3b, 0xe81, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0x2e, 0xe99, 0x2e, 0x3b, 0xea1, 0x2e,
+0xeaa, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0xeb4, 0x2e, 0xe96, 0x2e, 0x3b, 0xe81, 0x2e, 0xea5, 0x2e, 0x3b, 0xeaa,
+0x2e, 0xeab, 0x2e, 0x3b, 0xe81, 0x2e, 0xe8d, 0x2e, 0x3b, 0xe95, 0x2e, 0xea5, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe88, 0x2e, 0x3b, 0xe97,
+0x2e, 0xea7, 0x2e, 0x3b, 0xea1, 0xeb1, 0xe87, 0xe81, 0xead, 0xe99, 0x3b, 0xe81, 0xeb8, 0xea1, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb5, 0xe99,
+0xeb2, 0x3b, 0xec0, 0xea1, 0xeaa, 0xeb2, 0x3b, 0xe9e, 0xeb6, 0xe94, 0xeaa, 0xeb0, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb4, 0xe96, 0xeb8, 0xe99,
+0xeb2, 0x3b, 0xe81, 0xecd, 0xea5, 0xeb0, 0xe81, 0xebb, 0xe94, 0x3b, 0xeaa, 0xeb4, 0xe87, 0xeab, 0xeb2, 0x3b, 0xe81, 0xeb1, 0xe99, 0xe8d,
+0xeb2, 0x3b, 0xe95, 0xeb8, 0xea5, 0xeb2, 0x3b, 0xe9e, 0xeb0, 0xe88, 0xeb4, 0xe81, 0x3b, 0xe97, 0xeb1, 0xe99, 0xea7, 0xeb2, 0x3b, 0x4a,
+0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x41, 0x70, 0x72,
+0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x4a, 0x16b, 0x6e, 0x2e, 0x3b, 0x4a, 0x16b, 0x6c, 0x2e, 0x3b, 0x41, 0x75,
+0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44,
+0x65, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x101, 0x72,
+0x69, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x41, 0x70, 0x72, 0x12b, 0x6c, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x69,
+0x6a, 0x73, 0x3b, 0x4a, 0x16b, 0x6e, 0x69, 0x6a, 0x73, 0x3b, 0x4a, 0x16b, 0x6c, 0x69, 0x6a, 0x73, 0x3b, 0x41, 0x75, 0x67,
+0x75, 0x73, 0x74, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x4f, 0x6b, 0x74, 0x6f,
+0x62, 0x72, 0x69, 0x73, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d,
+0x62, 0x72, 0x69, 0x73, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72,
+0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x2e, 0x3b, 0x6a,
+0x16b, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b,
+0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x66,
+0x65, 0x62, 0x72, 0x75, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x12b, 0x6c,
+0x69, 0x73, 0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6c, 0x69,
+0x6a, 0x73, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69,
+0x73, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73,
+0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x62, 0x6c, 0x3b, 0x6d,
+0x73, 0x69, 0x3b, 0x61, 0x70, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x61,
+0x67, 0x74, 0x3b, 0x73, 0x74, 0x62, 0x3b, 0x254, 0x74, 0x62, 0x3b, 0x6e, 0x76, 0x62, 0x3b, 0x64, 0x73, 0x62, 0x3b, 0x73,
+0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x79, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20,
+0x79, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d,
+0xed, 0x73, 0xe1, 0x74, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x6e, 0x65, 0x69,
+0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x74, 0xe1, 0x6e, 0x6f, 0x3b, 0x73, 0xe1, 0x6e,
+0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x6f, 0x74, 0xf3, 0x62, 0xe1, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79,
+0x61, 0x20, 0x6e, 0x73, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x77,
+0x61, 0x6d, 0x62, 0x65, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6c, 0x69, 0x62, 0x77, 0x61, 0x3b,
+0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20,
+0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x254, 0x30c, 0x6b, 0x254, 0x301, 0x3b, 0x73, 0xe1,
+0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c,
+0xe9, 0x3b, 0x79, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x61, 0x3b, 0x73, 0x3b,
+0x254, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x2e, 0x3b, 0x76, 0x61, 0x73, 0x2e, 0x3b, 0x6b, 0x6f, 0x76,
+0x2e, 0x3b, 0x62, 0x61, 0x6c, 0x2e, 0x3b, 0x67, 0x65, 0x67, 0x2e, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x2e, 0x3b, 0x6c, 0x69,
+0x65, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x2e, 0x3b, 0x73, 0x70, 0x61, 0x6c,
+0x2e, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x2e, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x2e, 0x3b, 0x73, 0x61, 0x75, 0x73,
+0x69, 0x73, 0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x6b, 0x6f, 0x76, 0x61, 0x73, 0x3b, 0x62, 0x61, 0x6c,
+0x61, 0x6e, 0x64, 0x69, 0x73, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69,
+0x73, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x61, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, 0x16b, 0x74, 0x69, 0x73, 0x3b, 0x72, 0x75,
+0x67, 0x73, 0x117, 0x6a, 0x69, 0x73, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69,
+0x74, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x69, 0x73, 0x3b, 0x53, 0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x42, 0x3b,
+0x47, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x52, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x47, 0x3b, 0x73, 0x61, 0x75, 0x73,
+0x69, 0x6f, 0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6b, 0x6f, 0x76, 0x6f, 0x3b, 0x62, 0x61, 0x6c, 0x61,
+0x6e, 0x64, 0x17e, 0x69, 0x6f, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x73, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c,
+0x69, 0x6f, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x6f, 0x73, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, 0x16b, 0x10d, 0x69, 0x6f, 0x3b,
+0x72, 0x75, 0x67, 0x73, 0x117, 0x6a, 0x6f, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, 0x6f, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72,
+0x69, 0x10d, 0x69, 0x6f, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x17e, 0x69, 0x6f, 0x3b, 0x458, 0x430, 0x43d, 0x2e, 0x3b, 0x444,
+0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443,
+0x43d, 0x2e, 0x3b, 0x458, 0x443, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x2e, 0x3b, 0x43e,
+0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430,
+0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440,
+0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433,
+0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432,
+0x440, 0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b,
+0x458, 0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x458, 0x3b, 0x458, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b,
+0x43d, 0x3b, 0x434, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b,
+0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x41, 0x6f, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b,
+0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6f, 0x61, 0x72, 0x79, 0x3b,
+0x46, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x61, 0x3b, 0x41, 0x70, 0x72, 0x69,
+0x6c, 0x79, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x61, 0x3b, 0x4a, 0x6f, 0x6c, 0x61, 0x79, 0x3b, 0x41, 0x6f,
+0x67, 0x6f, 0x73, 0x69, 0x74, 0x72, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4f, 0x6b,
+0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x61, 0x6d,
+0x62, 0x72, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b,
+0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b,
+0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b,
+0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d,
+0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f, 0x67, 0x6f, 0x73, 0x3b, 0x53, 0x65,
+0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65,
+0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b,
+0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xd1c, 0xd28,
+0xd41, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0x3b, 0xd2e,
+0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, 0xd13, 0xd17, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d,
+0xd31, 0xd4d, 0xd31, 0xd02, 0x3b, 0xd12, 0xd15, 0xd4d, 0xd1f, 0xd4b, 0x3b, 0xd28, 0xd35, 0xd02, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0x3b,
+0xd1c, 0xd28, 0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd3e, 0xd7c,
+0xd1a, 0xd4d, 0xd1a, 0xd4d, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0xd7d, 0x3b, 0xd2e, 0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a,
+0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, 0xd06, 0xd17, 0xd38, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd4d, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31,
+0xd4d, 0xd31, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd12, 0xd15, 0xd4d, 0x200c, 0xd1f, 0xd4b, 0xd2c, 0xd7c, 0x3b, 0xd28, 0xd35, 0xd02, 0xd2c, 0xd7c,
+0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd1c, 0x3b, 0xd2b, 0x3b, 0xd2e, 0xd3e, 0x3b, 0xd0f, 0x3b, 0xd2e, 0xd47, 0x3b,
+0xd1c, 0xd42, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd13, 0x3b, 0xd38, 0x3b, 0xd12, 0x3b, 0xd28, 0x3b, 0xd21, 0xd3f, 0x3b, 0xd1c, 0x3b, 0xd2b,
+0x3b, 0xd2e, 0xd3e, 0x3b, 0xd0f, 0x3b, 0xd2e, 0xd46, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd13, 0x3b, 0xd38, 0x3b, 0xd12,
+0x3b, 0xd28, 0x3b, 0xd21, 0xd3f, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x72, 0x61, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70,
+0x72, 0x3b, 0x4d, 0x65, 0x6a, 0x3b, 0x120, 0x75, 0x6e, 0x3b, 0x4c, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x77, 0x3b, 0x53, 0x65,
+0x74, 0x3b, 0x4f, 0x74, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x10b, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, 0x72,
+0x3b, 0x46, 0x72, 0x61, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65,
+0x6a, 0x6a, 0x75, 0x3b, 0x120, 0x75, 0x6e, 0x6a, 0x75, 0x3b, 0x4c, 0x75, 0x6c, 0x6a, 0x75, 0x3b, 0x41, 0x77, 0x77, 0x69,
+0x73, 0x73, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x74, 0x75, 0x62, 0x72,
+0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x10b, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b,
+0x4a, 0x6e, 0x3b, 0x46, 0x72, 0x3b, 0x4d, 0x7a, 0x3b, 0x41, 0x70, 0x3b, 0x4d, 0x6a, 0x3b, 0x120, 0x6e, 0x3b, 0x4c, 0x6a,
+0x3b, 0x41, 0x77, 0x3b, 0x53, 0x74, 0x3b, 0x4f, 0x62, 0x3b, 0x4e, 0x76, 0x3b, 0x44, 0x10b, 0x3b, 0x4a, 0x3b, 0x46, 0x3b,
+0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x120, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b,
+0x91c, 0x93e, 0x928, 0x947, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a,
+0x94d, 0x930, 0x93f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x3b, 0x938,
+0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x3b,
+0x921, 0x93f, 0x938, 0x947, 0x902, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930,
0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e,
-0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x913, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x947, 0x92a,
-0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x913, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939,
-0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x46, 0x65, 0x62,
-0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c,
-0x3b, 0x1ecc, 0x67, 0x1ecd, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x1ecc, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73,
-0x3b, 0x4a, 0x65, 0x6e, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, 0x3b,
-0x4d, 0x61, 0x61, 0x63, 0x68, 0x1ecb, 0x3b, 0x45, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75,
-0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x1ecb, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x1ecd, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65,
-0x6d, 0x62, 0x61, 0x3b, 0x1ecc, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44,
-0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x65, 0x6c, 0x3b, 0x4b, 0x74, 0x169, 0x3b, 0x4b,
-0x61, 0x6e, 0x3b, 0x4b, 0x74, 0x6e, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x4b,
-0x6e, 0x64, 0x3b, 0x128, 0x6b, 0x75, 0x3b, 0x128, 0x6b, 0x6d, 0x3b, 0x128, 0x6b, 0x6c, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20,
-0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6c, 0x129,
-0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69,
-0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74,
-0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x74, 0x68, 0x61, 0x74,
-0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x75, 0x6f, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x61,
-0x69, 0x20, 0x77, 0x61, 0x20, 0x6e, 0x79, 0x61, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61,
-0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69,
-0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x129, 0x6d,
-0x77, 0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20,
-0x69, 0x6c, 0x129, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b,
-0x4b, 0x3b, 0x128, 0x3b, 0x128, 0x3b, 0x128, 0x3b, 0x120d, 0x12f0, 0x1275, 0x3b, 0x12ab, 0x1265, 0x12bd, 0x3b, 0x12ad, 0x1265, 0x120b, 0x3b,
-0x134b, 0x1305, 0x12ba, 0x3b, 0x12ad, 0x1262, 0x1245, 0x3b, 0x121d, 0x2f, 0x1275, 0x3b, 0x12b0, 0x122d, 0x3b, 0x121b, 0x122d, 0x12eb, 0x3b, 0x12eb,
-0x12b8, 0x1292, 0x3b, 0x1218, 0x1270, 0x1209, 0x3b, 0x121d, 0x2f, 0x121d, 0x3b, 0x1270, 0x1215, 0x1233, 0x3b, 0x120d, 0x12f0, 0x1275, 0x122a, 0x3b,
-0x12ab, 0x1265, 0x12bd, 0x1265, 0x1272, 0x3b, 0x12ad, 0x1265, 0x120b, 0x3b, 0x134b, 0x1305, 0x12ba, 0x122a, 0x3b, 0x12ad, 0x1262, 0x1245, 0x122a, 0x3b,
-0x121d, 0x12aa, 0x12a4, 0x120d, 0x20, 0x1275, 0x131f, 0x1292, 0x122a, 0x3b, 0x12b0, 0x122d, 0x12a9, 0x3b, 0x121b, 0x122d, 0x12eb, 0x121d, 0x20, 0x1275,
-0x122a, 0x3b, 0x12eb, 0x12b8, 0x1292, 0x20, 0x1218, 0x1233, 0x1245, 0x1208, 0x122a, 0x3b, 0x1218, 0x1270, 0x1209, 0x3b, 0x121d, 0x12aa, 0x12a4, 0x120d,
-0x20, 0x1218, 0x123d, 0x12c8, 0x122a, 0x3b, 0x1270, 0x1215, 0x1233, 0x1235, 0x122a, 0x3b, 0x120d, 0x3b, 0x12ab, 0x3b, 0x12ad, 0x3b, 0x134b, 0x3b,
-0x12ad, 0x3b, 0x121d, 0x3b, 0x12b0, 0x3b, 0x121b, 0x3b, 0x12eb, 0x3b, 0x1218, 0x3b, 0x121d, 0x3b, 0x1270, 0x3b, 0x5a, 0x65, 0x6e, 0x3b,
-0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x76, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x67, 0x3b,
-0x4c, 0x75, 0x69, 0x3b, 0x41, 0x76, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b,
-0x44, 0x69, 0x63, 0x3b, 0x5a, 0x65, 0x6e, 0xe2, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0xe2, 0x72, 0x3b, 0x4d, 0x61, 0x72,
-0xe7, 0x3b, 0x41, 0x76, 0x72, 0xee, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x67, 0x6e, 0x3b, 0x4c, 0x75, 0x69,
-0x3b, 0x41, 0x76, 0x6f, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x74, 0x75, 0x62,
-0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72,
-0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f,
-0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x50, 0x68, 0x61, 0x3b, 0x4c, 0x75, 0x68, 0x3b, 0x1e70, 0x68, 0x66, 0x3b, 0x4c, 0x61, 0x6d,
-0x3b, 0x53, 0x68, 0x75, 0x3b, 0x4c, 0x77, 0x69, 0x3b, 0x4c, 0x77, 0x61, 0x3b, 0x1e70, 0x68, 0x61, 0x3b, 0x4b, 0x68, 0x75,
-0x3b, 0x54, 0x73, 0x68, 0x3b, 0x1e3c, 0x61, 0x72, 0x3b, 0x4e, 0x79, 0x65, 0x3b, 0x50, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x3b,
-0x4c, 0x75, 0x68, 0x75, 0x68, 0x69, 0x3b, 0x1e70, 0x68, 0x61, 0x66, 0x61, 0x6d, 0x75, 0x68, 0x77, 0x65, 0x3b, 0x4c, 0x61,
-0x6d, 0x62, 0x61, 0x6d, 0x61, 0x69, 0x3b, 0x53, 0x68, 0x75, 0x6e, 0x64, 0x75, 0x6e, 0x74, 0x68, 0x75, 0x6c, 0x65, 0x3b,
-0x46, 0x75, 0x6c, 0x77, 0x69, 0x3b, 0x46, 0x75, 0x6c, 0x77, 0x61, 0x6e, 0x61, 0x3b, 0x1e70, 0x68, 0x61, 0x6e, 0x67, 0x75,
-0x6c, 0x65, 0x3b, 0x4b, 0x68, 0x75, 0x62, 0x76, 0x75, 0x6d, 0x65, 0x64, 0x7a, 0x69, 0x3b, 0x54, 0x73, 0x68, 0x69, 0x6d,
-0x65, 0x64, 0x7a, 0x69, 0x3b, 0x1e3c, 0x61, 0x72, 0x61, 0x3b, 0x4e, 0x79, 0x65, 0x6e, 0x64, 0x61, 0x76, 0x68, 0x75, 0x73,
-0x69, 0x6b, 0x75, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b,
-0x64, 0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b,
-0x6b, 0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a,
-0x6f, 0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61, 0x66, 0x254, 0x66, 0x129, 0x65, 0x3b, 0x64,
-0x61, 0x6d, 0x61, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61,
-0x73, 0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65,
-0x3b, 0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x64,
-0x3b, 0x64, 0x3b, 0x74, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x61, 0x3b, 0x6b, 0x3b, 0x61,
-0x3b, 0x64, 0x3b, 0x49, 0x61, 0x6e, 0x2e, 0x3b, 0x50, 0x65, 0x70, 0x2e, 0x3b, 0x4d, 0x61, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41,
-0x70, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x2e, 0x3b, 0x49, 0x75, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x75,
-0x2e, 0x3b, 0x4b, 0x65, 0x70, 0x2e, 0x3b, 0x2bb, 0x4f, 0x6b, 0x2e, 0x3b, 0x4e, 0x6f, 0x77, 0x2e, 0x3b, 0x4b, 0x65, 0x6b,
-0x2e, 0x3b, 0x49, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x50, 0x65, 0x70, 0x65, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b,
-0x4d, 0x61, 0x6c, 0x61, 0x6b, 0x69, 0x3b, 0x2bb, 0x41, 0x70, 0x65, 0x6c, 0x69, 0x6c, 0x61, 0x3b, 0x4d, 0x65, 0x69, 0x3b,
-0x49, 0x75, 0x6e, 0x65, 0x3b, 0x49, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x75, 0x6b, 0x61, 0x6b, 0x65, 0x3b, 0x4b,
-0x65, 0x70, 0x61, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x6b, 0x6f, 0x70, 0x61, 0x3b, 0x4e,
-0x6f, 0x77, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x4b, 0x65, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x45, 0x6e, 0x65,
-0x3b, 0x50, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e,
-0x3b, 0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62,
-0x3b, 0x44, 0x69, 0x73, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x50, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d,
-0x61, 0x72, 0x73, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79,
-0x6f, 0x3b, 0x48, 0x75, 0x6c, 0x79, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x79, 0x65,
-0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62,
-0x72, 0x65, 0x3b, 0x44, 0x69, 0x73, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41,
-0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x48, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e,
-0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72,
-0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67,
-0x75, 0x73, 0x63, 0x68, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f,
-0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62,
-0x65, 0x72, 0x3b, 0xa2cd, 0xa1aa, 0x3b, 0xa44d, 0xa1aa, 0x3b, 0xa315, 0xa1aa, 0x3b, 0xa1d6, 0xa1aa, 0x3b, 0xa26c, 0xa1aa, 0x3b, 0xa0d8, 0xa1aa,
-0x3b, 0xa3c3, 0xa1aa, 0x3b, 0xa246, 0xa1aa, 0x3b, 0xa22c, 0xa1aa, 0x3b, 0xa2b0, 0xa1aa, 0x3b, 0xa2b0, 0xa2aa, 0xa1aa, 0x3b, 0xa2b0, 0xa44b, 0xa1aa,
-0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79,
-0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x72, 0x68, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74,
-0x3b, 0x55, 0x73, 0x69, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x61, 0x62, 0x61, 0x72, 0x69, 0x3b, 0x75, 0x46,
-0x65, 0x62, 0x65, 0x72, 0x62, 0x61, 0x72, 0x69, 0x3b, 0x75, 0x4d, 0x61, 0x74, 0x6a, 0x68, 0x69, 0x3b, 0x75, 0x2d, 0x41,
-0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61,
-0x79, 0x69, 0x3b, 0x41, 0x72, 0x68, 0x6f, 0x73, 0x74, 0x6f, 0x73, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62,
-0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x55, 0x73, 0x69, 0x6e, 0x79, 0x69, 0x6b, 0x68, 0x61, 0x62, 0x61,
-0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x74,
-0x3b, 0x41, 0x70, 0x6f, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f,
-0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x66, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e,
-0x61, 0x77, 0x61, 0x72, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x65, 0x72, 0x77, 0x61, 0x72, 0x65, 0x3b, 0x4d, 0x61, 0x74, 0x161,
-0x68, 0x65, 0x3b, 0x41, 0x70, 0x6f, 0x72, 0x65, 0x6c, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x65, 0x3b,
-0x4a, 0x75, 0x6c, 0x61, 0x65, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x73, 0x65, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d,
-0x65, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x6f, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x66, 0x65, 0x6d, 0x65, 0x72,
-0x65, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x72, 0x65, 0x3b, 0x6f, 0x111, 0x111, 0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76,
-0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x3b, 0x63, 0x75, 0x6f, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b,
-0x73, 0x75, 0x6f, 0x69, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b,
-0x73, 0x6b, 0xe1, 0x62, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x6f, 0x111, 0x111, 0x61, 0x6a, 0x61, 0x67, 0x65, 0x6d, 0xe1,
-0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x6b,
-0x10d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x6f, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6d,
-0x69, 0x65, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e,
-0x6e, 0x75, 0x3b, 0x73, 0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x62, 0x6f, 0x72, 0x67,
-0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x6f,
-0x6c, 0x67, 0x67, 0x6f, 0x74, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x6d, 0x61, 0x6d, 0xe1, 0x6e,
-0x6e, 0x75, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x4f, 0x3b, 0x47, 0x3b, 0x4e,
-0x3b, 0x43, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x10c, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x6f,
-0x111, 0x111, 0x61, 0x6a, 0x61, 0x67, 0x65, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x10d,
-0x61, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x6f, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x73, 0x65, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x73,
-0x65, 0x3b, 0x73, 0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x65, 0x3b, 0x10d, 0x61, 0x6b, 0x10d,
-0x61, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x67, 0x6f, 0x74, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x6d, 0x61, 0x3b, 0x6a, 0x75, 0x6f,
-0x76, 0x6c, 0x61, 0x3b, 0x43, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b,
-0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x43, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b,
-0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x43, 0x68, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69,
-0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x69, 0x72,
-0x69, 0x72, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x43, 0x68, 0x75, 0x6c, 0x61, 0x69, 0x3b,
-0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74,
-0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x62, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b,
-0x43, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b,
-0x4e, 0x3b, 0x44, 0x3b, 0x49, 0x6d, 0x62, 0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b, 0x61, 0x6e, 0x3b,
-0x4b, 0x61, 0x73, 0x3b, 0x4b, 0x61, 0x72, 0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x57, 0x75, 0x6e, 0x3b, 0x49, 0x6b, 0x65, 0x3b,
-0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77,
-0x61, 0x20, 0x69, 0x6d, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b,
-0x61, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, 0x64, 0x75,
-0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69,
-0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x73, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68,
-0x77, 0x61, 0x20, 0x6b, 0x61, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68,
-0x77, 0x61, 0x20, 0x6d, 0x66, 0x75, 0x6e, 0x67, 0x61, 0x64, 0x65, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77,
-0x61, 0x20, 0x77, 0x75, 0x6e, 0x79, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61,
-0x20, 0x69, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b,
-0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20,
-0x6e, 0x61, 0x20, 0x69, 0x6d, 0x77, 0x65, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20,
-0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x77, 0x69, 0x3b, 0x49, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b,
-0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x57, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x73, 0x69, 0x69,
-0x3b, 0x63, 0x6f, 0x6c, 0x3b, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0x65, 0x65, 0x3b, 0x64, 0x75, 0x75, 0x3b, 0x6b, 0x6f, 0x72,
-0x3b, 0x6d, 0x6f, 0x72, 0x3b, 0x6a, 0x75, 0x6b, 0x3b, 0x73, 0x6c, 0x74, 0x3b, 0x79, 0x61, 0x72, 0x3b, 0x6a, 0x6f, 0x6c,
-0x3b, 0x62, 0x6f, 0x77, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x6f, 0x3b, 0x63, 0x6f, 0x6c, 0x74, 0x65, 0x3b, 0x6d, 0x62, 0x6f,
-0x6f, 0x79, 0x3b, 0x73, 0x65, 0x65, 0x257, 0x74, 0x6f, 0x3b, 0x64, 0x75, 0x75, 0x6a, 0x61, 0x6c, 0x3b, 0x6b, 0x6f, 0x72,
-0x73, 0x65, 0x3b, 0x6d, 0x6f, 0x72, 0x73, 0x6f, 0x3b, 0x6a, 0x75, 0x6b, 0x6f, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x74, 0x6f,
-0x3b, 0x79, 0x61, 0x72, 0x6b, 0x6f, 0x6d, 0x61, 0x61, 0x3b, 0x6a, 0x6f, 0x6c, 0x61, 0x6c, 0x3b, 0x62, 0x6f, 0x77, 0x74,
-0x65, 0x3b, 0x73, 0x3b, 0x63, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x73, 0x3b,
-0x79, 0x3b, 0x6a, 0x3b, 0x62, 0x3b, 0x4a, 0x45, 0x4e, 0x3b, 0x57, 0x4b, 0x52, 0x3b, 0x57, 0x47, 0x54, 0x3b, 0x57, 0x4b,
-0x4e, 0x3b, 0x57, 0x54, 0x4e, 0x3b, 0x57, 0x54, 0x44, 0x3b, 0x57, 0x4d, 0x4a, 0x3b, 0x57, 0x4e, 0x4e, 0x3b, 0x57, 0x4b,
-0x44, 0x3b, 0x57, 0x49, 0x4b, 0x3b, 0x57, 0x4d, 0x57, 0x3b, 0x44, 0x49, 0x54, 0x3b, 0x4e, 0x6a, 0x65, 0x6e, 0x75, 0x61,
-0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65,
-0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77,
-0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61,
-0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x74,
-0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b,
-0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72,
-0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20,
-0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69,
-0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4e, 0x64, 0x69, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a,
-0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49,
-0x3b, 0x44, 0x3b, 0x4f, 0x62, 0x6f, 0x3b, 0x57, 0x61, 0x61, 0x3b, 0x4f, 0x6b, 0x75, 0x3b, 0x4f, 0x6e, 0x67, 0x3b, 0x49,
-0x6d, 0x65, 0x3b, 0x49, 0x6c, 0x65, 0x3b, 0x53, 0x61, 0x70, 0x3b, 0x49, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x3b, 0x54,
-0x6f, 0x6d, 0x3b, 0x54, 0x6f, 0x62, 0x3b, 0x54, 0x6f, 0x77, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f,
-0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4c, 0x61, 0x70,
-0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x6b, 0x75, 0x6e, 0x69, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f,
-0x6e, 0x67, 0x27, 0x77, 0x61, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6d, 0x65, 0x74, 0x3b,
-0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6c, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20,
-0x73, 0x61, 0x70, 0x61, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x69, 0x65, 0x74, 0x3b, 0x4c,
-0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x73, 0x61, 0x61, 0x6c, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20,
-0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20,
-0x6f, 0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x77, 0x61,
-0x61, 0x72, 0x65, 0x3b, 0x4f, 0x3b, 0x57, 0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x49, 0x3b,
-0x53, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b,
-0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b,
-0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x65,
-0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x6f, 0x3b, 0x41,
-0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x68,
-0x6f, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f,
-0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d,
-0x62, 0x72, 0x6f, 0x3b, 0x5a, 0x69, 0x62, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x3b, 0x4d, 0x62, 0x69, 0x3b, 0x4d, 0x61, 0x62,
-0x3b, 0x4e, 0x6b, 0x77, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x3b, 0x4e, 0x63, 0x77, 0x3b, 0x4d, 0x70,
-0x61, 0x6e, 0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x3b, 0x5a, 0x69, 0x62, 0x61,
-0x6e, 0x64, 0x6c, 0x65, 0x6c, 0x61, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x6c, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x62, 0x69,
-0x6d, 0x62, 0x69, 0x74, 0x68, 0x6f, 0x3b, 0x4d, 0x61, 0x62, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x6b, 0x77, 0x65, 0x6e, 0x6b,
-0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x6c, 0x69,
-0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4e, 0x63, 0x77, 0x61, 0x62, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4d, 0x70, 0x61, 0x6e,
-0x64, 0x75, 0x6c, 0x61, 0x3b, 0x4d, 0x66, 0x75, 0x6d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4d, 0x70,
-0x61, 0x6c, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x5a, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b,
-0x4e, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x31, 0x3b, 0x4d, 0x32, 0x3b, 0x4d, 0x33,
-0x3b, 0x4d, 0x34, 0x3b, 0x4d, 0x35, 0x3b, 0x4d, 0x36, 0x3b, 0x4d, 0x37, 0x3b, 0x4d, 0x38, 0x3b, 0x4d, 0x39, 0x3b, 0x4d,
-0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20,
-0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x69, 0x6c,
-0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77,
-0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77,
-0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61,
-0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
-0x20, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x69,
-0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77,
-0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61,
-0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d,
-0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4e,
-0x3b, 0x54, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x3b, 0x2d4e, 0x2d30, 0x2d55,
-0x3b, 0x2d49, 0x2d31, 0x2d54, 0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x3b, 0x2d56, 0x2d53, 0x2d5b,
-0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x3b, 0x2d49, 0x2d4f, 0x2d4f,
-0x2d30, 0x2d62, 0x2d54, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x2d62, 0x2d55, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x2d5a, 0x3b, 0x2d49, 0x2d31, 0x2d54, 0x2d49, 0x2d54,
-0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x2d62, 0x2d53, 0x2d63, 0x3b,
-0x2d56, 0x2d53, 0x2d5b, 0x2d5c, 0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x2d31, 0x2d54, 0x3b,
-0x2d4f, 0x2d53, 0x2d61, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d49, 0x3b,
-0x2d31, 0x3b, 0x2d4e, 0x3b, 0x2d49, 0x3b, 0x2d4e, 0x3b, 0x2d62, 0x3b, 0x2d62, 0x3b, 0x2d56, 0x3b, 0x2d5b, 0x3b, 0x2d3d, 0x3b, 0x2d4f, 0x3b,
-0x2d37, 0x3b, 0x69, 0x6e, 0x6e, 0x3b, 0x62, 0x1e5b, 0x61, 0x3b, 0x6d, 0x61, 0x1e5b, 0x3b, 0x69, 0x62, 0x72, 0x3b, 0x6d, 0x61,
-0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x263, 0x75, 0x63, 0x3b, 0x63, 0x75, 0x74, 0x3b, 0x6b, 0x74,
-0x75, 0x3b, 0x6e, 0x75, 0x77, 0x3b, 0x64, 0x75, 0x6a, 0x3b, 0x69, 0x6e, 0x6e, 0x61, 0x79, 0x72, 0x3b, 0x62, 0x1e5b, 0x61,
-0x79, 0x1e5b, 0x3b, 0x6d, 0x61, 0x1e5b, 0x1e63, 0x3b, 0x69, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x79, 0x75, 0x3b,
-0x79, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x79, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x263, 0x75, 0x63, 0x74, 0x3b, 0x63, 0x75,
-0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x3b, 0x6e, 0x75, 0x77, 0x61, 0x6e, 0x62, 0x69,
-0x72, 0x3b, 0x64, 0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x69, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x69, 0x3b, 0x6d,
-0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x263, 0x3b, 0x63, 0x3b, 0x6b, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x46,
-0x75, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59,
-0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, 0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, 0x62, 0x3b, 0x4e, 0x75, 0x6e, 0x3b, 0x44,
-0x75, 0x1e7, 0x3b, 0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, 0x75, 0x1e5b, 0x61, 0x72, 0x3b, 0x4d, 0x65,
-0x263, 0x72, 0x65, 0x73, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75,
-0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x74, 0x65, 0x6d, 0x62,
-0x65, 0x1e5b, 0x3b, 0x54, 0x75, 0x62, 0x65, 0x1e5b, 0x3b, 0x4e, 0x75, 0x6e, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75,
-0x1e7, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59,
-0x3b, 0x194, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4b, 0x42, 0x5a, 0x3b, 0x4b, 0x42, 0x52, 0x3b, 0x4b,
-0x53, 0x54, 0x3b, 0x4b, 0x4b, 0x4e, 0x3b, 0x4b, 0x54, 0x4e, 0x3b, 0x4b, 0x4d, 0x4b, 0x3b, 0x4b, 0x4d, 0x53, 0x3b, 0x4b,
-0x4d, 0x4e, 0x3b, 0x4b, 0x4d, 0x57, 0x3b, 0x4b, 0x4b, 0x4d, 0x3b, 0x4b, 0x4e, 0x4b, 0x3b, 0x4b, 0x4e, 0x42, 0x3b, 0x4f,
-0x6b, 0x77, 0x6f, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x62, 0x69, 0x72,
-0x69, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61,
-0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d,
-0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x73, 0x68, 0x61, 0x6e, 0x6a, 0x75, 0x3b,
-0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x6e, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x77, 0x65, 0x6e,
-0x64, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75,
-0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x77, 0x65, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d,
-0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x48, 0x75, 0x74, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x44,
-0x61, 0x74, 0x3b, 0x54, 0x61, 0x69, 0x3b, 0x48, 0x61, 0x6e, 0x3b, 0x53, 0x69, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e,
-0x61, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4b, 0x6d, 0x6a, 0x3b, 0x4b, 0x6d, 0x62, 0x3b, 0x70,
-0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x68, 0x75, 0x74, 0x61, 0x6c, 0x61, 0x3b,
-0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x76, 0x69, 0x6c, 0x69,
-0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x64, 0x61, 0x74,
-0x75, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x74, 0x61,
-0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x68, 0x61,
-0x6e, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74,
-0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61,
-0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b,
-0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x70,
-0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x70, 0x61,
-0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20,
-0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b,
-0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x48, 0x3b, 0x56, 0x3b, 0x44, 0x3b, 0x54,
-0x3b, 0x48, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4a, 0x61, 0x6e,
-0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b,
-0x41, 0x70, 0x72, 0x69, 0x6c, 0x79, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4a, 0x75,
-0x6c, 0x79, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61,
-0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65,
-0x6d, 0x62, 0x61, 0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x77, 0x69, 0x3b,
-0x6d, 0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x3b, 0x7a, 0x75, 0x6c, 0x3b, 0x75, 0x74, 0x69, 0x3b, 0x73, 0x25b, 0x74, 0x3b, 0x254,
-0x6b, 0x75, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x77, 0x75, 0x79, 0x65, 0x3b, 0x66,
-0x65, 0x62, 0x75, 0x72, 0x75, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x61, 0x77, 0x69, 0x72, 0x69,
-0x6c, 0x69, 0x3b, 0x6d, 0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x25b, 0x6e, 0x3b, 0x7a, 0x75, 0x6c, 0x75, 0x79, 0x65, 0x3b, 0x75,
-0x74, 0x69, 0x3b, 0x73, 0x25b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x254, 0x6b, 0x75, 0x74, 0x254, 0x62, 0x75,
-0x72, 0x75, 0x3b, 0x6e, 0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75,
-0x72, 0x75, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x5a, 0x3b, 0x55, 0x3b, 0x53,
-0x3b, 0x186, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x61, 0x69, 0x3b, 0x4b, 0x61, 0x74, 0x3b, 0x4b,
-0x61, 0x6e, 0x3b, 0x47, 0x61, 0x74, 0x3b, 0x47, 0x61, 0x6e, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x4b, 0x6e, 0x6e, 0x3b, 0x4b,
-0x65, 0x6e, 0x3b, 0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x67, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
-0x20, 0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b,
-0x61, 0x129, 0x72, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x68, 0x61, 0x74,
-0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72,
-0x69, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61,
-0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20,
-0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61,
-0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b,
-0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
-0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77,
-0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x4b, 0x61, 0x129, 0x72,
-0x129, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
-0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x13a4, 0x13c3, 0x3b, 0x13a7, 0x13a6, 0x3b, 0x13a0, 0x13c5, 0x3b, 0x13a7, 0x13ec, 0x3b, 0x13a0, 0x13c2,
-0x3b, 0x13d5, 0x13ad, 0x3b, 0x13ab, 0x13f0, 0x3b, 0x13a6, 0x13b6, 0x3b, 0x13da, 0x13b5, 0x3b, 0x13da, 0x13c2, 0x3b, 0x13c5, 0x13d3, 0x3b, 0x13a4,
-0x13cd, 0x3b, 0x13a4, 0x13c3, 0x13b8, 0x13d4, 0x13c5, 0x3b, 0x13a7, 0x13a6, 0x13b5, 0x3b, 0x13a0, 0x13c5, 0x13f1, 0x3b, 0x13a7, 0x13ec, 0x13c2, 0x3b,
-0x13a0, 0x13c2, 0x13cd, 0x13ac, 0x13d8, 0x3b, 0x13d5, 0x13ad, 0x13b7, 0x13f1, 0x3b, 0x13ab, 0x13f0, 0x13c9, 0x13c2, 0x3b, 0x13a6, 0x13b6, 0x13c2, 0x3b,
-0x13da, 0x13b5, 0x13cd, 0x13d7, 0x3b, 0x13da, 0x13c2, 0x13c5, 0x13d7, 0x3b, 0x13c5, 0x13d3, 0x13d5, 0x13c6, 0x3b, 0x13a4, 0x13cd, 0x13a9, 0x13f1, 0x3b,
-0x13a4, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13d5, 0x3b, 0x13ab, 0x3b, 0x13a6, 0x3b, 0x13da, 0x3b, 0x13da, 0x3b,
-0x13c5, 0x3b, 0x13a4, 0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x76, 0x72, 0x3b,
-0x6d, 0x65, 0x3b, 0x7a, 0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f,
-0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x66, 0x65,
-0x76, 0x72, 0x69, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x3b,
-0x7a, 0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x79, 0x65, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x61, 0x6d,
-0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, 0x61, 0x6d, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6d, 0x3b, 0x7a,
-0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x7a, 0x3b, 0x7a, 0x3b, 0x6f, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e,
-0x3b, 0x64, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x4e, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64,
-0x69, 0x20, 0x77, 0x61, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x54,
-0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69,
-0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65,
-0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x6d, 0x6f, 0x3b,
-0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d,
-0x69, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e,
-0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61,
-0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d,
-0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e,
-0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f,
-0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x3b, 0x4d, 0x77, 0x65, 0x64,
-0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e,
-0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x3b, 0x46, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4e, 0x61, 0x61, 0x6e, 0x268,
-0x3b, 0x4b, 0x65, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x49, 0x6b, 0xfa, 0x6d, 0x69, 0x3b, 0x49, 0x6e, 0x79, 0x61, 0x6d, 0x62,
-0x61, 0x6c, 0x61, 0x3b, 0x49, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b,
-0x56, 0x268, 0x268, 0x72, 0x268, 0x3b, 0x53, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x49, 0x6e, 0x79, 0x69, 0x3b, 0x53, 0x61, 0x61,
-0x6e, 0x6f, 0x3b, 0x53, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x289, 0x66, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b,
-0x4b, 0x289, 0x6e, 0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x289, 0x6b, 0x65, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4b, 0x77, 0x69,
-0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x4b,
-0x77, 0x69, 0x69, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4b, 0x289, 0x6d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b,
-0x4b, 0x289, 0x76, 0x268, 0x268, 0x72, 0x268, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x77, 0x69, 0x69,
-0x6e, 0x79, 0x69, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x73, 0x61, 0x74, 0x289,
-0x3b, 0x46, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x49,
-0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x75,
-0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x62,
-0x3b, 0x4f, 0x6b, 0x69, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x77, 0x61, 0x6c, 0x69,
-0x79, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b,
-0x41, 0x70, 0x75, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75,
-0x6c, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x69, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x62, 0x75, 0x74, 0x74,
-0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62,
-0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61,
-0x63, 0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67,
-0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61,
-0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69,
-0x3b, 0x45, 0x70, 0x72, 0x65, 0x6f, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61,
-0x69, 0x3b, 0x4f, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b,
+0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x92a, 0x94d,
+0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947,
+0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x93e, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e,
+0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, 0x911, 0x3b, 0x938, 0x3b, 0x911, 0x3b, 0x928, 0x94b,
+0x3b, 0x921, 0x93f, 0x3b, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
+0x33, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x34, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x35, 0x2d, 0x440, 0x20,
+0x441, 0x430, 0x440, 0x3b, 0x36, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x37, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b,
+0x38, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x39, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x30, 0x2d, 0x440,
+0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x32, 0x2d, 0x440, 0x20, 0x441,
+0x430, 0x440, 0x3b, 0x41d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x425, 0x43e, 0x451,
+0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x413, 0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433,
+0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x4e9, 0x440, 0x4e9, 0x432, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20,
+0x441, 0x430, 0x440, 0x3b, 0x422, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x417, 0x443,
+0x440, 0x433, 0x430, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x43e, 0x43b, 0x434, 0x443, 0x433,
+0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x41d, 0x430, 0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441,
+0x430, 0x440, 0x3b, 0x415, 0x441, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x430, 0x432,
+0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, 0x433,
+0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, 0x451,
+0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x947,
+0x92c, 0x94d, 0x930, 0x941, 0x905, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x93f, 0x932,
+0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x91f, 0x3b,
+0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928,
+0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x967, 0x3b, 0x968,
+0x3b, 0x969, 0x3b, 0x96a, 0x3b, 0x96b, 0x3b, 0x96c, 0x3b, 0x96d, 0x3b, 0x96e, 0x3b, 0x96f, 0x3b, 0x967, 0x966, 0x3b, 0x967, 0x967,
+0x3b, 0x967, 0x968, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x905, 0x930, 0x940, 0x3b,
+0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x941, 0x928, 0x3b,
+0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d,
+0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b,
+0x921, 0x93f, 0x938, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72,
+0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a,
+0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74,
+0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62,
+0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x2e,
+0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e,
+0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0xb1c, 0xb3e, 0xb28, 0xb41, 0xb06, 0xb30, 0xb40, 0x3b, 0xb2b,
+0xb47, 0xb2c, 0xb43, 0xb06, 0xb30, 0xb40, 0x3b, 0xb2e, 0xb3e, 0xb30, 0xb4d, 0xb1a, 0xb4d, 0xb1a, 0x3b, 0xb05, 0xb2a, 0xb4d, 0xb30, 0xb47,
+0xb32, 0x3b, 0xb2e, 0xb07, 0x3b, 0xb1c, 0xb41, 0xb28, 0x3b, 0xb1c, 0xb41, 0xb32, 0xb3e, 0xb07, 0x3b, 0xb05, 0xb17, 0xb37, 0xb4d, 0xb1f,
+0x3b, 0xb38, 0xb47, 0xb2a, 0xb4d, 0xb1f, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb05, 0xb15, 0xb4d, 0xb1f, 0xb4b, 0xb2c, 0xb30, 0x3b,
+0xb28, 0xb2d, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb21, 0xb3f, 0xb38, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb1c, 0xb3e, 0x3b,
+0xb2b, 0xb47, 0x3b, 0xb2e, 0xb3e, 0x3b, 0xb05, 0x3b, 0xb2e, 0xb07, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb05, 0x3b, 0xb38,
+0xb47, 0x3b, 0xb05, 0x3b, 0xb28, 0x3b, 0xb21, 0xb3f, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631,
+0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b,
+0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6ab, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9,
+0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x698, 0x627, 0x646,
+0x648, 0x6cc, 0x647, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644,
+0x3b, 0x645, 0x647, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633,
+0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b,
+0x62f, 0x633, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x698, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x645, 0x3b, 0x698, 0x3b, 0x698,
+0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, 0x654, 0x3b, 0x641,
+0x648, 0x631, 0x6cc, 0x647, 0x654, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x654,
+0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, 0x654, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a,
+0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633,
+0x627, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627,
+0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x654, 0x3b,
+0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x640, 0x6cc, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b,
+0x62c, 0x648, 0x644, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628,
+0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641,
+0x628, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b,
+0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628,
+0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631,
+0x3b, 0x73, 0x74, 0x79, 0x3b, 0x6c, 0x75, 0x74, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6b, 0x77, 0x69, 0x3b, 0x6d, 0x61, 0x6a,
+0x3b, 0x63, 0x7a, 0x65, 0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73, 0x69, 0x65, 0x3b, 0x77, 0x72, 0x7a, 0x3b, 0x70, 0x61, 0x17a,
+0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x3b, 0x73, 0x74, 0x79, 0x63, 0x7a, 0x65, 0x144, 0x3b, 0x6c, 0x75, 0x74,
+0x79, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x65, 0x63, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x63, 0x69, 0x65, 0x144, 0x3b, 0x6d, 0x61,
+0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x69, 0x65, 0x63, 0x3b, 0x6c, 0x69, 0x70, 0x69, 0x65, 0x63, 0x3b, 0x73, 0x69,
+0x65, 0x72, 0x70, 0x69, 0x65, 0x144, 0x3b, 0x77, 0x72, 0x7a, 0x65, 0x73, 0x69, 0x65, 0x144, 0x3b, 0x70, 0x61, 0x17a, 0x64,
+0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x67, 0x72, 0x75,
+0x64, 0x7a, 0x69, 0x65, 0x144, 0x3b, 0x73, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x63, 0x3b, 0x6c, 0x3b,
+0x73, 0x3b, 0x77, 0x3b, 0x70, 0x3b, 0x6c, 0x3b, 0x67, 0x3b, 0x73, 0x74, 0x79, 0x63, 0x7a, 0x6e, 0x69, 0x61, 0x3b, 0x6c,
+0x75, 0x74, 0x65, 0x67, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x74, 0x6e, 0x69, 0x61,
+0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x63, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x63, 0x61, 0x3b,
+0x73, 0x69, 0x65, 0x72, 0x70, 0x6e, 0x69, 0x61, 0x3b, 0x77, 0x72, 0x7a, 0x65, 0x15b, 0x6e, 0x69, 0x61, 0x3b, 0x70, 0x61,
+0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61,
+0x3b, 0x67, 0x72, 0x75, 0x64, 0x6e, 0x69, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72,
+0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x6f,
+0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x7a, 0x3b, 0x6a, 0x61, 0x6e,
+0x65, 0x69, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x76, 0x65, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x6f,
+0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x6a, 0x75,
+0x6c, 0x68, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b,
+0x6f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x7a,
+0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0xa1c, 0xa28, 0x3b, 0xa2b, 0xa3c, 0xa30, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a,
+0xa4d, 0xa30, 0xa48, 0x3b, 0xa2e, 0xa08, 0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0x3b, 0xa05, 0xa17, 0x3b, 0xa38,
+0xa24, 0xa70, 0x3b, 0xa05, 0xa15, 0xa24, 0xa42, 0x3b, 0xa28, 0xa35, 0xa70, 0x3b, 0xa26, 0xa38, 0xa70, 0x3b, 0xa1c, 0xa28, 0xa35, 0xa30,
+0xa40, 0x3b, 0xa2b, 0xa3c, 0xa30, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a, 0xa4d, 0xa30, 0xa48, 0xa32,
+0x3b, 0xa2e, 0xa08, 0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0xa08, 0x3b, 0xa05, 0xa17, 0xa38, 0xa24, 0x3b, 0xa38,
+0xa24, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa05, 0xa15, 0xa24, 0xa42, 0xa2c, 0xa30, 0x3b, 0xa28, 0xa35, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa26, 0xa38,
+0xa70, 0xa2c, 0xa30, 0x3b, 0xa1c, 0x3b, 0xa2b, 0xa3c, 0x3b, 0xa2e, 0xa3e, 0x3b, 0xa05, 0x3b, 0xa2e, 0x3b, 0xa1c, 0xa42, 0x3b, 0xa1c,
+0xa41, 0x3b, 0xa05, 0x3b, 0xa38, 0x3b, 0xa05, 0x3b, 0xa28, 0x3b, 0xa26, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631,
+0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x3b, 0x62c, 0x648,
+0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b,
+0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x51,
+0x75, 0x6c, 0x3b, 0x48, 0x61, 0x74, 0x3b, 0x50, 0x61, 0x75, 0x3b, 0x41, 0x79, 0x72, 0x3b, 0x41, 0x79, 0x6d, 0x3b, 0x49,
+0x6e, 0x74, 0x3b, 0x41, 0x6e, 0x74, 0x3b, 0x51, 0x68, 0x61, 0x3b, 0x55, 0x6d, 0x61, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x41,
+0x79, 0x61, 0x3b, 0x4b, 0x61, 0x70, 0x3b, 0x51, 0x75, 0x6c, 0x6c, 0x61, 0x20, 0x70, 0x75, 0x71, 0x75, 0x79, 0x3b, 0x48,
+0x61, 0x74, 0x75, 0x6e, 0x20, 0x70, 0x75, 0x71, 0x75, 0x79, 0x3b, 0x50, 0x61, 0x75, 0x71, 0x61, 0x72, 0x20, 0x77, 0x61,
+0x72, 0x61, 0x79, 0x3b, 0x41, 0x79, 0x72, 0x69, 0x77, 0x61, 0x3b, 0x41, 0x79, 0x6d, 0x75, 0x72, 0x61, 0x79, 0x3b, 0x49,
+0x6e, 0x74, 0x69, 0x20, 0x72, 0x61, 0x79, 0x6d, 0x69, 0x3b, 0x41, 0x6e, 0x74, 0x61, 0x20, 0x53, 0x69, 0x74, 0x77, 0x61,
+0x3b, 0x51, 0x68, 0x61, 0x70, 0x61, 0x71, 0x20, 0x53, 0x69, 0x74, 0x77, 0x61, 0x3b, 0x55, 0x6d, 0x61, 0x20, 0x72, 0x61,
+0x79, 0x6d, 0x69, 0x3b, 0x4b, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x61, 0x79, 0x3b, 0x41, 0x79, 0x61, 0x6d, 0x61, 0x72, 0x71,
+0x2bc, 0x61, 0x3b, 0x4b, 0x61, 0x70, 0x61, 0x71, 0x20, 0x52, 0x61, 0x79, 0x6d, 0x69, 0x3b, 0x73, 0x63, 0x68, 0x61, 0x6e,
+0x2e, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61,
+0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c, 0x2e, 0x3b, 0x66, 0x61, 0x6e, 0x2e, 0x3b, 0x61, 0x76, 0x75, 0x73, 0x74,
+0x3b, 0x73, 0x65, 0x74, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63,
+0x2e, 0x3b, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72,
+0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x67, 0x6c, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c, 0x61,
+0x64, 0x75, 0x72, 0x3b, 0x66, 0x61, 0x6e, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x61, 0x76, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65,
+0x74, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65,
+0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b,
+0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x69, 0x61,
+0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61,
+0x69, 0x3b, 0x69, 0x75, 0x6e, 0x2e, 0x3b, 0x69, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70,
+0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x49, 0x61,
+0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x72,
+0x74, 0x69, 0x65, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x69,
+0x65, 0x3b, 0x49, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65,
+0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x4f, 0x63, 0x74, 0x6f, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x4e, 0x6f, 0x69, 0x65,
+0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x49, 0x3b, 0x46, 0x3b,
+0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b,
+0x69, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x6d,
+0x61, 0x72, 0x74, 0x69, 0x65, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x65, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x69, 0x75,
+0x6e, 0x69, 0x65, 0x3b, 0x69, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70,
+0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6e, 0x6f,
+0x69, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x44f, 0x43d,
+0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c,
+0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435,
+0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b,
+0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x430, 0x3b, 0x430, 0x43f, 0x440,
+0x2e, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x44f, 0x3b, 0x438, 0x44e, 0x43b, 0x44f, 0x3b, 0x430, 0x432, 0x433, 0x2e,
+0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x434, 0x435,
+0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44f, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44f, 0x3b, 0x43c, 0x430,
+0x440, 0x442, 0x430, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x44f, 0x3b,
+0x438, 0x44e, 0x43b, 0x44f, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x430, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440,
+0x44f, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x434, 0x435, 0x43a,
+0x430, 0x431, 0x440, 0x44f, 0x3b, 0x4e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x3b, 0x4d, 0x62, 0xe4, 0x3b, 0x4e, 0x67, 0x75,
+0x3b, 0x42, 0xea, 0x6c, 0x3b, 0x46, 0xf6, 0x6e, 0x3b, 0x4c, 0x65, 0x6e, 0x3b, 0x4b, 0xfc, 0x6b, 0x3b, 0x4d, 0x76, 0x75,
+0x3b, 0x4e, 0x67, 0x62, 0x3b, 0x4e, 0x61, 0x62, 0x3b, 0x4b, 0x61, 0x6b, 0x3b, 0x4e, 0x79, 0x65, 0x6e, 0x79, 0x65, 0x3b,
+0x46, 0x75, 0x6c, 0x75, 0x6e, 0x64, 0xef, 0x67, 0x69, 0x3b, 0x4d, 0x62, 0xe4, 0x6e, 0x67, 0xfc, 0x3b, 0x4e, 0x67, 0x75,
+0x62, 0xf9, 0x65, 0x3b, 0x42, 0xea, 0x6c, 0xe4, 0x77, 0xfc, 0x3b, 0x46, 0xf6, 0x6e, 0x64, 0x6f, 0x3b, 0x4c, 0x65, 0x6e,
+0x67, 0x75, 0x61, 0x3b, 0x4b, 0xfc, 0x6b, 0xfc, 0x72, 0xfc, 0x3b, 0x4d, 0x76, 0x75, 0x6b, 0x61, 0x3b, 0x4e, 0x67, 0x62,
+0x65, 0x72, 0x65, 0x72, 0x65, 0x3b, 0x4e, 0x61, 0x62, 0xe4, 0x6e, 0x64, 0xfc, 0x72, 0x75, 0x3b, 0x4b, 0x61, 0x6b, 0x61,
+0x75, 0x6b, 0x61, 0x3b, 0x4e, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b,
+0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, 0x440, 0x3b,
+0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b,
+0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, 0x458, 0x430, 0x43d, 0x443,
+0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438,
+0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442,
+0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430, 0x440, 0x3b, 0x43d,
+0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x6a, 0x61, 0x6e,
+0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e,
+0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76,
+0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b,
+0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a,
+0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b,
+0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63,
+0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6a, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x6a, 0x3b,
+0x61, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x42f, 0x43d, 0x432, 0x2e, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x2e,
+0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x2e, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b,
+0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x2e, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x41e, 0x43a, 0x442, 0x2e,
+0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x414, 0x435, 0x43a, 0x2e, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424,
+0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x44c,
+0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441,
+0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41d,
+0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444,
+0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e,
+0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, 0x43a,
+0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44b, 0x3b,
+0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x439, 0x44b, 0x3b, 0x430, 0x43f, 0x440,
+0x435, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x439, 0x44b, 0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, 0x430,
+0x432, 0x433, 0x443, 0x441, 0x442, 0x44b, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43e, 0x43a, 0x442, 0x44f,
+0x431, 0x440, 0x44b, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44b, 0x3b, 0x4e,
+0x64, 0x69, 0x3b, 0x4b, 0x75, 0x6b, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x4b, 0x75, 0x62, 0x3b, 0x43, 0x68, 0x76, 0x3b, 0x43,
+0x68, 0x6b, 0x3b, 0x43, 0x68, 0x67, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x47, 0x75, 0x6e, 0x3b, 0x47, 0x75, 0x6d, 0x3b, 0x4d,
+0x62, 0x3b, 0x5a, 0x76, 0x69, 0x3b, 0x4e, 0x64, 0x69, 0x72, 0x61, 0x3b, 0x4b, 0x75, 0x6b, 0x61, 0x64, 0x7a, 0x69, 0x3b,
+0x4b, 0x75, 0x72, 0x75, 0x6d, 0x65, 0x3b, 0x4b, 0x75, 0x62, 0x76, 0x75, 0x6d, 0x62, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x76,
+0x61, 0x62, 0x76, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, 0x6e, 0x67,
+0x75, 0x72, 0x75, 0x3b, 0x4e, 0x79, 0x61, 0x6d, 0x61, 0x76, 0x68, 0x75, 0x76, 0x68, 0x75, 0x3b, 0x47, 0x75, 0x6e, 0x79,
+0x61, 0x6e, 0x61, 0x3b, 0x47, 0x75, 0x6d, 0x69, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4d, 0x62, 0x75, 0x64, 0x7a, 0x69, 0x3b,
+0x5a, 0x76, 0x69, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b,
+0x4e, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb,
+0xdca, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2,
+0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1,
+0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b, 0xda2, 0xdb1, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0xdbb,
+0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca,
+0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0xdc3,
+0xdca, 0xdad, 0xdd4, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0xdad, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0xdad,
+0xddd, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0xdb8,
+0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xda2, 0x3b, 0xdb4, 0xdd9, 0x3b, 0xdb8, 0xdcf, 0x3b, 0xd85, 0x3b, 0xdb8, 0xdd0, 0x3b, 0xda2, 0xdd6,
+0x3b, 0xda2, 0xdd6, 0x3b, 0xd85, 0x3b, 0xdc3, 0xdd0, 0x3b, 0xd94, 0x3b, 0xdb1, 0xdd9, 0x3b, 0xdaf, 0xdd9, 0x3b, 0xda2, 0xdb1, 0x3b,
+0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b,
+0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3,
+0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b, 0x6a, 0x61,
+0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0xe1, 0x6a, 0x3b, 0x6a, 0xfa,
+0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f,
+0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72,
+0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0xe1, 0x6a, 0x3b, 0x6a, 0xfa, 0x6e,
+0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65,
+0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64,
+0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x61, 0x3b, 0x66, 0x65, 0x62, 0x72,
+0x75, 0xe1, 0x72, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x61, 0x3b, 0x6d, 0xe1,
+0x6a, 0x61, 0x3b, 0x6a, 0xfa, 0x6e, 0x61, 0x3b, 0x6a, 0xfa, 0x6c, 0x61, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x61,
+0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x72, 0x61, 0x3b, 0x6e,
+0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6a, 0x61, 0x6e,
+0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, 0x3b, 0x61, 0x70,
+0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b,
+0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74,
+0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70,
+0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x76, 0x67,
+0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63,
+0x2e, 0x3b, 0x4b, 0x6f, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x41, 0x66, 0x72, 0x3b, 0x53, 0x68,
+0x61, 0x3b, 0x4c, 0x69, 0x78, 0x3b, 0x54, 0x6f, 0x64, 0x3b, 0x53, 0x69, 0x64, 0x3b, 0x53, 0x61, 0x67, 0x3b, 0x54, 0x6f,
+0x62, 0x3b, 0x4b, 0x49, 0x54, 0x3b, 0x4c, 0x49, 0x54, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4b, 0x6f, 0x6f, 0x62,
+0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73,
+0x68, 0x61, 0x20, 0x53, 0x61, 0x64, 0x64, 0x65, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x41,
+0x66, 0x72, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x68, 0x61, 0x6e, 0x61, 0x61, 0x64, 0x3b,
+0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x69, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54,
+0x6f, 0x64, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x69, 0x64, 0x65, 0x65, 0x64,
+0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x67, 0x61, 0x61, 0x6c, 0x61, 0x61, 0x64, 0x3b,
+0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20,
+0x4b, 0x6f, 0x77, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68,
+0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x4b,
+0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4b,
+0x3b, 0x4c, 0x3b, 0x45, 0x6e, 0x65, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x62,
+0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x2e, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x67,
+0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44,
+0x69, 0x63, 0x2e, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61,
+0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x6f,
+0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x69, 0x65,
+0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62,
+0x72, 0x65, 0x3b, 0x44, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41,
+0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x65, 0x6e, 0x65,
+0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79,
+0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x70,
+0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x65, 0x6e,
+0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x62,
+0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f,
+0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f,
+0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63,
+0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x65, 0x6e, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61,
+0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73,
+0x65, 0x70, 0x3b, 0x6f, 0x63, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x69, 0x63, 0x3b, 0x45, 0x6e, 0x65, 0x2e, 0x3b,
+0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x2e, 0x3b,
+0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x67, 0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x74, 0x2e, 0x3b,
+0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x69, 0x63, 0x2e, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f,
+0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c,
+0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67,
+0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x63, 0x74, 0x75, 0x62,
+0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62,
+0x72, 0x65, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62,
+0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67,
+0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69,
+0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72,
+0x7a, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b,
+0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62,
+0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65,
+0x3b, 0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d,
+0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41,
+0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a,
+0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68,
+0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75,
+0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b,
+0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d,
+0x62, 0x61, 0x3b, 0x6b, 0x3b, 0x70, 0x3b, 0x74, 0x3b, 0x69, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x74,
+0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x6b, 0x77, 0x3b, 0x6d, 0x70, 0x69, 0x3b, 0x6d, 0x74, 0x75, 0x3b, 0x6d,
+0x69, 0x6e, 0x3b, 0x6d, 0x74, 0x6e, 0x3b, 0x6d, 0x73, 0x74, 0x3b, 0x6d, 0x73, 0x62, 0x3b, 0x6d, 0x75, 0x6e, 0x3b, 0x6d,
+0x74, 0x73, 0x3b, 0x6d, 0x6b, 0x75, 0x3b, 0x6d, 0x6b, 0x6d, 0x3b, 0x6d, 0x6b, 0x62, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69,
+0x20, 0x79, 0x61, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20,
+0x70, 0x69, 0x6c, 0x69, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x6d,
+0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x69, 0x6e, 0x65, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61,
+0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b,
+0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20,
+0x79, 0x61, 0x20, 0x6d, 0x75, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x74,
+0x69, 0x73, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x6d, 0x77,
+0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x79, 0x61, 0x3b,
+0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x62, 0x69,
+0x6c, 0x69, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x70,
+0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67,
+0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x63,
+0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d,
+0x61, 0x72, 0x73, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x6a, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a,
+0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65,
+0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44,
+0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61,
+0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c,
+0x69, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76,
+0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75,
+0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a,
+0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x73, 0x65, 0x70,
+0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d,
+0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xb9c, 0xba9, 0x2e, 0x3b, 0xbaa, 0xbbf, 0xbaa,
+0xbcd, 0x2e, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9,
+0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0x2e, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xb85, 0xb95, 0xbcd,
+0x2e, 0x3b, 0xba8, 0xbb5, 0x2e, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0x2e, 0x3b, 0xb9c, 0xba9, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa,
+0xbcd, 0xbb0, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0xb9a, 0xbcd, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b,
+0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbc1, 0x3b,
+0xb9a, 0xbc6, 0xbaa, 0xbcd, 0xb9f, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xb95, 0xbcd, 0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b,
+0xba8, 0xbb5, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9c, 0x3b, 0xbaa,
+0xbbf, 0x3b, 0xbae, 0xbbe, 0x3b, 0xb8f, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb86, 0x3b, 0xb9a, 0xbc6,
+0x3b, 0xb85, 0x3b, 0xba8, 0x3b, 0xb9f, 0xbbf, 0x3b, 0xb9c, 0xba9, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0xbb0, 0xbb5,
+0xbb0, 0xbbf, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0xb9a, 0xbcd, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b, 0xbae, 0xbc7, 0x3b,
+0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbaa,
+0xbcd, 0xb9f, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xb95, 0xbcd, 0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xba8, 0xbb5, 0xbae,
+0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xc1c, 0xc28, 0x3b, 0xc2b, 0xc3f, 0xc2c,
+0xc4d, 0xc30, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c,
+0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f, 0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d,
+0xc1f, 0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0x3b, 0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b,
+0xc1c, 0xc28, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a,
+0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0xc32, 0xc4d, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41,
+0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f, 0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d,
+0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc28, 0xc35, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc3f, 0xc38,
+0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc1c, 0x3b, 0xc2b, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0x3b, 0xc0f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c,
+0xc42, 0x3b, 0xc1c, 0xc41, 0x3b, 0xc06, 0x3b, 0xc38, 0xc46, 0x3b, 0xc05, 0x3b, 0xc28, 0x3b, 0xc21, 0xc3f, 0x3b, 0xc1c, 0xc28, 0x3b,
+0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e,
+0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f,
+0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0x3b, 0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b, 0xe21,
+0x2e, 0xe04, 0x2e, 0x3b, 0xe01, 0x2e, 0xe1e, 0x2e, 0x3b, 0xe21, 0xe35, 0x2e, 0xe04, 0x2e, 0x3b, 0xe40, 0xe21, 0x2e, 0xe22, 0x2e,
+0x3b, 0xe1e, 0x2e, 0xe04, 0x2e, 0x3b, 0xe21, 0xe34, 0x2e, 0xe22, 0x2e, 0x3b, 0xe01, 0x2e, 0xe04, 0x2e, 0x3b, 0xe2a, 0x2e, 0xe04,
+0x2e, 0x3b, 0xe01, 0x2e, 0xe22, 0x2e, 0x3b, 0xe15, 0x2e, 0xe04, 0x2e, 0x3b, 0xe1e, 0x2e, 0xe22, 0x2e, 0x3b, 0xe18, 0x2e, 0xe04,
+0x2e, 0x3b, 0xe21, 0xe01, 0xe23, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe38, 0xe21, 0xe20, 0xe32, 0xe1e, 0xe31, 0xe19, 0xe18, 0xe4c, 0x3b,
+0xe21, 0xe35, 0xe19, 0xe32, 0xe04, 0xe21, 0x3b, 0xe40, 0xe21, 0xe29, 0xe32, 0xe22, 0xe19, 0x3b, 0xe1e, 0xe24, 0xe29, 0xe20, 0xe32, 0xe04,
+0xe21, 0x3b, 0xe21, 0xe34, 0xe16, 0xe38, 0xe19, 0xe32, 0xe22, 0xe19, 0x3b, 0xe01, 0xe23, 0xe01, 0xe0e, 0xe32, 0xe04, 0xe21, 0x3b, 0xe2a,
+0xe34, 0xe07, 0xe2b, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe31, 0xe19, 0xe22, 0xe32, 0xe22, 0xe19, 0x3b, 0xe15, 0xe38, 0xe25, 0xe32, 0xe04,
+0xe21, 0x3b, 0xe1e, 0xe24, 0xe28, 0xe08, 0xe34, 0xe01, 0xe32, 0xe22, 0xe19, 0x3b, 0xe18, 0xe31, 0xe19, 0xe27, 0xe32, 0xe04, 0xe21, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72,
+0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b,
+0xf56, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf51,
+0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74,
+0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b,
+0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0x1303, 0x1295,
+0x12e9, 0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x1228, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b,
+0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x3b, 0x1296, 0x126c, 0x121d, 0x3b,
+0x12f2, 0x1234, 0x121d, 0x3b, 0x1303, 0x1295, 0x12e9, 0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b,
+0x12a4, 0x1355, 0x1228, 0x120d, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x1275, 0x3b,
+0x1234, 0x1355, 0x1274, 0x121d, 0x1260, 0x122d, 0x3b, 0x12a6, 0x12ad, 0x1270, 0x12cd, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c, 0x121d, 0x1260, 0x122d, 0x3b,
+0x12f2, 0x1234, 0x121d, 0x1260, 0x122d, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x3b, 0x1218, 0x130b, 0x1262, 0x3b, 0x121a, 0x12eb, 0x12dd,
+0x3b, 0x130d, 0x1295, 0x1266, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x1208, 0x3b, 0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x3b,
+0x1325, 0x1245, 0x121d, 0x3b, 0x1215, 0x12f3, 0x122d, 0x3b, 0x1273, 0x1215, 0x1233, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x1275, 0x3b,
+0x1218, 0x130b, 0x1262, 0x1275, 0x3b, 0x121a, 0x12eb, 0x12dd, 0x12eb, 0x3b, 0x130d, 0x1295, 0x1266, 0x1275, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d,
+0x1208, 0x3b, 0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x1228, 0x121d, 0x3b, 0x1325, 0x1245, 0x121d, 0x1272, 0x3b, 0x1215, 0x12f3, 0x122d,
+0x3b, 0x1273, 0x1215, 0x1233, 0x1235, 0x3b, 0x53, 0x101, 0x6e, 0x3b, 0x46, 0x113, 0x70, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x3b, 0x2bb,
+0x45, 0x70, 0x65, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x53, 0x69, 0x75, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x3b,
+0x53, 0x65, 0x70, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x3b, 0x54, 0x12b, 0x73, 0x3b, 0x53, 0x101, 0x6e,
+0x75, 0x61, 0x6c, 0x69, 0x3b, 0x46, 0x113, 0x70, 0x75, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x73, 0x69, 0x3b,
+0x2bb, 0x45, 0x70, 0x65, 0x6c, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x65, 0x3b, 0x53, 0x69, 0x75,
+0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x6f, 0x73, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x69, 0x74, 0x65, 0x6d, 0x61,
+0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x74, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x65, 0x6d, 0x61, 0x3b, 0x54, 0x12b, 0x73,
+0x65, 0x6d, 0x61, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x41, 0x3b,
+0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4f, 0x63, 0x61, 0x3b, 0x15e, 0x75, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b,
+0x4e, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x61, 0x7a, 0x3b, 0x54, 0x65, 0x6d, 0x3b, 0x41, 0x11f, 0x75, 0x3b,
+0x45, 0x79, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x4f, 0x63, 0x61, 0x6b,
+0x3b, 0x15e, 0x75, 0x62, 0x61, 0x74, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x4e, 0x69, 0x73, 0x61, 0x6e, 0x3b, 0x4d, 0x61,
+0x79, 0x131, 0x73, 0x3b, 0x48, 0x61, 0x7a, 0x69, 0x72, 0x61, 0x6e, 0x3b, 0x54, 0x65, 0x6d, 0x6d, 0x75, 0x7a, 0x3b, 0x41,
+0x11f, 0x75, 0x73, 0x74, 0x6f, 0x73, 0x3b, 0x45, 0x79, 0x6c, 0xfc, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x6d, 0x3b, 0x4b, 0x61,
+0x73, 0x131, 0x6d, 0x3b, 0x41, 0x72, 0x61, 0x6c, 0x131, 0x6b, 0x3b, 0x4f, 0x3b, 0x15e, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4d,
+0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x45, 0x3b, 0x45, 0x3b, 0x4b, 0x3b, 0x41, 0x3b, 0x64a, 0x627, 0x646, 0x6cb, 0x627,
+0x631, 0x3b, 0x641, 0x6d0, 0x6cb, 0x631, 0x627, 0x644, 0x3b, 0x645, 0x627, 0x631, 0x62a, 0x3b, 0x626, 0x627, 0x67e, 0x631, 0x6d0, 0x644,
+0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x646, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x644, 0x3b, 0x626, 0x627, 0x6cb,
+0x63a, 0x6c7, 0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x646, 0x62a, 0x6d5, 0x628, 0x649, 0x631, 0x3b, 0x626, 0x6c6, 0x643, 0x62a, 0x6d5, 0x628,
+0x649, 0x631, 0x3b, 0x646, 0x648, 0x64a, 0x627, 0x628, 0x649, 0x631, 0x3b, 0x62f, 0x6d0, 0x643, 0x627, 0x628, 0x649, 0x631, 0x3b, 0x64a,
+0x627, 0x646, 0x6cb, 0x627, 0x631, 0x3b, 0x641, 0x6d0, 0x6cb, 0x631, 0x627, 0x644, 0x3b, 0x645, 0x627, 0x631, 0x62a, 0x3b, 0x626, 0x627,
+0x67e, 0x631, 0x6d0, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x646, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x644,
+0x3b, 0x626, 0x627, 0x6cb, 0x63a, 0x6c7, 0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x646, 0x62a, 0x6d5, 0x628, 0x649, 0x631, 0x3b, 0x626, 0x6c6,
+0x643, 0x62a, 0x6d5, 0x628, 0x649, 0x631, 0x3b, 0x628, 0x648, 0x64a, 0x627, 0x628, 0x649, 0x631, 0x3b, 0x62f, 0x6d0, 0x643, 0x627, 0x628,
+0x649, 0x631, 0x3b, 0x421, 0x456, 0x447, 0x3b, 0x41b, 0x44e, 0x442, 0x3b, 0x411, 0x435, 0x440, 0x3b, 0x41a, 0x432, 0x456, 0x3b, 0x422,
+0x440, 0x430, 0x3b, 0x427, 0x435, 0x440, 0x3b, 0x41b, 0x438, 0x43f, 0x3b, 0x421, 0x435, 0x440, 0x3b, 0x412, 0x435, 0x440, 0x3b, 0x416,
+0x43e, 0x432, 0x3b, 0x41b, 0x438, 0x441, 0x3b, 0x413, 0x440, 0x443, 0x3b, 0x421, 0x456, 0x447, 0x435, 0x43d, 0x44c, 0x3b, 0x41b, 0x44e,
+0x442, 0x438, 0x439, 0x3b, 0x411, 0x435, 0x440, 0x435, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x41a, 0x432, 0x456, 0x442, 0x435, 0x43d, 0x44c,
+0x3b, 0x422, 0x440, 0x430, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x427, 0x435, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x41b, 0x438, 0x43f,
+0x435, 0x43d, 0x44c, 0x3b, 0x421, 0x435, 0x440, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x412, 0x435, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c,
+0x3b, 0x416, 0x43e, 0x432, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x41b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x3b, 0x413, 0x440,
+0x443, 0x434, 0x435, 0x43d, 0x44c, 0x3b, 0x421, 0x3b, 0x41b, 0x3b, 0x411, 0x3b, 0x41a, 0x3b, 0x422, 0x3b, 0x427, 0x3b, 0x41b, 0x3b,
+0x421, 0x3b, 0x412, 0x3b, 0x416, 0x3b, 0x41b, 0x3b, 0x413, 0x3b, 0x441, 0x456, 0x447, 0x2e, 0x3b, 0x43b, 0x44e, 0x442, 0x2e, 0x3b,
+0x431, 0x435, 0x440, 0x2e, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x2e, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x2e, 0x3b, 0x447, 0x435, 0x440,
+0x432, 0x2e, 0x3b, 0x43b, 0x438, 0x43f, 0x2e, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x2e, 0x3b, 0x432, 0x435, 0x440, 0x2e, 0x3b, 0x436,
+0x43e, 0x432, 0x442, 0x2e, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x2e, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x2e, 0x3b, 0x441, 0x456, 0x447,
+0x43d, 0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x43e, 0x433, 0x43e, 0x3b, 0x431, 0x435, 0x440, 0x435, 0x437, 0x43d, 0x44f, 0x3b, 0x43a, 0x432,
+0x456, 0x442, 0x43d, 0x44f, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x43d, 0x44f, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x43d, 0x44f, 0x3b, 0x43b,
+0x438, 0x43f, 0x43d, 0x44f, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x435, 0x441, 0x43d, 0x44f, 0x3b,
+0x436, 0x43e, 0x432, 0x442, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x430, 0x3b, 0x433, 0x440, 0x443,
+0x434, 0x43d, 0x44f, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686,
+0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x626,
+0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b,
+0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x3b, 0x46, 0x65, 0x76,
+0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x75, 0x6e, 0x3b, 0x49, 0x79,
+0x75, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x3b,
+0x44, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61,
+0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x75, 0x6e, 0x3b, 0x49, 0x79,
+0x75, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b,
+0x74, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x59,
+0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e,
+0x3b, 0x44, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x3b, 0x627, 0x67e, 0x631, 0x3b, 0x645,
+0x640, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, 0x6af, 0x633, 0x3b, 0x633, 0x67e, 0x62a, 0x3b, 0x627,
+0x6a9, 0x62a, 0x3b, 0x646, 0x648, 0x645, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x424, 0x435, 0x432,
+0x440, 0x430, 0x43b, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418,
+0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431,
+0x440, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431,
+0x440, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x33, 0x3b,
+0x54, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68,
+0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0x67, 0x20,
+0x31, 0x30, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x54, 0x68, 0xe1,
+0x6e, 0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33,
+0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0xe1,
+0x6e, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38,
+0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68,
+0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20,
+0x31, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x34, 0x3b,
+0x74, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68,
+0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0x67,
+0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x74,
+0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67,
+0x20, 0x34, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x74,
+0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67,
+0x20, 0x39, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31,
+0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x3b, 0x4d, 0x61,
+0x77, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x41, 0x77,
+0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61,
+0x67, 0x3b, 0x49, 0x6f, 0x6e, 0x61, 0x77, 0x72, 0x3b, 0x43, 0x68, 0x77, 0x65, 0x66, 0x72, 0x6f, 0x72, 0x3b, 0x4d, 0x61,
+0x77, 0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x65,
+0x66, 0x69, 0x6e, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x65, 0x6e, 0x6e, 0x61, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b,
+0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x72, 0x65, 0x66, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x77, 0x65, 0x64, 0x64,
+0x3b, 0x52, 0x68, 0x61, 0x67, 0x66, 0x79, 0x72, 0x3b, 0x49, 0x3b, 0x43, 0x68, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b,
+0x4d, 0x3b, 0x47, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x52, 0x68, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43,
+0x68, 0x77, 0x65, 0x66, 0x3b, 0x4d, 0x61, 0x77, 0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d,
+0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65,
+0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x3b, 0x1e62, 0x1eb9, 0x301,
+0x72, 0x1eb9, 0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62,
+0xe9, 0x3b, 0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd,
+0x3b, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42,
+0xe9, 0x6c, 0xfa, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301,
+0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e,
+0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x300, 0x62, 0x69, 0x62,
+0x69, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x41, 0x67, 0x1eb9, 0x6d,
+0x1ecd, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65,
+0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa,
+0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0xc8,
+0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x190, 0x300, 0x62,
+0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0xd2, 0x67, 0xfa, 0x6e,
+0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x186, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x186,
+0x300, 0x70, 0x25b, 0x300, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0x4f, 0x73,
+0x68, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0xe0,
+0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x300, 0x62, 0x69,
+0x62, 0x69, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x41,
+0x67, 0x25b, 0x6d, 0x254, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20,
+0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x4f, 0x73,
+0x68, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x4a,
+0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x73, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a,
+0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e,
+0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72,
+0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x73, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d,
+0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73,
+0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61,
+0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x6a, 0x61, 0x6e,
+0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69,
+0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e,
+0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75,
+0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69,
+0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75,
+0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72,
+0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x458,
+0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430,
+0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430,
+0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e,
+0x431, 0x430, 0x440, 0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430,
+0x440, 0x3b, 0x4a, 0x2d, 0x67, 0x75, 0x65, 0x72, 0x3b, 0x54, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79,
+0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, 0x72, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d,
+0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61,
+0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4a, 0x2d, 0x66, 0x6f,
+0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x2e, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x2e, 0x4e, 0x6f, 0x6c, 0x6c,
+0x69, 0x63, 0x6b, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x67, 0x65, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x54, 0x6f,
+0x73, 0x68, 0x69, 0x61, 0x67, 0x68, 0x74, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74,
+0x3b, 0x41, 0x76, 0x65, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e,
+0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65,
+0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x66, 0x6f, 0x75,
+0x79, 0x69, 0x72, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x65,
+0x65, 0x20, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x6e, 0x79, 0x20, 0x4e, 0x6f, 0x6c, 0x6c,
+0x69, 0x63, 0x6b, 0x3b, 0x47, 0x65, 0x6e, 0x3b, 0x48, 0x77, 0x65, 0x3b, 0x4d, 0x65, 0x75, 0x3b, 0x45, 0x62, 0x72, 0x3b,
+0x4d, 0x65, 0x3b, 0x4d, 0x65, 0x74, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x45, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x6e, 0x3b, 0x48,
+0x65, 0x64, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x76, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72,
+0x3b, 0x6d, 0x69, 0x73, 0x20, 0x48, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x75,
+0x72, 0x74, 0x68, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x62, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65,
+0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x6f,
+0x72, 0x74, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x73, 0x74, 0x3b, 0x6d, 0x69, 0x73, 0x20,
+0x47, 0x77, 0x79, 0x6e, 0x6e, 0x67, 0x61, 0x6c, 0x61, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x48, 0x65, 0x64, 0x72, 0x61, 0x3b,
+0x6d, 0x69, 0x73, 0x20, 0x44, 0x75, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4b, 0x65, 0x76, 0x61, 0x72, 0x64, 0x68, 0x75, 0x3b,
+0x53, 0x2d, 0x186, 0x3b, 0x4b, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x4f, 0x3b, 0x45, 0x2d, 0x4b, 0x3b,
+0x4f, 0x2d, 0x41, 0x3b, 0x41, 0x2d, 0x4b, 0x3b, 0x44, 0x2d, 0x186, 0x3b, 0x46, 0x2d, 0x190, 0x3b, 0x186, 0x2d, 0x41, 0x3b,
+0x186, 0x2d, 0x4f, 0x3b, 0x4d, 0x2d, 0x186, 0x3b, 0x53, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x186, 0x70, 0x25b, 0x70, 0x254, 0x6e,
+0x3b, 0x4b, 0x77, 0x61, 0x6b, 0x77, 0x61, 0x72, 0x2d, 0x186, 0x67, 0x79, 0x65, 0x66, 0x75, 0x6f, 0x3b, 0x45, 0x62, 0x254,
+0x77, 0x2d, 0x186, 0x62, 0x65, 0x6e, 0x65, 0x6d, 0x3b, 0x45, 0x62, 0x254, 0x62, 0x69, 0x72, 0x61, 0x2d, 0x4f, 0x66, 0x6f,
+0x72, 0x69, 0x73, 0x75, 0x6f, 0x3b, 0x45, 0x73, 0x75, 0x73, 0x6f, 0x77, 0x20, 0x41, 0x6b, 0x65, 0x74, 0x73, 0x65, 0x61,
+0x62, 0x61, 0x2d, 0x4b, 0x254, 0x74, 0x254, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x62, 0x69, 0x72, 0x61, 0x64, 0x65,
+0x2d, 0x41, 0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x6d, 0x75, 0x6d, 0x75, 0x3b, 0x41, 0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f,
+0x2d, 0x4b, 0x69, 0x74, 0x61, 0x77, 0x6f, 0x6e, 0x73, 0x61, 0x3b, 0x44, 0x69, 0x66, 0x75, 0x75, 0x2d, 0x186, 0x73, 0x61,
+0x6e, 0x64, 0x61, 0x61, 0x3b, 0x46, 0x61, 0x6e, 0x6b, 0x77, 0x61, 0x2d, 0x190, 0x62, 0x254, 0x3b, 0x186, 0x62, 0x25b, 0x73,
+0x25b, 0x2d, 0x41, 0x68, 0x69, 0x6e, 0x69, 0x6d, 0x65, 0x3b, 0x186, 0x62, 0x65, 0x72, 0x25b, 0x66, 0x25b, 0x77, 0x2d, 0x4f,
+0x62, 0x75, 0x62, 0x75, 0x6f, 0x3b, 0x4d, 0x75, 0x6d, 0x75, 0x2d, 0x186, 0x70, 0x25b, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b,
+0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b,
+0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b,
+0x91c, 0x941, 0x932, 0x948, 0x3b, 0x913, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930,
+0x3b, 0x913, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921,
+0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x45,
+0x70, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x3b, 0x53,
+0x65, 0x70, 0x3b, 0x1ecc, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x65, 0x6e, 0x1ee5, 0x77,
+0x61, 0x72, 0x1ecb, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, 0x3b, 0x4d, 0x61, 0x61, 0x63, 0x68, 0x1ecb,
+0x3b, 0x45, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61,
+0x1ecb, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x1ecd, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x1ecc, 0x6b,
0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61,
-0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f,
-0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72,
-0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74,
-0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x75, 0x76, 0x3b, 0x44, 0x69, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x72, 0x75, 0x3b,
-0x46, 0x65, 0x76, 0x65, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x75, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c,
-0x3b, 0x4d, 0x61, 0x69, 0x75, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x75, 0x3b, 0x41, 0x67,
-0x6f, 0x73, 0x74, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x72, 0x75,
-0x3b, 0x4e, 0x75, 0x76, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x7a, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4a,
-0x41, 0x4e, 0x3b, 0x46, 0x45, 0x42, 0x3b, 0x4d, 0x41, 0x43, 0x3b, 0x128, 0x50, 0x55, 0x3b, 0x4d, 0x128, 0x128, 0x3b, 0x4e,
-0x4a, 0x55, 0x3b, 0x4e, 0x4a, 0x52, 0x3b, 0x41, 0x47, 0x41, 0x3b, 0x53, 0x50, 0x54, 0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4e,
-0x4f, 0x56, 0x3b, 0x44, 0x45, 0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x129, 0x3b, 0x46, 0x65, 0x62, 0x75, 0x72,
-0x75, 0x61, 0x72, 0x129, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x128, 0x70, 0x75, 0x72, 0x169, 0x3b, 0x4d, 0x129, 0x129,
-0x3b, 0x4e, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x72, 0x61, 0x129, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69,
-0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x169, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76,
-0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x128,
-0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x75, 0x6c,
-0x3b, 0x4e, 0x67, 0x61, 0x3b, 0x4b, 0x69, 0x70, 0x3b, 0x49, 0x77, 0x61, 0x3b, 0x4e, 0x67, 0x65, 0x3b, 0x57, 0x61, 0x6b,
-0x3b, 0x52, 0x6f, 0x70, 0x3b, 0x4b, 0x6f, 0x67, 0x3b, 0x42, 0x75, 0x72, 0x3b, 0x45, 0x70, 0x65, 0x3b, 0x54, 0x61, 0x69,
-0x3b, 0x41, 0x65, 0x6e, 0x3b, 0x4d, 0x75, 0x6c, 0x67, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x27, 0x61, 0x74, 0x79, 0x61, 0x74,
-0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x74, 0x61, 0x6d, 0x6f, 0x3b, 0x49, 0x77, 0x61, 0x74, 0x20, 0x6b, 0x75, 0x74, 0x3b, 0x4e,
-0x67, 0x27, 0x65, 0x69, 0x79, 0x65, 0x74, 0x3b, 0x57, 0x61, 0x6b, 0x69, 0x3b, 0x52, 0x6f, 0x70, 0x74, 0x75, 0x69, 0x3b,
-0x4b, 0x69, 0x70, 0x6b, 0x6f, 0x67, 0x61, 0x67, 0x61, 0x3b, 0x42, 0x75, 0x72, 0x65, 0x74, 0x3b, 0x45, 0x70, 0x65, 0x73,
-0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x74, 0x61, 0x69, 0x3b, 0x4b, 0x69, 0x70,
-0x73, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x62, 0x6f, 0x20, 0x61, 0x65, 0x6e, 0x67, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b,
-0x4b, 0x3b, 0x49, 0x3b, 0x4e, 0x3b, 0x57, 0x3b, 0x52, 0x3b, 0x4b, 0x3b, 0x42, 0x3b, 0x45, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
-0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x6e, 0x69, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x1c0, 0x67, 0xf4, 0x61, 0x62, 0x3b, 0x1c0,
-0x4b, 0x68, 0x75, 0x75, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c3, 0x48, 0xf4, 0x61, 0x1c2, 0x6b, 0x68, 0x61, 0x69, 0x62,
-0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x69, 0x74, 0x73, 0xe2, 0x62, 0x3b, 0x47, 0x61, 0x6d, 0x61, 0x1c0, 0x61, 0x65, 0x62, 0x3b,
-0x1c2, 0x4b, 0x68, 0x6f, 0x65, 0x73, 0x61, 0x6f, 0x62, 0x3b, 0x41, 0x6f, 0x1c1, 0x6b, 0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1,
-0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x54, 0x61, 0x72, 0x61, 0x1c0, 0x6b, 0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2,
-0x62, 0x3b, 0x1c2, 0x4e, 0xfb, 0x1c1, 0x6e, 0xe2, 0x69, 0x73, 0x65, 0x62, 0x3b, 0x1c0, 0x48, 0x6f, 0x6f, 0x1c2, 0x67, 0x61,
-0x65, 0x62, 0x3b, 0x48, 0xf4, 0x61, 0x73, 0x6f, 0x72, 0x65, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x4a, 0x61, 0x6e, 0x2e,
-0x3b, 0x46, 0xe4, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x7a, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0xe4, 0x69, 0x3b,
-0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x4f, 0x75, 0x6a, 0x2e, 0x3b, 0x53, 0xe4, 0x70, 0x2e, 0x3b,
-0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x65,
-0x77, 0x61, 0x3b, 0x46, 0xe4, 0x62, 0x72, 0x6f, 0x77, 0x61, 0x3b, 0x4d, 0xe4, 0xe4, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x65,
-0x6c, 0x6c, 0x3b, 0x4d, 0xe4, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x4f,
-0x75, 0x6a, 0x6f, 0xdf, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f,
-0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65,
-0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0xe4, 0x62, 0x3b, 0x4d, 0xe4, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0xe4,
-0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x75, 0x6a, 0x3b, 0x53, 0xe4, 0x70, 0x3b, 0x4f, 0x6b,
-0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x44, 0x61, 0x6c, 0x3b, 0x41, 0x72, 0xe1, 0x3b, 0x186, 0x25b,
-0x6e, 0x3b, 0x44, 0x6f, 0x79, 0x3b, 0x4c, 0xe9, 0x70, 0x3b, 0x52, 0x6f, 0x6b, 0x3b, 0x53, 0xe1, 0x73, 0x3b, 0x42, 0x254,
-0x301, 0x72, 0x3b, 0x4b, 0xfa, 0x73, 0x3b, 0x47, 0xed, 0x73, 0x3b, 0x53, 0x68, 0x289, 0x301, 0x3b, 0x4e, 0x74, 0x289, 0x301,
-0x3b, 0x4f, 0x6c, 0x61, 0x64, 0x61, 0x6c, 0x289, 0x301, 0x3b, 0x41, 0x72, 0xe1, 0x74, 0x3b, 0x186, 0x25b, 0x6e, 0x268, 0x301,
-0x254, 0x268, 0x14b, 0x254, 0x6b, 0x3b, 0x4f, 0x6c, 0x6f, 0x64, 0x6f, 0x79, 0xed, 0xf3, 0x72, 0xed, 0xea, 0x20, 0x69, 0x6e,
-0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4f, 0x6c, 0x6f, 0x69, 0x6c, 0xe9, 0x70, 0x16b, 0x6e, 0x79, 0x12b, 0x113, 0x20, 0x69,
-0x6e, 0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4b, 0xfa, 0x6a, 0xfa, 0x254, 0x72, 0x254, 0x6b, 0x3b, 0x4d, 0xf3, 0x72, 0x75,
-0x73, 0xe1, 0x73, 0x69, 0x6e, 0x3b, 0x186, 0x6c, 0x254, 0x301, 0x268, 0x301, 0x62, 0x254, 0x301, 0x72, 0xe1, 0x72, 0x25b, 0x3b,
-0x4b, 0xfa, 0x73, 0x68, 0xee, 0x6e, 0x3b, 0x4f, 0x6c, 0x67, 0xed, 0x73, 0x61, 0x6e, 0x3b, 0x50, 0x289, 0x73, 0x68, 0x289,
-0x301, 0x6b, 0x61, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x14b, 0x289, 0x301, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62,
-0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c,
-0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73,
-0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69,
-0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74,
-0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x4d, 0x75, 0x6b, 0x3b, 0x4b, 0x77, 0x61,
-0x3b, 0x44, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x6f, 0x64, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x50, 0x65, 0x64,
-0x3b, 0x53, 0x6f, 0x6b, 0x3b, 0x54, 0x69, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b, 0x50, 0x6f, 0x6f, 0x3b, 0x4f, 0x72, 0x61,
-0x72, 0x61, 0x3b, 0x4f, 0x6d, 0x75, 0x6b, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x67, 0x27, 0x3b, 0x4f, 0x64, 0x75, 0x6e,
-0x67, 0x27, 0x65, 0x6c, 0x3b, 0x4f, 0x6d, 0x61, 0x72, 0x75, 0x6b, 0x3b, 0x4f, 0x6d, 0x6f, 0x64, 0x6f, 0x6b, 0x27, 0x6b,
-0x69, 0x6e, 0x67, 0x27, 0x6f, 0x6c, 0x3b, 0x4f, 0x6a, 0x6f, 0x6c, 0x61, 0x3b, 0x4f, 0x70, 0x65, 0x64, 0x65, 0x6c, 0x3b,
-0x4f, 0x73, 0x6f, 0x6b, 0x6f, 0x73, 0x6f, 0x6b, 0x6f, 0x6d, 0x61, 0x3b, 0x4f, 0x74, 0x69, 0x62, 0x61, 0x72, 0x3b, 0x4f,
-0x6c, 0x61, 0x62, 0x6f, 0x72, 0x3b, 0x4f, 0x70, 0x6f, 0x6f, 0x3b, 0x52, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x4d,
-0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x50, 0x3b, 0x17d, 0x61, 0x6e, 0x3b, 0x46,
-0x65, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x69, 0x3b, 0x4d, 0x65, 0x3b, 0x17d, 0x75, 0x77, 0x3b, 0x17d, 0x75,
-0x79, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x6f, 0x3b, 0x44, 0x65, 0x65,
-0x3b, 0x17d, 0x61, 0x6e, 0x77, 0x69, 0x79, 0x65, 0x3b, 0x46, 0x65, 0x65, 0x77, 0x69, 0x72, 0x69, 0x79, 0x65, 0x3b, 0x4d,
-0x61, 0x72, 0x73, 0x69, 0x3b, 0x41, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x3b, 0x17d, 0x75, 0x77, 0x65, 0x14b,
-0x3b, 0x17d, 0x75, 0x79, 0x79, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b,
-0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x75, 0x72, 0x3b, 0x4e, 0x6f, 0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x44,
-0x65, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x17d, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x17d,
-0x3b, 0x17d, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x44, 0x41, 0x43, 0x3b, 0x44, 0x41, 0x52,
-0x3b, 0x44, 0x41, 0x44, 0x3b, 0x44, 0x41, 0x4e, 0x3b, 0x44, 0x41, 0x48, 0x3b, 0x44, 0x41, 0x55, 0x3b, 0x44, 0x41, 0x4f,
-0x3b, 0x44, 0x41, 0x42, 0x3b, 0x44, 0x4f, 0x43, 0x3b, 0x44, 0x41, 0x50, 0x3b, 0x44, 0x47, 0x49, 0x3b, 0x44, 0x41, 0x47,
-0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20,
-0x6d, 0x61, 0x72, 0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x64,
-0x65, 0x6b, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x6e, 0x67, 0x27, 0x77, 0x65, 0x6e, 0x3b, 0x44,
-0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x63, 0x68, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72,
-0x20, 0x41, 0x75, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69,
-0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x6f, 0x72, 0x6f, 0x3b, 0x44,
-0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x4f, 0x63, 0x68, 0x69, 0x6b, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61,
-0x72, 0x20, 0x41, 0x70, 0x61, 0x72, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x63,
-0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x70, 0x61, 0x72, 0x20, 0x67, 0x69,
-0x20, 0x61, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x43, 0x3b, 0x52, 0x3b, 0x44, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x55, 0x3b, 0x42,
-0x3b, 0x42, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d,
-0x61, 0x72, 0x3b, 0x49, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194,
-0x75, 0x63, 0x3b, 0x43, 0x75, 0x74, 0x3b, 0x4b, 0x1e6d, 0x75, 0x3b, 0x4e, 0x77, 0x61, 0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59,
-0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x4d, 0x61, 0x72,
-0x73, 0x3b, 0x49, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b,
-0x59, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x75, 0x74, 0x61, 0x6e, 0x62, 0x69, 0x72,
-0x3b, 0x4b, 0x1e6d, 0x75, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x77, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x44, 0x75, 0x6a, 0x61,
-0x6e, 0x62, 0x69, 0x72, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194,
-0x3b, 0x43, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x46, 0x65, 0x62,
-0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x6c, 0x69, 0x6c, 0x69, 0x3b, 0x4d,
-0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69,
-0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76,
-0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x91c, 0x93e, 0x928, 0x941, 0x935, 0x93e, 0x930,
-0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x938, 0x3b, 0x90f,
-0x92b, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x907, 0x3b, 0x906,
-0x917, 0x938, 0x94d, 0x925, 0x3b, 0x938, 0x947, 0x92c, 0x925, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x905, 0x916, 0x925, 0x92c,
-0x930, 0x3b, 0x928, 0x92c, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930,
-0x3b, 0x91c, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x3b, 0x91c, 0x941, 0x3b,
-0x906, 0x3b, 0x938, 0x947, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f, 0x3b, 0x43, 0x69, 0x6f, 0x3b, 0x4c, 0x75, 0x69, 0x3b,
-0x4c, 0x75, 0x73, 0x3b, 0x4d, 0x75, 0x75, 0x3b, 0x4c, 0x75, 0x6d, 0x3b, 0x4c, 0x75, 0x66, 0x3b, 0x4b, 0x61, 0x62, 0x3b,
-0x4c, 0x75, 0x73, 0x68, 0x3b, 0x4c, 0x75, 0x74, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x43, 0x69, 0x73,
-0x3b, 0x43, 0x69, 0x6f, 0x6e, 0x67, 0x6f, 0x3b, 0x4c, 0xf9, 0x69, 0x73, 0x68, 0x69, 0x3b, 0x4c, 0x75, 0x73, 0xf2, 0x6c,
-0x6f, 0x3b, 0x4d, 0xf9, 0x75, 0x79, 0xe0, 0x3b, 0x4c, 0x75, 0x6d, 0xf9, 0x6e, 0x67, 0xf9, 0x6c, 0xf9, 0x3b, 0x4c, 0x75,
-0x66, 0x75, 0x69, 0x6d, 0x69, 0x3b, 0x4b, 0x61, 0x62, 0xe0, 0x6c, 0xe0, 0x73, 0x68, 0xec, 0x70, 0xf9, 0x3b, 0x4c, 0xf9,
-0x73, 0x68, 0xec, 0x6b, 0xe0, 0x3b, 0x4c, 0x75, 0x74, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x67,
-0xf9, 0x64, 0x69, 0x3b, 0x4b, 0x61, 0x73, 0x77, 0xe8, 0x6b, 0xe8, 0x73, 0xe8, 0x3b, 0x43, 0x69, 0x73, 0x77, 0xe0, 0x3b,
-0x43, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b,
-0x4b, 0x3b, 0x43, 0x3b, 0x6e, 0xf9, 0x6d, 0x3b, 0x6b, 0x268, 0x7a, 0x3b, 0x74, 0x268, 0x64, 0x3b, 0x74, 0x61, 0x61, 0x3b,
-0x73, 0x65, 0x65, 0x3b, 0x6e, 0x7a, 0x75, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x66, 0x254, 0x65, 0x3b, 0x64, 0x7a, 0x75, 0x3b,
-0x6c, 0x254, 0x6d, 0x3b, 0x6b, 0x61, 0x61, 0x3b, 0x66, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300,
-0x6e, 0xf9, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6b, 0x197, 0x300, 0x7a, 0xf9, 0x294, 0x3b, 0x6e,
-0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, 0x64, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x3b, 0x6e, 0x64, 0x7a,
-0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x1ce, 0x61, 0x66, 0x289, 0x304, 0x67, 0x68, 0x101, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300,
-0x14b, 0xe8, 0x73, 0xe8, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e, 0x7a, 0xf9, 0x67, 0x68, 0xf2,
-0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x64, 0xf9, 0x6d, 0x6c, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300,
-0x14b, 0x254, 0x300, 0x6b, 0x77, 0xee, 0x66, 0x254, 0x300, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74,
-0x197, 0x300, 0x66, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x64, 0x7a, 0x75, 0x67, 0x68, 0xf9, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300,
-0x14b, 0x254, 0x300, 0x67, 0x68, 0x1d4, 0x75, 0x77, 0x65, 0x6c, 0x254, 0x300, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b,
-0x254, 0x300, 0x63, 0x68, 0x77, 0x61, 0x294, 0xe0, 0x6b, 0x61, 0x61, 0x20, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300,
-0x14b, 0xe8, 0x66, 0x77, 0xf2, 0x6f, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x74, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6b,
-0x3b, 0x66, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x63, 0x3b, 0x66, 0x3b, 0x6b, 0x254, 0x6e, 0x3b, 0x6d, 0x61, 0x63, 0x3b, 0x6d,
-0x61, 0x74, 0x3b, 0x6d, 0x74, 0x6f, 0x3b, 0x6d, 0x70, 0x75, 0x3b, 0x68, 0x69, 0x6c, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x68,
-0x69, 0x6b, 0x3b, 0x64, 0x69, 0x70, 0x3b, 0x62, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x6c, 0x69, 0x253, 0x3b, 0x4b,
-0x254, 0x6e, 0x64, 0x254, 0x14b, 0x3b, 0x4d, 0xe0, 0x63, 0x25b, 0x302, 0x6c, 0x3b, 0x4d, 0xe0, 0x74, 0xf9, 0x6d, 0x62, 0x3b,
-0x4d, 0xe0, 0x74, 0x6f, 0x70, 0x3b, 0x4d, 0x300, 0x70, 0x75, 0x79, 0x25b, 0x3b, 0x48, 0xec, 0x6c, 0xf2, 0x6e, 0x64, 0x25b,
-0x300, 0x3b, 0x4e, 0x6a, 0xe8, 0x62, 0xe0, 0x3b, 0x48, 0xec, 0x6b, 0x61, 0x14b, 0x3b, 0x44, 0xec, 0x70, 0x254, 0x300, 0x73,
-0x3b, 0x42, 0xec, 0xf2, 0xf4, 0x6d, 0x3b, 0x4d, 0xe0, 0x79, 0x25b, 0x73, 0xe8, 0x70, 0x3b, 0x4c, 0xec, 0x62, 0x75, 0x79,
-0x20, 0x6c, 0x69, 0x20, 0x144, 0x79, 0xe8, 0x65, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x68,
-0x3b, 0x6e, 0x3b, 0x68, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x6c, 0x3b, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e,
-0x3b, 0x73, 0x254, 0x14b, 0x3b, 0x64, 0x69, 0x253, 0x3b, 0x65, 0x6d, 0x69, 0x3b, 0x65, 0x73, 0x254, 0x3b, 0x6d, 0x61, 0x64,
-0x3b, 0x64, 0x69, 0x14b, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x74, 0x69, 0x6e, 0x3b, 0x65, 0x6c,
-0xe1, 0x3b, 0x64, 0x69, 0x6d, 0x254, 0x301, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x64, 0x25b, 0x3b, 0x73, 0x254, 0x14b,
-0x25b, 0x3b, 0x64, 0x69, 0x253, 0xe1, 0x253, 0xe1, 0x3b, 0x65, 0x6d, 0x69, 0x61, 0x73, 0x65, 0x6c, 0x65, 0x3b, 0x65, 0x73,
-0x254, 0x70, 0x25b, 0x73, 0x254, 0x70, 0x25b, 0x3b, 0x6d, 0x61, 0x64, 0x69, 0x253, 0x25b, 0x301, 0x64, 0xed, 0x253, 0x25b, 0x301,
-0x3b, 0x64, 0x69, 0x14b, 0x67, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x25b, 0x6b, 0x69, 0x3b, 0x6d, 0x61,
-0x79, 0xe9, 0x73, 0x25b, 0x301, 0x3b, 0x74, 0x69, 0x6e, 0xed, 0x6e, 0xed, 0x3b, 0x65, 0x6c, 0xe1, 0x14b, 0x67, 0x25b, 0x301,
-0x3b, 0x64, 0x3b, 0x14b, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x65, 0x3b, 0x65, 0x3b, 0x6d, 0x3b, 0x64, 0x3b, 0x6e, 0x3b, 0x6d,
-0x3b, 0x74, 0x3b, 0x65, 0x3b, 0x53, 0x61, 0x3b, 0x46, 0x65, 0x3b, 0x4d, 0x61, 0x3b, 0x41, 0x62, 0x3b, 0x4d, 0x65, 0x3b,
-0x53, 0x75, 0x3b, 0x53, 0xfa, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x3b, 0x4f, 0x6b, 0x3b, 0x4e, 0x6f, 0x3b, 0x44, 0x65,
-0x3b, 0x53, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x46, 0xe9, 0x62, 0x69, 0x72, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73,
-0x3b, 0x41, 0x62, 0x75, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x65, 0x14b, 0x3b, 0x53, 0xfa, 0x75,
-0x79, 0x65, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74,
-0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x61, 0x6d, 0x62,
-0x61, 0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x55, 0x3b, 0x53,
-0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6e, 0x67, 0x6f, 0x3b, 0x6e, 0x67, 0x62, 0x3b, 0x6e, 0x67, 0x6c, 0x3b, 0x6e,
-0x67, 0x6e, 0x3b, 0x6e, 0x67, 0x74, 0x3b, 0x6e, 0x67, 0x73, 0x3b, 0x6e, 0x67, 0x7a, 0x3b, 0x6e, 0x67, 0x6d, 0x3b, 0x6e,
-0x67, 0x65, 0x3b, 0x6e, 0x67, 0x61, 0x3b, 0x6e, 0x67, 0x61, 0x64, 0x3b, 0x6e, 0x67, 0x61, 0x62, 0x3b, 0x6e, 0x67, 0x254,
-0x6e, 0x20, 0x6f, 0x73, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20,
-0x6c, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6e, 0x79, 0x69, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e,
-0x20, 0x74, 0xe1, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x73, 0x61, 0x6d, 0x259, 0x6e, 0x61, 0x3b, 0x6e, 0x67,
-0x254, 0x6e, 0x20, 0x7a, 0x61, 0x6d, 0x67, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6d, 0x77, 0x6f,
-0x6d, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x65, 0x62, 0x75, 0x6c, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77,
-0xf3, 0x6d, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x64, 0x7a, 0x69, 0xe1,
-0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6f, 0x3b,
-0x62, 0x3b, 0x6c, 0x3b, 0x6e, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6d, 0x3b, 0x65, 0x3b, 0x61, 0x3b, 0x64, 0x3b,
-0x62, 0x3b, 0x14b, 0x31, 0x3b, 0x14b, 0x32, 0x3b, 0x14b, 0x33, 0x3b, 0x14b, 0x34, 0x3b, 0x14b, 0x35, 0x3b, 0x14b, 0x36, 0x3b,
-0x14b, 0x37, 0x3b, 0x14b, 0x38, 0x3b, 0x14b, 0x39, 0x3b, 0x14b, 0x31, 0x30, 0x3b, 0x14b, 0x31, 0x31, 0x3b, 0x14b, 0x31, 0x32,
-0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x20, 0x6e, 0x74, 0x254, 0x301, 0x6e, 0x74, 0x254, 0x3b, 0x14b, 0x77, 0xed, 0xed,
-0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x72,
-0xe1, 0xe1, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed,
-0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74,
-0xe1, 0x61, 0x66, 0x254, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x62, 0x25b,
-0x25b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x72, 0x61, 0x61, 0x3b, 0x14b, 0x77,
-0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61,
-0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b,
-0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x254, 0x301, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e,
-0x74, 0x25b, 0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x55, 0x6e, 0x61, 0x3b,
-0x52, 0x61, 0x72, 0x3b, 0x43, 0x68, 0x65, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x63, 0x3b, 0x53, 0x61, 0x62, 0x3b,
-0x4e, 0x61, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4d, 0x6f, 0x6a, 0x3b, 0x59, 0x65, 0x6c, 0x3b,
-0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72,
-0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x79, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77,
-0x6f, 0x20, 0x75, 0x6e, 0x65, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75,
-0x6e, 0x65, 0x63, 0x68, 0x65, 0x73, 0x68, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e,
-0x65, 0x74, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x6e,
-0x75, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x63, 0x68, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20,
-0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d,
-0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77,
-0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69,
-0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75,
-0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x79, 0x65, 0x6c, 0x27, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, 0x55, 0x3b, 0x52, 0x3b, 0x43,
-0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x46, 0x4c, 0x4f,
-0x3b, 0x43, 0x4c, 0x41, 0x3b, 0x43, 0x4b, 0x49, 0x3b, 0x46, 0x4d, 0x46, 0x3b, 0x4d, 0x41, 0x44, 0x3b, 0x4d, 0x42, 0x49,
-0x3b, 0x4d, 0x4c, 0x49, 0x3b, 0x4d, 0x41, 0x4d, 0x3b, 0x46, 0x44, 0x45, 0x3b, 0x46, 0x4d, 0x55, 0x3b, 0x46, 0x47, 0x57,
-0x3b, 0x46, 0x59, 0x55, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4c, 0x6f, 0x6f, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b,
-0x6c, 0x61, 0x14b, 0x6e, 0x65, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69,
-0x20, 0x4d, 0x61, 0x72, 0x66, 0x6f, 0x6f, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x1dd, 0x75, 0x75, 0x74, 0x1dd, 0x62, 0x69, 0x6a,
-0x61, 0x14b, 0x3b, 0x4d, 0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x66, 0x61, 0x68, 0x62, 0x69, 0x69, 0x3b, 0x4d,
-0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x6c, 0x69, 0x69, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x6d, 0x62, 0x69, 0x69,
-0x3b, 0x46, 0x129, 0x69, 0x20, 0x44, 0x1dd, 0x253, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4d, 0x75, 0x6e, 0x64,
-0x61, 0x14b, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x47, 0x77, 0x61, 0x68, 0x6c, 0x6c, 0x65, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x59,
-0x75, 0x72, 0x75, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x46, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b,
-0x45, 0x3b, 0x55, 0x3b, 0x57, 0x3b, 0x59, 0x3b, 0x6e, 0x67, 0x31, 0x3b, 0x6e, 0x67, 0x32, 0x3b, 0x6e, 0x67, 0x33, 0x3b,
-0x6e, 0x67, 0x34, 0x3b, 0x6e, 0x67, 0x35, 0x3b, 0x6e, 0x67, 0x36, 0x3b, 0x6e, 0x67, 0x37, 0x3b, 0x6e, 0x67, 0x38, 0x3b,
-0x6e, 0x67, 0x39, 0x3b, 0x6e, 0x67, 0x31, 0x30, 0x3b, 0x6e, 0x67, 0x31, 0x31, 0x3b, 0x6b, 0x72, 0x69, 0x73, 0x3b, 0x6e,
-0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6d, 0x61, 0x74, 0xe1, 0x68, 0x72, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144,
-0x6d, 0x62, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6c, 0x61, 0x6c, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e,
-0x20, 0x144, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x74, 0x61, 0x6e, 0x3b, 0x6e, 0x67, 0x77, 0x25b,
-0x6e, 0x20, 0x144, 0x74, 0x75, 0xf3, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x68, 0x25b, 0x6d, 0x62, 0x75, 0x25b, 0x72,
-0xed, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6c, 0x254, 0x6d, 0x62, 0x69, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20,
-0x72, 0x25b, 0x62, 0x76, 0x75, 0xe2, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x77, 0x75, 0x6d, 0x3b, 0x6e, 0x67, 0x77,
-0x25b, 0x6e, 0x20, 0x77, 0x75, 0x6d, 0x20, 0x6e, 0x61, 0x76, 0x16d, 0x72, 0x3b, 0x6b, 0x72, 0xed, 0x73, 0x69, 0x6d, 0x69,
-0x6e, 0x3b, 0x54, 0x69, 0x6f, 0x70, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x3b, 0x47, 0x75,
-0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x3b, 0x4b, 0x6f, 0x72, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x54, 0x68, 0x6f, 0x6f, 0x3b,
-0x54, 0x25b, 0x25b, 0x3b, 0x4c, 0x61, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x64, 0x3b, 0x54, 0x69, 0x6f, 0x70,
-0x20, 0x74, 0x68, 0x61, 0x72, 0x20, 0x70, 0x25b, 0x74, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331,
-0x14b, 0x3b, 0x47, 0x75, 0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x74, 0x3b, 0x4b, 0x6f, 0x72, 0x6e, 0x79, 0x6f, 0x6f, 0x74,
-0x3b, 0x50, 0x61, 0x79, 0x20, 0x79, 0x69, 0x65, 0x331, 0x74, 0x6e, 0x69, 0x3b, 0x54, 0x68, 0x6f, 0x331, 0x6f, 0x331, 0x72,
-0x3b, 0x54, 0x25b, 0x25b, 0x72, 0x3b, 0x4c, 0x61, 0x61, 0x74, 0x68, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x6f, 0x331,
-0x70, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x69, 0x331, 0x69, 0x331, 0x74, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x44, 0x3b, 0x47, 0x3b,
-0x44, 0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x422, 0x43e, 0x445, 0x441,
-0x3b, 0x41e, 0x43b, 0x443, 0x43d, 0x3b, 0x41a, 0x43b, 0x43d, 0x5f, 0x442, 0x442, 0x440, 0x3b, 0x41c, 0x443, 0x441, 0x5f, 0x443, 0x441,
-0x442, 0x3b, 0x42b, 0x430, 0x43c, 0x5f, 0x439, 0x43d, 0x3b, 0x411, 0x44d, 0x441, 0x5f, 0x439, 0x43d, 0x3b, 0x41e, 0x442, 0x5f, 0x439,
-0x43d, 0x3b, 0x410, 0x442, 0x440, 0x434, 0x44c, 0x5f, 0x439, 0x43d, 0x3b, 0x411, 0x43b, 0x495, 0x43d, 0x5f, 0x439, 0x43d, 0x3b, 0x410,
-0x43b, 0x442, 0x3b, 0x421, 0x44d, 0x442, 0x3b, 0x410, 0x445, 0x441, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, 0x44c, 0x443,
-0x3b, 0x41e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x41a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, 0x430, 0x440,
-0x3b, 0x41c, 0x443, 0x443, 0x441, 0x20, 0x443, 0x441, 0x442, 0x430, 0x440, 0x3b, 0x42b, 0x430, 0x43c, 0x20, 0x44b, 0x439, 0x44b, 0x43d,
-0x3b, 0x411, 0x44d, 0x441, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x41e, 0x442, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x442,
-0x44b, 0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x411, 0x430, 0x43b, 0x430, 0x495, 0x430, 0x43d, 0x20,
-0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x43b, 0x442, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x421, 0x44d, 0x442, 0x438, 0x43d, 0x43d,
-0x44c, 0x438, 0x3b, 0x410, 0x445, 0x441, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x422, 0x3b, 0x41e, 0x3b, 0x41a, 0x3b, 0x41c, 0x3b,
-0x42b, 0x3b, 0x411, 0x3b, 0x41e, 0x3b, 0x410, 0x3b, 0x411, 0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x410, 0x3b, 0x4d, 0x75, 0x70, 0x3b,
-0x4d, 0x77, 0x69, 0x3b, 0x4d, 0x73, 0x68, 0x3b, 0x4d, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x67, 0x3b, 0x4d, 0x75, 0x6a, 0x3b,
-0x4d, 0x73, 0x70, 0x3b, 0x4d, 0x70, 0x67, 0x3b, 0x4d, 0x79, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x3b, 0x4d, 0x75, 0x73, 0x3b,
-0x4d, 0x75, 0x68, 0x3b, 0x4d, 0x75, 0x70, 0x61, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x77, 0x61, 0x3b, 0x4d, 0x77, 0x69,
-0x74, 0x6f, 0x70, 0x65, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x69, 0x3b,
-0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x67, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x75, 0x6a, 0x69,
-0x6d, 0x62, 0x69, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x69, 0x70, 0x65, 0x70, 0x6f, 0x3b, 0x4d, 0x75, 0x70, 0x75, 0x67, 0x75,
-0x74, 0x6f, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x68, 0x75, 0x3b, 0x4d, 0x75,
-0x73, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x6d, 0x62, 0x77, 0x65, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x61, 0x6e, 0x6f,
-0x3b, 0x6d, 0x6b, 0x77, 0x3b, 0x6d, 0x70, 0x69, 0x3b, 0x6d, 0x74, 0x75, 0x3b, 0x6d, 0x69, 0x6e, 0x3b, 0x6d, 0x74, 0x6e,
-0x3b, 0x6d, 0x73, 0x74, 0x3b, 0x6d, 0x73, 0x62, 0x3b, 0x6d, 0x75, 0x6e, 0x3b, 0x6d, 0x74, 0x73, 0x3b, 0x6d, 0x6b, 0x75,
-0x3b, 0x6d, 0x6b, 0x6d, 0x3b, 0x6d, 0x6b, 0x62, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6b, 0x77,
-0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x6d,
-0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79,
-0x61, 0x20, 0x69, 0x6e, 0x65, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b,
-0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20,
-0x79, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x75, 0x6e,
-0x61, 0x6e, 0x65, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x6d, 0x77,
-0x65, 0x7a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20, 0x79, 0x61,
-0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x79, 0x61, 0x3b, 0x6d, 0x77, 0x65, 0x7a, 0x69, 0x20,
-0x79, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x6b, 0x3b, 0x70,
-0x3b, 0x74, 0x3b, 0x69, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x74, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6d,
-0x3b, 0xa5a8, 0xa56a, 0xa583, 0x20, 0xa51e, 0xa56e, 0x3b, 0xa552, 0xa561, 0xa59d, 0xa595, 0x3b, 0xa57e, 0xa5ba, 0x3b, 0xa5a2, 0xa595, 0x3b, 0xa591,
-0xa571, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, 0x3b, 0xa51e, 0xa60b, 0xa554, 0xa57f, 0x20,
-0xa578, 0xa583, 0xa5cf, 0x3b, 0xa5a8, 0xa56a, 0xa571, 0x20, 0xa5cf, 0xa56e, 0x3b, 0x6c, 0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6b, 0x65,
-0x6d, 0xe3, 0x3b, 0x253, 0x61, 0x6e, 0x64, 0x61, 0x253, 0x75, 0x3b, 0x76, 0x254, 0x254, 0x3b, 0x66, 0x75, 0x6c, 0x75, 0x3b,
-0x67, 0x6f, 0x6f, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x6b, 0x254, 0x6e, 0x64, 0x65, 0x3b, 0x73, 0x61, 0x61, 0x68, 0x3b, 0x67,
-0x61, 0x6c, 0x6f, 0x3b, 0x6b, 0x65, 0x6e, 0x70, 0x6b, 0x61, 0x74, 0x6f, 0x20, 0x253, 0x6f, 0x6c, 0x6f, 0x6c, 0x254, 0x3b,
-0x6c, 0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6c, 0x254, 0x6d, 0x61, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x48, 0x6f, 0x72, 0x3b,
-0x4d, 0xe4, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x42, 0x72, 0xe1, 0x3b, 0x48, 0x65, 0x69, 0x3b,
-0xd6, 0x69, 0x67, 0x3b, 0x48, 0x65, 0x72, 0x3b, 0x57, 0xed, 0x6d, 0x3b, 0x57, 0x69, 0x6e, 0x3b, 0x43, 0x68, 0x72, 0x3b,
-0x4a, 0x65, 0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x48, 0x6f, 0x72, 0x6e, 0x69, 0x67, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x65, 0x3b,
-0x41, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x6a, 0x65, 0x3b, 0x42, 0x72, 0xe1, 0x10d, 0x65, 0x74,
-0x3b, 0x48, 0x65, 0x69, 0x77, 0x65, 0x74, 0x3b, 0xd6, 0x69, 0x67, 0x161, 0x74, 0x65, 0x3b, 0x48, 0x65, 0x72, 0x62, 0x161,
-0x74, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0xed, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0x69, 0x6e, 0x74, 0x65,
-0x72, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x43, 0x68, 0x72, 0x69, 0x161, 0x74, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x4a,
-0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x48, 0x3b, 0xd6, 0x3b, 0x48, 0x3b, 0x57, 0x3b, 0x57,
-0x3b, 0x43, 0x3b, 0x6f, 0x2e, 0x31, 0x3b, 0x6f, 0x2e, 0x32, 0x3b, 0x6f, 0x2e, 0x33, 0x3b, 0x6f, 0x2e, 0x34, 0x3b, 0x6f,
-0x2e, 0x35, 0x3b, 0x6f, 0x2e, 0x36, 0x3b, 0x6f, 0x2e, 0x37, 0x3b, 0x6f, 0x2e, 0x38, 0x3b, 0x6f, 0x2e, 0x39, 0x3b, 0x6f,
-0x2e, 0x31, 0x30, 0x3b, 0x6f, 0x2e, 0x31, 0x31, 0x3b, 0x6f, 0x2e, 0x31, 0x32, 0x3b, 0x70, 0x69, 0x6b, 0xed, 0x74, 0xed,
-0x6b, 0xed, 0x74, 0x69, 0x65, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0xed, 0x20, 0xfa, 0x20, 0x6b, 0x75, 0x74, 0xfa, 0x61, 0x6e,
-0x3b, 0x73, 0x69, 0x25b, 0x79, 0x25b, 0x301, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x6e, 0x64,
-0xed, 0x25b, 0x3b, 0x254, 0x6e, 0x73, 0xfa, 0x6d, 0x62, 0x254, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20,
-0x6b, 0xe1, 0x74, 0xe1, 0x74, 0xfa, 0x25b, 0x3b, 0x6d, 0x65, 0x73, 0x69, 0x14b, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20,
-0xfa, 0x20, 0x6b, 0xe9, 0x6e, 0x69, 0x65, 0x3b, 0x65, 0x6e, 0x73, 0x69, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20,
-0xfa, 0x20, 0x6b, 0xe1, 0x74, 0xe1, 0x6e, 0x75, 0x25b, 0x3b, 0x254, 0x73, 0x254, 0x6e, 0x3b, 0x65, 0x66, 0x75, 0x74, 0x65,
-0x3b, 0x70, 0x69, 0x73, 0x75, 0x79, 0xfa, 0x3b, 0x69, 0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x254, 0x73, 0x3b,
-0x69, 0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x74, 0xfa, 0x6b, 0x2c, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20,
-0x6b, 0xe1, 0x74, 0xed, 0x25b, 0x3b, 0x6d, 0x61, 0x6b, 0x61, 0x6e, 0x64, 0x69, 0x6b, 0x25b, 0x3b, 0x70, 0x69, 0x6c, 0x254,
-0x6e, 0x64, 0x254, 0x301, 0x3b, 0x58, 0x69, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72,
-0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x58, 0x75, 0x6e, 0x3b, 0x58, 0x6e, 0x74, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74,
-0x3b, 0x4f, 0x63, 0x68, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x41, 0x76, 0x69, 0x3b, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b,
-0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b,
-0x6d, 0x61, 0x79, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x61, 0x67, 0x6f,
-0x73, 0x74, 0x75, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72,
-0x65, 0x3b, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x61, 0x76, 0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x58, 0x3b,
-0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x50, 0x3b,
-0x41, 0x3b, 0x78, 0x69, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61,
-0x79, 0x3b, 0x78, 0x75, 0x6e, 0x3b, 0x78, 0x6e, 0x74, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x63,
-0x68, 0x3b, 0x70, 0x61, 0x79, 0x3b, 0x61, 0x76, 0x69, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b,
-0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b,
-0x64, 0x27, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78,
-0x75, 0x6e, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x64, 0x27, 0x61, 0x67, 0x6f, 0x73,
-0x74, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x27, 0x6f, 0x63,
-0x68, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x27, 0x61,
-0x76, 0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x4e, 0x64, 0x75, 0x14b, 0x6d, 0x62, 0x69, 0x20, 0x53, 0x61, 0x14b, 0x3b, 0x50,
-0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x70, 0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301,
-0x74, 0xe1, 0x74, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x6b, 0x77, 0x61, 0x3b,
-0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x61, 0x74, 0x61, 0x61, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b,
-0x301, 0x6e, 0x25b, 0x301, 0x6e, 0x74, 0xfa, 0x6b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x53, 0x61, 0x61, 0x6d,
-0x62, 0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x66, 0x254, 0x6d, 0x3b, 0x50,
-0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x70, 0x66, 0xfa, 0xa78b, 0xfa, 0x3b, 0x50, 0x25b, 0x73,
-0x61, 0x14b, 0x20, 0x4e, 0x25b, 0x67, 0x25b, 0x301, 0x6d, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254,
-0x30c, 0x70, 0x6d, 0x254, 0x301, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c, 0x70, 0x70, 0xe1,
-0x3b, 0x70, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6d, 0x62, 0x69, 0x79, 0x254, 0x20, 0x6d,
-0x25b, 0x6e, 0x64, 0x6f, 0x14b, 0x67, 0x254, 0x3b, 0x4e, 0x79, 0x254, 0x6c, 0x254, 0x6d, 0x62, 0x254, 0x14b, 0x67, 0x254, 0x3b,
-0x4d, 0x254, 0x6e, 0x254, 0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4e, 0x79, 0x61, 0x14b, 0x67, 0x77, 0x25b,
-0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x75, 0x14b, 0x67, 0x77, 0x25b, 0x3b, 0x66, 0x25b, 0x3b, 0x6e,
-0x6a, 0x61, 0x70, 0x69, 0x3b, 0x6e, 0x79, 0x75, 0x6b, 0x75, 0x6c, 0x3b, 0x31, 0x31, 0x3b, 0x253, 0x75, 0x6c, 0x253, 0x75,
-0x73, 0x25b, 0x3b, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62,
-0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259,
-0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d,
-0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9,
-0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d,
-0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69,
-0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b,
-0x69, 0x6d, 0x259, 0x67, 0x20, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62,
-0xf9, 0x62, 0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69,
-0x6d, 0x259, 0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b,
-0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0,
-0x64, 0xf9, 0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b,
-0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65,
-0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65,
-0x64, 0x3b, 0x4d, 0x31, 0x3b, 0x41, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4e, 0x34, 0x3b, 0x46, 0x35, 0x3b, 0x49, 0x36, 0x3b,
-0x41, 0x37, 0x3b, 0x49, 0x38, 0x3b, 0x4b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x73, 0x61,
-0x14b, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0xf9, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6b,
-0xe0, 0x67, 0x20, 0x6e, 0x67, 0x77, 0xf3, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0x65, 0x70, 0x79, 0xe8, 0x20, 0x73,
-0x68, 0xfa, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0x73, 0x25b, 0x300,
-0x25b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x6a, 0xff, 0x6f, 0x6c, 0xe1, 0x2bc, 0x3b, 0x73, 0x61,
-0x14b, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x3b, 0x73,
-0x61, 0x14b, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x67, 0x77, 0x254, 0x300, 0x2bc, 0x20,
-0x6d, 0x62, 0xff, 0x25b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0xe0, 0x14b, 0x61, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0xe1,
-0x2bc, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6d, 0x65, 0x6a, 0x77, 0x6f, 0x14b, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0xf9,
-0x6d, 0x3b, 0x57, 0x69, 0xf3, 0x74, 0x68, 0x65, 0x21f, 0x69, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x68, 0x69, 0x79,
-0xf3, 0x21f, 0x65, 0x79, 0x75, 0x14b, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x49, 0x161, 0x74, 0xe1, 0x77, 0x69, 0x10d, 0x68,
-0x61, 0x79, 0x61, 0x7a, 0x61, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x50, 0x21f, 0x65, 0x17e, 0xed, 0x74, 0x21f, 0x6f, 0x20, 0x57,
-0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed, 0x3b, 0x57, 0xed, 0x70,
-0x61, 0x7a, 0x75, 0x6b, 0x21f, 0x61, 0x2d, 0x77, 0x61, 0x161, 0x74, 0xe9, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b,
-0x70, 0x21f, 0xe1, 0x73, 0x61, 0x70, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x73, 0xfa, 0x74, 0x21f, 0x75, 0x14b, 0x20,
-0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x1e7, 0x69, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61,
-0x14b, 0x77, 0xe1, 0x70, 0x65, 0x2d, 0x6b, 0x61, 0x73, 0x6e, 0xe1, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x6e, 0xed, 0x79,
-0x65, 0x74, 0x75, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x21f, 0x61, 0x68, 0xe9, 0x6b, 0x61, 0x70, 0x161, 0x75, 0x14b, 0x20, 0x57,
-0xed, 0x3b
+0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x65, 0x6c, 0x3b, 0x4b, 0x74, 0x169, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x4b, 0x74, 0x6e,
+0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x4b, 0x6e, 0x64, 0x3b, 0x128, 0x6b, 0x75,
+0x3b, 0x128, 0x6b, 0x6d, 0x3b, 0x128, 0x6b, 0x6c, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x62, 0x65,
+0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6c, 0x129, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20,
+0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61,
+0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77,
+0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69,
+0x20, 0x77, 0x61, 0x20, 0x6d, 0x75, 0x6f, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6e,
+0x79, 0x61, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61,
+0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20,
+0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x129, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77, 0x61,
+0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x6c, 0x129, 0x3b, 0x4d, 0x3b,
+0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x128, 0x3b, 0x128, 0x3b,
+0x128, 0x3b, 0x5a, 0x65, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x76, 0x72, 0x3b, 0x4d, 0x61,
+0x69, 0x3b, 0x4a, 0x75, 0x67, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x41, 0x76, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74,
+0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x63, 0x3b, 0x5a, 0x65, 0x6e, 0xe2, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72,
+0xe2, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0xe7, 0x3b, 0x41, 0x76, 0x72, 0xee, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75,
+0x67, 0x6e, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x41, 0x76, 0x6f, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x61,
+0x72, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69,
+0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4c,
+0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74,
+0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64,
+0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64,
+0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61,
+0x66, 0x254, 0x66, 0x129, 0x65, 0x3b, 0x64, 0x61, 0x6d, 0x61, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d,
+0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e,
+0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b,
+0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x64, 0x3b, 0x64, 0x3b, 0x74, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x6d, 0x3b, 0x73, 0x3b,
+0x64, 0x3b, 0x61, 0x3b, 0x6b, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x49, 0x61, 0x6e, 0x2e, 0x3b, 0x50, 0x65, 0x70, 0x2e, 0x3b,
+0x4d, 0x61, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x70, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x2e, 0x3b, 0x49,
+0x75, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x75, 0x2e, 0x3b, 0x4b, 0x65, 0x70, 0x2e, 0x3b, 0x2bb, 0x4f, 0x6b, 0x2e, 0x3b, 0x4e,
+0x6f, 0x77, 0x2e, 0x3b, 0x4b, 0x65, 0x6b, 0x2e, 0x3b, 0x49, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x50, 0x65, 0x70,
+0x65, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x6b, 0x69, 0x3b, 0x2bb, 0x41, 0x70, 0x65, 0x6c, 0x69,
+0x6c, 0x61, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x65, 0x3b, 0x49, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41,
+0x75, 0x6b, 0x61, 0x6b, 0x65, 0x3b, 0x4b, 0x65, 0x70, 0x61, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x2bb, 0x4f, 0x6b,
+0x61, 0x6b, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x6f, 0x77, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x4b, 0x65, 0x6b, 0x65, 0x6d,
+0x61, 0x70, 0x61, 0x3b, 0x45, 0x6e, 0x65, 0x3b, 0x50, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b,
+0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b,
+0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x50, 0x65,
+0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61,
+0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6c, 0x79, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74,
+0x6f, 0x3b, 0x53, 0x65, 0x74, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b,
+0x4e, 0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x73, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b,
+0x45, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x48, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b,
+0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d,
+0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a,
+0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x63, 0x68, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62,
+0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72,
+0x3b, 0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xa2cd, 0xa1aa, 0x3b, 0xa44d, 0xa1aa, 0x3b, 0xa315, 0xa1aa, 0x3b, 0xa1d6,
+0xa1aa, 0x3b, 0xa26c, 0xa1aa, 0x3b, 0xa0d8, 0xa1aa, 0x3b, 0xa3c3, 0xa1aa, 0x3b, 0xa246, 0xa1aa, 0x3b, 0xa22c, 0xa1aa, 0x3b, 0xa2b0, 0xa1aa, 0x3b,
+0xa2b0, 0xa2aa, 0xa1aa, 0x3b, 0xa2b0, 0xa44b, 0xa1aa, 0x3b, 0x6f, 0x111, 0x111, 0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x3b, 0x6e, 0x6a,
+0x75, 0x6b, 0x3b, 0x63, 0x75, 0x6f, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b, 0x73, 0x75, 0x6f,
+0x69, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b, 0x73, 0x6b, 0xe1,
+0x62, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x6f, 0x111, 0x111, 0x61, 0x6a, 0x61, 0x67, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75,
+0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x10d, 0x61, 0x6d,
+0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x6f, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6d, 0x69, 0x65, 0x73,
+0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b,
+0x73, 0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0xe1,
+0x6e, 0x6e, 0x75, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x67,
+0x6f, 0x74, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x6d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b,
+0x6a, 0x75, 0x6f, 0x76, 0x6c, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x4f, 0x3b, 0x47, 0x3b, 0x4e, 0x3b, 0x43, 0x3b,
+0x4d, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x10c, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x6f, 0x111, 0x111, 0x61,
+0x6a, 0x61, 0x67, 0x65, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x10d, 0x61, 0x3b, 0x63,
+0x75, 0x6f, 0x14b, 0x6f, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x73, 0x65, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x3b, 0x73,
+0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x65, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x61, 0x3b, 0x67,
+0x6f, 0x6c, 0x67, 0x67, 0x6f, 0x74, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x6d, 0x61, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0x61,
+0x3b, 0x43, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69,
+0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x43, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74,
+0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x43, 0x68, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65,
+0x62, 0x75, 0x72, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x69, 0x72, 0x69, 0x72, 0x69,
+0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x43, 0x68, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f,
+0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x61,
+0x3b, 0x4e, 0x6f, 0x62, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x43, 0x3b, 0x46,
+0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44,
+0x3b, 0x49, 0x6d, 0x62, 0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x4b, 0x61, 0x73,
+0x3b, 0x4b, 0x61, 0x72, 0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x57, 0x75, 0x6e, 0x3b, 0x49, 0x6b, 0x65, 0x3b, 0x49, 0x6b, 0x75,
+0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69,
+0x6d, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x77, 0x69,
+0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f,
+0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68,
+0x77, 0x61, 0x20, 0x6b, 0x61, 0x73, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20,
+0x6b, 0x61, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20,
+0x6d, 0x66, 0x75, 0x6e, 0x67, 0x61, 0x64, 0x65, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x77,
+0x75, 0x6e, 0x79, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b,
+0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69,
+0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20,
+0x69, 0x6d, 0x77, 0x65, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75,
+0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x77, 0x69, 0x3b, 0x49, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
+0x4b, 0x3b, 0x4d, 0x3b, 0x57, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x73, 0x69, 0x69, 0x3b, 0x63, 0x6f,
+0x6c, 0x3b, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0x65, 0x65, 0x3b, 0x64, 0x75, 0x75, 0x3b, 0x6b, 0x6f, 0x72, 0x3b, 0x6d, 0x6f,
+0x72, 0x3b, 0x6a, 0x75, 0x6b, 0x3b, 0x73, 0x6c, 0x74, 0x3b, 0x79, 0x61, 0x72, 0x3b, 0x6a, 0x6f, 0x6c, 0x3b, 0x62, 0x6f,
+0x77, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x6f, 0x3b, 0x63, 0x6f, 0x6c, 0x74, 0x65, 0x3b, 0x6d, 0x62, 0x6f, 0x6f, 0x79, 0x3b,
+0x73, 0x65, 0x65, 0x257, 0x74, 0x6f, 0x3b, 0x64, 0x75, 0x75, 0x6a, 0x61, 0x6c, 0x3b, 0x6b, 0x6f, 0x72, 0x73, 0x65, 0x3b,
+0x6d, 0x6f, 0x72, 0x73, 0x6f, 0x3b, 0x6a, 0x75, 0x6b, 0x6f, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x74, 0x6f, 0x3b, 0x79, 0x61,
+0x72, 0x6b, 0x6f, 0x6d, 0x61, 0x61, 0x3b, 0x6a, 0x6f, 0x6c, 0x61, 0x6c, 0x3b, 0x62, 0x6f, 0x77, 0x74, 0x65, 0x3b, 0x73,
+0x3b, 0x63, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x73, 0x3b, 0x79, 0x3b, 0x6a,
+0x3b, 0x62, 0x3b, 0x4a, 0x45, 0x4e, 0x3b, 0x57, 0x4b, 0x52, 0x3b, 0x57, 0x47, 0x54, 0x3b, 0x57, 0x4b, 0x4e, 0x3b, 0x57,
+0x54, 0x4e, 0x3b, 0x57, 0x54, 0x44, 0x3b, 0x57, 0x4d, 0x4a, 0x3b, 0x57, 0x4e, 0x4e, 0x3b, 0x57, 0x4b, 0x44, 0x3b, 0x57,
+0x49, 0x4b, 0x3b, 0x57, 0x4d, 0x57, 0x3b, 0x44, 0x49, 0x54, 0x3b, 0x4e, 0x6a, 0x65, 0x6e, 0x75, 0x61, 0x72, 0x129, 0x3b,
+0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20,
+0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b,
+0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b,
+0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x169, 0x3b, 0x4d,
+0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65,
+0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77,
+0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169,
+0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61,
+0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4e, 0x64, 0x69, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x4b, 0x3b,
+0x47, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x44, 0x3b,
+0x4f, 0x62, 0x6f, 0x3b, 0x57, 0x61, 0x61, 0x3b, 0x4f, 0x6b, 0x75, 0x3b, 0x4f, 0x6e, 0x67, 0x3b, 0x49, 0x6d, 0x65, 0x3b,
+0x49, 0x6c, 0x65, 0x3b, 0x53, 0x61, 0x70, 0x3b, 0x49, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x3b, 0x54, 0x6f, 0x6d, 0x3b,
+0x54, 0x6f, 0x62, 0x3b, 0x54, 0x6f, 0x77, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6f, 0x3b,
+0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c,
+0x65, 0x20, 0x6f, 0x6b, 0x75, 0x6e, 0x69, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x6e, 0x67, 0x2019,
+0x77, 0x61, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6d, 0x65, 0x74, 0x3b, 0x4c, 0x61, 0x70,
+0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6c, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x73, 0x61, 0x70,
+0x61, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x69, 0x65, 0x74, 0x3b, 0x4c, 0x61, 0x70, 0x61,
+0x20, 0x6c, 0x65, 0x20, 0x73, 0x61, 0x61, 0x6c, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d,
+0x6f, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x6f, 0x62, 0x6f,
+0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65,
+0x3b, 0x4f, 0x3b, 0x57, 0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x54,
+0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72,
+0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x74,
+0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f,
+0x3b, 0x46, 0x65, 0x76, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69,
+0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x41,
+0x75, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f, 0x74, 0x75, 0x62,
+0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x6f,
+0x3b, 0x5a, 0x69, 0x62, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x3b, 0x4d, 0x62, 0x69, 0x3b, 0x4d, 0x61, 0x62, 0x3b, 0x4e, 0x6b,
+0x77, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x3b, 0x4e, 0x63, 0x77, 0x3b, 0x4d, 0x70, 0x61, 0x6e, 0x3b,
+0x4d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x3b, 0x5a, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x6c,
+0x65, 0x6c, 0x61, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x6c, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x62, 0x69, 0x6d, 0x62, 0x69,
+0x74, 0x68, 0x6f, 0x3b, 0x4d, 0x61, 0x62, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x6b, 0x77, 0x65, 0x6e, 0x6b, 0x77, 0x65, 0x7a,
+0x69, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x6c, 0x69, 0x6b, 0x61, 0x7a,
+0x69, 0x3b, 0x4e, 0x63, 0x77, 0x61, 0x62, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4d, 0x70, 0x61, 0x6e, 0x64, 0x75, 0x6c,
+0x61, 0x3b, 0x4d, 0x66, 0x75, 0x6d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x61,
+0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x5a, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e,
+0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x31, 0x3b, 0x4d, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4d, 0x34,
+0x3b, 0x4d, 0x35, 0x3b, 0x4d, 0x36, 0x3b, 0x4d, 0x37, 0x3b, 0x4d, 0x38, 0x3b, 0x4d, 0x39, 0x3b, 0x4d, 0x31, 0x30, 0x3b,
+0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x77, 0x61,
+0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x69, 0x6c, 0x69, 0x3b, 0x4d,
+0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
+0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74,
+0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x4d, 0x77,
+0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61,
+0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b,
+0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
+0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77,
+0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c,
+0x69, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b,
+0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x3b, 0x2d49, 0x2d31,
+0x2d54, 0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x3b, 0x2d56, 0x2d53, 0x2d5b, 0x3b, 0x2d5b, 0x2d53,
+0x2d5c, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x2d30, 0x2d62, 0x2d54,
+0x3b, 0x2d31, 0x2d55, 0x2d30, 0x2d62, 0x2d55, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x2d5a, 0x3b, 0x2d49, 0x2d31, 0x2d54, 0x2d49, 0x2d54, 0x3b, 0x2d4e, 0x2d30,
+0x2d62, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x2d62, 0x2d53, 0x2d63, 0x3b, 0x2d56, 0x2d53, 0x2d5b,
+0x2d5c, 0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x2d31, 0x2d54, 0x3b, 0x2d4f, 0x2d53, 0x2d61,
+0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d49, 0x3b, 0x2d31, 0x3b, 0x2d4e,
+0x3b, 0x2d49, 0x3b, 0x2d4e, 0x3b, 0x2d62, 0x3b, 0x2d62, 0x3b, 0x2d56, 0x3b, 0x2d5b, 0x3b, 0x2d3d, 0x3b, 0x2d4f, 0x3b, 0x2d37, 0x3b, 0x69,
+0x6e, 0x6e, 0x3b, 0x62, 0x1e5b, 0x61, 0x3b, 0x6d, 0x61, 0x1e5b, 0x3b, 0x69, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x79,
+0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x263, 0x75, 0x63, 0x3b, 0x63, 0x75, 0x74, 0x3b, 0x6b, 0x74, 0x75, 0x3b, 0x6e,
+0x75, 0x77, 0x3b, 0x64, 0x75, 0x6a, 0x3b, 0x69, 0x6e, 0x6e, 0x61, 0x79, 0x72, 0x3b, 0x62, 0x1e5b, 0x61, 0x79, 0x1e5b, 0x3b,
+0x6d, 0x61, 0x1e5b, 0x1e63, 0x3b, 0x69, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x79, 0x75, 0x6e,
+0x79, 0x75, 0x3b, 0x79, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x263, 0x75, 0x63, 0x74, 0x3b, 0x63, 0x75, 0x74, 0x61, 0x6e,
+0x62, 0x69, 0x72, 0x3b, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x3b, 0x6e, 0x75, 0x77, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x64,
+0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x69, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x69, 0x3b, 0x6d, 0x3b, 0x79, 0x3b,
+0x79, 0x3b, 0x263, 0x3b, 0x63, 0x3b, 0x6b, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x46, 0x75, 0x72, 0x3b,
+0x4d, 0x65, 0x263, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b,
+0x194, 0x75, 0x63, 0x3b, 0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, 0x62, 0x3b, 0x4e, 0x75, 0x6e, 0x3b, 0x44, 0x75, 0x1e7, 0x3b,
+0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, 0x75, 0x1e5b, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x72, 0x65,
+0x73, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75,
+0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b,
+0x54, 0x75, 0x62, 0x65, 0x1e5b, 0x3b, 0x4e, 0x75, 0x6e, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75, 0x1e7, 0x65, 0x6d,
+0x62, 0x65, 0x1e5b, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194, 0x3b,
+0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4b, 0x42, 0x5a, 0x3b, 0x4b, 0x42, 0x52, 0x3b, 0x4b, 0x53, 0x54, 0x3b,
+0x4b, 0x4b, 0x4e, 0x3b, 0x4b, 0x54, 0x4e, 0x3b, 0x4b, 0x4d, 0x4b, 0x3b, 0x4b, 0x4d, 0x53, 0x3b, 0x4b, 0x4d, 0x4e, 0x3b,
+0x4b, 0x4d, 0x57, 0x3b, 0x4b, 0x4b, 0x4d, 0x3b, 0x4b, 0x4e, 0x4b, 0x3b, 0x4b, 0x4e, 0x42, 0x3b, 0x4f, 0x6b, 0x77, 0x6f,
+0x6b, 0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4f,
+0x6b, 0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x6e, 0x61, 0x3b,
+0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61,
+0x61, 0x67, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x73, 0x68, 0x61, 0x6e, 0x6a, 0x75, 0x3b, 0x4f, 0x6b, 0x77,
+0x61, 0x6d, 0x75, 0x6e, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x77, 0x65, 0x6e, 0x64, 0x61, 0x3b,
+0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20,
+0x6e, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x77, 0x65, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e,
+0x61, 0x20, 0x69, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x48, 0x75, 0x74, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x44, 0x61, 0x74, 0x3b,
+0x54, 0x61, 0x69, 0x3b, 0x48, 0x61, 0x6e, 0x3b, 0x53, 0x69, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6e, 0x3b,
+0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4b, 0x6d, 0x6a, 0x3b, 0x4b, 0x6d, 0x62, 0x3b, 0x70, 0x61, 0x20, 0x6d,
+0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x68, 0x75, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x70, 0x61, 0x20,
+0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x70, 0x61,
+0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x70,
+0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x74, 0x61, 0x69, 0x3b, 0x70,
+0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x68, 0x61, 0x6e, 0x75, 0x3b,
+0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x70,
+0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x70, 0x61,
+0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x70, 0x61, 0x20,
+0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d,
+0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77,
+0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a,
+0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69,
+0x20, 0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x48, 0x3b, 0x56, 0x3b, 0x44, 0x3b, 0x54, 0x3b, 0x48, 0x3b,
+0x53, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72,
+0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72,
+0x69, 0x6c, 0x79, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x61,
+0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b,
+0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61,
+0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x77, 0x69, 0x3b, 0x6d, 0x25b, 0x3b,
+0x7a, 0x75, 0x77, 0x3b, 0x7a, 0x75, 0x6c, 0x3b, 0x75, 0x74, 0x69, 0x3b, 0x73, 0x25b, 0x74, 0x3b, 0x254, 0x6b, 0x75, 0x3b,
+0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x77, 0x75, 0x79, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x75,
+0x72, 0x75, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x61, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x69, 0x3b,
+0x6d, 0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x25b, 0x6e, 0x3b, 0x7a, 0x75, 0x6c, 0x75, 0x79, 0x65, 0x3b, 0x75, 0x74, 0x69, 0x3b,
+0x73, 0x25b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x254, 0x6b, 0x75, 0x74, 0x254, 0x62, 0x75, 0x72, 0x75, 0x3b,
+0x6e, 0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b,
+0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x5a, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x186, 0x3b,
+0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x61, 0x69, 0x3b, 0x4b, 0x61, 0x74, 0x3b, 0x4b, 0x61, 0x6e, 0x3b,
+0x47, 0x61, 0x74, 0x3b, 0x47, 0x61, 0x6e, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x4b, 0x6e, 0x6e, 0x3b, 0x4b, 0x65, 0x6e, 0x3b,
+0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x67, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61,
+0x20, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x129, 0x72,
+0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d,
+0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77,
+0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61,
+0x74, 0x61, 0x6e, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67,
+0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e,
+0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65,
+0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61,
+0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
+0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x4b, 0x61, 0x129, 0x72, 0x129, 0x3b, 0x4d,
+0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49,
+0x3b, 0x49, 0x3b, 0x13a4, 0x13c3, 0x3b, 0x13a7, 0x13a6, 0x3b, 0x13a0, 0x13c5, 0x3b, 0x13a7, 0x13ec, 0x3b, 0x13a0, 0x13c2, 0x3b, 0x13d5, 0x13ad,
+0x3b, 0x13ab, 0x13f0, 0x3b, 0x13a6, 0x13b6, 0x3b, 0x13da, 0x13b5, 0x3b, 0x13da, 0x13c2, 0x3b, 0x13c5, 0x13d3, 0x3b, 0x13a5, 0x13cd, 0x3b, 0x13a4,
+0x13c3, 0x13b8, 0x13d4, 0x13c5, 0x3b, 0x13a7, 0x13a6, 0x13b5, 0x3b, 0x13a0, 0x13c5, 0x13f1, 0x3b, 0x13a7, 0x13ec, 0x13c2, 0x3b, 0x13a0, 0x13c2, 0x13cd,
+0x13ac, 0x13d8, 0x3b, 0x13d5, 0x13ad, 0x13b7, 0x13f1, 0x3b, 0x13ab, 0x13f0, 0x13c9, 0x13c2, 0x3b, 0x13a6, 0x13b6, 0x13c2, 0x3b, 0x13da, 0x13b5, 0x13cd,
+0x13d7, 0x3b, 0x13da, 0x13c2, 0x13c5, 0x13d7, 0x3b, 0x13c5, 0x13d3, 0x13d5, 0x13c6, 0x3b, 0x13a5, 0x13cd, 0x13a9, 0x13f1, 0x3b, 0x13a4, 0x3b, 0x13a7,
+0x3b, 0x13a0, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13d5, 0x3b, 0x13ab, 0x3b, 0x13a6, 0x3b, 0x13da, 0x3b, 0x13da, 0x3b, 0x13c5, 0x3b, 0x13a5,
+0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x76, 0x72, 0x3b, 0x6d, 0x65, 0x3b,
+0x7a, 0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b,
+0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x69,
+0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x3b, 0x7a, 0x69, 0x6e,
+0x3b, 0x7a, 0x69, 0x6c, 0x79, 0x65, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x3b, 0x6f, 0x6b,
+0x74, 0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, 0x61, 0x6d, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6d, 0x3b, 0x7a, 0x3b, 0x66, 0x3b,
+0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x7a, 0x3b, 0x7a, 0x3b, 0x6f, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b,
+0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x4e, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77,
+0x61, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x54, 0x61, 0x74, 0x75,
+0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77,
+0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20,
+0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x6d, 0x6f, 0x3b, 0x4d, 0x77, 0x65,
+0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x69, 0x76, 0x69,
+0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e,
+0x61, 0x20, 0x4d, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e,
+0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64,
+0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e,
+0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61,
+0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77,
+0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e,
+0x61, 0x20, 0x4d, 0x3b, 0x46, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4e, 0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x65,
+0x65, 0x6e, 0x64, 0x61, 0x3b, 0x49, 0x6b, 0xfa, 0x6d, 0x69, 0x3b, 0x49, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0x61, 0x6c, 0x61,
+0x3b, 0x49, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x56, 0x268, 0x268,
+0x72, 0x268, 0x3b, 0x53, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x49, 0x6e, 0x79, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x6e, 0x6f, 0x3b,
+0x53, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x289, 0x66, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4b, 0x289, 0x6e,
+0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x289, 0x6b, 0x65, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6b, 0x75,
+0x6d, 0x69, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69,
+0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4b, 0x289, 0x6d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x4b, 0x289, 0x76,
+0x268, 0x268, 0x72, 0x268, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x69,
+0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x46, 0x3b,
+0x4e, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x49, 0x3b, 0x53, 0x3b,
+0x53, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x75, 0x3b, 0x4d, 0x61,
+0x61, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x62, 0x3b, 0x4f, 0x6b,
+0x69, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b,
+0x46, 0x65, 0x62, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x41, 0x70, 0x75,
+0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x61,
+0x79, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x69, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x62, 0x75, 0x74, 0x74, 0x65, 0x6d, 0x62,
+0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44,
+0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x45,
+0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x61, 0x3b, 0x53,
+0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61,
+0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x45, 0x70,
+0x72, 0x65, 0x6f, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f,
+0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62,
+0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b,
+0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b,
+0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61,
+0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74,
+0x75, 0x3b, 0x4e, 0x75, 0x76, 0x3b, 0x44, 0x69, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x46, 0x65, 0x62,
+0x72, 0x65, 0x72, 0x75, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x75, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69,
+0x75, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x75, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x75,
+0x3b, 0x53, 0x65, 0x74, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x72, 0x75, 0x3b, 0x4e, 0x75, 0x76,
+0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x7a, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4a, 0x41, 0x4e, 0x3b, 0x46,
+0x45, 0x42, 0x3b, 0x4d, 0x41, 0x43, 0x3b, 0x128, 0x50, 0x55, 0x3b, 0x4d, 0x128, 0x128, 0x3b, 0x4e, 0x4a, 0x55, 0x3b, 0x4e,
+0x4a, 0x52, 0x3b, 0x41, 0x47, 0x41, 0x3b, 0x53, 0x50, 0x54, 0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4e, 0x4f, 0x56, 0x3b, 0x44,
+0x45, 0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x129, 0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x75, 0x61, 0x72, 0x129,
+0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x128, 0x70, 0x75, 0x72, 0x169, 0x3b, 0x4d, 0x129, 0x129, 0x3b, 0x4e, 0x6a, 0x75,
+0x6e, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x72, 0x61, 0x129, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70,
+0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x169, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61,
+0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x128, 0x3b, 0x4d, 0x3b, 0x4e,
+0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x61,
+0x74, 0x3b, 0x54, 0x61, 0x61, 0x3b, 0x49, 0x77, 0x6f, 0x3b, 0x4d, 0x61, 0x6d, 0x3b, 0x50, 0x61, 0x61, 0x3b, 0x4e, 0x67,
+0x65, 0x3b, 0x52, 0x6f, 0x6f, 0x3b, 0x42, 0x75, 0x72, 0x3b, 0x45, 0x70, 0x65, 0x3b, 0x4b, 0x70, 0x74, 0x3b, 0x4b, 0x70,
+0x61, 0x3b, 0x4d, 0x75, 0x6c, 0x67, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x2019, 0x61, 0x74, 0x79, 0x61, 0x61, 0x74, 0x6f, 0x3b,
+0x4b, 0x69, 0x70, 0x74, 0x61, 0x61, 0x6d, 0x6f, 0x3b, 0x49, 0x77, 0x6f, 0x6f, 0x74, 0x6b, 0x75, 0x75, 0x74, 0x3b, 0x4d,
+0x61, 0x6d, 0x75, 0x75, 0x74, 0x3b, 0x50, 0x61, 0x61, 0x67, 0x69, 0x3b, 0x4e, 0x67, 0x2019, 0x65, 0x69, 0x79, 0x65, 0x65,
+0x74, 0x3b, 0x52, 0x6f, 0x6f, 0x70, 0x74, 0x75, 0x69, 0x3b, 0x42, 0x75, 0x72, 0x65, 0x65, 0x74, 0x3b, 0x45, 0x70, 0x65,
+0x65, 0x73, 0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x20, 0x74, 0x61, 0x61,
+0x69, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x62, 0x6f, 0x20, 0x61, 0x65, 0x6e,
+0x67, 0x2019, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x42,
+0x3b, 0x45, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x6e, 0x69, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e,
+0x1c0, 0x67, 0xf4, 0x61, 0x62, 0x3b, 0x1c0, 0x4b, 0x68, 0x75, 0x75, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c3, 0x48, 0xf4,
+0x61, 0x1c2, 0x6b, 0x68, 0x61, 0x69, 0x62, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x69, 0x74, 0x73, 0xe2, 0x62, 0x3b, 0x47, 0x61,
+0x6d, 0x61, 0x1c0, 0x61, 0x65, 0x62, 0x3b, 0x1c2, 0x4b, 0x68, 0x6f, 0x65, 0x73, 0x61, 0x6f, 0x62, 0x3b, 0x41, 0x6f, 0x1c1,
+0x6b, 0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x54, 0x61, 0x72, 0x61, 0x1c0, 0x6b, 0x68, 0x75,
+0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c2, 0x4e, 0xfb, 0x1c1, 0x6e, 0xe2, 0x69, 0x73, 0x65, 0x62, 0x3b,
+0x1c0, 0x48, 0x6f, 0x6f, 0x1c2, 0x67, 0x61, 0x65, 0x62, 0x3b, 0x48, 0xf4, 0x61, 0x73, 0x6f, 0x72, 0x65, 0x1c1, 0x6b, 0x68,
+0xe2, 0x62, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0xe4, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x7a, 0x2e, 0x3b, 0x41, 0x70,
+0x72, 0x2e, 0x3b, 0x4d, 0xe4, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x4f, 0x75, 0x6a,
+0x2e, 0x3b, 0x53, 0xe4, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a,
+0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x65, 0x77, 0x61, 0x3b, 0x46, 0xe4, 0x62, 0x72, 0x6f, 0x77, 0x61, 0x3b, 0x4d, 0xe4,
+0xe4, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x6c, 0x3b, 0x4d, 0xe4, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b,
+0x4a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x4f, 0x75, 0x6a, 0x6f, 0xdf, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65,
+0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b,
+0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0xe4, 0x62, 0x3b, 0x4d, 0xe4, 0x7a,
+0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0xe4, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x75, 0x6a,
+0x3b, 0x53, 0xe4, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x44, 0x61, 0x6c,
+0x3b, 0x41, 0x72, 0xe1, 0x3b, 0x186, 0x25b, 0x6e, 0x3b, 0x44, 0x6f, 0x79, 0x3b, 0x4c, 0xe9, 0x70, 0x3b, 0x52, 0x6f, 0x6b,
+0x3b, 0x53, 0xe1, 0x73, 0x3b, 0x42, 0x254, 0x301, 0x72, 0x3b, 0x4b, 0xfa, 0x73, 0x3b, 0x47, 0xed, 0x73, 0x3b, 0x53, 0x68,
+0x289, 0x301, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x3b, 0x4f, 0x6c, 0x61, 0x64, 0x61, 0x6c, 0x289, 0x301, 0x3b, 0x41, 0x72, 0xe1,
+0x74, 0x3b, 0x186, 0x25b, 0x6e, 0x268, 0x301, 0x254, 0x268, 0x14b, 0x254, 0x6b, 0x3b, 0x4f, 0x6c, 0x6f, 0x64, 0x6f, 0x79, 0xed,
+0xf3, 0x72, 0xed, 0xea, 0x20, 0x69, 0x6e, 0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4f, 0x6c, 0x6f, 0x69, 0x6c, 0xe9, 0x70,
+0x16b, 0x6e, 0x79, 0x12b, 0x113, 0x20, 0x69, 0x6e, 0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4b, 0xfa, 0x6a, 0xfa, 0x254, 0x72,
+0x254, 0x6b, 0x3b, 0x4d, 0xf3, 0x72, 0x75, 0x73, 0xe1, 0x73, 0x69, 0x6e, 0x3b, 0x186, 0x6c, 0x254, 0x301, 0x268, 0x301, 0x62,
+0x254, 0x301, 0x72, 0xe1, 0x72, 0x25b, 0x3b, 0x4b, 0xfa, 0x73, 0x68, 0xee, 0x6e, 0x3b, 0x4f, 0x6c, 0x67, 0xed, 0x73, 0x61,
+0x6e, 0x3b, 0x50, 0x289, 0x73, 0x68, 0x289, 0x301, 0x6b, 0x61, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x14b, 0x289, 0x301, 0x73, 0x3b,
+0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b,
+0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b,
+0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b,
+0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b,
+0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x52, 0x61, 0x72, 0x3b,
+0x4d, 0x75, 0x6b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x44, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x6f, 0x64, 0x3b,
+0x4a, 0x6f, 0x6c, 0x3b, 0x50, 0x65, 0x64, 0x3b, 0x53, 0x6f, 0x6b, 0x3b, 0x54, 0x69, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b,
+0x50, 0x6f, 0x6f, 0x3b, 0x4f, 0x72, 0x61, 0x72, 0x61, 0x3b, 0x4f, 0x6d, 0x75, 0x6b, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d,
+0x67, 0x2019, 0x3b, 0x4f, 0x64, 0x75, 0x6e, 0x67, 0x2019, 0x65, 0x6c, 0x3b, 0x4f, 0x6d, 0x61, 0x72, 0x75, 0x6b, 0x3b, 0x4f,
+0x6d, 0x6f, 0x64, 0x6f, 0x6b, 0x2019, 0x6b, 0x69, 0x6e, 0x67, 0x2019, 0x6f, 0x6c, 0x3b, 0x4f, 0x6a, 0x6f, 0x6c, 0x61, 0x3b,
+0x4f, 0x70, 0x65, 0x64, 0x65, 0x6c, 0x3b, 0x4f, 0x73, 0x6f, 0x6b, 0x6f, 0x73, 0x6f, 0x6b, 0x6f, 0x6d, 0x61, 0x3b, 0x4f,
+0x74, 0x69, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x3b, 0x4f, 0x70, 0x6f, 0x6f, 0x3b, 0x52, 0x3b,
+0x4d, 0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4c, 0x3b,
+0x50, 0x3b, 0x17d, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x69, 0x3b, 0x4d, 0x65,
+0x3b, 0x17d, 0x75, 0x77, 0x3b, 0x17d, 0x75, 0x79, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x3b, 0x4f, 0x6b, 0x74, 0x3b,
+0x4e, 0x6f, 0x6f, 0x3b, 0x44, 0x65, 0x65, 0x3b, 0x17d, 0x61, 0x6e, 0x77, 0x69, 0x79, 0x65, 0x3b, 0x46, 0x65, 0x65, 0x77,
+0x69, 0x72, 0x69, 0x79, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x69, 0x3b, 0x41, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x3b, 0x4d,
+0x65, 0x3b, 0x17d, 0x75, 0x77, 0x65, 0x14b, 0x3b, 0x17d, 0x75, 0x79, 0x79, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b,
+0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x75, 0x72, 0x3b, 0x4e, 0x6f, 0x6f, 0x77,
+0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x44, 0x65, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x17d, 0x3b, 0x46, 0x3b,
+0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x17d, 0x3b, 0x17d, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b,
+0x44, 0x41, 0x43, 0x3b, 0x44, 0x41, 0x52, 0x3b, 0x44, 0x41, 0x44, 0x3b, 0x44, 0x41, 0x4e, 0x3b, 0x44, 0x41, 0x48, 0x3b,
+0x44, 0x41, 0x55, 0x3b, 0x44, 0x41, 0x4f, 0x3b, 0x44, 0x41, 0x42, 0x3b, 0x44, 0x4f, 0x43, 0x3b, 0x44, 0x41, 0x50, 0x3b,
+0x44, 0x47, 0x49, 0x3b, 0x44, 0x41, 0x47, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x63, 0x68, 0x69,
+0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65,
+0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x64, 0x65, 0x6b, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x6e,
+0x67, 0x2019, 0x77, 0x65, 0x6e, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x63, 0x68, 0x3b,
+0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x75, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20,
+0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20,
+0x41, 0x62, 0x6f, 0x72, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x4f, 0x63, 0x68, 0x69, 0x6b, 0x6f,
+0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x70, 0x61, 0x72, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61,
+0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20,
+0x41, 0x70, 0x61, 0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x43, 0x3b, 0x52, 0x3b, 0x44, 0x3b,
+0x4e, 0x3b, 0x42, 0x3b, 0x55, 0x3b, 0x42, 0x3b, 0x42, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x59, 0x65,
+0x6e, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x49, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75,
+0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, 0x43, 0x75, 0x74, 0x3b, 0x4b, 0x1e6d, 0x75, 0x3b, 0x4e, 0x77,
+0x61, 0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x61,
+0x79, 0x65, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x49, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75,
+0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43,
+0x75, 0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x4b, 0x1e6d, 0x75, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x77, 0x61, 0x6e, 0x62,
+0x69, 0x72, 0x3b, 0x44, 0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x49, 0x3b,
+0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194, 0x3b, 0x43, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x75,
+0x61, 0x6c, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41,
+0x70, 0x6c, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69,
+0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74,
+0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b,
+0x91c, 0x93e, 0x928, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b,
+0x92e, 0x93e, 0x930, 0x94d, 0x938, 0x3b, 0x90f, 0x92b, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b,
+0x91c, 0x941, 0x932, 0x93e, 0x907, 0x3b, 0x906, 0x917, 0x938, 0x94d, 0x925, 0x3b, 0x938, 0x947, 0x92c, 0x925, 0x947, 0x91c, 0x94d, 0x92c,
+0x93c, 0x930, 0x3b, 0x905, 0x916, 0x925, 0x92c, 0x930, 0x3b, 0x928, 0x92c, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x926, 0x93f,
+0x938, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947,
+0x3b, 0x91c, 0x941, 0x3b, 0x91c, 0x941, 0x3b, 0x906, 0x3b, 0x938, 0x947, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f, 0x3b, 0x43,
+0x69, 0x6f, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x4c, 0x75, 0x73, 0x3b, 0x4d, 0x75, 0x75, 0x3b, 0x4c, 0x75, 0x6d, 0x3b, 0x4c,
+0x75, 0x66, 0x3b, 0x4b, 0x61, 0x62, 0x3b, 0x4c, 0x75, 0x73, 0x68, 0x3b, 0x4c, 0x75, 0x74, 0x3b, 0x4c, 0x75, 0x6e, 0x3b,
+0x4b, 0x61, 0x73, 0x3b, 0x43, 0x69, 0x73, 0x3b, 0x43, 0x69, 0x6f, 0x6e, 0x67, 0x6f, 0x3b, 0x4c, 0xf9, 0x69, 0x73, 0x68,
+0x69, 0x3b, 0x4c, 0x75, 0x73, 0xf2, 0x6c, 0x6f, 0x3b, 0x4d, 0xf9, 0x75, 0x79, 0xe0, 0x3b, 0x4c, 0x75, 0x6d, 0xf9, 0x6e,
+0x67, 0xf9, 0x6c, 0xf9, 0x3b, 0x4c, 0x75, 0x66, 0x75, 0x69, 0x6d, 0x69, 0x3b, 0x4b, 0x61, 0x62, 0xe0, 0x6c, 0xe0, 0x73,
+0x68, 0xec, 0x70, 0xf9, 0x3b, 0x4c, 0xf9, 0x73, 0x68, 0xec, 0x6b, 0xe0, 0x3b, 0x4c, 0x75, 0x74, 0x6f, 0x6e, 0x67, 0x6f,
+0x6c, 0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x67, 0xf9, 0x64, 0x69, 0x3b, 0x4b, 0x61, 0x73, 0x77, 0xe8, 0x6b, 0xe8, 0x73, 0xe8,
+0x3b, 0x43, 0x69, 0x73, 0x77, 0xe0, 0x3b, 0x43, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b,
+0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d,
+0xe4, 0x65, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41,
+0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a,
+0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x65, 0x72, 0x7a, 0x3b,
+0x41, 0x62, 0x72, 0xeb, 0x6c, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69,
+0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b,
+0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d,
+0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x65, 0x2e, 0x3b, 0x41,
+0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75,
+0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65,
+0x7a, 0x2e, 0x3b, 0x6e, 0xf9, 0x6d, 0x3b, 0x6b, 0x268, 0x7a, 0x3b, 0x74, 0x268, 0x64, 0x3b, 0x74, 0x61, 0x61, 0x3b, 0x73,
+0x65, 0x65, 0x3b, 0x6e, 0x7a, 0x75, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x66, 0x254, 0x65, 0x3b, 0x64, 0x7a, 0x75, 0x3b, 0x6c,
+0x254, 0x6d, 0x3b, 0x6b, 0x61, 0x61, 0x3b, 0x66, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e,
+0xf9, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6b, 0x197, 0x300, 0x7a, 0xf9, 0x294, 0x3b, 0x6e, 0x64,
+0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, 0x64, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x3b, 0x6e, 0x64, 0x7a, 0x254,
+0x300, 0x14b, 0x254, 0x300, 0x74, 0x1ce, 0x61, 0x66, 0x289, 0x304, 0x67, 0x68, 0x101, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b,
+0xe8, 0x73, 0xe8, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e, 0x7a, 0xf9, 0x67, 0x68, 0xf2, 0x3b,
+0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x64, 0xf9, 0x6d, 0x6c, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b,
+0x254, 0x300, 0x6b, 0x77, 0xee, 0x66, 0x254, 0x300, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197,
+0x300, 0x66, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x64, 0x7a, 0x75, 0x67, 0x68, 0xf9, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b,
+0x254, 0x300, 0x67, 0x68, 0x1d4, 0x75, 0x77, 0x65, 0x6c, 0x254, 0x300, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254,
+0x300, 0x63, 0x68, 0x77, 0x61, 0x294, 0xe0, 0x6b, 0x61, 0x61, 0x20, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b,
+0xe8, 0x66, 0x77, 0xf2, 0x6f, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x74, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6b, 0x3b,
+0x66, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x63, 0x3b, 0x66, 0x3b, 0x6b, 0x254, 0x6e, 0x3b, 0x6d, 0x61, 0x63, 0x3b, 0x6d, 0x61,
+0x74, 0x3b, 0x6d, 0x74, 0x6f, 0x3b, 0x6d, 0x70, 0x75, 0x3b, 0x68, 0x69, 0x6c, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x68, 0x69,
+0x6b, 0x3b, 0x64, 0x69, 0x70, 0x3b, 0x62, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x6c, 0x69, 0x253, 0x3b, 0x4b, 0x254,
+0x6e, 0x64, 0x254, 0x14b, 0x3b, 0x4d, 0xe0, 0x63, 0x25b, 0x302, 0x6c, 0x3b, 0x4d, 0xe0, 0x74, 0xf9, 0x6d, 0x62, 0x3b, 0x4d,
+0xe0, 0x74, 0x6f, 0x70, 0x3b, 0x4d, 0x300, 0x70, 0x75, 0x79, 0x25b, 0x3b, 0x48, 0xec, 0x6c, 0xf2, 0x6e, 0x64, 0x25b, 0x300,
+0x3b, 0x4e, 0x6a, 0xe8, 0x62, 0xe0, 0x3b, 0x48, 0xec, 0x6b, 0x61, 0x14b, 0x3b, 0x44, 0xec, 0x70, 0x254, 0x300, 0x73, 0x3b,
+0x42, 0xec, 0xf2, 0xf4, 0x6d, 0x3b, 0x4d, 0xe0, 0x79, 0x25b, 0x73, 0xe8, 0x70, 0x3b, 0x4c, 0xec, 0x62, 0x75, 0x79, 0x20,
+0x6c, 0x69, 0x20, 0x144, 0x79, 0xe8, 0x65, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x68, 0x3b,
+0x6e, 0x3b, 0x68, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x6c, 0x3b, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x3b,
+0x73, 0x254, 0x14b, 0x3b, 0x64, 0x69, 0x253, 0x3b, 0x65, 0x6d, 0x69, 0x3b, 0x65, 0x73, 0x254, 0x3b, 0x6d, 0x61, 0x64, 0x3b,
+0x64, 0x69, 0x14b, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x74, 0x69, 0x6e, 0x3b, 0x65, 0x6c, 0xe1,
+0x3b, 0x64, 0x69, 0x6d, 0x254, 0x301, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x64, 0x25b, 0x3b, 0x73, 0x254, 0x14b, 0x25b,
+0x3b, 0x64, 0x69, 0x253, 0xe1, 0x253, 0xe1, 0x3b, 0x65, 0x6d, 0x69, 0x61, 0x73, 0x65, 0x6c, 0x65, 0x3b, 0x65, 0x73, 0x254,
+0x70, 0x25b, 0x73, 0x254, 0x70, 0x25b, 0x3b, 0x6d, 0x61, 0x64, 0x69, 0x253, 0x25b, 0x301, 0x64, 0xed, 0x253, 0x25b, 0x301, 0x3b,
+0x64, 0x69, 0x14b, 0x67, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x25b, 0x6b, 0x69, 0x3b, 0x6d, 0x61, 0x79,
+0xe9, 0x73, 0x25b, 0x301, 0x3b, 0x74, 0x69, 0x6e, 0xed, 0x6e, 0xed, 0x3b, 0x65, 0x6c, 0xe1, 0x14b, 0x67, 0x25b, 0x301, 0x3b,
+0x64, 0x3b, 0x14b, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x65, 0x3b, 0x65, 0x3b, 0x6d, 0x3b, 0x64, 0x3b, 0x6e, 0x3b, 0x6d, 0x3b,
+0x74, 0x3b, 0x65, 0x3b, 0x53, 0x61, 0x3b, 0x46, 0x65, 0x3b, 0x4d, 0x61, 0x3b, 0x41, 0x62, 0x3b, 0x4d, 0x65, 0x3b, 0x53,
+0x75, 0x3b, 0x53, 0xfa, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x3b, 0x4f, 0x6b, 0x3b, 0x4e, 0x6f, 0x3b, 0x44, 0x65, 0x3b,
+0x53, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x46, 0xe9, 0x62, 0x69, 0x72, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b,
+0x41, 0x62, 0x75, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x65, 0x14b, 0x3b, 0x53, 0xfa, 0x75, 0x79,
+0x65, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f,
+0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x61,
+0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x55, 0x3b, 0x53, 0x3b,
+0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6e, 0x67, 0x6f, 0x3b, 0x6e, 0x67, 0x62, 0x3b, 0x6e, 0x67, 0x6c, 0x3b, 0x6e, 0x67,
+0x6e, 0x3b, 0x6e, 0x67, 0x74, 0x3b, 0x6e, 0x67, 0x73, 0x3b, 0x6e, 0x67, 0x7a, 0x3b, 0x6e, 0x67, 0x6d, 0x3b, 0x6e, 0x67,
+0x65, 0x3b, 0x6e, 0x67, 0x61, 0x3b, 0x6e, 0x67, 0x61, 0x64, 0x3b, 0x6e, 0x67, 0x61, 0x62, 0x3b, 0x6e, 0x67, 0x254, 0x6e,
+0x20, 0x6f, 0x73, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6c,
+0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6e, 0x79, 0x69, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20,
+0x74, 0xe1, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x73, 0x61, 0x6d, 0x259, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254,
+0x6e, 0x20, 0x7a, 0x61, 0x6d, 0x67, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6d, 0x77, 0x6f, 0x6d,
+0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x65, 0x62, 0x75, 0x6c, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3,
+0x6d, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x64, 0x7a, 0x69, 0xe1, 0x3b,
+0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6f, 0x3b, 0x62,
+0x3b, 0x6c, 0x3b, 0x6e, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6d, 0x3b, 0x65, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x62,
+0x3b, 0x14b, 0x31, 0x3b, 0x14b, 0x32, 0x3b, 0x14b, 0x33, 0x3b, 0x14b, 0x34, 0x3b, 0x14b, 0x35, 0x3b, 0x14b, 0x36, 0x3b, 0x14b,
+0x37, 0x3b, 0x14b, 0x38, 0x3b, 0x14b, 0x39, 0x3b, 0x14b, 0x31, 0x30, 0x3b, 0x14b, 0x31, 0x31, 0x3b, 0x14b, 0x31, 0x32, 0x3b,
+0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x20, 0x6e, 0x74, 0x254, 0x301, 0x6e, 0x74, 0x254, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20,
+0x61, 0x6b, 0x1dd, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x72, 0xe1,
+0xe1, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20,
+0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1,
+0x61, 0x66, 0x254, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x62, 0x25b, 0x25b,
+0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x72, 0x61, 0x61, 0x3b, 0x14b, 0x77, 0xed,
+0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b,
+0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b,
+0x20, 0x64, 0x69, 0x20, 0x62, 0x254, 0x301, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74,
+0x25b, 0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x55, 0x6e, 0x61, 0x3b, 0x52,
+0x61, 0x72, 0x3b, 0x43, 0x68, 0x65, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x63, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e,
+0x61, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4d, 0x6f, 0x6a, 0x3b, 0x59, 0x65, 0x6c, 0x3b, 0x4d,
+0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69,
+0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x79, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f,
+0x20, 0x75, 0x6e, 0x65, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e,
+0x65, 0x63, 0x68, 0x65, 0x73, 0x68, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65,
+0x74, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x75,
+0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x63, 0x68, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x73,
+0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77,
+0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f,
+0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20,
+0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d,
+0x69, 0x20, 0x6e, 0x61, 0x20, 0x79, 0x65, 0x6c, 0x2019, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, 0x55, 0x3b, 0x52, 0x3b, 0x43, 0x3b,
+0x54, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x46, 0x4c, 0x4f, 0x3b,
+0x43, 0x4c, 0x41, 0x3b, 0x43, 0x4b, 0x49, 0x3b, 0x46, 0x4d, 0x46, 0x3b, 0x4d, 0x41, 0x44, 0x3b, 0x4d, 0x42, 0x49, 0x3b,
+0x4d, 0x4c, 0x49, 0x3b, 0x4d, 0x41, 0x4d, 0x3b, 0x46, 0x44, 0x45, 0x3b, 0x46, 0x4d, 0x55, 0x3b, 0x46, 0x47, 0x57, 0x3b,
+0x46, 0x59, 0x55, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4c, 0x6f, 0x6f, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c,
+0x61, 0x14b, 0x6e, 0x65, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20,
+0x4d, 0x61, 0x72, 0x66, 0x6f, 0x6f, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x1dd, 0x75, 0x75, 0x74, 0x1dd, 0x62, 0x69, 0x6a, 0x61,
+0x14b, 0x3b, 0x4d, 0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x66, 0x61, 0x68, 0x62, 0x69, 0x69, 0x3b, 0x4d, 0x61,
+0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x6c, 0x69, 0x69, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x6d, 0x62, 0x69, 0x69, 0x3b,
+0x46, 0x129, 0x69, 0x20, 0x44, 0x1dd, 0x253, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4d, 0x75, 0x6e, 0x64, 0x61,
+0x14b, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x47, 0x77, 0x61, 0x68, 0x6c, 0x6c, 0x65, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x59, 0x75,
+0x72, 0x75, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x46, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x45,
+0x3b, 0x55, 0x3b, 0x57, 0x3b, 0x59, 0x3b, 0x6e, 0x67, 0x31, 0x3b, 0x6e, 0x67, 0x32, 0x3b, 0x6e, 0x67, 0x33, 0x3b, 0x6e,
+0x67, 0x34, 0x3b, 0x6e, 0x67, 0x35, 0x3b, 0x6e, 0x67, 0x36, 0x3b, 0x6e, 0x67, 0x37, 0x3b, 0x6e, 0x67, 0x38, 0x3b, 0x6e,
+0x67, 0x39, 0x3b, 0x6e, 0x67, 0x31, 0x30, 0x3b, 0x6e, 0x67, 0x31, 0x31, 0x3b, 0x6b, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x67,
+0x77, 0x25b, 0x6e, 0x20, 0x6d, 0x61, 0x74, 0xe1, 0x68, 0x72, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6d,
+0x62, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6c, 0x61, 0x6c, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20,
+0x144, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x74, 0x61, 0x6e, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e,
+0x20, 0x144, 0x74, 0x75, 0xf3, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x68, 0x25b, 0x6d, 0x62, 0x75, 0x25b, 0x72, 0xed,
+0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6c, 0x254, 0x6d, 0x62, 0x69, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x72,
+0x25b, 0x62, 0x76, 0x75, 0xe2, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x77, 0x75, 0x6d, 0x3b, 0x6e, 0x67, 0x77, 0x25b,
+0x6e, 0x20, 0x77, 0x75, 0x6d, 0x20, 0x6e, 0x61, 0x76, 0x1d4, 0x72, 0x3b, 0x6b, 0x72, 0xed, 0x73, 0x69, 0x6d, 0x69, 0x6e,
+0x3b, 0x54, 0x69, 0x6f, 0x70, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x3b, 0x47, 0x75, 0x61,
+0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x3b, 0x4b, 0x6f, 0x72, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x54, 0x68, 0x6f, 0x6f, 0x3b, 0x54,
+0x25b, 0x25b, 0x3b, 0x4c, 0x61, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x64, 0x3b, 0x54, 0x69, 0x6f, 0x70, 0x20,
+0x74, 0x68, 0x61, 0x72, 0x20, 0x70, 0x25b, 0x74, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x14b,
+0x3b, 0x47, 0x75, 0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x74, 0x3b, 0x4b, 0x6f, 0x72, 0x6e, 0x79, 0x6f, 0x6f, 0x74, 0x3b,
+0x50, 0x61, 0x79, 0x20, 0x79, 0x69, 0x65, 0x331, 0x74, 0x6e, 0x69, 0x3b, 0x54, 0x68, 0x6f, 0x331, 0x6f, 0x331, 0x72, 0x3b,
+0x54, 0x25b, 0x25b, 0x72, 0x3b, 0x4c, 0x61, 0x61, 0x74, 0x68, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x6f, 0x331, 0x70,
+0x20, 0x69, 0x6e, 0x20, 0x64, 0x69, 0x331, 0x69, 0x331, 0x74, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x44,
+0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x3b,
+0x41e, 0x43b, 0x443, 0x43d, 0x3b, 0x41a, 0x43b, 0x43d, 0x5f, 0x442, 0x442, 0x440, 0x3b, 0x41c, 0x443, 0x441, 0x5f, 0x443, 0x441, 0x442,
+0x3b, 0x42b, 0x430, 0x43c, 0x5f, 0x439, 0x43d, 0x3b, 0x411, 0x44d, 0x441, 0x5f, 0x439, 0x43d, 0x3b, 0x41e, 0x442, 0x5f, 0x439, 0x43d,
+0x3b, 0x410, 0x442, 0x440, 0x434, 0x44c, 0x5f, 0x439, 0x43d, 0x3b, 0x411, 0x43b, 0x495, 0x43d, 0x5f, 0x439, 0x43d, 0x3b, 0x410, 0x43b,
+0x442, 0x3b, 0x421, 0x44d, 0x442, 0x3b, 0x410, 0x445, 0x441, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b,
+0x41e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x41a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, 0x430, 0x440, 0x3b,
+0x41c, 0x443, 0x443, 0x441, 0x20, 0x443, 0x441, 0x442, 0x430, 0x440, 0x3b, 0x42b, 0x430, 0x43c, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b,
+0x411, 0x44d, 0x441, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x41e, 0x442, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x442, 0x44b,
+0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x411, 0x430, 0x43b, 0x430, 0x495, 0x430, 0x43d, 0x20, 0x44b,
+0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x43b, 0x442, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x421, 0x44d, 0x442, 0x438, 0x43d, 0x43d, 0x44c,
+0x438, 0x3b, 0x410, 0x445, 0x441, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x422, 0x3b, 0x41e, 0x3b, 0x41a, 0x3b, 0x41c, 0x3b, 0x42b,
+0x3b, 0x411, 0x3b, 0x41e, 0x3b, 0x410, 0x3b, 0x411, 0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x410, 0x3b, 0x4d, 0x75, 0x70, 0x3b, 0x4d,
+0x77, 0x69, 0x3b, 0x4d, 0x73, 0x68, 0x3b, 0x4d, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x67, 0x3b, 0x4d, 0x75, 0x6a, 0x3b, 0x4d,
+0x73, 0x70, 0x3b, 0x4d, 0x70, 0x67, 0x3b, 0x4d, 0x79, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x3b, 0x4d, 0x75, 0x73, 0x3b, 0x4d,
+0x75, 0x68, 0x3b, 0x4d, 0x75, 0x70, 0x61, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x77, 0x61, 0x3b, 0x4d, 0x77, 0x69, 0x74,
+0x6f, 0x70, 0x65, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4d,
+0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x67, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x75, 0x6a, 0x69, 0x6d,
+0x62, 0x69, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x69, 0x70, 0x65, 0x70, 0x6f, 0x3b, 0x4d, 0x75, 0x70, 0x75, 0x67, 0x75, 0x74,
+0x6f, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x68, 0x75, 0x3b, 0x4d, 0x75, 0x73,
+0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x6d, 0x62, 0x77, 0x65, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x61, 0x6e, 0x6f, 0x3b,
+0xa5a8, 0xa56a, 0xa583, 0x20, 0xa51e, 0xa56e, 0x3b, 0xa552, 0xa561, 0xa59d, 0xa595, 0x3b, 0xa57e, 0xa5ba, 0x3b, 0xa5a2, 0xa595, 0x3b, 0xa591, 0xa571,
+0x3b, 0x36, 0x3b, 0x37, 0x3b, 0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, 0x3b, 0xa51e, 0xa60b, 0xa554, 0xa57f, 0x20, 0xa578,
+0xa583, 0xa5cf, 0x3b, 0xa5a8, 0xa56a, 0xa571, 0x20, 0xa5cf, 0xa56e, 0x3b, 0x6c, 0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6b, 0x65, 0x6d,
+0xe3, 0x3b, 0x253, 0x61, 0x6e, 0x64, 0x61, 0x253, 0x75, 0x3b, 0x76, 0x254, 0x254, 0x3b, 0x66, 0x75, 0x6c, 0x75, 0x3b, 0x67,
+0x6f, 0x6f, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x6b, 0x254, 0x6e, 0x64, 0x65, 0x3b, 0x73, 0x61, 0x61, 0x68, 0x3b, 0x67, 0x61,
+0x6c, 0x6f, 0x3b, 0x6b, 0x65, 0x6e, 0x70, 0x6b, 0x61, 0x74, 0x6f, 0x20, 0x253, 0x6f, 0x6c, 0x6f, 0x6c, 0x254, 0x3b, 0x6c,
+0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6c, 0x254, 0x6d, 0x61, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x48, 0x6f, 0x72, 0x3b, 0x4d,
+0xe4, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x42, 0x72, 0xe1, 0x3b, 0x48, 0x65, 0x69, 0x3b, 0xd6,
+0x69, 0x67, 0x3b, 0x48, 0x65, 0x72, 0x3b, 0x57, 0xed, 0x6d, 0x3b, 0x57, 0x69, 0x6e, 0x3b, 0x43, 0x68, 0x72, 0x3b, 0x4a,
+0x65, 0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x48, 0x6f, 0x72, 0x6e, 0x69, 0x67, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x65, 0x3b, 0x41,
+0x62, 0x72, 0x69, 0x6c, 0x6c, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x6a, 0x65, 0x3b, 0x42, 0x72, 0xe1, 0x10d, 0x65, 0x74, 0x3b,
+0x48, 0x65, 0x69, 0x77, 0x65, 0x74, 0x3b, 0xd6, 0x69, 0x67, 0x161, 0x74, 0x65, 0x3b, 0x48, 0x65, 0x72, 0x62, 0x161, 0x74,
+0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0xed, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0x69, 0x6e, 0x74, 0x65, 0x72,
+0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x43, 0x68, 0x72, 0x69, 0x161, 0x74, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x4a, 0x3b,
+0x48, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x48, 0x3b, 0xd6, 0x3b, 0x48, 0x3b, 0x57, 0x3b, 0x57, 0x3b,
+0x43, 0x3b, 0x6f, 0x2e, 0x31, 0x3b, 0x6f, 0x2e, 0x32, 0x3b, 0x6f, 0x2e, 0x33, 0x3b, 0x6f, 0x2e, 0x34, 0x3b, 0x6f, 0x2e,
+0x35, 0x3b, 0x6f, 0x2e, 0x36, 0x3b, 0x6f, 0x2e, 0x37, 0x3b, 0x6f, 0x2e, 0x38, 0x3b, 0x6f, 0x2e, 0x39, 0x3b, 0x6f, 0x2e,
+0x31, 0x30, 0x3b, 0x6f, 0x2e, 0x31, 0x31, 0x3b, 0x6f, 0x2e, 0x31, 0x32, 0x3b, 0x70, 0x69, 0x6b, 0xed, 0x74, 0xed, 0x6b,
+0xed, 0x74, 0x69, 0x65, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0xed, 0x20, 0xfa, 0x20, 0x6b, 0x75, 0x74, 0xfa, 0x61, 0x6e, 0x3b,
+0x73, 0x69, 0x25b, 0x79, 0x25b, 0x301, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x6e, 0x64, 0xed,
+0x25b, 0x3b, 0x254, 0x6e, 0x73, 0xfa, 0x6d, 0x62, 0x254, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b,
+0xe1, 0x74, 0xe1, 0x74, 0xfa, 0x25b, 0x3b, 0x6d, 0x65, 0x73, 0x69, 0x14b, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa,
+0x20, 0x6b, 0xe9, 0x6e, 0x69, 0x65, 0x3b, 0x65, 0x6e, 0x73, 0x69, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa,
+0x20, 0x6b, 0xe1, 0x74, 0xe1, 0x6e, 0x75, 0x25b, 0x3b, 0x254, 0x73, 0x254, 0x6e, 0x3b, 0x65, 0x66, 0x75, 0x74, 0x65, 0x3b,
+0x70, 0x69, 0x73, 0x75, 0x79, 0xfa, 0x3b, 0x69, 0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x254, 0x73, 0x3b, 0x69,
+0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x74, 0xfa, 0x6b, 0x2c, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b,
+0xe1, 0x74, 0xed, 0x25b, 0x3b, 0x6d, 0x61, 0x6b, 0x61, 0x6e, 0x64, 0x69, 0x6b, 0x25b, 0x3b, 0x70, 0x69, 0x6c, 0x254, 0x6e,
+0x64, 0x254, 0x301, 0x3b, 0x58, 0x69, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b,
+0x4d, 0x61, 0x79, 0x3b, 0x58, 0x75, 0x6e, 0x3b, 0x58, 0x6e, 0x74, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b,
+0x4f, 0x63, 0x68, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x41, 0x76, 0x69, 0x3b, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x66,
+0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d,
+0x61, 0x79, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x61, 0x67, 0x6f, 0x73,
+0x74, 0x75, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72, 0x65,
+0x3b, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x61, 0x76, 0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x58, 0x3b, 0x46,
+0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x50, 0x3b, 0x41,
+0x3b, 0x78, 0x69, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79,
+0x3b, 0x78, 0x75, 0x6e, 0x3b, 0x78, 0x6e, 0x74, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x63, 0x68,
+0x3b, 0x70, 0x61, 0x79, 0x3b, 0x61, 0x76, 0x69, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x64,
+0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x64,
+0x2019, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75,
+0x6e, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x64, 0x2019, 0x61, 0x67, 0x6f, 0x73, 0x74,
+0x75, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x68,
+0x6f, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x2019, 0x61, 0x76,
+0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x4e, 0x64, 0x75, 0x14b, 0x6d, 0x62, 0x69, 0x20, 0x53, 0x61, 0x14b, 0x3b, 0x50, 0x25b,
+0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x70, 0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x74,
+0xe1, 0x74, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x6b, 0x77, 0x61, 0x3b, 0x50,
+0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x61, 0x74, 0x61, 0x61, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301,
+0x6e, 0x25b, 0x301, 0x6e, 0x74, 0xfa, 0x6b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x53, 0x61, 0x61, 0x6d, 0x62,
+0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x66, 0x254, 0x6d, 0x3b, 0x50, 0x25b,
+0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x70, 0x66, 0xfa, 0xa78b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61,
+0x14b, 0x20, 0x4e, 0x25b, 0x67, 0x25b, 0x301, 0x6d, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c,
+0x70, 0x6d, 0x254, 0x301, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c, 0x70, 0x70, 0xe1, 0x3b,
+0x70, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6d, 0x62, 0x69, 0x79, 0x254, 0x20, 0x6d, 0x25b,
+0x6e, 0x64, 0x6f, 0x14b, 0x67, 0x254, 0x3b, 0x4e, 0x79, 0x254, 0x6c, 0x254, 0x6d, 0x62, 0x254, 0x14b, 0x67, 0x254, 0x3b, 0x4d,
+0x254, 0x6e, 0x254, 0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4e, 0x79, 0x61, 0x14b, 0x67, 0x77, 0x25b, 0x20,
+0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x75, 0x14b, 0x67, 0x77, 0x25b, 0x3b, 0x66, 0x25b, 0x3b, 0x6e, 0x6a,
+0x61, 0x70, 0x69, 0x3b, 0x6e, 0x79, 0x75, 0x6b, 0x75, 0x6c, 0x3b, 0x31, 0x31, 0x3b, 0x253, 0x75, 0x6c, 0x253, 0x75, 0x73,
+0x25b, 0x3b, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62, 0xec,
+0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259, 0x67,
+0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d, 0x259,
+0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9, 0x6d,
+0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d, 0x259,
+0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69, 0x6d,
+0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b, 0x69,
+0x6d, 0x259, 0x67, 0x20, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9,
+0x62, 0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d,
+0x259, 0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69,
+0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64,
+0xf9, 0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69,
+0x6d, 0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b,
+0x69, 0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64,
+0x3b, 0x4d, 0x31, 0x3b, 0x41, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4e, 0x34, 0x3b, 0x46, 0x35, 0x3b, 0x49, 0x36, 0x3b, 0x41,
+0x37, 0x3b, 0x49, 0x38, 0x3b, 0x4b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x73, 0x61, 0x14b,
+0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0xf9, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6b, 0xe0,
+0x67, 0x20, 0x6e, 0x67, 0x77, 0xf3, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0x65, 0x70, 0x79, 0xe8, 0x20, 0x73, 0x68,
+0xfa, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0x73, 0x25b, 0x300, 0x25b,
+0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x6a, 0xff, 0x6f, 0x6c, 0xe1, 0x2bc, 0x3b, 0x73, 0x61, 0x14b,
+0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x3b, 0x73, 0x61,
+0x14b, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x67, 0x77, 0x254, 0x300, 0x2bc, 0x20, 0x6d,
+0x62, 0xff, 0x25b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0xe0, 0x14b, 0x61, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0xe1, 0x2bc,
+0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6d, 0x65, 0x6a, 0x77, 0x6f, 0x14b, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0xf9, 0x6d,
+0x3b, 0x57, 0x69, 0xf3, 0x74, 0x68, 0x65, 0x21f, 0x69, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x68, 0x69, 0x79, 0xf3,
+0x21f, 0x65, 0x79, 0x75, 0x14b, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x49, 0x161, 0x74, 0xe1, 0x77, 0x69, 0x10d, 0x68, 0x61,
+0x79, 0x61, 0x7a, 0x61, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x50, 0x21f, 0x65, 0x17e, 0xed, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed,
+0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed, 0x3b, 0x57, 0xed, 0x70, 0x61,
+0x7a, 0x75, 0x6b, 0x21f, 0x61, 0x2d, 0x77, 0x61, 0x161, 0x74, 0xe9, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x70,
+0x21f, 0xe1, 0x73, 0x61, 0x70, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x73, 0xfa, 0x74, 0x21f, 0x75, 0x14b, 0x20, 0x57,
+0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x1e7, 0x69, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b,
+0x77, 0xe1, 0x70, 0x65, 0x2d, 0x6b, 0x61, 0x73, 0x6e, 0xe1, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x6e, 0xed, 0x79, 0x65,
+0x74, 0x75, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x21f, 0x61, 0x68, 0xe9, 0x6b, 0x61, 0x70, 0x161, 0x75, 0x14b, 0x20, 0x57, 0xed,
+0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a,
+0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74,
+0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72,
+0x75, 0x61, 0x72, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a,
+0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65,
+0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x77, 0x65,
+0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66,
+0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x2e, 0x3b, 0x6a,
+0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f,
+0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72,
+0x61, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72,
+0x79, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6c, 0x69,
+0x6a, 0x61, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61,
+0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65,
+0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, 0x72, 0x3b, 0x61,
+0x70, 0x72, 0x3b, 0x6d, 0x65, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73,
+0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61,
+0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c,
+0x3b, 0x6d, 0x65, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x77,
+0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62,
+0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72,
+0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e,
+0x3b, 0x6d, 0x65, 0x6a, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, 0x67, 0x2e,
+0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e,
+0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x6d, 0x11b,
+0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x61, 0x3b, 0x6d, 0x65, 0x6a, 0x65, 0x3b, 0x6a, 0x75, 0x6e, 0x69,
+0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x61, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65,
+0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x77, 0x65,
+0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x75, 0x111, 0x111, 0xe2, 0x69, 0x76,
+0x65, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6b, 0x75, 0x6f, 0x76, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6e, 0x6a,
+0x75, 0x68, 0x10d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0xe1, 0x14b, 0x75, 0x69, 0x6d, 0xe1, 0xe1, 0x6e,
+0x75, 0x3b, 0x76, 0x79, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6b, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1,
+0x6e, 0x75, 0x3b, 0x73, 0x79, 0x65, 0x69, 0x6e, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x70, 0x6f, 0x72, 0x67, 0x65,
+0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x10d, 0x6f, 0x68, 0x10d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x72, 0x6f, 0x6f,
+0x76, 0x76, 0xe2, 0x64, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x73, 0x6b, 0x61, 0x6d, 0x6d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e,
+0x75, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b
};
static const ushort days_data[] = {
@@ -3500,1247 +3674,1239 @@ static const ushort days_data[] = {
0x3b, 0x51, 0x69, 0x62, 0x3b, 0x52, 0x6f, 0x62, 0x3b, 0x4b, 0x61, 0x6d, 0x3b, 0x4a, 0x69, 0x6d, 0x3b, 0x53, 0x61, 0x6e,
0x3b, 0x44, 0x69, 0x6c, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x57, 0x69, 0x69, 0x78, 0x61, 0x74, 0x61, 0x3b, 0x51, 0x69, 0x62,
0x78, 0x61, 0x74, 0x61, 0x3b, 0x52, 0x6f, 0x6f, 0x62, 0x69, 0x69, 0x3b, 0x4b, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x61, 0x3b,
-0x4a, 0x69, 0x6d, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x53, 0x61, 0x6e, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x63, 0x61, 0x3b,
-0x45, 0x74, 0x6c, 0x3b, 0x54, 0x61, 0x6c, 0x3b, 0x41, 0x72, 0x62, 0x3b, 0x4b, 0x61, 0x6d, 0x3b, 0x47, 0x75, 0x6d, 0x3b,
-0x53, 0x61, 0x62, 0x3b, 0x41, 0x63, 0x61, 0x61, 0x64, 0x61, 0x3b, 0x45, 0x74, 0x6c, 0x65, 0x65, 0x6e, 0x69, 0x3b, 0x54,
-0x61, 0x6c, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x72, 0x62, 0x61, 0x71, 0x61, 0x3b, 0x4b, 0x61, 0x6d, 0x69, 0x69, 0x73,
-0x69, 0x3b, 0x47, 0x75, 0x6d, 0x71, 0x61, 0x74, 0x61, 0x3b, 0x53, 0x61, 0x62, 0x74, 0x69, 0x3b, 0x41, 0x3b, 0x45, 0x3b,
-0x54, 0x3b, 0x41, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x53, 0x6f, 0x3b, 0x4d, 0x61, 0x3b, 0x44, 0x69, 0x3b, 0x57,
-0x6f, 0x3b, 0x44, 0x6f, 0x3b, 0x56, 0x72, 0x3b, 0x53, 0x61, 0x3b, 0x53, 0x6f, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x4d, 0x61,
-0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x44, 0x69, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x57, 0x6f, 0x65, 0x6e, 0x73, 0x64,
-0x61, 0x67, 0x3b, 0x44, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x56, 0x72, 0x79, 0x64, 0x61, 0x67, 0x3b,
-0x53, 0x61, 0x74, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x56,
-0x3b, 0x53, 0x3b, 0x44, 0x69, 0x65, 0x3b, 0x48, 0xeb, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0xeb, 0x72, 0x3b, 0x45,
-0x6e, 0x6a, 0x3b, 0x50, 0x72, 0x65, 0x3b, 0x53, 0x68, 0x74, 0x3b, 0x65, 0x20, 0x64, 0x69, 0x65, 0x6c, 0x3b, 0x65, 0x20,
-0x68, 0xeb, 0x6e, 0xeb, 0x3b, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x74, 0xeb, 0x3b, 0x65, 0x20, 0x6d, 0xeb, 0x72, 0x6b, 0x75,
-0x72, 0xeb, 0x3b, 0x65, 0x20, 0x65, 0x6e, 0x6a, 0x74, 0x65, 0x3b, 0x65, 0x20, 0x70, 0x72, 0x65, 0x6d, 0x74, 0x65, 0x3b,
-0x65, 0x20, 0x73, 0x68, 0x74, 0x75, 0x6e, 0xeb, 0x3b, 0x44, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x50,
-0x3b, 0x53, 0x3b, 0x12a5, 0x1211, 0x12f5, 0x3b, 0x1230, 0x129e, 0x3b, 0x121b, 0x12ad, 0x1230, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1210, 0x1219,
-0x1235, 0x3b, 0x12d3, 0x122d, 0x1265, 0x3b, 0x1245, 0x12f3, 0x121c, 0x3b, 0x12a5, 0x1211, 0x12f5, 0x3b, 0x1230, 0x129e, 0x3b, 0x121b, 0x12ad, 0x1230,
-0x129e, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1210, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1265, 0x3b, 0x1245, 0x12f3, 0x121c, 0x3b, 0x12a5, 0x3b,
-0x1230, 0x3b, 0x121b, 0x3b, 0x1228, 0x3b, 0x1210, 0x3b, 0x12d3, 0x3b, 0x1245, 0x3b, 0x627, 0x644, 0x623, 0x62d, 0x62f, 0x3b, 0x627, 0x644,
-0x627, 0x62b, 0x646, 0x64a, 0x646, 0x3b, 0x627, 0x644, 0x62b, 0x644, 0x627, 0x62b, 0x627, 0x621, 0x3b, 0x627, 0x644, 0x623, 0x631, 0x628,
-0x639, 0x627, 0x621, 0x3b, 0x627, 0x644, 0x62e, 0x645, 0x64a, 0x633, 0x3b, 0x627, 0x644, 0x62c, 0x645, 0x639, 0x629, 0x3b, 0x627, 0x644,
-0x633, 0x628, 0x62a, 0x3b, 0x62d, 0x3b, 0x646, 0x3b, 0x62b, 0x3b, 0x631, 0x3b, 0x62e, 0x3b, 0x62c, 0x3b, 0x633, 0x3b, 0x56f, 0x56b,
-0x580, 0x3b, 0x565, 0x580, 0x56f, 0x3b, 0x565, 0x580, 0x584, 0x3b, 0x579, 0x580, 0x584, 0x3b, 0x570, 0x576, 0x563, 0x3b, 0x578, 0x582,
-0x580, 0x3b, 0x577, 0x562, 0x569, 0x3b, 0x56f, 0x56b, 0x580, 0x561, 0x56f, 0x56b, 0x3b, 0x565, 0x580, 0x56f, 0x578, 0x582, 0x577, 0x561,
-0x562, 0x569, 0x56b, 0x3b, 0x565, 0x580, 0x565, 0x584, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x579, 0x578, 0x580, 0x565, 0x584, 0x577,
-0x561, 0x562, 0x569, 0x56b, 0x3b, 0x570, 0x56b, 0x576, 0x563, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x578, 0x582, 0x580, 0x562, 0x561,
-0x569, 0x3b, 0x577, 0x561, 0x562, 0x561, 0x569, 0x3b, 0x53f, 0x3b, 0x535, 0x3b, 0x535, 0x3b, 0x549, 0x3b, 0x540, 0x3b, 0x548, 0x582,
-0x3b, 0x547, 0x3b, 0x9f0, 0x9ac, 0x9bf, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x3b, 0x9ae, 0x999, 0x9cd, 0x997, 0x9b2, 0x3b, 0x9ac, 0x9c1, 0x9a7,
-0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7, 0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9f0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x3b,
-0x9a6, 0x9c7, 0x993, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9ae, 0x999, 0x9cd, 0x997, 0x9b2, 0x9ac,
-0x9be, 0x9f0, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7, 0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x9ac, 0x9be,
-0x9f0, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9f0, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x42, 0x2e,
-0x3b, 0x42, 0x2e, 0x45, 0x2e, 0x3b, 0xc7, 0x2e, 0x41, 0x2e, 0x3b, 0xc7, 0x2e, 0x3b, 0x43, 0x2e, 0x41, 0x2e, 0x3b, 0x43,
-0x3b, 0x15e, 0x2e, 0x3b, 0x62, 0x61, 0x7a, 0x61, 0x72, 0x3b, 0x62, 0x61, 0x7a, 0x61, 0x72, 0x20, 0x65, 0x72, 0x74, 0x259,
-0x73, 0x69, 0x3b, 0xe7, 0x259, 0x72, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x20, 0x61, 0x78, 0x15f, 0x61, 0x6d, 0x131, 0x3b, 0xe7,
-0x259, 0x72, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x3b, 0x63, 0xfc, 0x6d, 0x259, 0x20, 0x61, 0x78, 0x15f, 0x61, 0x6d, 0x131, 0x3b,
-0x63, 0xfc, 0x6d, 0x259, 0x3b, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x3b, 0x431, 0x430, 0x437, 0x430, 0x440, 0x3b, 0x431, 0x430, 0x437,
-0x430, 0x440, 0x20, 0x435, 0x440, 0x442, 0x4d9, 0x441, 0x438, 0x3b, 0x447, 0x4d9, 0x440, 0x448, 0x4d9, 0x43d, 0x431, 0x4d9, 0x20, 0x430,
-0x445, 0x448, 0x430, 0x43c, 0x44b, 0x3b, 0x447, 0x4d9, 0x440, 0x448, 0x4d9, 0x43d, 0x431, 0x4d9, 0x3b, 0x4b9, 0x4af, 0x43c, 0x4d9, 0x20,
-0x430, 0x445, 0x448, 0x430, 0x43c, 0x44b, 0x3b, 0x4b9, 0x4af, 0x43c, 0x4d9, 0x3b, 0x448, 0x4d9, 0x43d, 0x431, 0x4d9, 0x3b, 0x69, 0x67,
-0x2e, 0x3b, 0x61, 0x6c, 0x2e, 0x3b, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x2e, 0x3b, 0x6f, 0x67, 0x2e, 0x3b, 0x6f, 0x72,
-0x2e, 0x3b, 0x6c, 0x72, 0x2e, 0x3b, 0x69, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x73, 0x74, 0x65, 0x6c, 0x65,
-0x68, 0x65, 0x6e, 0x61, 0x3b, 0x61, 0x73, 0x74, 0x65, 0x61, 0x72, 0x74, 0x65, 0x61, 0x3b, 0x61, 0x73, 0x74, 0x65, 0x61,
-0x7a, 0x6b, 0x65, 0x6e, 0x61, 0x3b, 0x6f, 0x73, 0x74, 0x65, 0x67, 0x75, 0x6e, 0x61, 0x3b, 0x6f, 0x73, 0x74, 0x69, 0x72,
-0x61, 0x6c, 0x61, 0x3b, 0x6c, 0x61, 0x72, 0x75, 0x6e, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x41, 0x3b,
-0x41, 0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x4c, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x3b, 0x9ae, 0x999, 0x9cd, 0x997,
-0x9b2, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b8, 0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9b0,
-0x3b, 0x9b6, 0x9a8, 0x9bf, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ae,
-0x999, 0x9cd, 0x997, 0x9b2, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7, 0x9cd,
-0x9aa, 0x9a4, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9b0, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x9ac,
-0x9be, 0x9b0, 0x3b, 0x9b0, 0x3b, 0x9b8, 0x9cb, 0x3b, 0x9ae, 0x3b, 0x9ac, 0x9c1, 0x3b, 0x9ac, 0x9c3, 0x3b, 0x9b6, 0x9c1, 0x3b, 0x9b6,
-0x3b, 0xf5f, 0xfb3, 0xf0b, 0x3b, 0xf58, 0xf72, 0xf62, 0xf0b, 0x3b, 0xf63, 0xfb7, 0xf42, 0xf0b, 0x3b, 0xf55, 0xf74, 0xf62, 0xf0b, 0x3b,
-0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0xf0b, 0x3b, 0xf49, 0xf72, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf5f,
-0xfb3, 0xf0b, 0xf56, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf58, 0xf72, 0xf42, 0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b, 0xf42, 0xf5f,
-0xf60, 0xf0b, 0xf63, 0xfb7, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56, 0xf74, 0xf0b,
-0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf54, 0xf0b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf66, 0xfa4, 0xf7a, 0xf53,
-0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf49, 0xf72, 0xf0b, 0xf58, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0x3b, 0xf58, 0xf72, 0xf62,
-0x3b, 0xf63, 0xfb7, 0xf42, 0x3b, 0xf55, 0xf74, 0xf62, 0x3b, 0xf66, 0xf44, 0xfb6, 0x3b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0x3b, 0xf49, 0xf72,
-0x3b, 0x73, 0x75, 0x6c, 0x3b, 0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x65, 0x75, 0x2e, 0x3b, 0x6d, 0x65, 0x72, 0x2e, 0x3b, 0x79,
-0x61, 0x6f, 0x75, 0x3b, 0x67, 0x77, 0x65, 0x2e, 0x3b, 0x73, 0x61, 0x64, 0x2e, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x75,
-0x6e, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x4d, 0x65, 0x72, 0x63, 0x2bc, 0x68, 0x65, 0x72, 0x3b, 0x59, 0x61,
-0x6f, 0x75, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x53, 0x61, 0x64, 0x6f, 0x72, 0x6e, 0x3b, 0x73, 0x75, 0x3b,
-0x6c, 0x75, 0x3b, 0x6d, 0x7a, 0x3b, 0x6d, 0x63, 0x3b, 0x79, 0x61, 0x3b, 0x67, 0x77, 0x3b, 0x73, 0x61, 0x3b, 0x43d, 0x434,
-0x3b, 0x43f, 0x43d, 0x3b, 0x432, 0x442, 0x3b, 0x441, 0x440, 0x3b, 0x447, 0x442, 0x3b, 0x43f, 0x442, 0x3b, 0x441, 0x431, 0x3b, 0x43d,
-0x435, 0x434, 0x435, 0x43b, 0x44f, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x43d, 0x438, 0x43a, 0x3b, 0x432, 0x442, 0x43e,
-0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x441, 0x440, 0x44f, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x44a, 0x440, 0x442, 0x44a, 0x43a,
-0x3b, 0x43f, 0x435, 0x442, 0x44a, 0x43a, 0x3b, 0x441, 0x44a, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x432, 0x3b,
-0x441, 0x3b, 0x447, 0x3b, 0x43f, 0x3b, 0x441, 0x3b, 0x1010, 0x1014, 0x1004, 0x103a, 0x1039, 0x1002, 0x1014, 0x103d, 0x1031, 0x3b, 0x1010, 0x1014,
-0x1004, 0x103a, 0x1039, 0x101c, 0x102c, 0x3b, 0x1021, 0x1004, 0x103a, 0x1039, 0x1002, 0x102b, 0x3b, 0x1017, 0x102f, 0x1012, 0x1039, 0x1013, 0x101f, 0x1030,
-0x1038, 0x3b, 0x1000, 0x103c, 0x102c, 0x101e, 0x1015, 0x1010, 0x1031, 0x1038, 0x3b, 0x101e, 0x1031, 0x102c, 0x1000, 0x103c, 0x102c, 0x3b, 0x1005, 0x1014,
-0x1031, 0x3b, 0x1010, 0x3b, 0x1010, 0x3b, 0x1021, 0x3b, 0x1017, 0x3b, 0x1000, 0x3b, 0x101e, 0x3b, 0x1005, 0x3b, 0x43d, 0x434, 0x3b, 0x43f,
-0x43d, 0x3b, 0x430, 0x45e, 0x3b, 0x441, 0x440, 0x3b, 0x447, 0x446, 0x3b, 0x43f, 0x442, 0x3b, 0x441, 0x431, 0x3b, 0x43d, 0x44f, 0x434,
-0x437, 0x435, 0x43b, 0x44f, 0x3b, 0x43f, 0x430, 0x43d, 0x44f, 0x434, 0x437, 0x435, 0x43b, 0x430, 0x43a, 0x3b, 0x430, 0x45e, 0x442, 0x43e,
-0x440, 0x430, 0x43a, 0x3b, 0x441, 0x435, 0x440, 0x430, 0x434, 0x430, 0x3b, 0x447, 0x430, 0x446, 0x432, 0x435, 0x440, 0x3b, 0x43f, 0x44f,
-0x442, 0x43d, 0x456, 0x446, 0x430, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x430, 0x3b, 0x441,
-0x3b, 0x447, 0x3b, 0x43f, 0x3b, 0x441, 0x3b, 0x17a2, 0x17b6, 0x1791, 0x17b7, 0x178f, 0x17d2, 0x1799, 0x3b, 0x1785, 0x1793, 0x17d2, 0x1791, 0x3b,
-0x17a2, 0x1784, 0x17d2, 0x1782, 0x17b6, 0x179a, 0x3b, 0x1796, 0x17bb, 0x1792, 0x3b, 0x1796, 0x17d2, 0x179a, 0x17a0, 0x179f, 0x17d2, 0x1794, 0x178f, 0x17b7,
-0x17cd, 0x3b, 0x179f, 0x17bb, 0x1780, 0x17d2, 0x179a, 0x3b, 0x179f, 0x17c5, 0x179a, 0x17cd, 0x3b, 0x31, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34,
-0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x64, 0x67, 0x2e, 0x3b, 0x64, 0x6c, 0x2e, 0x3b, 0x64, 0x74, 0x2e, 0x3b, 0x64,
-0x63, 0x2e, 0x3b, 0x64, 0x6a, 0x2e, 0x3b, 0x64, 0x76, 0x2e, 0x3b, 0x64, 0x73, 0x2e, 0x3b, 0x64, 0x69, 0x75, 0x6d, 0x65,
-0x6e, 0x67, 0x65, 0x3b, 0x64, 0x69, 0x6c, 0x6c, 0x75, 0x6e, 0x73, 0x3b, 0x64, 0x69, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b,
-0x64, 0x69, 0x6d, 0x65, 0x63, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x69, 0x6a, 0x6f, 0x75, 0x73, 0x3b, 0x64, 0x69, 0x76, 0x65,
-0x6e, 0x64, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x69, 0x73, 0x73, 0x61, 0x62, 0x74, 0x65, 0x3b, 0x64, 0x67, 0x3b, 0x64, 0x6c,
-0x3b, 0x64, 0x74, 0x3b, 0x64, 0x63, 0x3b, 0x64, 0x6a, 0x3b, 0x64, 0x76, 0x3b, 0x64, 0x73, 0x3b, 0x5468, 0x65e5, 0x3b, 0x5468,
-0x4e00, 0x3b, 0x5468, 0x4e8c, 0x3b, 0x5468, 0x4e09, 0x3b, 0x5468, 0x56db, 0x3b, 0x5468, 0x4e94, 0x3b, 0x5468, 0x516d, 0x3b, 0x661f, 0x671f, 0x65e5,
-0x3b, 0x661f, 0x671f, 0x4e00, 0x3b, 0x661f, 0x671f, 0x4e8c, 0x3b, 0x661f, 0x671f, 0x4e09, 0x3b, 0x661f, 0x671f, 0x56db, 0x3b, 0x661f, 0x671f, 0x4e94,
-0x3b, 0x661f, 0x671f, 0x516d, 0x3b, 0x65e5, 0x3b, 0x4e00, 0x3b, 0x4e8c, 0x3b, 0x4e09, 0x3b, 0x56db, 0x3b, 0x4e94, 0x3b, 0x516d, 0x3b, 0x9031,
-0x65e5, 0x3b, 0x9031, 0x4e00, 0x3b, 0x9031, 0x4e8c, 0x3b, 0x9031, 0x4e09, 0x3b, 0x9031, 0x56db, 0x3b, 0x9031, 0x4e94, 0x3b, 0x9031, 0x516d, 0x3b,
-0x6e, 0x65, 0x64, 0x3b, 0x70, 0x6f, 0x6e, 0x3b, 0x75, 0x74, 0x6f, 0x3b, 0x73, 0x72, 0x69, 0x3b, 0x10d, 0x65, 0x74, 0x3b,
-0x70, 0x65, 0x74, 0x3b, 0x73, 0x75, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x6a, 0x65, 0x6c, 0x6a, 0x61, 0x3b, 0x70, 0x6f, 0x6e,
-0x65, 0x64, 0x6a, 0x65, 0x6c, 0x6a, 0x61, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x6b, 0x3b, 0x73, 0x72, 0x69, 0x6a,
-0x65, 0x64, 0x61, 0x3b, 0x10d, 0x65, 0x74, 0x76, 0x72, 0x74, 0x61, 0x6b, 0x3b, 0x70, 0x65, 0x74, 0x61, 0x6b, 0x3b, 0x73,
-0x75, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x6e, 0x3b, 0x70, 0x3b, 0x75, 0x3b, 0x73, 0x3b, 0x10d, 0x3b, 0x70, 0x3b, 0x73, 0x3b,
-0x4e, 0x3b, 0x50, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x10c, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x6e, 0x65, 0x3b, 0x70, 0x6f, 0x3b,
-0xfa, 0x74, 0x3b, 0x73, 0x74, 0x3b, 0x10d, 0x74, 0x3b, 0x70, 0xe1, 0x3b, 0x73, 0x6f, 0x3b, 0x6e, 0x65, 0x64, 0x11b, 0x6c,
-0x65, 0x3b, 0x70, 0x6f, 0x6e, 0x64, 0x11b, 0x6c, 0xed, 0x3b, 0xfa, 0x74, 0x65, 0x72, 0xfd, 0x3b, 0x73, 0x74, 0x159, 0x65,
-0x64, 0x61, 0x3b, 0x10d, 0x74, 0x76, 0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0xe1, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x6f, 0x62,
-0x6f, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x50, 0x3b, 0xda, 0x3b, 0x53, 0x3b, 0x10c, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x73, 0xf8,
-0x6e, 0x3b, 0x6d, 0x61, 0x6e, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x66, 0x72,
-0x65, 0x3b, 0x6c, 0xf8, 0x72, 0x3b, 0x73, 0xf8, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b,
-0x74, 0x69, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x6f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64,
-0x61, 0x67, 0x3b, 0x66, 0x72, 0x65, 0x64, 0x61, 0x67, 0x3b, 0x6c, 0xf8, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d,
-0x3b, 0x54, 0x3b, 0x4f, 0x3b, 0x54, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x73, 0xf8, 0x6e, 0x2e, 0x3b, 0x6d, 0x61, 0x6e, 0x2e,
-0x3b, 0x74, 0x69, 0x72, 0x2e, 0x3b, 0x6f, 0x6e, 0x73, 0x2e, 0x3b, 0x74, 0x6f, 0x72, 0x2e, 0x3b, 0x66, 0x72, 0x65, 0x2e,
-0x3b, 0x6c, 0xf8, 0x72, 0x2e, 0x3b, 0x7a, 0x6f, 0x3b, 0x6d, 0x61, 0x3b, 0x64, 0x69, 0x3b, 0x77, 0x6f, 0x3b, 0x64, 0x6f,
-0x3b, 0x76, 0x72, 0x3b, 0x7a, 0x61, 0x3b, 0x7a, 0x6f, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x6d, 0x61, 0x61, 0x6e, 0x64, 0x61,
-0x67, 0x3b, 0x64, 0x69, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x77, 0x6f, 0x65, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x64,
-0x6f, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x76, 0x72, 0x69, 0x6a, 0x64, 0x61, 0x67, 0x3b, 0x7a, 0x61, 0x74,
-0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x5a, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x56, 0x3b, 0x5a, 0x3b,
-0xd801, 0xdc1d, 0xd801, 0xdc32, 0xd801, 0xdc4c, 0x3b, 0xd801, 0xdc23, 0xd801, 0xdc32, 0xd801, 0xdc4c, 0x3b, 0xd801, 0xdc13, 0xd801, 0xdc2d, 0xd801, 0xdc46,
-0x3b, 0xd801, 0xdc0e, 0xd801, 0xdc2f, 0xd801, 0xdc4c, 0x3b, 0xd801, 0xdc1b, 0xd801, 0xdc32, 0xd801, 0xdc49, 0x3b, 0xd801, 0xdc19, 0xd801, 0xdc49, 0xd801,
-0xdc34, 0x3b, 0xd801, 0xdc1d, 0xd801, 0xdc30, 0xd801, 0xdc3b, 0x3b, 0xd801, 0xdc1d, 0xd801, 0xdc32, 0xd801, 0xdc4c, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b,
-0xd801, 0xdc23, 0xd801, 0xdc32, 0xd801, 0xdc4c, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc13, 0xd801, 0xdc2d, 0xd801, 0xdc46, 0xd801, 0xdc3c, 0xd801,
-0xdc29, 0x3b, 0xd801, 0xdc0e, 0xd801, 0xdc2f, 0xd801, 0xdc4c, 0xd801, 0xdc46, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc1b, 0xd801, 0xdc32, 0xd801,
-0xdc49, 0xd801, 0xdc46, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc19, 0xd801, 0xdc49, 0xd801, 0xdc34, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b, 0xd801,
-0xdc1d, 0xd801, 0xdc30, 0xd801, 0xdc3b, 0xd801, 0xdc32, 0xd801, 0xdc49, 0xd801, 0xdc3c, 0xd801, 0xdc29, 0x3b, 0xd801, 0xdc1d, 0x3b, 0xd801, 0xdc23, 0x3b,
-0xd801, 0xdc13, 0x3b, 0xd801, 0xdc0e, 0x3b, 0xd801, 0xdc1b, 0x3b, 0xd801, 0xdc19, 0x3b, 0xd801, 0xdc1d, 0x3b, 0x50, 0x3b, 0x45, 0x3b, 0x54,
-0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x4c, 0x3b, 0x70, 0xfc, 0x68, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x65, 0x73,
-0x6d, 0x61, 0x73, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x74, 0x65, 0x69, 0x73, 0x69, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x6b, 0x6f,
-0x6c, 0x6d, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x6e, 0x65, 0x6c, 0x6a, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x72, 0x65,
-0x65, 0x64, 0x65, 0x3b, 0x6c, 0x61, 0x75, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x73, 0x75, 0x6e, 0x3b, 0x6d, 0xe1, 0x6e, 0x3b,
-0x74, 0xfd, 0x73, 0x3b, 0x6d, 0x69, 0x6b, 0x3b, 0x68, 0xf3, 0x73, 0x3b, 0x66, 0x72, 0xed, 0x3b, 0x6c, 0x65, 0x79, 0x3b,
-0x73, 0x75, 0x6e, 0x6e, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0xe1, 0x6e, 0x61, 0x64, 0x61, 0x67, 0x75, 0x72,
-0x3b, 0x74, 0xfd, 0x73, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0x69, 0x6b, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b,
-0x68, 0xf3, 0x73, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x66, 0x72, 0xed, 0x67, 0x67, 0x6a, 0x61, 0x64, 0x61, 0x67, 0x75,
-0x72, 0x3b, 0x6c, 0x65, 0x79, 0x67, 0x61, 0x72, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54, 0x3b,
-0x4d, 0x3b, 0x48, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x73, 0x75, 0x3b, 0x6d, 0x61, 0x3b, 0x74, 0x69, 0x3b, 0x6b, 0x65, 0x3b,
-0x74, 0x6f, 0x3b, 0x70, 0x65, 0x3b, 0x6c, 0x61, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x6d,
-0x61, 0x61, 0x6e, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x74, 0x69, 0x69, 0x73, 0x74, 0x61, 0x69, 0x3b, 0x6b, 0x65, 0x73,
-0x6b, 0x69, 0x76, 0x69, 0x69, 0x6b, 0x6b, 0x6f, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x74, 0x61, 0x69, 0x3b, 0x70, 0x65, 0x72,
-0x6a, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x6c, 0x61, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x53, 0x3b, 0x4d, 0x3b,
-0x54, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x4c, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-0x61, 0x3b, 0x6d, 0x61, 0x61, 0x6e, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x74, 0x69, 0x69, 0x73, 0x74, 0x61,
-0x69, 0x6e, 0x61, 0x3b, 0x6b, 0x65, 0x73, 0x6b, 0x69, 0x76, 0x69, 0x69, 0x6b, 0x6b, 0x6f, 0x6e, 0x61, 0x3b, 0x74, 0x6f,
-0x72, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x70, 0x65, 0x72, 0x6a, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b,
-0x6c, 0x61, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x64, 0x69, 0x6d, 0x2e, 0x3b, 0x6c, 0x75, 0x6e, 0x2e,
-0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x72, 0x2e, 0x3b, 0x6a, 0x65, 0x75, 0x2e, 0x3b, 0x76, 0x65, 0x6e, 0x2e,
-0x3b, 0x73, 0x61, 0x6d, 0x2e, 0x3b, 0x64, 0x69, 0x6d, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x3b, 0x6c, 0x75, 0x6e, 0x64, 0x69,
-0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x65, 0x72, 0x63, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x6a, 0x65, 0x75, 0x64,
-0x69, 0x3b, 0x76, 0x65, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x73, 0x61, 0x6d, 0x65, 0x64, 0x69, 0x3b, 0x44, 0x3b,
-0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x44, 0x69, 0x44, 0x3b, 0x44, 0x69, 0x4c, 0x3b,
-0x44, 0x69, 0x4d, 0x3b, 0x44, 0x69, 0x43, 0x3b, 0x44, 0x69, 0x61, 0x3b, 0x44, 0x69, 0x68, 0x3b, 0x44, 0x69, 0x53, 0x3b,
-0x44, 0x69, 0x44, 0xf2, 0x6d, 0x68, 0x6e, 0x61, 0x69, 0x63, 0x68, 0x3b, 0x44, 0x69, 0x4c, 0x75, 0x61, 0x69, 0x6e, 0x3b,
-0x44, 0x69, 0x4d, 0xe0, 0x69, 0x72, 0x74, 0x3b, 0x44, 0x69, 0x43, 0x69, 0x61, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x44, 0x69,
-0x61, 0x72, 0x64, 0x61, 0x6f, 0x69, 0x6e, 0x3b, 0x44, 0x69, 0x68, 0x41, 0x6f, 0x69, 0x6e, 0x65, 0x3b, 0x44, 0x69, 0x53,
-0x61, 0x74, 0x68, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x48,
-0x3b, 0x53, 0x3b, 0x44, 0x6f, 0x6d, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0xe9, 0x72, 0x3b, 0x58,
-0x6f, 0x76, 0x3b, 0x56, 0x65, 0x6e, 0x3b, 0x53, 0xe1, 0x62, 0x3b, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x4c,
-0x75, 0x6e, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x4d, 0xe9, 0x72, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x3b,
-0x58, 0x6f, 0x76, 0x65, 0x73, 0x3b, 0x56, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x3b, 0x53, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b,
-0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x75,
-0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0xe9, 0x72, 0x3b, 0x78, 0x6f, 0x76, 0x3b, 0x76, 0x65, 0x6e, 0x3b, 0x73, 0xe1,
-0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x6c, 0x75, 0x6e, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65,
-0x73, 0x3b, 0x6d, 0xe9, 0x72, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x3b, 0x78, 0x6f, 0x76, 0x65, 0x73, 0x3b, 0x76, 0x65, 0x6e,
-0x72, 0x65, 0x73, 0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x10d9, 0x10d5, 0x10d8, 0x3b, 0x10dd, 0x10e0, 0x10e8, 0x3b, 0x10e1,
-0x10d0, 0x10db, 0x3b, 0x10dd, 0x10d7, 0x10ee, 0x3b, 0x10ee, 0x10e3, 0x10d7, 0x3b, 0x10de, 0x10d0, 0x10e0, 0x3b, 0x10e8, 0x10d0, 0x10d1, 0x3b, 0x10d9,
-0x10d5, 0x10d8, 0x10e0, 0x10d0, 0x3b, 0x10dd, 0x10e0, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10e1, 0x10d0, 0x10db, 0x10e8, 0x10d0, 0x10d1,
-0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10dd, 0x10d7, 0x10ee, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10ee, 0x10e3, 0x10d7, 0x10e8, 0x10d0, 0x10d1,
-0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10de, 0x10d0, 0x10e0, 0x10d0, 0x10e1, 0x10d9, 0x10d4, 0x10d5, 0x10d8, 0x3b, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8,
-0x3b, 0x10d9, 0x3b, 0x10dd, 0x3b, 0x10e1, 0x3b, 0x10dd, 0x3b, 0x10ee, 0x3b, 0x10de, 0x3b, 0x10e8, 0x3b, 0x53, 0x6f, 0x3b, 0x4d, 0x6f,
-0x3b, 0x44, 0x69, 0x3b, 0x4d, 0x69, 0x3b, 0x44, 0x6f, 0x3b, 0x46, 0x72, 0x3b, 0x53, 0x61, 0x3b, 0x53, 0x6f, 0x6e, 0x6e,
-0x74, 0x61, 0x67, 0x3b, 0x4d, 0x6f, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x44, 0x69, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x3b,
-0x4d, 0x69, 0x74, 0x74, 0x77, 0x6f, 0x63, 0x68, 0x3b, 0x44, 0x6f, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x74, 0x61, 0x67, 0x3b,
-0x46, 0x72, 0x65, 0x69, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x6d, 0x73, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b,
-0x44, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x46, 0x3b, 0x53, 0x3b, 0x53, 0x6f, 0x2e, 0x3b, 0x4d, 0x6f, 0x2e, 0x3b, 0x44, 0x69,
-0x2e, 0x3b, 0x4d, 0x69, 0x2e, 0x3b, 0x44, 0x6f, 0x2e, 0x3b, 0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e, 0x3b, 0x39a, 0x3c5,
-0x3c1, 0x3b, 0x394, 0x3b5, 0x3c5, 0x3b, 0x3a4, 0x3c1, 0x3af, 0x3b, 0x3a4, 0x3b5, 0x3c4, 0x3b, 0x3a0, 0x3ad, 0x3bc, 0x3b, 0x3a0, 0x3b1,
-0x3c1, 0x3b, 0x3a3, 0x3ac, 0x3b2, 0x3b, 0x39a, 0x3c5, 0x3c1, 0x3b9, 0x3b1, 0x3ba, 0x3ae, 0x3b, 0x394, 0x3b5, 0x3c5, 0x3c4, 0x3ad, 0x3c1,
-0x3b1, 0x3b, 0x3a4, 0x3c1, 0x3af, 0x3c4, 0x3b7, 0x3b, 0x3a4, 0x3b5, 0x3c4, 0x3ac, 0x3c1, 0x3c4, 0x3b7, 0x3b, 0x3a0, 0x3ad, 0x3bc, 0x3c0,
-0x3c4, 0x3b7, 0x3b, 0x3a0, 0x3b1, 0x3c1, 0x3b1, 0x3c3, 0x3ba, 0x3b5, 0x3c5, 0x3ae, 0x3b, 0x3a3, 0x3ac, 0x3b2, 0x3b2, 0x3b1, 0x3c4, 0x3bf,
-0x3b, 0x39a, 0x3b, 0x394, 0x3b, 0x3a4, 0x3b, 0x3a4, 0x3b, 0x3a0, 0x3b, 0x3a0, 0x3b, 0x3a3, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x61,
-0x74, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x70, 0x69, 0x6e, 0x3b, 0x73, 0x69, 0x73, 0x3b, 0x74, 0x61, 0x6c, 0x3b, 0x61,
-0x72, 0x66, 0x3b, 0x73, 0x61, 0x62, 0x61, 0x61, 0x74, 0x3b, 0x61, 0x74, 0x61, 0x61, 0x73, 0x69, 0x6e, 0x6e, 0x67, 0x6f,
-0x72, 0x6e, 0x65, 0x71, 0x3b, 0x6d, 0x61, 0x72, 0x6c, 0x75, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x70,
-0x69, 0x6e, 0x67, 0x61, 0x73, 0x75, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x73, 0x69, 0x73, 0x61, 0x6d,
-0x61, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x61, 0x6e, 0x6e, 0x67,
-0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x61, 0x72, 0x66, 0x69, 0x6e, 0x69, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71,
-0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0xab0, 0xab5, 0xabf, 0x3b, 0xab8,
-0xacb, 0xaae, 0x3b, 0xaae, 0xa82, 0xa97, 0xab3, 0x3b, 0xaac, 0xac1, 0xaa7, 0x3b, 0xa97, 0xac1, 0xab0, 0xac1, 0x3b, 0xab6, 0xac1, 0xa95,
-0xacd, 0xab0, 0x3b, 0xab6, 0xaa8, 0xabf, 0x3b, 0xab0, 0xab5, 0xabf, 0xab5, 0xabe, 0xab0, 0x3b, 0xab8, 0xacb, 0xaae, 0xab5, 0xabe, 0xab0,
-0x3b, 0xaae, 0xa82, 0xa97, 0xab3, 0xab5, 0xabe, 0xab0, 0x3b, 0xaac, 0xac1, 0xaa7, 0xab5, 0xabe, 0xab0, 0x3b, 0xa97, 0xac1, 0xab0, 0xac1,
-0xab5, 0xabe, 0xab0, 0x3b, 0xab6, 0xac1, 0xa95, 0xacd, 0xab0, 0xab5, 0xabe, 0xab0, 0x3b, 0xab6, 0xaa8, 0xabf, 0xab5, 0xabe, 0xab0, 0x3b,
-0xab0, 0x3b, 0xab8, 0xacb, 0x3b, 0xaae, 0xa82, 0x3b, 0xaac, 0xac1, 0x3b, 0xa97, 0xac1, 0x3b, 0xab6, 0xac1, 0x3b, 0xab6, 0x3b, 0x4c,
-0x68, 0x3b, 0x4c, 0x69, 0x3b, 0x54, 0x61, 0x3b, 0x4c, 0x72, 0x3b, 0x41, 0x6c, 0x3b, 0x4a, 0x75, 0x3b, 0x41, 0x73, 0x3b,
-0x4c, 0x61, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x4c, 0x69, 0x74, 0x69, 0x6e, 0x69, 0x6e, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x74,
-0x61, 0x3b, 0x4c, 0x61, 0x72, 0x61, 0x62, 0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x3b, 0x4a, 0x75, 0x6d,
-0x6d, 0x61, 0x27, 0x61, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x61, 0x72, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x54, 0x3b, 0x4c, 0x3b,
-0x41, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d0, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d1, 0x5f3, 0x3b,
-0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d2, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d3, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d4, 0x5f3,
-0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d5, 0x5f3, 0x3b, 0x5e9, 0x5d1, 0x5ea, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e8, 0x5d0, 0x5e9, 0x5d5,
-0x5df, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5dc, 0x5d9, 0x5e9, 0x5d9, 0x3b,
-0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e8, 0x5d1, 0x5d9, 0x5e2, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d7, 0x5de, 0x5d9, 0x5e9, 0x5d9, 0x3b,
-0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5d9, 0x5e9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5d1, 0x5ea, 0x3b, 0x5d0, 0x5f3, 0x3b,
-0x5d1, 0x5f3, 0x3b, 0x5d2, 0x5f3, 0x3b, 0x5d3, 0x5f3, 0x3b, 0x5d4, 0x5f3, 0x3b, 0x5d5, 0x5f3, 0x3b, 0x5e9, 0x5f3, 0x3b, 0x930, 0x935,
-0x93f, 0x3b, 0x938, 0x94b, 0x92e, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x3b, 0x92c, 0x941, 0x927, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x3b,
-0x936, 0x941, 0x915, 0x94d, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x930, 0x935, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e,
-0x935, 0x93e, 0x930, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x917,
-0x941, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935,
-0x93e, 0x930, 0x3b, 0x930, 0x3b, 0x938, 0x94b, 0x3b, 0x92e, 0x902, 0x3b, 0x92c, 0x941, 0x3b, 0x917, 0x941, 0x3b, 0x936, 0x941, 0x3b,
-0x936, 0x3b, 0x56, 0x3b, 0x48, 0x3b, 0x4b, 0x3b, 0x53, 0x7a, 0x65, 0x3b, 0x43, 0x73, 0x3b, 0x50, 0x3b, 0x53, 0x7a, 0x6f,
-0x3b, 0x76, 0x61, 0x73, 0xe1, 0x72, 0x6e, 0x61, 0x70, 0x3b, 0x68, 0xe9, 0x74, 0x66, 0x151, 0x3b, 0x6b, 0x65, 0x64, 0x64,
-0x3b, 0x73, 0x7a, 0x65, 0x72, 0x64, 0x61, 0x3b, 0x63, 0x73, 0xfc, 0x74, 0xf6, 0x72, 0x74, 0xf6, 0x6b, 0x3b, 0x70, 0xe9,
-0x6e, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x7a, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x3b, 0x56, 0x3b, 0x48, 0x3b, 0x4b, 0x3b, 0x53,
-0x7a, 0x3b, 0x43, 0x73, 0x3b, 0x50, 0x3b, 0x53, 0x7a, 0x3b, 0x73, 0x75, 0x6e, 0x2e, 0x3b, 0x6d, 0xe1, 0x6e, 0x2e, 0x3b,
-0xfe, 0x72, 0x69, 0x2e, 0x3b, 0x6d, 0x69, 0xf0, 0x2e, 0x3b, 0x66, 0x69, 0x6d, 0x2e, 0x3b, 0x66, 0xf6, 0x73, 0x2e, 0x3b,
-0x6c, 0x61, 0x75, 0x2e, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0xe1, 0x6e, 0x75,
-0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0xfe, 0x72, 0x69, 0xf0, 0x6a, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0x69,
-0xf0, 0x76, 0x69, 0x6b, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x66, 0x69, 0x6d, 0x6d, 0x74, 0x75, 0x64, 0x61, 0x67,
-0x75, 0x72, 0x3b, 0x66, 0xf6, 0x73, 0x74, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6c, 0x61, 0x75, 0x67, 0x61, 0x72,
-0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0xde, 0x3b, 0x4d, 0x3b, 0x46, 0x3b, 0x46, 0x3b, 0x4c, 0x3b,
-0x4d, 0x69, 0x6e, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x3b, 0x52, 0x61, 0x62, 0x3b, 0x4b, 0x61, 0x6d, 0x3b,
-0x4a, 0x75, 0x6d, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4d, 0x69, 0x6e, 0x67, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x6e, 0x69, 0x6e,
-0x3b, 0x53, 0x65, 0x6c, 0x61, 0x73, 0x61, 0x3b, 0x52, 0x61, 0x62, 0x75, 0x3b, 0x4b, 0x61, 0x6d, 0x69, 0x73, 0x3b, 0x4a,
-0x75, 0x6d, 0x61, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x74, 0x75, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x52, 0x3b, 0x4b,
-0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x72,
-0x3b, 0x6a, 0x6f, 0x76, 0x3b, 0x76, 0x65, 0x6e, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63,
-0x61, 0x3b, 0x6c, 0x75, 0x6e, 0x65, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x64, 0x69, 0x3b, 0x6d, 0x65, 0x72,
-0x63, 0x75, 0x72, 0x69, 0x64, 0x69, 0x3b, 0x6a, 0x6f, 0x76, 0x65, 0x64, 0x69, 0x3b, 0x76, 0x65, 0x6e, 0x65, 0x72, 0x64,
-0x69, 0x3b, 0x73, 0x61, 0x62, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x44, 0x6f, 0x6d, 0x68, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x3b,
-0x4d, 0xe1, 0x69, 0x72, 0x74, 0x3b, 0x43, 0xe9, 0x61, 0x64, 0x3b, 0x44, 0xe9, 0x61, 0x72, 0x3b, 0x41, 0x6f, 0x69, 0x6e,
-0x65, 0x3b, 0x53, 0x61, 0x74, 0x68, 0x3b, 0x44, 0xe9, 0x20, 0x44, 0x6f, 0x6d, 0x68, 0x6e, 0x61, 0x69, 0x67, 0x68, 0x3b,
-0x44, 0xe9, 0x20, 0x4c, 0x75, 0x61, 0x69, 0x6e, 0x3b, 0x44, 0xe9, 0x20, 0x4d, 0xe1, 0x69, 0x72, 0x74, 0x3b, 0x44, 0xe9,
-0x20, 0x43, 0xe9, 0x61, 0x64, 0x61, 0x6f, 0x69, 0x6e, 0x3b, 0x44, 0xe9, 0x61, 0x72, 0x64, 0x61, 0x6f, 0x69, 0x6e, 0x3b,
-0x44, 0xe9, 0x20, 0x68, 0x41, 0x6f, 0x69, 0x6e, 0x65, 0x3b, 0x44, 0xe9, 0x20, 0x53, 0x61, 0x74, 0x68, 0x61, 0x69, 0x72,
-0x6e, 0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x44, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b,
-0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x72, 0x3b, 0x67, 0x69, 0x6f, 0x3b, 0x76, 0x65, 0x6e, 0x3b,
-0x73, 0x61, 0x62, 0x3b, 0x44, 0x6f, 0x6d, 0x65, 0x6e, 0x69, 0x63, 0x61, 0x3b, 0x4c, 0x75, 0x6e, 0x65, 0x64, 0xec, 0x3b,
-0x4d, 0x61, 0x72, 0x74, 0x65, 0x64, 0xec, 0x3b, 0x4d, 0x65, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x64, 0xec, 0x3b, 0x47, 0x69,
-0x6f, 0x76, 0x65, 0x64, 0xec, 0x3b, 0x56, 0x65, 0x6e, 0x65, 0x72, 0x64, 0xec, 0x3b, 0x53, 0x61, 0x62, 0x61, 0x74, 0x6f,
-0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x65, 0x6e,
-0x69, 0x63, 0x61, 0x3b, 0x6c, 0x75, 0x6e, 0x65, 0x64, 0xec, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x64, 0xec, 0x3b, 0x6d,
-0x65, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x64, 0xec, 0x3b, 0x67, 0x69, 0x6f, 0x76, 0x65, 0x64, 0xec, 0x3b, 0x76, 0x65, 0x6e,
-0x65, 0x72, 0x64, 0xec, 0x3b, 0x73, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x65e5, 0x3b, 0x6708, 0x3b, 0x706b, 0x3b, 0x6c34, 0x3b,
-0x6728, 0x3b, 0x91d1, 0x3b, 0x571f, 0x3b, 0x65e5, 0x66dc, 0x65e5, 0x3b, 0x6708, 0x66dc, 0x65e5, 0x3b, 0x706b, 0x66dc, 0x65e5, 0x3b, 0x6c34, 0x66dc,
-0x65e5, 0x3b, 0x6728, 0x66dc, 0x65e5, 0x3b, 0x91d1, 0x66dc, 0x65e5, 0x3b, 0x571f, 0x66dc, 0x65e5, 0x3b, 0xcb0, 0xcb5, 0xcbf, 0x3b, 0xcb8, 0xccb,
-0xcae, 0x3b, 0xcae, 0xc82, 0xc97, 0xcb3, 0x3b, 0xcac, 0xcc1, 0xca7, 0x3b, 0xc97, 0xcc1, 0xcb0, 0xcc1, 0x3b, 0xcb6, 0xcc1, 0xc95, 0xccd,
-0xcb0, 0x3b, 0xcb6, 0xca8, 0xcbf, 0x3b, 0xcb0, 0xcb5, 0xcbf, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcb8, 0xccb, 0xcae, 0xcb5, 0xcbe, 0xcb0, 0x3b,
+0x4a, 0x69, 0x6d, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x53, 0x61, 0x6e, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x53, 0x6f, 0x3b, 0x4d,
+0x61, 0x3b, 0x44, 0x69, 0x3b, 0x57, 0x6f, 0x3b, 0x44, 0x6f, 0x3b, 0x56, 0x72, 0x3b, 0x53, 0x61, 0x3b, 0x53, 0x6f, 0x6e,
+0x64, 0x61, 0x67, 0x3b, 0x4d, 0x61, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x44, 0x69, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b,
+0x57, 0x6f, 0x65, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x44, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x56,
+0x72, 0x79, 0x64, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x74, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x44,
+0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x44, 0x69, 0x65, 0x3b, 0x48, 0xeb, 0x6e, 0x3b, 0x4d, 0x61, 0x72,
+0x3b, 0x4d, 0xeb, 0x72, 0x3b, 0x45, 0x6e, 0x6a, 0x3b, 0x50, 0x72, 0x65, 0x3b, 0x53, 0x68, 0x74, 0x3b, 0x45, 0x20, 0x64,
+0x69, 0x65, 0x6c, 0x3b, 0x45, 0x20, 0x68, 0xeb, 0x6e, 0xeb, 0x3b, 0x45, 0x20, 0x6d, 0x61, 0x72, 0x74, 0xeb, 0x3b, 0x45,
+0x20, 0x6d, 0xeb, 0x72, 0x6b, 0x75, 0x72, 0xeb, 0x3b, 0x45, 0x20, 0x65, 0x6e, 0x6a, 0x74, 0x65, 0x3b, 0x45, 0x20, 0x70,
+0x72, 0x65, 0x6d, 0x74, 0x65, 0x3b, 0x45, 0x20, 0x73, 0x68, 0x74, 0x75, 0x6e, 0xeb, 0x3b, 0x44, 0x3b, 0x48, 0x3b, 0x4d,
+0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x65, 0x20, 0x64, 0x69, 0x65, 0x6c, 0x3b, 0x65, 0x20, 0x68, 0xeb,
+0x6e, 0xeb, 0x3b, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x74, 0xeb, 0x3b, 0x65, 0x20, 0x6d, 0xeb, 0x72, 0x6b, 0x75, 0x72, 0xeb,
+0x3b, 0x65, 0x20, 0x65, 0x6e, 0x6a, 0x74, 0x65, 0x3b, 0x65, 0x20, 0x70, 0x72, 0x65, 0x6d, 0x74, 0x65, 0x3b, 0x65, 0x20,
+0x73, 0x68, 0x74, 0x75, 0x6e, 0xeb, 0x3b, 0x12a5, 0x1211, 0x12f5, 0x3b, 0x1230, 0x129e, 0x3b, 0x121b, 0x12ad, 0x1230, 0x3b, 0x1228, 0x1261,
+0x12d5, 0x3b, 0x1210, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1265, 0x3b, 0x1245, 0x12f3, 0x121c, 0x3b, 0x12a5, 0x1211, 0x12f5, 0x3b, 0x1230, 0x129e,
+0x3b, 0x121b, 0x12ad, 0x1230, 0x129e, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1210, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1265, 0x3b, 0x1245, 0x12f3,
+0x121c, 0x3b, 0x12a5, 0x3b, 0x1230, 0x3b, 0x121b, 0x3b, 0x1228, 0x3b, 0x1210, 0x3b, 0x12d3, 0x3b, 0x1245, 0x3b, 0x627, 0x644, 0x623, 0x62d,
+0x62f, 0x3b, 0x627, 0x644, 0x627, 0x62b, 0x646, 0x64a, 0x646, 0x3b, 0x627, 0x644, 0x62b, 0x644, 0x627, 0x62b, 0x627, 0x621, 0x3b, 0x627,
+0x644, 0x623, 0x631, 0x628, 0x639, 0x627, 0x621, 0x3b, 0x627, 0x644, 0x62e, 0x645, 0x64a, 0x633, 0x3b, 0x627, 0x644, 0x62c, 0x645, 0x639,
+0x629, 0x3b, 0x627, 0x644, 0x633, 0x628, 0x62a, 0x3b, 0x62d, 0x3b, 0x646, 0x3b, 0x62b, 0x3b, 0x631, 0x3b, 0x62e, 0x3b, 0x62c, 0x3b,
+0x633, 0x3b, 0x56f, 0x56b, 0x580, 0x3b, 0x565, 0x580, 0x56f, 0x3b, 0x565, 0x580, 0x584, 0x3b, 0x579, 0x580, 0x584, 0x3b, 0x570, 0x576,
+0x563, 0x3b, 0x578, 0x582, 0x580, 0x3b, 0x577, 0x562, 0x569, 0x3b, 0x56f, 0x56b, 0x580, 0x561, 0x56f, 0x56b, 0x3b, 0x565, 0x580, 0x56f,
+0x578, 0x582, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x565, 0x580, 0x565, 0x584, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x579, 0x578,
+0x580, 0x565, 0x584, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x570, 0x56b, 0x576, 0x563, 0x577, 0x561, 0x562, 0x569, 0x56b, 0x3b, 0x578,
+0x582, 0x580, 0x562, 0x561, 0x569, 0x3b, 0x577, 0x561, 0x562, 0x561, 0x569, 0x3b, 0x53f, 0x3b, 0x535, 0x3b, 0x535, 0x3b, 0x549, 0x3b,
+0x540, 0x3b, 0x548, 0x582, 0x3b, 0x547, 0x3b, 0x9f0, 0x9ac, 0x9bf, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x3b, 0x9ae, 0x999, 0x9cd, 0x997, 0x9b2,
+0x3b, 0x9ac, 0x9c1, 0x9a7, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7, 0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9f0, 0x3b,
+0x9b6, 0x9a8, 0x9bf, 0x3b, 0x9a6, 0x9c7, 0x993, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9ae, 0x999,
+0x9cd, 0x997, 0x9b2, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7, 0x9cd, 0x9aa,
+0x9a4, 0x9bf, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9f0, 0x9ac, 0x9be, 0x9f0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x9ac, 0x9be,
+0x9f0, 0x3b, 0x42, 0x2e, 0x3b, 0x42, 0x2e, 0x45, 0x2e, 0x3b, 0xc7, 0x2e, 0x41, 0x2e, 0x3b, 0xc7, 0x2e, 0x3b, 0x43, 0x2e,
+0x41, 0x2e, 0x3b, 0x43, 0x2e, 0x3b, 0x15e, 0x2e, 0x3b, 0x62, 0x61, 0x7a, 0x61, 0x72, 0x3b, 0x62, 0x61, 0x7a, 0x61, 0x72,
+0x20, 0x65, 0x72, 0x74, 0x259, 0x73, 0x69, 0x3b, 0xe7, 0x259, 0x72, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x20, 0x61, 0x78, 0x15f,
+0x61, 0x6d, 0x131, 0x3b, 0xe7, 0x259, 0x72, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x3b, 0x63, 0xfc, 0x6d, 0x259, 0x20, 0x61, 0x78,
+0x15f, 0x61, 0x6d, 0x131, 0x3b, 0x63, 0xfc, 0x6d, 0x259, 0x3b, 0x15f, 0x259, 0x6e, 0x62, 0x259, 0x3b, 0x431, 0x430, 0x437, 0x430,
+0x440, 0x3b, 0x431, 0x430, 0x437, 0x430, 0x440, 0x20, 0x435, 0x440, 0x442, 0x4d9, 0x441, 0x438, 0x3b, 0x447, 0x4d9, 0x440, 0x448, 0x4d9,
+0x43d, 0x431, 0x4d9, 0x20, 0x430, 0x445, 0x448, 0x430, 0x43c, 0x44b, 0x3b, 0x447, 0x4d9, 0x440, 0x448, 0x4d9, 0x43d, 0x431, 0x4d9, 0x3b,
+0x4b9, 0x4af, 0x43c, 0x4d9, 0x20, 0x430, 0x445, 0x448, 0x430, 0x43c, 0x44b, 0x3b, 0x4b9, 0x4af, 0x43c, 0x4d9, 0x3b, 0x448, 0x4d9, 0x43d,
+0x431, 0x4d9, 0x3b, 0x49, 0x67, 0x2e, 0x3b, 0x41, 0x6c, 0x2e, 0x3b, 0x41, 0x72, 0x2e, 0x3b, 0x41, 0x7a, 0x2e, 0x3b, 0x4f,
+0x67, 0x2e, 0x3b, 0x4f, 0x72, 0x2e, 0x3b, 0x4c, 0x72, 0x2e, 0x3b, 0x49, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x61, 0x3b, 0x41,
+0x73, 0x74, 0x65, 0x6c, 0x65, 0x68, 0x65, 0x6e, 0x61, 0x3b, 0x41, 0x73, 0x74, 0x65, 0x61, 0x72, 0x74, 0x65, 0x61, 0x3b,
+0x41, 0x73, 0x74, 0x65, 0x61, 0x7a, 0x6b, 0x65, 0x6e, 0x61, 0x3b, 0x4f, 0x73, 0x74, 0x65, 0x67, 0x75, 0x6e, 0x61, 0x3b,
+0x4f, 0x73, 0x74, 0x69, 0x72, 0x61, 0x6c, 0x61, 0x3b, 0x4c, 0x61, 0x72, 0x75, 0x6e, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x49,
+0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x4c, 0x3b, 0x69, 0x67, 0x2e, 0x3b, 0x61, 0x6c, 0x2e,
+0x3b, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x2e, 0x3b, 0x6f, 0x67, 0x2e, 0x3b, 0x6f, 0x72, 0x2e, 0x3b, 0x6c, 0x72, 0x2e,
+0x3b, 0x69, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x73, 0x74, 0x65, 0x6c, 0x65, 0x68, 0x65, 0x6e, 0x61, 0x3b,
+0x61, 0x73, 0x74, 0x65, 0x61, 0x72, 0x74, 0x65, 0x61, 0x3b, 0x61, 0x73, 0x74, 0x65, 0x61, 0x7a, 0x6b, 0x65, 0x6e, 0x61,
+0x3b, 0x6f, 0x73, 0x74, 0x65, 0x67, 0x75, 0x6e, 0x61, 0x3b, 0x6f, 0x73, 0x74, 0x69, 0x72, 0x61, 0x6c, 0x61, 0x3b, 0x6c,
+0x61, 0x72, 0x75, 0x6e, 0x62, 0x61, 0x74, 0x61, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x3b, 0x9ae, 0x999, 0x9cd,
+0x997, 0x9b2, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b8, 0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd,
+0x9b0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x9ac, 0x9be, 0x9b0, 0x3b,
+0x9ae, 0x999, 0x9cd, 0x997, 0x9b2, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b7,
+0x9cd, 0x9aa, 0x9a4, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9b0, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9a8, 0x9bf,
+0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b0, 0x3b, 0x9b8, 0x9cb, 0x3b, 0x9ae, 0x3b, 0x9ac, 0x9c1, 0x3b, 0x9ac, 0x9c3, 0x3b, 0x9b6, 0x9c1, 0x3b,
+0x9b6, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b8, 0x9cb, 0x9ae, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ae, 0x999, 0x9cd, 0x997,
+0x9b2, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c1, 0x9a7, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ac, 0x9c3, 0x9b9, 0x9b8, 0x9cd, 0x9aa, 0x9a4, 0x9bf,
+0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9c1, 0x995, 0x9cd, 0x9b0, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9b6, 0x9a8, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b,
+0xf5f, 0xfb3, 0xf0b, 0x3b, 0xf58, 0xf72, 0xf62, 0xf0b, 0x3b, 0xf63, 0xfb7, 0xf42, 0xf0b, 0x3b, 0xf55, 0xf74, 0xf62, 0xf0b, 0x3b, 0xf66,
+0xf44, 0xf66, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0xf0b, 0x3b, 0xf49, 0xf72, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf5f, 0xfb3,
+0xf0b, 0xf56, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf58, 0xf72, 0xf42, 0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60,
+0xf0b, 0xf63, 0xfb7, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56, 0xf74, 0xf0b, 0x3b,
+0xf42, 0xf5f, 0xf60, 0xf0b, 0xf54, 0xf0b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0xf0b,
+0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf49, 0xf72, 0xf0b, 0xf58, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0x3b, 0xf58, 0xf72, 0xf62, 0x3b,
+0xf63, 0xfb7, 0xf42, 0x3b, 0xf55, 0xf74, 0xf62, 0x3b, 0xf66, 0xf44, 0xfb6, 0x3b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0x3b, 0xf49, 0xf72, 0x3b,
+0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x65, 0x75, 0x2e, 0x3b, 0x4d, 0x65, 0x72, 0x2e, 0x3b, 0x59, 0x61,
+0x6f, 0x75, 0x3b, 0x47, 0x77, 0x65, 0x2e, 0x3b, 0x53, 0x61, 0x64, 0x2e, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x75, 0x6e,
+0x3b, 0x4d, 0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x4d, 0x65, 0x72, 0x63, 0x2bc, 0x68, 0x65, 0x72, 0x3b, 0x59, 0x61, 0x6f,
+0x75, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x53, 0x61, 0x64, 0x6f, 0x72, 0x6e, 0x3b, 0x53, 0x75, 0x3b, 0x4c,
+0x3b, 0x4d, 0x7a, 0x3b, 0x4d, 0x63, 0x3b, 0x59, 0x3b, 0x47, 0x3b, 0x53, 0x61, 0x3b, 0x43d, 0x434, 0x3b, 0x43f, 0x43d, 0x3b,
+0x432, 0x442, 0x3b, 0x441, 0x440, 0x3b, 0x447, 0x442, 0x3b, 0x43f, 0x442, 0x3b, 0x441, 0x431, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x43b,
+0x44f, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x43d, 0x438, 0x43a, 0x3b, 0x432, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a,
+0x3b, 0x441, 0x440, 0x44f, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x44a, 0x440, 0x442, 0x44a, 0x43a, 0x3b, 0x43f, 0x435, 0x442,
+0x44a, 0x43a, 0x3b, 0x441, 0x44a, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x432, 0x3b, 0x441, 0x3b, 0x447, 0x3b,
+0x43f, 0x3b, 0x441, 0x3b, 0x1010, 0x1014, 0x1004, 0x103a, 0x1039, 0x1002, 0x1014, 0x103d, 0x1031, 0x3b, 0x1010, 0x1014, 0x1004, 0x103a, 0x1039, 0x101c,
+0x102c, 0x3b, 0x1021, 0x1004, 0x103a, 0x1039, 0x1002, 0x102b, 0x3b, 0x1017, 0x102f, 0x1012, 0x1039, 0x1013, 0x101f, 0x1030, 0x1038, 0x3b, 0x1000, 0x103c,
+0x102c, 0x101e, 0x1015, 0x1010, 0x1031, 0x1038, 0x3b, 0x101e, 0x1031, 0x102c, 0x1000, 0x103c, 0x102c, 0x3b, 0x1005, 0x1014, 0x1031, 0x3b, 0x1010, 0x3b,
+0x1010, 0x3b, 0x1021, 0x3b, 0x1017, 0x3b, 0x1000, 0x3b, 0x101e, 0x3b, 0x1005, 0x3b, 0x43d, 0x434, 0x3b, 0x43f, 0x43d, 0x3b, 0x430, 0x45e,
+0x3b, 0x441, 0x440, 0x3b, 0x447, 0x446, 0x3b, 0x43f, 0x442, 0x3b, 0x441, 0x431, 0x3b, 0x43d, 0x44f, 0x434, 0x437, 0x435, 0x43b, 0x44f,
+0x3b, 0x43f, 0x430, 0x43d, 0x44f, 0x434, 0x437, 0x435, 0x43b, 0x430, 0x43a, 0x3b, 0x430, 0x45e, 0x442, 0x43e, 0x440, 0x430, 0x43a, 0x3b,
+0x441, 0x435, 0x440, 0x430, 0x434, 0x430, 0x3b, 0x447, 0x430, 0x446, 0x432, 0x435, 0x440, 0x3b, 0x43f, 0x44f, 0x442, 0x43d, 0x456, 0x446,
+0x430, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x447, 0x3b, 0x43f,
+0x3b, 0x441, 0x3b, 0x17a2, 0x17b6, 0x1791, 0x17b7, 0x178f, 0x17d2, 0x1799, 0x3b, 0x1785, 0x1793, 0x17d2, 0x1791, 0x3b, 0x17a2, 0x1784, 0x17d2, 0x1782,
+0x17b6, 0x179a, 0x3b, 0x1796, 0x17bb, 0x1792, 0x3b, 0x1796, 0x17d2, 0x179a, 0x17a0, 0x179f, 0x17d2, 0x1794, 0x178f, 0x17b7, 0x17cd, 0x3b, 0x179f, 0x17bb,
+0x1780, 0x17d2, 0x179a, 0x3b, 0x179f, 0x17c5, 0x179a, 0x17cd, 0x3b, 0x31, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36,
+0x3b, 0x37, 0x3b, 0x64, 0x67, 0x2e, 0x3b, 0x64, 0x6c, 0x2e, 0x3b, 0x64, 0x74, 0x2e, 0x3b, 0x64, 0x63, 0x2e, 0x3b, 0x64,
+0x6a, 0x2e, 0x3b, 0x64, 0x76, 0x2e, 0x3b, 0x64, 0x73, 0x2e, 0x3b, 0x64, 0x69, 0x75, 0x6d, 0x65, 0x6e, 0x67, 0x65, 0x3b,
+0x64, 0x69, 0x6c, 0x6c, 0x75, 0x6e, 0x73, 0x3b, 0x64, 0x69, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x64, 0x69, 0x6d, 0x65,
+0x63, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x69, 0x6a, 0x6f, 0x75, 0x73, 0x3b, 0x64, 0x69, 0x76, 0x65, 0x6e, 0x64, 0x72, 0x65,
+0x73, 0x3b, 0x64, 0x69, 0x73, 0x73, 0x61, 0x62, 0x74, 0x65, 0x3b, 0x64, 0x67, 0x3b, 0x64, 0x6c, 0x3b, 0x64, 0x74, 0x3b,
+0x64, 0x63, 0x3b, 0x64, 0x6a, 0x3b, 0x64, 0x76, 0x3b, 0x64, 0x73, 0x3b, 0x5468, 0x65e5, 0x3b, 0x5468, 0x4e00, 0x3b, 0x5468, 0x4e8c,
+0x3b, 0x5468, 0x4e09, 0x3b, 0x5468, 0x56db, 0x3b, 0x5468, 0x4e94, 0x3b, 0x5468, 0x516d, 0x3b, 0x661f, 0x671f, 0x65e5, 0x3b, 0x661f, 0x671f, 0x4e00,
+0x3b, 0x661f, 0x671f, 0x4e8c, 0x3b, 0x661f, 0x671f, 0x4e09, 0x3b, 0x661f, 0x671f, 0x56db, 0x3b, 0x661f, 0x671f, 0x4e94, 0x3b, 0x661f, 0x671f, 0x516d,
+0x3b, 0x65e5, 0x3b, 0x4e00, 0x3b, 0x4e8c, 0x3b, 0x4e09, 0x3b, 0x56db, 0x3b, 0x4e94, 0x3b, 0x516d, 0x3b, 0x9031, 0x65e5, 0x3b, 0x9031, 0x4e00,
+0x3b, 0x9031, 0x4e8c, 0x3b, 0x9031, 0x4e09, 0x3b, 0x9031, 0x56db, 0x3b, 0x9031, 0x4e94, 0x3b, 0x9031, 0x516d, 0x3b, 0x6e, 0x65, 0x64, 0x3b,
+0x70, 0x6f, 0x6e, 0x3b, 0x75, 0x74, 0x6f, 0x3b, 0x73, 0x72, 0x69, 0x3b, 0x10d, 0x65, 0x74, 0x3b, 0x70, 0x65, 0x74, 0x3b,
+0x73, 0x75, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x6a, 0x65, 0x6c, 0x6a, 0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x65, 0x64, 0x6a, 0x65,
+0x6c, 0x6a, 0x61, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x6b, 0x3b, 0x73, 0x72, 0x69, 0x6a, 0x65, 0x64, 0x61, 0x3b,
+0x10d, 0x65, 0x74, 0x76, 0x72, 0x74, 0x61, 0x6b, 0x3b, 0x70, 0x65, 0x74, 0x61, 0x6b, 0x3b, 0x73, 0x75, 0x62, 0x6f, 0x74,
+0x61, 0x3b, 0x6e, 0x3b, 0x70, 0x3b, 0x75, 0x3b, 0x73, 0x3b, 0x10d, 0x3b, 0x70, 0x3b, 0x73, 0x3b, 0x4e, 0x3b, 0x50, 0x3b,
+0x55, 0x3b, 0x53, 0x3b, 0x10c, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x6e, 0x65, 0x3b, 0x70, 0x6f, 0x3b, 0xfa, 0x74, 0x3b, 0x73,
+0x74, 0x3b, 0x10d, 0x74, 0x3b, 0x70, 0xe1, 0x3b, 0x73, 0x6f, 0x3b, 0x6e, 0x65, 0x64, 0x11b, 0x6c, 0x65, 0x3b, 0x70, 0x6f,
+0x6e, 0x64, 0x11b, 0x6c, 0xed, 0x3b, 0xfa, 0x74, 0x65, 0x72, 0xfd, 0x3b, 0x73, 0x74, 0x159, 0x65, 0x64, 0x61, 0x3b, 0x10d,
+0x74, 0x76, 0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0xe1, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b,
+0x4e, 0x3b, 0x50, 0x3b, 0xda, 0x3b, 0x53, 0x3b, 0x10c, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x73, 0xf8, 0x6e, 0x3b, 0x6d, 0x61,
+0x6e, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x66, 0x72, 0x65, 0x3b, 0x6c, 0xf8,
+0x72, 0x3b, 0x73, 0xf8, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x69, 0x72, 0x73,
+0x64, 0x61, 0x67, 0x3b, 0x6f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x66,
+0x72, 0x65, 0x64, 0x61, 0x67, 0x3b, 0x6c, 0xf8, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54, 0x3b, 0x4f,
+0x3b, 0x54, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x73, 0xf8, 0x6e, 0x2e, 0x3b, 0x6d, 0x61, 0x6e, 0x2e, 0x3b, 0x74, 0x69, 0x72,
+0x2e, 0x3b, 0x6f, 0x6e, 0x73, 0x2e, 0x3b, 0x74, 0x6f, 0x72, 0x2e, 0x3b, 0x66, 0x72, 0x65, 0x2e, 0x3b, 0x6c, 0xf8, 0x72,
+0x2e, 0x3b, 0x5a, 0x6f, 0x3b, 0x4d, 0x61, 0x3b, 0x44, 0x69, 0x3b, 0x57, 0x6f, 0x3b, 0x44, 0x6f, 0x3b, 0x56, 0x72, 0x3b,
+0x5a, 0x61, 0x3b, 0x5a, 0x6f, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x4d, 0x61, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x44, 0x69,
+0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x57, 0x6f, 0x65, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x44, 0x6f, 0x6e, 0x64, 0x65,
+0x72, 0x64, 0x61, 0x67, 0x3b, 0x56, 0x72, 0x69, 0x6a, 0x64, 0x61, 0x67, 0x3b, 0x5a, 0x61, 0x74, 0x65, 0x72, 0x64, 0x61,
+0x67, 0x3b, 0x5a, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x56, 0x3b, 0x5a, 0x3b, 0x7a, 0x6f, 0x3b, 0x6d,
+0x61, 0x3b, 0x64, 0x69, 0x3b, 0x77, 0x6f, 0x3b, 0x64, 0x6f, 0x3b, 0x76, 0x72, 0x3b, 0x7a, 0x61, 0x3b, 0x7a, 0x6f, 0x6e,
+0x64, 0x61, 0x67, 0x3b, 0x6d, 0x61, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x64, 0x69, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b,
+0x77, 0x6f, 0x65, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x64, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x76,
+0x72, 0x69, 0x6a, 0x64, 0x61, 0x67, 0x3b, 0x7a, 0x61, 0x74, 0x65, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x50, 0x3b, 0x45, 0x3b,
+0x54, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x4c, 0x3b, 0x70, 0xfc, 0x68, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x65,
+0x73, 0x6d, 0x61, 0x73, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x74, 0x65, 0x69, 0x73, 0x69, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x6b,
+0x6f, 0x6c, 0x6d, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x6e, 0x65, 0x6c, 0x6a, 0x61, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x72,
+0x65, 0x65, 0x64, 0x65, 0x3b, 0x6c, 0x61, 0x75, 0x70, 0xe4, 0x65, 0x76, 0x3b, 0x73, 0x75, 0x6e, 0x3b, 0x6d, 0xe1, 0x6e,
+0x3b, 0x74, 0xfd, 0x73, 0x3b, 0x6d, 0x69, 0x6b, 0x3b, 0x68, 0xf3, 0x73, 0x3b, 0x66, 0x72, 0xed, 0x3b, 0x6c, 0x65, 0x79,
+0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0xe1, 0x6e, 0x61, 0x64, 0x61, 0x67, 0x75,
+0x72, 0x3b, 0x74, 0xfd, 0x73, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d, 0x69, 0x6b, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72,
+0x3b, 0x68, 0xf3, 0x73, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x66, 0x72, 0xed, 0x67, 0x67, 0x6a, 0x61, 0x64, 0x61, 0x67,
+0x75, 0x72, 0x3b, 0x6c, 0x65, 0x79, 0x67, 0x61, 0x72, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54,
+0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x73, 0x75, 0x3b, 0x6d, 0x61, 0x3b, 0x74, 0x69, 0x3b, 0x6b, 0x65,
+0x3b, 0x74, 0x6f, 0x3b, 0x70, 0x65, 0x3b, 0x6c, 0x61, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x3b,
+0x6d, 0x61, 0x61, 0x6e, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x74, 0x69, 0x69, 0x73, 0x74, 0x61, 0x69, 0x3b, 0x6b, 0x65,
+0x73, 0x6b, 0x69, 0x76, 0x69, 0x69, 0x6b, 0x6b, 0x6f, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x74, 0x61, 0x69, 0x3b, 0x70, 0x65,
+0x72, 0x6a, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x6c, 0x61, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x3b, 0x53, 0x3b, 0x4d,
+0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x4c, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x6e, 0x74, 0x61, 0x69,
+0x6e, 0x61, 0x3b, 0x6d, 0x61, 0x61, 0x6e, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x74, 0x69, 0x69, 0x73, 0x74,
+0x61, 0x69, 0x6e, 0x61, 0x3b, 0x6b, 0x65, 0x73, 0x6b, 0x69, 0x76, 0x69, 0x69, 0x6b, 0x6b, 0x6f, 0x6e, 0x61, 0x3b, 0x74,
+0x6f, 0x72, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x70, 0x65, 0x72, 0x6a, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61,
+0x3b, 0x6c, 0x61, 0x75, 0x61, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x44, 0x69, 0x6d, 0x2e, 0x3b, 0x4c, 0x75, 0x6e,
+0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x72, 0x2e, 0x3b, 0x4a, 0x65, 0x75, 0x2e, 0x3b, 0x56, 0x65, 0x6e,
+0x2e, 0x3b, 0x53, 0x61, 0x6d, 0x2e, 0x3b, 0x44, 0x69, 0x6d, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x3b, 0x4c, 0x75, 0x6e, 0x64,
+0x69, 0x3b, 0x4d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x4d, 0x65, 0x72, 0x63, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x4a, 0x65, 0x75,
+0x64, 0x69, 0x3b, 0x56, 0x65, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x53, 0x61, 0x6d, 0x65, 0x64, 0x69, 0x3b, 0x44,
+0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x69, 0x6d, 0x2e, 0x3b, 0x6c, 0x75,
+0x6e, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x72, 0x2e, 0x3b, 0x6a, 0x65, 0x75, 0x2e, 0x3b, 0x76, 0x65,
+0x6e, 0x2e, 0x3b, 0x73, 0x61, 0x6d, 0x2e, 0x3b, 0x64, 0x69, 0x6d, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x3b, 0x6c, 0x75, 0x6e,
+0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x65, 0x72, 0x63, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x6a, 0x65,
+0x75, 0x64, 0x69, 0x3b, 0x76, 0x65, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x73, 0x61, 0x6d, 0x65, 0x64, 0x69, 0x3b,
+0x73, 0x69, 0x3b, 0x6d, 0x6f, 0x3b, 0x74, 0x69, 0x3b, 0x77, 0x6f, 0x3b, 0x74, 0x6f, 0x3b, 0x66, 0x72, 0x3b, 0x73, 0x6f,
+0x3b, 0x73, 0x6e, 0x65, 0x69, 0x6e, 0x3b, 0x6d, 0x6f, 0x61, 0x6e, 0x64, 0x65, 0x69, 0x3b, 0x74, 0x69, 0x69, 0x73, 0x64,
+0x65, 0x69, 0x3b, 0x77, 0x6f, 0x61, 0x6e, 0x73, 0x64, 0x65, 0x69, 0x3b, 0x74, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x64,
+0x65, 0x69, 0x3b, 0x66, 0x72, 0x65, 0x65, 0x64, 0x3b, 0x73, 0x6e, 0x65, 0x6f, 0x6e, 0x3b, 0x44, 0x69, 0x44, 0x3b, 0x44,
+0x69, 0x4c, 0x3b, 0x44, 0x69, 0x4d, 0x3b, 0x44, 0x69, 0x43, 0x3b, 0x44, 0x69, 0x61, 0x3b, 0x44, 0x69, 0x68, 0x3b, 0x44,
+0x69, 0x53, 0x3b, 0x44, 0x69, 0x44, 0xf2, 0x6d, 0x68, 0x6e, 0x61, 0x69, 0x63, 0x68, 0x3b, 0x44, 0x69, 0x4c, 0x75, 0x61,
+0x69, 0x6e, 0x3b, 0x44, 0x69, 0x4d, 0xe0, 0x69, 0x72, 0x74, 0x3b, 0x44, 0x69, 0x43, 0x69, 0x61, 0x64, 0x61, 0x69, 0x6e,
+0x3b, 0x44, 0x69, 0x61, 0x72, 0x44, 0x61, 0x6f, 0x69, 0x6e, 0x3b, 0x44, 0x69, 0x68, 0x41, 0x6f, 0x69, 0x6e, 0x65, 0x3b,
+0x44, 0x69, 0x53, 0x61, 0x74, 0x68, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x43, 0x3b,
+0x41, 0x3b, 0x48, 0x3b, 0x53, 0x3b, 0x44, 0x6f, 0x6d, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0xe9,
+0x72, 0x3b, 0x58, 0x6f, 0x76, 0x3b, 0x56, 0x65, 0x6e, 0x3b, 0x53, 0xe1, 0x62, 0x3b, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
+0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x4d, 0xe9, 0x72, 0x63, 0x6f, 0x72,
+0x65, 0x73, 0x3b, 0x58, 0x6f, 0x76, 0x65, 0x73, 0x3b, 0x56, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x3b, 0x53, 0xe1, 0x62, 0x61,
+0x64, 0x6f, 0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d,
+0x3b, 0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0xe9, 0x72, 0x3b, 0x78, 0x6f, 0x76, 0x3b, 0x76, 0x65, 0x6e,
+0x3b, 0x73, 0xe1, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x6c, 0x75, 0x6e, 0x73, 0x3b, 0x6d, 0x61,
+0x72, 0x74, 0x65, 0x73, 0x3b, 0x6d, 0xe9, 0x72, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x3b, 0x78, 0x6f, 0x76, 0x65, 0x73, 0x3b,
+0x76, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x10d9, 0x10d5, 0x10d8, 0x3b, 0x10dd, 0x10e0,
+0x10e8, 0x3b, 0x10e1, 0x10d0, 0x10db, 0x3b, 0x10dd, 0x10d7, 0x10ee, 0x3b, 0x10ee, 0x10e3, 0x10d7, 0x3b, 0x10de, 0x10d0, 0x10e0, 0x3b, 0x10e8, 0x10d0,
+0x10d1, 0x3b, 0x10d9, 0x10d5, 0x10d8, 0x10e0, 0x10d0, 0x3b, 0x10dd, 0x10e0, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10e1, 0x10d0, 0x10db,
+0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10dd, 0x10d7, 0x10ee, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10ee, 0x10e3, 0x10d7,
+0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10de, 0x10d0, 0x10e0, 0x10d0, 0x10e1, 0x10d9, 0x10d4, 0x10d5, 0x10d8, 0x3b, 0x10e8, 0x10d0, 0x10d1,
+0x10d0, 0x10d7, 0x10d8, 0x3b, 0x10d9, 0x3b, 0x10dd, 0x3b, 0x10e1, 0x3b, 0x10dd, 0x3b, 0x10ee, 0x3b, 0x10de, 0x3b, 0x10e8, 0x3b, 0x53, 0x6f,
+0x3b, 0x4d, 0x6f, 0x3b, 0x44, 0x69, 0x3b, 0x4d, 0x69, 0x3b, 0x44, 0x6f, 0x3b, 0x46, 0x72, 0x3b, 0x53, 0x61, 0x3b, 0x53,
+0x6f, 0x6e, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x4d, 0x6f, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x44, 0x69, 0x65, 0x6e, 0x73, 0x74,
+0x61, 0x67, 0x3b, 0x4d, 0x69, 0x74, 0x74, 0x77, 0x6f, 0x63, 0x68, 0x3b, 0x44, 0x6f, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x74,
+0x61, 0x67, 0x3b, 0x46, 0x72, 0x65, 0x69, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x6d, 0x73, 0x74, 0x61, 0x67, 0x3b, 0x53,
+0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x46, 0x3b, 0x53, 0x3b, 0x53, 0x6f, 0x2e, 0x3b, 0x4d, 0x6f, 0x2e,
+0x3b, 0x44, 0x69, 0x2e, 0x3b, 0x4d, 0x69, 0x2e, 0x3b, 0x44, 0x6f, 0x2e, 0x3b, 0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e,
+0x3b, 0x39a, 0x3c5, 0x3c1, 0x3b, 0x394, 0x3b5, 0x3c5, 0x3b, 0x3a4, 0x3c1, 0x3af, 0x3b, 0x3a4, 0x3b5, 0x3c4, 0x3b, 0x3a0, 0x3ad, 0x3bc,
+0x3b, 0x3a0, 0x3b1, 0x3c1, 0x3b, 0x3a3, 0x3ac, 0x3b2, 0x3b, 0x39a, 0x3c5, 0x3c1, 0x3b9, 0x3b1, 0x3ba, 0x3ae, 0x3b, 0x394, 0x3b5, 0x3c5,
+0x3c4, 0x3ad, 0x3c1, 0x3b1, 0x3b, 0x3a4, 0x3c1, 0x3af, 0x3c4, 0x3b7, 0x3b, 0x3a4, 0x3b5, 0x3c4, 0x3ac, 0x3c1, 0x3c4, 0x3b7, 0x3b, 0x3a0,
+0x3ad, 0x3bc, 0x3c0, 0x3c4, 0x3b7, 0x3b, 0x3a0, 0x3b1, 0x3c1, 0x3b1, 0x3c3, 0x3ba, 0x3b5, 0x3c5, 0x3ae, 0x3b, 0x3a3, 0x3ac, 0x3b2, 0x3b2,
+0x3b1, 0x3c4, 0x3bf, 0x3b, 0x39a, 0x3b, 0x394, 0x3b, 0x3a4, 0x3b, 0x3a4, 0x3b, 0x3a0, 0x3b, 0x3a0, 0x3b, 0x3a3, 0x3b, 0x73, 0x61,
+0x62, 0x3b, 0x61, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x70, 0x69, 0x6e, 0x3b, 0x73, 0x69, 0x73, 0x3b, 0x74, 0x61,
+0x6c, 0x3b, 0x61, 0x72, 0x66, 0x3b, 0x73, 0x61, 0x62, 0x61, 0x61, 0x74, 0x3b, 0x61, 0x74, 0x61, 0x61, 0x73, 0x69, 0x6e,
+0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x6d, 0x61, 0x72, 0x6c, 0x75, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65,
+0x71, 0x3b, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x73, 0x75, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x73, 0x69,
+0x73, 0x61, 0x6d, 0x61, 0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x61,
+0x6e, 0x6e, 0x67, 0x6f, 0x72, 0x6e, 0x65, 0x71, 0x3b, 0x61, 0x72, 0x66, 0x69, 0x6e, 0x69, 0x6e, 0x6e, 0x67, 0x6f, 0x72,
+0x6e, 0x65, 0x71, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0xab0, 0xab5,
+0xabf, 0x3b, 0xab8, 0xacb, 0xaae, 0x3b, 0xaae, 0xa82, 0xa97, 0xab3, 0x3b, 0xaac, 0xac1, 0xaa7, 0x3b, 0xa97, 0xac1, 0xab0, 0xac1, 0x3b,
+0xab6, 0xac1, 0xa95, 0xacd, 0xab0, 0x3b, 0xab6, 0xaa8, 0xabf, 0x3b, 0xab0, 0xab5, 0xabf, 0xab5, 0xabe, 0xab0, 0x3b, 0xab8, 0xacb, 0xaae,
+0xab5, 0xabe, 0xab0, 0x3b, 0xaae, 0xa82, 0xa97, 0xab3, 0xab5, 0xabe, 0xab0, 0x3b, 0xaac, 0xac1, 0xaa7, 0xab5, 0xabe, 0xab0, 0x3b, 0xa97,
+0xac1, 0xab0, 0xac1, 0xab5, 0xabe, 0xab0, 0x3b, 0xab6, 0xac1, 0xa95, 0xacd, 0xab0, 0xab5, 0xabe, 0xab0, 0x3b, 0xab6, 0xaa8, 0xabf, 0xab5,
+0xabe, 0xab0, 0x3b, 0xab0, 0x3b, 0xab8, 0xacb, 0x3b, 0xaae, 0xa82, 0x3b, 0xaac, 0xac1, 0x3b, 0xa97, 0xac1, 0x3b, 0xab6, 0xac1, 0x3b,
+0xab6, 0x3b, 0x4c, 0x68, 0x3b, 0x4c, 0x69, 0x3b, 0x54, 0x61, 0x3b, 0x4c, 0x72, 0x3b, 0x41, 0x6c, 0x3b, 0x4a, 0x75, 0x3b,
+0x41, 0x73, 0x3b, 0x4c, 0x61, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x4c, 0x69, 0x74, 0x69, 0x6e, 0x69, 0x6e, 0x3b, 0x54, 0x61,
+0x6c, 0x61, 0x74, 0x61, 0x3b, 0x4c, 0x61, 0x72, 0x61, 0x62, 0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x3b,
+0x4a, 0x75, 0x6d, 0x6d, 0x61, 0x2bc, 0x61, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x61, 0x72, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x54,
+0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d0, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20,
+0x5d1, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d2, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d3, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd,
+0x20, 0x5d4, 0x5f3, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d5, 0x5f3, 0x3b, 0x5e9, 0x5d1, 0x5ea, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e8,
+0x5d0, 0x5e9, 0x5d5, 0x5df, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5dc, 0x5d9,
+0x5e9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e8, 0x5d1, 0x5d9, 0x5e2, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5d7, 0x5de, 0x5d9,
+0x5e9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5d9, 0x5e9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dd, 0x20, 0x5e9, 0x5d1, 0x5ea, 0x3b,
+0x5d0, 0x5f3, 0x3b, 0x5d1, 0x5f3, 0x3b, 0x5d2, 0x5f3, 0x3b, 0x5d3, 0x5f3, 0x3b, 0x5d4, 0x5f3, 0x3b, 0x5d5, 0x5f3, 0x3b, 0x5e9, 0x5f3,
+0x3b, 0x930, 0x935, 0x93f, 0x3b, 0x938, 0x94b, 0x92e, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x3b, 0x92c, 0x941, 0x927, 0x3b, 0x917, 0x941,
+0x930, 0x941, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x930, 0x935, 0x93f, 0x935, 0x93e, 0x930, 0x3b,
+0x938, 0x94b, 0x92e, 0x935, 0x93e, 0x930, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e,
+0x930, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936,
+0x928, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x930, 0x3b, 0x938, 0x94b, 0x3b, 0x92e, 0x902, 0x3b, 0x92c, 0x941, 0x3b, 0x917, 0x941, 0x3b,
+0x936, 0x941, 0x3b, 0x936, 0x3b, 0x56, 0x3b, 0x48, 0x3b, 0x4b, 0x3b, 0x53, 0x7a, 0x65, 0x3b, 0x43, 0x73, 0x3b, 0x50, 0x3b,
+0x53, 0x7a, 0x6f, 0x3b, 0x76, 0x61, 0x73, 0xe1, 0x72, 0x6e, 0x61, 0x70, 0x3b, 0x68, 0xe9, 0x74, 0x66, 0x151, 0x3b, 0x6b,
+0x65, 0x64, 0x64, 0x3b, 0x73, 0x7a, 0x65, 0x72, 0x64, 0x61, 0x3b, 0x63, 0x73, 0xfc, 0x74, 0xf6, 0x72, 0x74, 0xf6, 0x6b,
+0x3b, 0x70, 0xe9, 0x6e, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x7a, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x3b, 0x56, 0x3b, 0x48, 0x3b,
+0x4b, 0x3b, 0x53, 0x7a, 0x3b, 0x43, 0x73, 0x3b, 0x50, 0x3b, 0x53, 0x7a, 0x3b, 0x73, 0x75, 0x6e, 0x2e, 0x3b, 0x6d, 0xe1,
+0x6e, 0x2e, 0x3b, 0xfe, 0x72, 0x69, 0x2e, 0x3b, 0x6d, 0x69, 0xf0, 0x2e, 0x3b, 0x66, 0x69, 0x6d, 0x2e, 0x3b, 0x66, 0xf6,
+0x73, 0x2e, 0x3b, 0x6c, 0x61, 0x75, 0x2e, 0x3b, 0x73, 0x75, 0x6e, 0x6e, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6d,
+0xe1, 0x6e, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0xfe, 0x72, 0x69, 0xf0, 0x6a, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72,
+0x3b, 0x6d, 0x69, 0xf0, 0x76, 0x69, 0x6b, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x66, 0x69, 0x6d, 0x6d, 0x74, 0x75,
+0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x66, 0xf6, 0x73, 0x74, 0x75, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x6c, 0x61, 0x75,
+0x67, 0x61, 0x72, 0x64, 0x61, 0x67, 0x75, 0x72, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0xde, 0x3b, 0x4d, 0x3b, 0x46, 0x3b, 0x46,
+0x3b, 0x4c, 0x3b, 0x4d, 0x69, 0x6e, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x3b, 0x52, 0x61, 0x62, 0x3b, 0x4b,
+0x61, 0x6d, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4d, 0x69, 0x6e, 0x67, 0x67, 0x75, 0x3b, 0x53, 0x65,
+0x6e, 0x69, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x61, 0x73, 0x61, 0x3b, 0x52, 0x61, 0x62, 0x75, 0x3b, 0x4b, 0x61, 0x6d, 0x69,
+0x73, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x74, 0x75, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b,
+0x52, 0x3b, 0x4b, 0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0x44, 0x6f, 0x6d, 0x68, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x3b, 0x4d, 0xe1,
+0x69, 0x72, 0x74, 0x3b, 0x43, 0xe9, 0x61, 0x64, 0x3b, 0x44, 0xe9, 0x61, 0x72, 0x3b, 0x41, 0x6f, 0x69, 0x6e, 0x65, 0x3b,
+0x53, 0x61, 0x74, 0x68, 0x3b, 0x44, 0xe9, 0x20, 0x44, 0x6f, 0x6d, 0x68, 0x6e, 0x61, 0x69, 0x67, 0x68, 0x3b, 0x44, 0xe9,
+0x20, 0x4c, 0x75, 0x61, 0x69, 0x6e, 0x3b, 0x44, 0xe9, 0x20, 0x4d, 0xe1, 0x69, 0x72, 0x74, 0x3b, 0x44, 0xe9, 0x20, 0x43,
+0xe9, 0x61, 0x64, 0x61, 0x6f, 0x69, 0x6e, 0x3b, 0x44, 0xe9, 0x61, 0x72, 0x64, 0x61, 0x6f, 0x69, 0x6e, 0x3b, 0x44, 0xe9,
+0x20, 0x68, 0x41, 0x6f, 0x69, 0x6e, 0x65, 0x3b, 0x44, 0xe9, 0x20, 0x53, 0x61, 0x74, 0x68, 0x61, 0x69, 0x72, 0x6e, 0x3b,
+0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x44, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x75,
+0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x72, 0x3b, 0x67, 0x69, 0x6f, 0x3b, 0x76, 0x65, 0x6e, 0x3b, 0x73, 0x61,
+0x62, 0x3b, 0x44, 0x6f, 0x6d, 0x65, 0x6e, 0x69, 0x63, 0x61, 0x3b, 0x4c, 0x75, 0x6e, 0x65, 0x64, 0xec, 0x3b, 0x4d, 0x61,
+0x72, 0x74, 0x65, 0x64, 0xec, 0x3b, 0x4d, 0x65, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x64, 0xec, 0x3b, 0x47, 0x69, 0x6f, 0x76,
+0x65, 0x64, 0xec, 0x3b, 0x56, 0x65, 0x6e, 0x65, 0x72, 0x64, 0xec, 0x3b, 0x53, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x44,
+0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x65, 0x6e, 0x69, 0x63,
+0x61, 0x3b, 0x6c, 0x75, 0x6e, 0x65, 0x64, 0xec, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x64, 0xec, 0x3b, 0x6d, 0x65, 0x72,
+0x63, 0x6f, 0x6c, 0x65, 0x64, 0xec, 0x3b, 0x67, 0x69, 0x6f, 0x76, 0x65, 0x64, 0xec, 0x3b, 0x76, 0x65, 0x6e, 0x65, 0x72,
+0x64, 0xec, 0x3b, 0x73, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x65e5, 0x3b, 0x6708, 0x3b, 0x706b, 0x3b, 0x6c34, 0x3b, 0x6728, 0x3b,
+0x91d1, 0x3b, 0x571f, 0x3b, 0x65e5, 0x66dc, 0x65e5, 0x3b, 0x6708, 0x66dc, 0x65e5, 0x3b, 0x706b, 0x66dc, 0x65e5, 0x3b, 0x6c34, 0x66dc, 0x65e5, 0x3b,
+0x6728, 0x66dc, 0x65e5, 0x3b, 0x91d1, 0x66dc, 0x65e5, 0x3b, 0x571f, 0x66dc, 0x65e5, 0x3b, 0xcad, 0xcbe, 0xca8, 0xcc1, 0x3b, 0xcb8, 0xccb, 0xcae,
+0x3b, 0xcae, 0xc82, 0xc97, 0xcb3, 0x3b, 0xcac, 0xcc1, 0xca7, 0x3b, 0xc97, 0xcc1, 0xcb0, 0xcc1, 0x3b, 0xcb6, 0xcc1, 0xc95, 0xccd, 0xcb0,
+0x3b, 0xcb6, 0xca8, 0xcbf, 0x3b, 0xcad, 0xcbe, 0xca8, 0xcc1, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcb8, 0xccb, 0xcae, 0xcb5, 0xcbe, 0xcb0, 0x3b,
0xcae, 0xc82, 0xc97, 0xcb3, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcac, 0xcc1, 0xca7, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xc97, 0xcc1, 0xcb0, 0xcc1, 0xcb5,
-0xcbe, 0xcb0, 0x3b, 0xcb6, 0xcc1, 0xc95, 0xccd, 0xcb0, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcb6, 0xca8, 0xcbf, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcb0,
-0x3b, 0xcb8, 0xccb, 0x3b, 0xcae, 0xc82, 0x3b, 0xcac, 0xcc1, 0x3b, 0xc97, 0xcc1, 0x3b, 0xcb6, 0xcc1, 0x3b, 0xcb6, 0x3b, 0xcb0, 0x2e,
-0x3b, 0xcb8, 0xccb, 0x2e, 0x3b, 0xcae, 0xc82, 0x2e, 0x3b, 0xcac, 0xcc1, 0x2e, 0x3b, 0xc97, 0xcc1, 0x2e, 0x3b, 0xcb6, 0xcc1, 0x2e,
-0x3b, 0xcb6, 0xca8, 0xcbf, 0x2e, 0x3b, 0x622, 0x62a, 0x6be, 0x648, 0x627, 0x631, 0x3b, 0x698, 0x654, 0x646, 0x65b, 0x62f, 0x655, 0x631,
-0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x65a, 0x645, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x62f, 0x648, 0x627, 0x631, 0x3b, 0x628,
-0x631, 0x65b, 0x66e, 0x6ea, 0x633, 0x648, 0x627, 0x631, 0x3b, 0x62c, 0x64f, 0x645, 0x6c1, 0x3b, 0x628, 0x679, 0x648, 0x627, 0x631, 0x3b,
-0x627, 0x64e, 0x62a, 0x6be, 0x648, 0x627, 0x631, 0x3b, 0x698, 0x654, 0x646, 0x65b, 0x62f, 0x631, 0x655, 0x631, 0x648, 0x627, 0x631, 0x3b,
-0x628, 0x648, 0x65a, 0x645, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x62f, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x631, 0x65b, 0x66e, 0x6ea,
-0x633, 0x648, 0x627, 0x631, 0x3b, 0x62c, 0x64f, 0x645, 0x6c1, 0x3b, 0x628, 0x679, 0x648, 0x627, 0x631, 0x3b, 0x627, 0x3b, 0x698, 0x3b,
-0x628, 0x3b, 0x628, 0x3b, 0x628, 0x3b, 0x62c, 0x3b, 0x628, 0x3b, 0x436, 0x441, 0x2e, 0x3b, 0x434, 0x441, 0x2e, 0x3b, 0x441, 0x441,
-0x2e, 0x3b, 0x441, 0x440, 0x2e, 0x3b, 0x431, 0x441, 0x2e, 0x3b, 0x436, 0x43c, 0x2e, 0x3b, 0x441, 0x431, 0x2e, 0x3b, 0x436, 0x435,
-0x43a, 0x441, 0x435, 0x43d, 0x456, 0x3b, 0x434, 0x443, 0x439, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x441, 0x435, 0x439, 0x441, 0x435,
-0x43d, 0x431, 0x456, 0x3b, 0x441, 0x4d9, 0x440, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x431, 0x435, 0x439, 0x441, 0x435, 0x43d, 0x431,
-0x456, 0x3b, 0x436, 0x4b1, 0x43c, 0x430, 0x3b, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x416, 0x3b, 0x414, 0x3b, 0x421, 0x3b, 0x421,
-0x3b, 0x411, 0x3b, 0x416, 0x3b, 0x421, 0x3b, 0x63, 0x79, 0x75, 0x2e, 0x3b, 0x6d, 0x62, 0x65, 0x2e, 0x3b, 0x6b, 0x61, 0x62,
-0x2e, 0x3b, 0x67, 0x74, 0x75, 0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x67, 0x6e, 0x75, 0x2e, 0x3b, 0x67, 0x6e, 0x64,
-0x2e, 0x3b, 0x4b, 0x75, 0x20, 0x63, 0x79, 0x75, 0x6d, 0x77, 0x65, 0x72, 0x75, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x6d,
-0x62, 0x65, 0x72, 0x65, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4b, 0x75, 0x77,
-0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x65, 0x3b, 0x4b,
-0x75, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61,
-0x6e, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x416, 0x435, 0x43a, 0x3b, 0x414, 0x4af, 0x439, 0x3b, 0x428, 0x435, 0x439, 0x3b, 0x428, 0x430,
-0x440, 0x3b, 0x411, 0x435, 0x439, 0x3b, 0x416, 0x443, 0x43c, 0x3b, 0x418, 0x448, 0x43c, 0x3b, 0x416, 0x435, 0x43a, 0x448, 0x435, 0x43c,
-0x431, 0x438, 0x3b, 0x414, 0x4af, 0x439, 0x448, 0x4e9, 0x43c, 0x431, 0x4af, 0x3b, 0x428, 0x435, 0x439, 0x448, 0x435, 0x43c, 0x431, 0x438,
-0x3b, 0x428, 0x430, 0x440, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x411, 0x435, 0x439, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x416,
-0x443, 0x43c, 0x430, 0x3b, 0x418, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x416, 0x3b, 0x414, 0x3b, 0x428, 0x3b, 0x428, 0x3b, 0x411,
-0x3b, 0x416, 0x3b, 0x418, 0x3b, 0x416, 0x43a, 0x3b, 0x414, 0x448, 0x3b, 0x428, 0x435, 0x3b, 0x428, 0x430, 0x3b, 0x411, 0x448, 0x3b,
-0x416, 0x43c, 0x3b, 0x418, 0x448, 0x3b, 0xc77c, 0x3b, 0xc6d4, 0x3b, 0xd654, 0x3b, 0xc218, 0x3b, 0xbaa9, 0x3b, 0xae08, 0x3b, 0xd1a0, 0x3b,
-0xc77c, 0xc694, 0xc77c, 0x3b, 0xc6d4, 0xc694, 0xc77c, 0x3b, 0xd654, 0xc694, 0xc77c, 0x3b, 0xc218, 0xc694, 0xc77c, 0x3b, 0xbaa9, 0xc694, 0xc77c, 0x3b,
-0xae08, 0xc694, 0xc77c, 0x3b, 0xd1a0, 0xc694, 0xc77c, 0x3b, 0x63, 0x75, 0x2e, 0x3b, 0x6d, 0x62, 0x65, 0x2e, 0x3b, 0x6b, 0x61, 0x62,
-0x2e, 0x3b, 0x67, 0x74, 0x75, 0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x67, 0x6e, 0x75, 0x2e, 0x3b, 0x67, 0x6e, 0x64,
-0x2e, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x27, 0x69, 0x6e, 0x64, 0x77, 0x69, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x6d,
-0x62, 0x65, 0x72, 0x65, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4b, 0x75,
-0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e,
-0x65, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61,
-0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x75, 0x3b, 0xea7, 0xeb1, 0xe99, 0xead, 0xeb2, 0xe97, 0xeb4, 0xe94, 0x3b,
-0xea7, 0xeb1, 0xe99, 0xe88, 0xeb1, 0xe99, 0x3b, 0xea7, 0xeb1, 0xe99, 0xead, 0xeb1, 0xe87, 0xe84, 0xeb2, 0xe99, 0x3b, 0xea7, 0xeb1, 0xe99,
-0xe9e, 0xeb8, 0xe94, 0x3b, 0xea7, 0xeb1, 0xe99, 0xe9e, 0xeb0, 0xeab, 0xeb1, 0xe94, 0x3b, 0xea7, 0xeb1, 0xe99, 0xeaa, 0xeb8, 0xe81, 0x3b,
-0xea7, 0xeb1, 0xe99, 0xec0, 0xeaa, 0xebb, 0xeb2, 0x3b, 0xe97, 0x3b, 0xe88, 0x3b, 0xe84, 0x3b, 0x200b, 0xe9e, 0xeb8, 0x3b, 0xe9e, 0x3b,
-0x200b, 0xeaa, 0xeb8, 0x3b, 0xeaa, 0x3b, 0x53, 0x76, 0x3b, 0x50, 0x72, 0x3b, 0x4f, 0x74, 0x3b, 0x54, 0x72, 0x3b, 0x43, 0x65,
-0x3b, 0x50, 0x6b, 0x3b, 0x53, 0x65, 0x3b, 0x53, 0x76, 0x113, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x50, 0x69, 0x72,
-0x6d, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x4f, 0x74, 0x72, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x54, 0x72, 0x65, 0x161,
-0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x43, 0x65, 0x74, 0x75, 0x72, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x50, 0x69,
-0x65, 0x6b, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x53, 0x65, 0x73, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x53,
-0x3b, 0x50, 0x3b, 0x4f, 0x3b, 0x54, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x73, 0x76, 0x113, 0x74, 0x64, 0x69, 0x65,
-0x6e, 0x61, 0x3b, 0x70, 0x69, 0x72, 0x6d, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x6f, 0x74, 0x72, 0x64, 0x69, 0x65, 0x6e,
-0x61, 0x3b, 0x74, 0x72, 0x65, 0x161, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x63, 0x65, 0x74, 0x75, 0x72, 0x74, 0x64, 0x69,
-0x65, 0x6e, 0x61, 0x3b, 0x70, 0x69, 0x65, 0x6b, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x73, 0x65, 0x73, 0x74, 0x64,
-0x69, 0x65, 0x6e, 0x61, 0x3b, 0x65, 0x79, 0x65, 0x3b, 0x79, 0x62, 0x6f, 0x3b, 0x6d, 0x62, 0x6c, 0x3b, 0x6d, 0x73, 0x74,
-0x3b, 0x6d, 0x69, 0x6e, 0x3b, 0x6d, 0x74, 0x6e, 0x3b, 0x6d, 0x70, 0x73, 0x3b, 0x65, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b,
-0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x79, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x6d, 0x6f, 0x6b,
-0x254, 0x6c, 0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c,
-0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x6d, 0xed, 0x73, 0xe1, 0x74, 0x6f, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20,
-0x79, 0x61, 0x20, 0x6d, 0xed, 0x6e, 0xe9, 0x69, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x79, 0x61, 0x20, 0x6d,
-0xed, 0x74, 0xe1, 0x6e, 0x6f, 0x3b, 0x6d, 0x70, 0x254, 0x301, 0x73, 0x254, 0x3b, 0x65, 0x3b, 0x79, 0x3b, 0x6d, 0x3b, 0x6d,
-0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x70, 0x3b, 0x73, 0x6b, 0x3b, 0x70, 0x72, 0x3b, 0x61, 0x6e, 0x3b, 0x74, 0x72, 0x3b, 0x6b,
-0x74, 0x3b, 0x70, 0x6e, 0x3b, 0x161, 0x74, 0x3b, 0x73, 0x65, 0x6b, 0x6d, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b,
-0x70, 0x69, 0x72, 0x6d, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x61, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x69, 0x65,
-0x6e, 0x69, 0x73, 0x3b, 0x74, 0x72, 0x65, 0x10d, 0x69, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x6b, 0x65, 0x74,
-0x76, 0x69, 0x72, 0x74, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x70, 0x65, 0x6e, 0x6b, 0x74, 0x61, 0x64, 0x69,
-0x65, 0x6e, 0x69, 0x73, 0x3b, 0x161, 0x65, 0x161, 0x74, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x53, 0x3b, 0x50,
-0x3b, 0x41, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x160, 0x3b, 0x43d, 0x435, 0x434, 0x2e, 0x3b, 0x43f, 0x43e, 0x43d, 0x2e,
-0x3b, 0x432, 0x442, 0x2e, 0x3b, 0x441, 0x440, 0x435, 0x2e, 0x3b, 0x447, 0x435, 0x442, 0x2e, 0x3b, 0x43f, 0x435, 0x442, 0x2e, 0x3b,
-0x441, 0x430, 0x431, 0x2e, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x430, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x43d,
-0x438, 0x43a, 0x3b, 0x432, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x441, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442,
-0x432, 0x440, 0x442, 0x43e, 0x43a, 0x3b, 0x43f, 0x435, 0x442, 0x43e, 0x43a, 0x3b, 0x441, 0x430, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x41,
-0x6c, 0x61, 0x68, 0x3b, 0x41, 0x6c, 0x61, 0x74, 0x73, 0x3b, 0x54, 0x61, 0x6c, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x3b, 0x41,
-0x6c, 0x61, 0x6b, 0x3b, 0x5a, 0x6f, 0x6d, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x3b, 0x41, 0x6c, 0x61, 0x68, 0x61, 0x64, 0x79,
-0x3b, 0x41, 0x6c, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x61, 0x69, 0x6e, 0x79, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b,
-0x41, 0x6c, 0x61, 0x72, 0x6f, 0x62, 0x69, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x6b, 0x61, 0x6d, 0x69, 0x73, 0x79, 0x3b, 0x5a,
-0x6f, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x6f, 0x74, 0x73, 0x79, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x54, 0x3b, 0x41,
-0x3b, 0x41, 0x3b, 0x5a, 0x3b, 0x41, 0x3b, 0x41, 0x68, 0x64, 0x3b, 0x49, 0x73, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x3b, 0x52,
-0x61, 0x62, 0x3b, 0x4b, 0x68, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x41, 0x68, 0x61, 0x64, 0x3b,
-0x49, 0x73, 0x6e, 0x69, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x61, 0x73, 0x61, 0x3b, 0x52, 0x61, 0x62, 0x75, 0x3b, 0x4b, 0x68,
-0x61, 0x6d, 0x69, 0x73, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x74, 0x75, 0x3b, 0x41, 0x3b,
-0x49, 0x3b, 0x53, 0x3b, 0x52, 0x3b, 0x4b, 0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0xd1e, 0xd3e, 0xd2f, 0xd7c, 0x3b, 0xd24, 0xd3f, 0xd19,
-0xd4d, 0xd15, 0xd7e, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d, 0xd35, 0x3b, 0xd2c, 0xd41, 0xd27, 0xd7b, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e, 0xd34,
-0xd02, 0x3b, 0xd35, 0xd46, 0xd33, 0xd4d, 0xd33, 0xd3f, 0x3b, 0xd36, 0xd28, 0xd3f, 0x3b, 0xd1e, 0xd3e, 0xd2f, 0xd31, 0xd3e, 0xd34, 0xd4d,
-0x200c, 0xd1a, 0x3b, 0xd24, 0xd3f, 0xd19, 0xd4d, 0xd15, 0xd33, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d, 0xd35,
-0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd2c, 0xd41, 0xd27, 0xd28, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e,
+0xcbe, 0xcb0, 0x3b, 0xcb6, 0xcc1, 0xc95, 0xccd, 0xcb0, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcb6, 0xca8, 0xcbf, 0xcb5, 0xcbe, 0xcb0, 0x3b, 0xcad,
+0xcbe, 0x3b, 0xcb8, 0xccb, 0x3b, 0xcae, 0xc82, 0x3b, 0xcac, 0xcc1, 0x3b, 0xc97, 0xcc1, 0x3b, 0xcb6, 0xcc1, 0x3b, 0xcb6, 0x3b, 0x622,
+0x62a, 0x6be, 0x648, 0x627, 0x631, 0x3b, 0x698, 0x654, 0x646, 0x65b, 0x62f, 0x655, 0x631, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x65a,
+0x645, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x62f, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x631, 0x65b, 0x66e, 0x6ea, 0x633, 0x648, 0x627,
+0x631, 0x3b, 0x62c, 0x64f, 0x645, 0x6c1, 0x3b, 0x628, 0x679, 0x648, 0x627, 0x631, 0x3b, 0x627, 0x64e, 0x62a, 0x6be, 0x648, 0x627, 0x631,
+0x3b, 0x698, 0x654, 0x646, 0x65b, 0x62f, 0x631, 0x655, 0x631, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x648, 0x65a, 0x645, 0x648, 0x627, 0x631,
+0x3b, 0x628, 0x648, 0x62f, 0x648, 0x627, 0x631, 0x3b, 0x628, 0x631, 0x65b, 0x66e, 0x6ea, 0x633, 0x648, 0x627, 0x631, 0x3b, 0x62c, 0x64f,
+0x645, 0x6c1, 0x3b, 0x628, 0x679, 0x648, 0x627, 0x631, 0x3b, 0x627, 0x3b, 0x698, 0x3b, 0x628, 0x3b, 0x628, 0x3b, 0x628, 0x3b, 0x62c,
+0x3b, 0x628, 0x3b, 0x436, 0x435, 0x43a, 0x3b, 0x434, 0x4af, 0x439, 0x3b, 0x441, 0x435, 0x439, 0x3b, 0x441, 0x4d9, 0x440, 0x3b, 0x431,
+0x435, 0x439, 0x3b, 0x436, 0x4b1, 0x43c, 0x430, 0x3b, 0x441, 0x431, 0x2e, 0x3b, 0x436, 0x435, 0x43a, 0x441, 0x435, 0x43d, 0x431, 0x456,
+0x3b, 0x434, 0x4af, 0x439, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x441, 0x435, 0x439, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x441,
+0x4d9, 0x440, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x431, 0x435, 0x439, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x436, 0x4b1, 0x43c,
+0x430, 0x3b, 0x441, 0x435, 0x43d, 0x431, 0x456, 0x3b, 0x416, 0x3b, 0x414, 0x3b, 0x421, 0x3b, 0x421, 0x3b, 0x411, 0x3b, 0x416, 0x3b,
+0x421, 0x3b, 0x436, 0x435, 0x43a, 0x3b, 0x434, 0x4af, 0x439, 0x3b, 0x441, 0x435, 0x439, 0x3b, 0x441, 0x4d9, 0x440, 0x3b, 0x431, 0x435,
+0x439, 0x3b, 0x436, 0x4b1, 0x43c, 0x430, 0x3b, 0x441, 0x435, 0x43d, 0x3b, 0x63, 0x79, 0x75, 0x2e, 0x3b, 0x6d, 0x62, 0x65, 0x2e,
+0x3b, 0x6b, 0x61, 0x62, 0x2e, 0x3b, 0x67, 0x74, 0x75, 0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x67, 0x6e, 0x75, 0x2e,
+0x3b, 0x67, 0x6e, 0x64, 0x2e, 0x3b, 0x4b, 0x75, 0x20, 0x63, 0x79, 0x75, 0x6d, 0x77, 0x65, 0x72, 0x75, 0x3b, 0x4b, 0x75,
+0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69,
+0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x6b, 0x61,
+0x6e, 0x65, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4b, 0x75, 0x77, 0x61, 0x20,
+0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x436, 0x435, 0x43a, 0x2e, 0x3b, 0x434, 0x4af, 0x439, 0x2e, 0x3b,
+0x448, 0x435, 0x439, 0x448, 0x2e, 0x3b, 0x448, 0x430, 0x440, 0x448, 0x2e, 0x3b, 0x431, 0x435, 0x439, 0x448, 0x2e, 0x3b, 0x436, 0x443,
+0x43c, 0x430, 0x3b, 0x438, 0x448, 0x43c, 0x2e, 0x3b, 0x436, 0x435, 0x43a, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x434, 0x4af, 0x439,
+0x448, 0x4e9, 0x43c, 0x431, 0x4af, 0x3b, 0x448, 0x435, 0x439, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x448, 0x430, 0x440, 0x448, 0x435,
+0x43c, 0x431, 0x438, 0x3b, 0x431, 0x435, 0x439, 0x448, 0x435, 0x43c, 0x431, 0x438, 0x3b, 0x436, 0x443, 0x43c, 0x430, 0x3b, 0x438, 0x448,
+0x435, 0x43c, 0x431, 0x438, 0x3b, 0x416, 0x3b, 0x414, 0x3b, 0x428, 0x3b, 0x428, 0x3b, 0x411, 0x3b, 0x416, 0x3b, 0x418, 0x3b, 0xc77c,
+0x3b, 0xc6d4, 0x3b, 0xd654, 0x3b, 0xc218, 0x3b, 0xbaa9, 0x3b, 0xae08, 0x3b, 0xd1a0, 0x3b, 0xc77c, 0xc694, 0xc77c, 0x3b, 0xc6d4, 0xc694, 0xc77c,
+0x3b, 0xd654, 0xc694, 0xc77c, 0x3b, 0xc218, 0xc694, 0xc77c, 0x3b, 0xbaa9, 0xc694, 0xc77c, 0x3b, 0xae08, 0xc694, 0xc77c, 0x3b, 0xd1a0, 0xc694, 0xc77c,
+0x3b, 0x63, 0x75, 0x2e, 0x3b, 0x6d, 0x62, 0x65, 0x2e, 0x3b, 0x6b, 0x61, 0x62, 0x2e, 0x3b, 0x67, 0x74, 0x75, 0x2e, 0x3b,
+0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x67, 0x6e, 0x75, 0x2e, 0x3b, 0x67, 0x6e, 0x64, 0x2e, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x2019,
+0x69, 0x6e, 0x64, 0x77, 0x69, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4b, 0x75,
+0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74,
+0x61, 0x74, 0x75, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x65, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61,
+0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4b, 0x75, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64,
+0x61, 0x74, 0x75, 0x3b, 0xead, 0xeb2, 0xe97, 0xeb4, 0xe94, 0x3b, 0xe88, 0xeb1, 0xe99, 0x3b, 0xead, 0xeb1, 0xe87, 0xe84, 0xeb2, 0xe99,
+0x3b, 0xe9e, 0xeb8, 0xe94, 0x3b, 0xe9e, 0xeb0, 0xeab, 0xeb1, 0xe94, 0x3b, 0xeaa, 0xeb8, 0xe81, 0x3b, 0xec0, 0xeaa, 0xebb, 0xeb2, 0x3b,
+0xea7, 0xeb1, 0xe99, 0xead, 0xeb2, 0xe97, 0xeb4, 0xe94, 0x3b, 0xea7, 0xeb1, 0xe99, 0xe88, 0xeb1, 0xe99, 0x3b, 0xea7, 0xeb1, 0xe99, 0xead,
+0xeb1, 0xe87, 0xe84, 0xeb2, 0xe99, 0x3b, 0xea7, 0xeb1, 0xe99, 0xe9e, 0xeb8, 0xe94, 0x3b, 0xea7, 0xeb1, 0xe99, 0xe9e, 0xeb0, 0xeab, 0xeb1,
+0xe94, 0x3b, 0xea7, 0xeb1, 0xe99, 0xeaa, 0xeb8, 0xe81, 0x3b, 0xea7, 0xeb1, 0xe99, 0xec0, 0xeaa, 0xebb, 0xeb2, 0x3b, 0xead, 0x3b, 0xe88,
+0x3b, 0xead, 0x3b, 0xe9e, 0x3b, 0xe9e, 0xeab, 0x3b, 0xeaa, 0xeb8, 0x3b, 0xeaa, 0x3b, 0x53, 0x76, 0x3b, 0x50, 0x72, 0x3b, 0x4f,
+0x74, 0x3b, 0x54, 0x72, 0x3b, 0x43, 0x65, 0x3b, 0x50, 0x6b, 0x3b, 0x53, 0x65, 0x3b, 0x53, 0x76, 0x113, 0x74, 0x64, 0x69,
+0x65, 0x6e, 0x61, 0x3b, 0x50, 0x69, 0x72, 0x6d, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x4f, 0x74, 0x72, 0x64, 0x69, 0x65,
+0x6e, 0x61, 0x3b, 0x54, 0x72, 0x65, 0x161, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x43, 0x65, 0x74, 0x75, 0x72, 0x74, 0x64,
+0x69, 0x65, 0x6e, 0x61, 0x3b, 0x50, 0x69, 0x65, 0x6b, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x53, 0x65, 0x73, 0x74,
+0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x53, 0x3b, 0x50, 0x3b, 0x4f, 0x3b, 0x54, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x53, 0x3b,
+0x73, 0x76, 0x113, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x70, 0x69, 0x72, 0x6d, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b,
+0x6f, 0x74, 0x72, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x74, 0x72, 0x65, 0x161, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x63,
+0x65, 0x74, 0x75, 0x72, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x70, 0x69, 0x65, 0x6b, 0x74, 0x64, 0x69, 0x65, 0x6e,
+0x61, 0x3b, 0x73, 0x65, 0x73, 0x74, 0x64, 0x69, 0x65, 0x6e, 0x61, 0x3b, 0x65, 0x79, 0x65, 0x3b, 0x79, 0x62, 0x6f, 0x3b,
+0x6d, 0x62, 0x6c, 0x3b, 0x6d, 0x73, 0x74, 0x3b, 0x6d, 0x69, 0x6e, 0x3b, 0x6d, 0x74, 0x6e, 0x3b, 0x6d, 0x70, 0x73, 0x3b,
+0x65, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x79, 0x61,
+0x6d, 0x62, 0x6f, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c,
+0xe9, 0x3b, 0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x6d, 0x77, 0x61, 0x20, 0x6d, 0xed, 0x73, 0xe1, 0x74, 0x6f, 0x3b,
+0x6d, 0x6f, 0x6b, 0x254, 0x6c, 0x254, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x6e, 0xe9, 0x69, 0x3b, 0x6d, 0x6f, 0x6b, 0x254,
+0x6c, 0x254, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x74, 0xe1, 0x6e, 0x6f, 0x3b, 0x6d, 0x70, 0x254, 0x301, 0x73, 0x254, 0x3b,
+0x65, 0x3b, 0x79, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x70, 0x3b, 0x73, 0x6b, 0x3b, 0x70, 0x72, 0x3b,
+0x61, 0x6e, 0x3b, 0x74, 0x72, 0x3b, 0x6b, 0x74, 0x3b, 0x70, 0x6e, 0x3b, 0x161, 0x74, 0x3b, 0x73, 0x65, 0x6b, 0x6d, 0x61,
+0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x70, 0x69, 0x72, 0x6d, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x61,
+0x6e, 0x74, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x74, 0x72, 0x65, 0x10d, 0x69, 0x61, 0x64, 0x69, 0x65,
+0x6e, 0x69, 0x73, 0x3b, 0x6b, 0x65, 0x74, 0x76, 0x69, 0x72, 0x74, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x70,
+0x65, 0x6e, 0x6b, 0x74, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x161, 0x65, 0x161, 0x74, 0x61, 0x64, 0x69, 0x65,
+0x6e, 0x69, 0x73, 0x3b, 0x53, 0x3b, 0x50, 0x3b, 0x41, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x160, 0x3b, 0x43d, 0x435,
+0x434, 0x2e, 0x3b, 0x43f, 0x43e, 0x43d, 0x2e, 0x3b, 0x432, 0x442, 0x2e, 0x3b, 0x441, 0x440, 0x435, 0x2e, 0x3b, 0x447, 0x435, 0x442,
+0x2e, 0x3b, 0x43f, 0x435, 0x442, 0x2e, 0x3b, 0x441, 0x430, 0x431, 0x2e, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x430, 0x3b, 0x43f,
+0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x43d, 0x438, 0x43a, 0x3b, 0x432, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x441, 0x440,
+0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x440, 0x442, 0x43e, 0x43a, 0x3b, 0x43f, 0x435, 0x442, 0x43e, 0x43a, 0x3b, 0x441,
+0x430, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x41, 0x6c, 0x61, 0x68, 0x3b, 0x41, 0x6c, 0x61, 0x74, 0x73, 0x3b, 0x54, 0x61, 0x6c,
+0x3b, 0x41, 0x6c, 0x61, 0x72, 0x3b, 0x41, 0x6c, 0x61, 0x6b, 0x3b, 0x5a, 0x6f, 0x6d, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x3b,
+0x41, 0x6c, 0x61, 0x68, 0x61, 0x64, 0x79, 0x3b, 0x41, 0x6c, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x61, 0x69, 0x6e, 0x79, 0x3b,
+0x54, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x6f, 0x62, 0x69, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x6b,
+0x61, 0x6d, 0x69, 0x73, 0x79, 0x3b, 0x5a, 0x6f, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x61, 0x62, 0x6f, 0x74, 0x73, 0x79, 0x3b,
+0x41, 0x3b, 0x41, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x5a, 0x3b, 0x41, 0x3b, 0x41, 0x68, 0x64, 0x3b, 0x49, 0x73,
+0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x3b, 0x52, 0x61, 0x62, 0x3b, 0x4b, 0x68, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x53, 0x61,
+0x62, 0x3b, 0x41, 0x68, 0x61, 0x64, 0x3b, 0x49, 0x73, 0x6e, 0x69, 0x6e, 0x3b, 0x53, 0x65, 0x6c, 0x61, 0x73, 0x61, 0x3b,
+0x52, 0x61, 0x62, 0x75, 0x3b, 0x4b, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x74, 0x3b, 0x53,
+0x61, 0x62, 0x74, 0x75, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x52, 0x3b, 0x4b, 0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0xd1e,
+0xd3e, 0xd2f, 0xd7c, 0x3b, 0xd24, 0xd3f, 0xd19, 0xd4d, 0xd15, 0xd7e, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d, 0xd35, 0x3b, 0xd2c, 0xd41, 0xd27,
+0xd7b, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e, 0xd34, 0xd02, 0x3b, 0xd35, 0xd46, 0xd33, 0xd4d, 0xd33, 0xd3f, 0x3b, 0xd36, 0xd28, 0xd3f, 0x3b,
+0xd1e, 0xd3e, 0xd2f, 0xd31, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd24, 0xd3f, 0xd19, 0xd4d, 0xd15, 0xd33, 0xd3e, 0xd34, 0xd4d, 0x200c,
+0xd1a, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d, 0xd35, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd2c, 0xd41, 0xd27, 0xd28, 0xd3e, 0xd34, 0xd4d,
+0x200c, 0xd1a, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e, 0xd34, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd46, 0xd33, 0xd4d, 0xd33, 0xd3f,
+0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd36, 0xd28, 0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd1e, 0x3b, 0xd24,
+0xd3f, 0x3b, 0xd1a, 0x3b, 0xd2c, 0xd41, 0x3b, 0xd35, 0x3b, 0xd35, 0xd46, 0x3b, 0xd36, 0x3b, 0xd1e, 0xd3e, 0xd2f, 0xd31, 0xd3e, 0xd34,
+0xd4d, 0x200c, 0xd1a, 0x3b, 0xd24, 0xd3f, 0xd19, 0xd4d, 0xd15, 0xd33, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d,
+0xd35, 0xd3e, 0xd34, 0xd4d, 0xd1a, 0x3b, 0xd2c, 0xd41, 0xd27, 0xd28, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e,
0xd34, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd46, 0xd33, 0xd4d, 0xd33, 0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b,
-0xd36, 0xd28, 0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd1e, 0xd3e, 0x3b, 0xd24, 0xd3f, 0x3b, 0xd1a, 0xd4a, 0x3b, 0xd2c,
-0xd41, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e, 0x3b, 0xd35, 0xd46, 0x3b, 0xd36, 0x3b, 0xd1e, 0xd3e, 0xd2f, 0xd31, 0xd3e, 0xd34, 0xd4d, 0x200c,
-0xd1a, 0x3b, 0xd24, 0xd3f, 0xd19, 0xd4d, 0xd15, 0xd33, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd1a, 0xd4a, 0xd35, 0xd4d, 0xd35, 0xd3e,
-0xd34, 0xd4d, 0xd1a, 0x3b, 0xd2c, 0xd41, 0xd27, 0xd28, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd4d, 0xd2f, 0xd3e, 0xd34, 0xd3e,
-0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd35, 0xd46, 0xd33, 0xd4d, 0xd33, 0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0xd36, 0xd28,
-0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0x126, 0x61, 0x64, 0x3b, 0x54, 0x6e, 0x65, 0x3b, 0x54, 0x6c, 0x69, 0x3b,
-0x45, 0x72, 0x62, 0x3b, 0x126, 0x61, 0x6d, 0x3b, 0x120, 0x69, 0x6d, 0x3b, 0x53, 0x69, 0x62, 0x3b, 0x49, 0x6c, 0x2d, 0x126,
-0x61, 0x64, 0x64, 0x3b, 0x49, 0x74, 0x2d, 0x54, 0x6e, 0x65, 0x6a, 0x6e, 0x3b, 0x49, 0x74, 0x2d, 0x54, 0x6c, 0x69, 0x65,
-0x74, 0x61, 0x3b, 0x4c, 0x2d, 0x45, 0x72, 0x62, 0x67, 0x127, 0x61, 0x3b, 0x49, 0x6c, 0x2d, 0x126, 0x61, 0x6d, 0x69, 0x73,
-0x3b, 0x49, 0x6c, 0x2d, 0x120, 0x69, 0x6d, 0x67, 0x127, 0x61, 0x3b, 0x49, 0x73, 0x2d, 0x53, 0x69, 0x62, 0x74, 0x3b, 0x126,
-0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x45, 0x3b, 0x126, 0x3b, 0x120, 0x3b, 0x53, 0x3b, 0x930, 0x935, 0x93f, 0x3b, 0x938, 0x94b, 0x92e,
-0x3b, 0x92e, 0x902, 0x917, 0x933, 0x3b, 0x92c, 0x941, 0x927, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930,
-0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x930, 0x935, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x935, 0x93e, 0x930, 0x3b, 0x92e,
-0x902, 0x917, 0x933, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x935, 0x93e,
-0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x41d, 0x44f,
-0x3b, 0x414, 0x430, 0x3b, 0x41c, 0x44f, 0x3b, 0x41b, 0x445, 0x3b, 0x41f, 0x4af, 0x3b, 0x411, 0x430, 0x3b, 0x411, 0x44f, 0x3b, 0x43d,
-0x44f, 0x43c, 0x3b, 0x434, 0x430, 0x432, 0x430, 0x430, 0x3b, 0x43c, 0x44f, 0x433, 0x43c, 0x430, 0x440, 0x3b, 0x43b, 0x445, 0x430, 0x433,
-0x432, 0x430, 0x3b, 0x43f, 0x4af, 0x440, 0x44d, 0x432, 0x3b, 0x431, 0x430, 0x430, 0x441, 0x430, 0x43d, 0x3b, 0x431, 0x44f, 0x43c, 0x431,
-0x430, 0x3b, 0x906, 0x907, 0x924, 0x3b, 0x938, 0x94b, 0x92e, 0x3b, 0x92e, 0x919, 0x94d, 0x917, 0x932, 0x3b, 0x92c, 0x941, 0x927, 0x3b,
-0x92c, 0x93f, 0x939, 0x940, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x906, 0x907, 0x924, 0x92c, 0x93e,
-0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x92c, 0x93e, 0x930, 0x3b, 0x92e, 0x919, 0x94d, 0x917, 0x932, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x941,
-0x927, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x93f, 0x939, 0x940, 0x92c, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x92c, 0x93e,
-0x930, 0x3b, 0x936, 0x928, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x906, 0x3b, 0x938, 0x94b, 0x3b, 0x92e, 0x3b, 0x92c, 0x941, 0x3b, 0x92c,
-0x93f, 0x3b, 0x936, 0x941, 0x3b, 0x936, 0x3b, 0x906, 0x907, 0x924, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x935, 0x93e, 0x930,
-0x3b, 0x92e, 0x919, 0x94d, 0x917, 0x932, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x93f, 0x939,
-0x940, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935, 0x93e, 0x930,
-0x3b, 0x73, 0xf8, 0x2e, 0x3b, 0x6d, 0x61, 0x2e, 0x3b, 0x74, 0x69, 0x2e, 0x3b, 0x6f, 0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x2e,
-0x3b, 0x66, 0x72, 0x2e, 0x3b, 0x6c, 0xf8, 0x2e, 0x3b, 0xb30, 0xb2c, 0xb3f, 0x3b, 0xb38, 0xb4b, 0xb2e, 0x3b, 0xb2e, 0xb19, 0xb4d,
-0xb17, 0xb33, 0x3b, 0xb2c, 0xb41, 0xb27, 0x3b, 0xb17, 0xb41, 0xb30, 0xb41, 0x3b, 0xb36, 0xb41, 0xb15, 0xb4d, 0xb30, 0x3b, 0xb36, 0xb28,
-0xb3f, 0x3b, 0xb30, 0xb2c, 0xb3f, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb38, 0xb4b, 0xb2e, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb2e, 0xb19, 0xb4d, 0xb17,
-0xb33, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb2c, 0xb41, 0xb27, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb17, 0xb41, 0xb30, 0xb41, 0xb2c, 0xb3e, 0xb30, 0x3b,
-0xb36, 0xb41, 0xb15, 0xb4d, 0xb30, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb36, 0xb28, 0xb3f, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb30, 0x3b, 0xb38, 0xb4b,
-0x3b, 0xb2e, 0x3b, 0xb2c, 0xb41, 0x3b, 0xb17, 0xb41, 0x3b, 0xb36, 0xb41, 0x3b, 0xb36, 0x3b, 0x6cc, 0x6a9, 0x634, 0x646, 0x628, 0x647,
-0x3b, 0x62f, 0x648, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x633, 0x647, 0x200c, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x686, 0x647, 0x627, 0x631,
-0x634, 0x646, 0x628, 0x647, 0x3b, 0x67e, 0x646, 0x62c, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x62c, 0x645, 0x639, 0x647, 0x3b, 0x634, 0x646,
-0x628, 0x647, 0x3b, 0x6cc, 0x3b, 0x62f, 0x3b, 0x633, 0x3b, 0x686, 0x3b, 0x67e, 0x3b, 0x62c, 0x3b, 0x634, 0x3b, 0x6e, 0x69, 0x65,
-0x64, 0x7a, 0x2e, 0x3b, 0x70, 0x6f, 0x6e, 0x2e, 0x3b, 0x77, 0x74, 0x2e, 0x3b, 0x15b, 0x72, 0x2e, 0x3b, 0x63, 0x7a, 0x77,
-0x2e, 0x3b, 0x70, 0x74, 0x2e, 0x3b, 0x73, 0x6f, 0x62, 0x2e, 0x3b, 0x6e, 0x69, 0x65, 0x64, 0x7a, 0x69, 0x65, 0x6c, 0x61,
-0x3b, 0x70, 0x6f, 0x6e, 0x69, 0x65, 0x64, 0x7a, 0x69, 0x61, 0x142, 0x65, 0x6b, 0x3b, 0x77, 0x74, 0x6f, 0x72, 0x65, 0x6b,
-0x3b, 0x15b, 0x72, 0x6f, 0x64, 0x61, 0x3b, 0x63, 0x7a, 0x77, 0x61, 0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0x69, 0x105, 0x74,
-0x65, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x50, 0x3b, 0x57, 0x3b, 0x15a, 0x3b, 0x43, 0x3b,
-0x50, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x73, 0x65, 0x67, 0x3b, 0x74, 0x65, 0x72, 0x3b, 0x71, 0x75, 0x61, 0x3b,
-0x71, 0x75, 0x69, 0x3b, 0x73, 0x65, 0x78, 0x3b, 0x73, 0xe1, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b,
-0x73, 0x65, 0x67, 0x75, 0x6e, 0x64, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x74, 0x65, 0x72, 0xe7, 0x61, 0x2d,
-0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x71, 0x75, 0x61, 0x72, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x71,
-0x75, 0x69, 0x6e, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x73, 0x65, 0x78, 0x74, 0x61, 0x2d, 0x66, 0x65,
-0x69, 0x72, 0x61, 0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x51, 0x3b, 0x51,
-0x3b, 0x53, 0x3b, 0x53, 0x3b, 0xa10, 0xa24, 0x2e, 0x3b, 0xa38, 0xa4b, 0xa2e, 0x2e, 0x3b, 0xa2e, 0xa70, 0xa17, 0xa32, 0x2e, 0x3b,
-0xa2c, 0xa41, 0xa27, 0x2e, 0x3b, 0xa35, 0xa40, 0xa30, 0x2e, 0x3b, 0xa38, 0xa3c, 0xa41, 0xa71, 0xa15, 0xa30, 0x2e, 0x3b, 0xa38, 0xa3c,
-0xa28, 0xa40, 0x2e, 0x3b, 0xa10, 0xa24, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38, 0xa4b, 0xa2e, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa2e, 0xa70, 0xa17,
-0xa32, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa2c, 0xa41, 0xa27, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa35, 0xa40, 0xa30, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38,
-0xa3c, 0xa41, 0xa71, 0xa15, 0xa30, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38, 0xa3c, 0xa28, 0xa40, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa10, 0x3b, 0xa38,
-0xa4b, 0x3b, 0xa2e, 0xa70, 0x3b, 0xa2c, 0xa41, 0xa71, 0x3b, 0xa35, 0xa40, 0x3b, 0xa38, 0xa3c, 0xa41, 0xa71, 0x3b, 0xa38, 0xa3c, 0x3b,
-0x627, 0x62a, 0x648, 0x627, 0x631, 0x3b, 0x67e, 0x6cc, 0x631, 0x3b, 0x645, 0x646, 0x6af, 0x644, 0x3b, 0x628, 0x64f, 0x62f, 0x6be, 0x3b,
-0x62c, 0x645, 0x639, 0x631, 0x627, 0x62a, 0x3b, 0x62c, 0x645, 0x639, 0x6c1, 0x3b, 0x6c1, 0x641, 0x62a, 0x6c1, 0x3b, 0x64, 0x75, 0x3b,
-0x67, 0x6c, 0x69, 0x3b, 0x6d, 0x61, 0x3b, 0x6d, 0x65, 0x3b, 0x67, 0x69, 0x65, 0x3b, 0x76, 0x65, 0x3b, 0x73, 0x6f, 0x3b,
-0x64, 0x75, 0x6d, 0x65, 0x6e, 0x67, 0x69, 0x61, 0x3b, 0x67, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x73, 0x64, 0x69, 0x3b, 0x6d,
-0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x65, 0x73, 0x65, 0x6d, 0x6e, 0x61, 0x3b, 0x67, 0x69, 0x65, 0x76, 0x67, 0x69, 0x61,
-0x3b, 0x76, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x69, 0x3b, 0x73, 0x6f, 0x6e, 0x64, 0x61, 0x3b, 0x44, 0x3b, 0x47, 0x3b,
-0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x44, 0x75, 0x6d, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61,
-0x72, 0x3b, 0x4d, 0x69, 0x65, 0x3b, 0x4a, 0x6f, 0x69, 0x3b, 0x56, 0x69, 0x6e, 0x3b, 0x53, 0xe2, 0x6d, 0x3b, 0x64, 0x75,
-0x6d, 0x69, 0x6e, 0x69, 0x63, 0x103, 0x3b, 0x6c, 0x75, 0x6e, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x21b, 0x69, 0x3b, 0x6d, 0x69,
-0x65, 0x72, 0x63, 0x75, 0x72, 0x69, 0x3b, 0x6a, 0x6f, 0x69, 0x3b, 0x76, 0x69, 0x6e, 0x65, 0x72, 0x69, 0x3b, 0x73, 0xe2,
-0x6d, 0x62, 0x103, 0x74, 0x103, 0x3b, 0x412, 0x441, 0x3b, 0x41f, 0x43d, 0x3b, 0x412, 0x442, 0x3b, 0x421, 0x440, 0x3b, 0x427, 0x442,
-0x3b, 0x41f, 0x442, 0x3b, 0x421, 0x431, 0x3b, 0x412, 0x43e, 0x441, 0x43a, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x435, 0x3b, 0x41f,
-0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x44c, 0x43d, 0x438, 0x43a, 0x3b, 0x412, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x421,
-0x440, 0x435, 0x434, 0x430, 0x3b, 0x427, 0x435, 0x442, 0x432, 0x435, 0x440, 0x433, 0x3b, 0x41f, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x430,
-0x3b, 0x421, 0x443, 0x431, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x412, 0x3b, 0x41f, 0x3b, 0x412, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f,
-0x3b, 0x421, 0x3b, 0x432, 0x441, 0x3b, 0x43f, 0x43d, 0x3b, 0x432, 0x442, 0x3b, 0x441, 0x440, 0x3b, 0x447, 0x442, 0x3b, 0x43f, 0x442,
-0x3b, 0x441, 0x431, 0x3b, 0x432, 0x43e, 0x441, 0x43a, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x435, 0x3b, 0x43f, 0x43e, 0x43d, 0x435,
-0x434, 0x435, 0x43b, 0x44c, 0x43d, 0x438, 0x43a, 0x3b, 0x432, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x441, 0x440, 0x435, 0x434,
-0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x435, 0x440, 0x433, 0x3b, 0x43f, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x430, 0x3b, 0x441, 0x443,
-0x431, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x42, 0x6b, 0x31, 0x3b, 0x42, 0x6b, 0x32, 0x3b, 0x42, 0x6b, 0x33, 0x3b, 0x42, 0x6b,
-0x34, 0x3b, 0x42, 0x6b, 0x35, 0x3b, 0x4c, 0xe2, 0x70, 0x3b, 0x4c, 0xe2, 0x79, 0x3b, 0x42, 0x69, 0x6b, 0x75, 0x61, 0x2d,
-0xf4, 0x6b, 0x6f, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61, 0x2d, 0xfb, 0x73, 0x65, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61, 0x2d,
-0x70, 0x74, 0xe2, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61, 0x2d, 0x75, 0x73, 0xef, 0xf6, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61,
-0x2d, 0x6f, 0x6b, 0xfc, 0x3b, 0x4c, 0xe2, 0x70, 0xf4, 0x73, 0xf6, 0x3b, 0x4c, 0xe2, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b,
-0x4b, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x59, 0x3b, 0x43d, 0x435, 0x434, 0x3b, 0x43f, 0x43e,
-0x43d, 0x3b, 0x443, 0x442, 0x43e, 0x3b, 0x441, 0x440, 0x435, 0x3b, 0x447, 0x435, 0x442, 0x3b, 0x43f, 0x435, 0x442, 0x3b, 0x441, 0x443,
-0x431, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x43a, 0x3b, 0x443,
-0x442, 0x43e, 0x440, 0x430, 0x43a, 0x3b, 0x441, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x440, 0x442, 0x430, 0x43a,
-0x3b, 0x43f, 0x435, 0x442, 0x430, 0x43a, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x443, 0x3b,
-0x441, 0x3b, 0x447, 0x3b, 0x43f, 0x3b, 0x441, 0x3b, 0x6e, 0x65, 0x64, 0x3b, 0x70, 0x6f, 0x6e, 0x3b, 0x75, 0x74, 0x6f, 0x3b,
-0x73, 0x72, 0x65, 0x3b, 0x10d, 0x65, 0x74, 0x3b, 0x70, 0x65, 0x74, 0x3b, 0x73, 0x75, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x65,
-0x6c, 0x6a, 0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a, 0x61, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72, 0x61,
-0x6b, 0x3b, 0x73, 0x72, 0x65, 0x64, 0x61, 0x3b, 0x10d, 0x65, 0x74, 0x76, 0x72, 0x74, 0x61, 0x6b, 0x3b, 0x70, 0x65, 0x74,
-0x61, 0x6b, 0x3b, 0x73, 0x75, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x43d, 0x435, 0x434, 0x3b, 0x43f, 0x43e, 0x43d, 0x3b, 0x443, 0x442,
-0x43e, 0x3b, 0x441, 0x440, 0x438, 0x3b, 0x447, 0x435, 0x442, 0x3b, 0x43f, 0x435, 0x442, 0x3b, 0x441, 0x443, 0x431, 0x3b, 0x43d, 0x435,
-0x434, 0x435, 0x459, 0x430, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x43a, 0x3b, 0x443, 0x442, 0x43e, 0x440, 0x430,
-0x43a, 0x3b, 0x441, 0x440, 0x438, 0x458, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x440, 0x442, 0x430, 0x43a, 0x3b, 0x43f,
-0x435, 0x442, 0x430, 0x43a, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x425, 0x446, 0x431, 0x3b, 0x41a, 0x440, 0x441, 0x3b,
-0x414, 0x446, 0x433, 0x3b, 0x4d4, 0x440, 0x442, 0x3b, 0x426, 0x43f, 0x440, 0x3b, 0x41c, 0x440, 0x431, 0x3b, 0x421, 0x431, 0x442, 0x3b,
-0x425, 0x443, 0x44b, 0x446, 0x430, 0x443, 0x431, 0x43e, 0x43d, 0x3b, 0x41a, 0x44a, 0x443, 0x44b, 0x440, 0x438, 0x441, 0x4d5, 0x440, 0x3b,
-0x414, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x4d4, 0x440, 0x442, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x426, 0x44b, 0x43f, 0x43f,
-0x4d5, 0x440, 0x4d5, 0x43c, 0x3b, 0x41c, 0x430, 0x439, 0x440, 0x4d5, 0x43c, 0x431, 0x43e, 0x43d, 0x3b, 0x421, 0x430, 0x431, 0x430, 0x442,
-0x3b, 0x425, 0x3b, 0x41a, 0x3b, 0x414, 0x3b, 0x4d4, 0x3b, 0x426, 0x3b, 0x41c, 0x3b, 0x421, 0x3b, 0x445, 0x446, 0x431, 0x3b, 0x43a,
-0x440, 0x441, 0x3b, 0x434, 0x446, 0x433, 0x3b, 0x4d5, 0x440, 0x442, 0x3b, 0x446, 0x43f, 0x440, 0x3b, 0x43c, 0x440, 0x431, 0x3b, 0x441,
-0x431, 0x442, 0x3b, 0x445, 0x443, 0x44b, 0x446, 0x430, 0x443, 0x431, 0x43e, 0x43d, 0x3b, 0x43a, 0x44a, 0x443, 0x44b, 0x440, 0x438, 0x441,
-0x4d5, 0x440, 0x3b, 0x434, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x4d5, 0x440, 0x442, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x446,
-0x44b, 0x43f, 0x43f, 0x4d5, 0x440, 0x4d5, 0x43c, 0x3b, 0x43c, 0x430, 0x439, 0x440, 0x4d5, 0x43c, 0x431, 0x43e, 0x43d, 0x3b, 0x441, 0x430,
-0x431, 0x430, 0x442, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x6d, 0x61, 0x3b, 0x42, 0x65, 0x64, 0x3b, 0x52, 0x61, 0x72, 0x3b,
-0x4e, 0x65, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x6f, 0x71, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x61, 0x68, 0x61, 0x3b, 0x4d,
-0x6d, 0x61, 0x6e, 0x74, 0x61, 0x68, 0x61, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x62, 0x65, 0x64, 0x69, 0x3b, 0x4c, 0x61, 0x62,
-0x6f, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x6e, 0x65, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x68, 0x6c, 0x61,
-0x6e, 0x65, 0x3b, 0x4d, 0x6f, 0x71, 0x65, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x54, 0x73, 0x68, 0x3b, 0x4d, 0x6f, 0x73, 0x3b,
-0x42, 0x65, 0x64, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x4e, 0x65, 0x3b, 0x54, 0x6c, 0x61, 0x3b, 0x4d, 0x61, 0x74, 0x3b, 0x54,
-0x73, 0x68, 0x69, 0x70, 0x69, 0x3b, 0x4d, 0x6f, 0x73, 0x6f, 0x70, 0x75, 0x6c, 0x6f, 0x67, 0x6f, 0x3b, 0x4c, 0x61, 0x62,
-0x6f, 0x62, 0x65, 0x64, 0x69, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x72, 0x6f, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x6e,
-0x65, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x74, 0x6c, 0x68, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x61, 0x74, 0x6c, 0x68, 0x61, 0x74,
-0x73, 0x6f, 0x3b, 0x53, 0x76, 0x6f, 0x3b, 0x4d, 0x75, 0x76, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x3b, 0x43, 0x68, 0x69, 0x74,
-0x3b, 0x43, 0x68, 0x69, 0x6e, 0x3b, 0x43, 0x68, 0x69, 0x73, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x53, 0x76, 0x6f, 0x6e, 0x64,
-0x6f, 0x3b, 0x4d, 0x75, 0x76, 0x68, 0x75, 0x72, 0x6f, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68,
-0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x3b, 0x43, 0x68, 0x69, 0x73, 0x68, 0x61, 0x6e, 0x75,
-0x3b, 0x4d, 0x75, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b,
-0x43, 0x3b, 0x4d, 0x3b, 0xd89, 0xdbb, 0xdd2, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdb3, 0xdd4, 0xdaf, 0xdcf, 0x3b, 0xd85, 0xd9f, 0xdc4, 0x3b,
-0xdb6, 0xdaf, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdca, 0x200d, 0xdbb, 0xdc4, 0xdc3, 0xdca, 0x3b, 0xdc3, 0xdd2, 0xd9a, 0xdd4, 0x3b, 0xdc3,
-0xdd9, 0xdb1, 0x3b, 0xd89, 0xdbb, 0xdd2, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdb3, 0xdd4, 0xdaf, 0xdcf, 0x3b, 0xd85, 0xd9f, 0xdc4, 0xdbb, 0xdd4,
-0xdc0, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdaf, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdca, 0x200d, 0xdbb, 0xdc4, 0xdc3, 0xdca, 0xdb4, 0xdad,
-0xdd2, 0xdb1, 0xdca, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdd2, 0xd9a, 0xdd4, 0xdbb, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdd9, 0xdb1, 0xdc3, 0xdd4,
-0xdbb, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xd89, 0x3b, 0xdc3, 0x3b, 0xd85, 0x3b, 0xdb6, 0x3b, 0xdb6, 0xdca, 0x200d, 0xdbb, 0x3b, 0xdc3, 0xdd2,
-0x3b, 0xdc3, 0xdd9, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x73, 0x6f, 0x3b, 0x42, 0x69, 0x6c, 0x3b, 0x54, 0x73, 0x61, 0x3b,
-0x4e, 0x65, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x67, 0x63, 0x3b, 0x4c, 0x69, 0x73, 0x6f, 0x6e, 0x74, 0x66, 0x6f, 0x3b,
-0x75, 0x4d, 0x73, 0x6f, 0x6d, 0x62, 0x75, 0x6c, 0x75, 0x6b, 0x6f, 0x3b, 0x4c, 0x65, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69,
-0x3b, 0x4c, 0x65, 0x73, 0x69, 0x74, 0x73, 0x61, 0x74, 0x66, 0x75, 0x3b, 0x4c, 0x65, 0x73, 0x69, 0x6e, 0x65, 0x3b, 0x4c,
-0x65, 0x73, 0x69, 0x68, 0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x75, 0x4d, 0x67, 0x63, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x6e,
-0x65, 0x3b, 0x70, 0x6f, 0x3b, 0x75, 0x74, 0x3b, 0x73, 0x74, 0x3b, 0x161, 0x74, 0x3b, 0x70, 0x69, 0x3b, 0x73, 0x6f, 0x3b,
-0x6e, 0x65, 0x64, 0x65, 0x13e, 0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x6c, 0x6f, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72,
-0x6f, 0x6b, 0x3b, 0x73, 0x74, 0x72, 0x65, 0x64, 0x61, 0x3b, 0x161, 0x74, 0x76, 0x72, 0x74, 0x6f, 0x6b, 0x3b, 0x70, 0x69,
-0x61, 0x74, 0x6f, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x50, 0x3b, 0x55, 0x3b, 0x53, 0x3b,
-0x160, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x6e, 0x65, 0x64, 0x3b, 0x70, 0x6f, 0x6e, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x73, 0x72,
-0x65, 0x3b, 0x10d, 0x65, 0x74, 0x3b, 0x70, 0x65, 0x74, 0x3b, 0x73, 0x6f, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a,
-0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a, 0x65, 0x6b, 0x3b, 0x74, 0x6f, 0x72, 0x65, 0x6b, 0x3b, 0x73,
-0x72, 0x65, 0x64, 0x61, 0x3b, 0x10d, 0x65, 0x74, 0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0x65, 0x74, 0x65, 0x6b, 0x3b, 0x73,
-0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x6e, 0x3b, 0x70, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x10d, 0x3b, 0x70, 0x3b, 0x73, 0x3b,
-0x6e, 0x65, 0x64, 0x2e, 0x3b, 0x70, 0x6f, 0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x72, 0x2e, 0x3b, 0x73, 0x72, 0x65, 0x2e, 0x3b,
-0x10d, 0x65, 0x74, 0x2e, 0x3b, 0x70, 0x65, 0x74, 0x2e, 0x3b, 0x73, 0x6f, 0x62, 0x2e, 0x3b, 0x41, 0x78, 0x64, 0x3b, 0x49,
-0x73, 0x6e, 0x3b, 0x54, 0x61, 0x6c, 0x3b, 0x41, 0x72, 0x62, 0x3b, 0x4b, 0x68, 0x61, 0x3b, 0x4a, 0x69, 0x6d, 0x3b, 0x53,
-0x61, 0x62, 0x3b, 0x41, 0x78, 0x61, 0x64, 0x3b, 0x49, 0x73, 0x6e, 0x69, 0x69, 0x6e, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x61,
-0x64, 0x6f, 0x3b, 0x41, 0x72, 0x62, 0x61, 0x63, 0x6f, 0x3b, 0x4b, 0x68, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x3b, 0x4a, 0x69,
-0x6d, 0x63, 0x6f, 0x3b, 0x53, 0x61, 0x62, 0x74, 0x69, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x4b, 0x3b,
-0x4a, 0x3b, 0x53, 0x3b, 0x44, 0x6f, 0x6d, 0x2e, 0x3b, 0x4c, 0x75, 0x6e, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x4d,
-0x69, 0xe9, 0x2e, 0x3b, 0x4a, 0x75, 0x65, 0x2e, 0x3b, 0x56, 0x69, 0x65, 0x2e, 0x3b, 0x53, 0xe1, 0x62, 0x2e, 0x3b, 0x44,
-0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b,
-0x4d, 0x69, 0xe9, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x73, 0x3b, 0x4a, 0x75, 0x65, 0x76, 0x65, 0x73, 0x3b, 0x56, 0x69, 0x65,
-0x72, 0x6e, 0x65, 0x73, 0x3b, 0x53, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x64, 0x6f, 0x6d, 0x2e, 0x3b, 0x6c, 0x75, 0x6e,
-0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x6d, 0x69, 0xe9, 0x2e, 0x3b, 0x6a, 0x75, 0x65, 0x2e, 0x3b, 0x76, 0x69, 0x65,
-0x2e, 0x3b, 0x73, 0xe1, 0x62, 0x2e, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x6c, 0x75, 0x6e, 0x65, 0x73,
-0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x6d, 0x69, 0xe9, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x73, 0x3b, 0x6a, 0x75,
-0x65, 0x76, 0x65, 0x73, 0x3b, 0x76, 0x69, 0x65, 0x72, 0x6e, 0x65, 0x73, 0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b,
-0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x2e, 0x3b, 0x6c,
-0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x6d, 0x69, 0xe9, 0x2e, 0x3b, 0x6a, 0x75, 0x65, 0x2e, 0x3b, 0x76, 0x69,
-0x65, 0x3b, 0x73, 0xe1, 0x62, 0x2e, 0x3b, 0x64, 0x6f, 0x6d, 0x2e, 0x3b, 0x6c, 0x75, 0x6e, 0x2e, 0x3b, 0x6d, 0x61, 0x72,
-0x2e, 0x3b, 0x6d, 0x69, 0xe9, 0x72, 0x2e, 0x3b, 0x6a, 0x75, 0x65, 0x2e, 0x3b, 0x76, 0x69, 0x65, 0x72, 0x2e, 0x3b, 0x73,
-0xe1, 0x62, 0x3b, 0x4a, 0x32, 0x3b, 0x4a, 0x33, 0x3b, 0x4a, 0x34, 0x3b, 0x4a, 0x35, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49,
-0x6a, 0x3b, 0x4a, 0x31, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61,
-0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b,
-0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61,
-0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x31, 0x3b, 0x53,
-0xf6, 0x6e, 0x3b, 0x4d, 0xe5, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4f, 0x6e, 0x73, 0x3b, 0x54, 0x6f, 0x72, 0x3b, 0x46,
-0x72, 0x65, 0x3b, 0x4c, 0xf6, 0x72, 0x3b, 0x53, 0xf6, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x4d, 0xe5, 0x6e, 0x64, 0x61, 0x67,
-0x3b, 0x54, 0x69, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x4f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x54, 0x6f, 0x72, 0x73, 0x64,
-0x61, 0x67, 0x3b, 0x46, 0x72, 0x65, 0x64, 0x61, 0x67, 0x3b, 0x4c, 0xf6, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x73, 0xf6, 0x6e,
-0x3b, 0x6d, 0xe5, 0x6e, 0x3b, 0x74, 0x69, 0x73, 0x3b, 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x3b, 0x66, 0x72,
-0x65, 0x3b, 0x6c, 0xf6, 0x72, 0x3b, 0x73, 0xf6, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x6d, 0xe5, 0x6e, 0x64, 0x61, 0x67, 0x3b,
-0x74, 0x69, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x6f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x61,
-0x67, 0x3b, 0x66, 0x72, 0x65, 0x64, 0x61, 0x67, 0x3b, 0x6c, 0xf6, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x42f, 0x448, 0x431, 0x3b,
-0x414, 0x448, 0x431, 0x3b, 0x421, 0x448, 0x431, 0x3b, 0x427, 0x448, 0x431, 0x3b, 0x41f, 0x448, 0x431, 0x3b, 0x4b6, 0x43c, 0x44a, 0x3b,
-0x428, 0x43d, 0x431, 0x3b, 0x42f, 0x43a, 0x448, 0x430, 0x43d, 0x431, 0x435, 0x3b, 0x414, 0x443, 0x448, 0x430, 0x43d, 0x431, 0x435, 0x3b,
-0x421, 0x435, 0x448, 0x430, 0x43d, 0x431, 0x435, 0x3b, 0x427, 0x43e, 0x440, 0x448, 0x430, 0x43d, 0x431, 0x435, 0x3b, 0x41f, 0x430, 0x43d,
-0x4b7, 0x448, 0x430, 0x43d, 0x431, 0x435, 0x3b, 0x4b6, 0x443, 0x43c, 0x44a, 0x430, 0x3b, 0x428, 0x430, 0x43d, 0x431, 0x435, 0x3b, 0xb9e,
-0xbbe, 0x3b, 0xba4, 0xbbf, 0x3b, 0xb9a, 0xbc6, 0x3b, 0xbaa, 0xbc1, 0x3b, 0xbb5, 0xbbf, 0x3b, 0xbb5, 0xbc6, 0x3b, 0xb9a, 0x3b, 0xb9e,
-0xbbe, 0xbaf, 0xbbf, 0xbb1, 0xbc1, 0x3b, 0xba4, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbb5, 0xbcd, 0xbb5, 0xbbe,
-0xbaf, 0xbcd, 0x3b, 0xbaa, 0xbc1, 0xba4, 0xba9, 0xbcd, 0x3b, 0xbb5, 0xbbf, 0xbaf, 0xbbe, 0xbb4, 0xba9, 0xbcd, 0x3b, 0xbb5, 0xbc6, 0xbb3,
-0xbcd, 0xbb3, 0xbbf, 0x3b, 0xb9a, 0xba9, 0xbbf, 0x3b, 0xc06, 0xc26, 0xc3f, 0x3b, 0xc38, 0xc4b, 0xc2e, 0x3b, 0xc2e, 0xc02, 0xc17, 0xc33,
-0x3b, 0xc2c, 0xc41, 0xc27, 0x3b, 0xc17, 0xc41, 0xc30, 0xc41, 0x3b, 0xc36, 0xc41, 0xc15, 0xc4d, 0xc30, 0x3b, 0xc36, 0xc28, 0xc3f, 0x3b,
-0xc06, 0xc26, 0xc3f, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc38, 0xc4b, 0xc2e, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc2e, 0xc02, 0xc17, 0xc33,
-0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc2c, 0xc41, 0xc27, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc17, 0xc41, 0xc30, 0xc41, 0xc35, 0xc3e, 0xc30,
-0xc02, 0x3b, 0xc36, 0xc41, 0xc15, 0xc4d, 0xc30, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc36, 0xc28, 0xc3f, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b,
-0xc06, 0x3b, 0xc38, 0xc4b, 0x3b, 0xc2e, 0x3b, 0xc2c, 0xc41, 0x3b, 0xc17, 0xc41, 0x3b, 0xc36, 0xc41, 0x3b, 0xc36, 0x3b, 0xe2d, 0xe32,
-0x2e, 0x3b, 0xe08, 0x2e, 0x3b, 0xe2d, 0x2e, 0x3b, 0xe1e, 0x2e, 0x3b, 0xe1e, 0xe24, 0x2e, 0x3b, 0xe28, 0x2e, 0x3b, 0xe2a, 0x2e,
-0x3b, 0xe27, 0xe31, 0xe19, 0xe2d, 0xe32, 0xe17, 0xe34, 0xe15, 0xe22, 0xe4c, 0x3b, 0xe27, 0xe31, 0xe19, 0xe08, 0xe31, 0xe19, 0xe17, 0xe23,
-0xe4c, 0x3b, 0xe27, 0xe31, 0xe19, 0xe2d, 0xe31, 0xe07, 0xe04, 0xe32, 0xe23, 0x3b, 0xe27, 0xe31, 0xe19, 0xe1e, 0xe38, 0xe18, 0x3b, 0xe27,
-0xe31, 0xe19, 0xe1e, 0xe24, 0xe2b, 0xe31, 0xe2a, 0xe1a, 0xe14, 0xe35, 0x3b, 0xe27, 0xe31, 0xe19, 0xe28, 0xe38, 0xe01, 0xe23, 0xe4c, 0x3b,
-0xe27, 0xe31, 0xe19, 0xe40, 0xe2a, 0xe32, 0xe23, 0xe4c, 0x3b, 0xe2d, 0xe32, 0x3b, 0xe08, 0x3b, 0xe2d, 0x3b, 0xe1e, 0x3b, 0xe1e, 0xe24,
-0x3b, 0xe28, 0x3b, 0xe2a, 0x3b, 0xf49, 0xf72, 0xf0b, 0xf58, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0x3b, 0xf58, 0xf72, 0xf42,
-0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b, 0xf67, 0xfb3, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56, 0xf74, 0xf0b,
-0x3b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf49, 0xf72,
-0xf0b, 0xf58, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf58, 0xf72,
-0xf42, 0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf67, 0xfb3, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f,
-0xf60, 0xf0b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56, 0xf74, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf42,
-0xf5f, 0xf60, 0xf0b, 0xf66, 0xfa4, 0xf7a, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf49, 0xf72, 0x3b, 0xf5f, 0xfb3, 0x3b, 0xf58, 0xf72, 0x3b,
-0xf67, 0xfb3, 0x3b, 0xf55, 0xf74, 0x3b, 0xf66, 0x3b, 0xf66, 0xfa4, 0xf7a, 0x3b, 0xf49, 0xf72, 0x3b, 0xf5f, 0xfb3, 0x3b, 0xf58, 0xf72,
-0x3b, 0xf67, 0xfb3, 0xf42, 0x3b, 0xf55, 0xf74, 0x3b, 0xf66, 0x3b, 0xf66, 0xfa4, 0xf7a, 0x3b, 0x1230, 0x1295, 0x1260, 0x1275, 0x3b, 0x1230,
-0x1291, 0x12ed, 0x3b, 0x1220, 0x1209, 0x1235, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1283, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1262, 0x3b, 0x1240,
-0x12f3, 0x121d, 0x3b, 0x1230, 0x3b, 0x1230, 0x3b, 0x1220, 0x3b, 0x1228, 0x3b, 0x1283, 0x3b, 0x12d3, 0x3b, 0x1240, 0x3b, 0x1230, 0x1295, 0x1260,
-0x1275, 0x3b, 0x1230, 0x1291, 0x12ed, 0x3b, 0x1230, 0x1209, 0x1235, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1213, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d,
-0x1262, 0x3b, 0x1240, 0x12f3, 0x121d, 0x3b, 0x53, 0x101, 0x70, 0x3b, 0x4d, 0x14d, 0x6e, 0x3b, 0x54, 0x16b, 0x73, 0x3b, 0x50, 0x75,
-0x6c, 0x3b, 0x54, 0x75, 0x2bb, 0x61, 0x3b, 0x46, 0x61, 0x6c, 0x3b, 0x54, 0x6f, 0x6b, 0x3b, 0x53, 0x101, 0x70, 0x61, 0x74,
-0x65, 0x3b, 0x4d, 0x14d, 0x6e, 0x69, 0x74, 0x65, 0x3b, 0x54, 0x16b, 0x73, 0x69, 0x74, 0x65, 0x3b, 0x50, 0x75, 0x6c, 0x65,
-0x6c, 0x75, 0x6c, 0x75, 0x3b, 0x54, 0x75, 0x2bb, 0x61, 0x70, 0x75, 0x6c, 0x65, 0x6c, 0x75, 0x6c, 0x75, 0x3b, 0x46, 0x61,
-0x6c, 0x61, 0x69, 0x74, 0x65, 0x3b, 0x54, 0x6f, 0x6b, 0x6f, 0x6e, 0x61, 0x6b, 0x69, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54,
-0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x46, 0x3b, 0x54, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x75, 0x73, 0x3b, 0x42, 0x69, 0x72,
-0x3b, 0x48, 0x61, 0x72, 0x3b, 0x4e, 0x65, 0x3b, 0x54, 0x6c, 0x68, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x53, 0x6f, 0x6e, 0x74,
-0x6f, 0x3b, 0x4d, 0x75, 0x73, 0x75, 0x6d, 0x62, 0x68, 0x75, 0x6e, 0x75, 0x6b, 0x75, 0x3b, 0x52, 0x61, 0x76, 0x75, 0x6d,
-0x62, 0x69, 0x72, 0x68, 0x69, 0x3b, 0x52, 0x61, 0x76, 0x75, 0x6e, 0x68, 0x61, 0x72, 0x68, 0x75, 0x3b, 0x52, 0x61, 0x76,
-0x75, 0x6d, 0x75, 0x6e, 0x65, 0x3b, 0x52, 0x61, 0x76, 0x75, 0x6e, 0x74, 0x6c, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x75,
-0x67, 0x71, 0x69, 0x76, 0x65, 0x6c, 0x61, 0x3b, 0x50, 0x61, 0x7a, 0x3b, 0x50, 0x7a, 0x74, 0x3b, 0x53, 0x61, 0x6c, 0x3b,
-0xc7, 0x61, 0x72, 0x3b, 0x50, 0x65, 0x72, 0x3b, 0x43, 0x75, 0x6d, 0x3b, 0x43, 0x6d, 0x74, 0x3b, 0x50, 0x61, 0x7a, 0x61,
-0x72, 0x3b, 0x50, 0x61, 0x7a, 0x61, 0x72, 0x74, 0x65, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x6c, 0x131, 0x3b, 0xc7, 0x61, 0x72,
-0x15f, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x50, 0x65, 0x72, 0x15f, 0x65, 0x6d, 0x62, 0x65, 0x3b, 0x43, 0x75, 0x6d, 0x61, 0x3b,
-0x43, 0x75, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x69, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0xc7, 0x3b, 0x50, 0x3b,
-0x43, 0x3b, 0x43, 0x3b, 0x41d, 0x434, 0x3b, 0x41f, 0x43d, 0x3b, 0x412, 0x442, 0x3b, 0x421, 0x440, 0x3b, 0x427, 0x442, 0x3b, 0x41f,
-0x442, 0x3b, 0x421, 0x431, 0x3b, 0x41d, 0x435, 0x434, 0x456, 0x43b, 0x44f, 0x3b, 0x41f, 0x43e, 0x43d, 0x435, 0x434, 0x456, 0x43b, 0x43e,
-0x43a, 0x3b, 0x412, 0x456, 0x432, 0x442, 0x43e, 0x440, 0x43e, 0x43a, 0x3b, 0x421, 0x435, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x427, 0x435,
-0x442, 0x432, 0x435, 0x440, 0x3b, 0x41f, 0x2bc, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x44f, 0x3b, 0x421, 0x443, 0x431, 0x43e, 0x442, 0x430,
-0x3b, 0x41d, 0x3b, 0x41f, 0x3b, 0x412, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f, 0x3b, 0x421, 0x3b, 0x43d, 0x435, 0x434, 0x456, 0x43b,
-0x44f, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x456, 0x43b, 0x43e, 0x43a, 0x3b, 0x432, 0x456, 0x432, 0x442, 0x43e, 0x440, 0x43e, 0x43a,
-0x3b, 0x441, 0x435, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x435, 0x440, 0x3b, 0x43f, 0x2bc, 0x44f, 0x442, 0x43d,
-0x438, 0x446, 0x44f, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x627, 0x62a, 0x648, 0x627, 0x631, 0x3b, 0x633, 0x648, 0x645,
-0x648, 0x627, 0x631, 0x3b, 0x645, 0x646, 0x6af, 0x644, 0x3b, 0x628, 0x62f, 0x6be, 0x3b, 0x62c, 0x645, 0x639, 0x631, 0x627, 0x62a, 0x3b,
-0x62c, 0x645, 0x639, 0x6c1, 0x3b, 0x6c1, 0x641, 0x62a, 0x6c1, 0x3b, 0x627, 0x62a, 0x648, 0x627, 0x631, 0x3b, 0x67e, 0x6cc, 0x631, 0x3b,
-0x645, 0x646, 0x6af, 0x644, 0x3b, 0x628, 0x62f, 0x6be, 0x3b, 0x62c, 0x645, 0x639, 0x631, 0x627, 0x62a, 0x3b, 0x62c, 0x645, 0x639, 0x6c1,
-0x3b, 0x6c1, 0x641, 0x62a, 0x6c1, 0x3b, 0x59, 0x61, 0x6b, 0x73, 0x68, 0x3b, 0x44, 0x75, 0x73, 0x68, 0x3b, 0x53, 0x65, 0x73,
-0x68, 0x3b, 0x43, 0x68, 0x6f, 0x72, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x53, 0x68, 0x61, 0x6e, 0x3b,
-0x79, 0x61, 0x6b, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x64, 0x75, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x73,
-0x65, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x70,
-0x61, 0x79, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61,
-0x3b, 0x59, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0x6cc, 0x2e, 0x3b, 0x62f, 0x2e,
-0x3b, 0x633, 0x2e, 0x3b, 0x686, 0x2e, 0x3b, 0x67e, 0x2e, 0x3b, 0x62c, 0x2e, 0x3b, 0x634, 0x2e, 0x3b, 0x42f, 0x43a, 0x448, 0x3b,
-0x414, 0x443, 0x448, 0x3b, 0x421, 0x435, 0x448, 0x3b, 0x427, 0x43e, 0x440, 0x3b, 0x41f, 0x430, 0x439, 0x3b, 0x416, 0x443, 0x43c, 0x3b,
-0x428, 0x430, 0x43d, 0x3b, 0x44f, 0x43a, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x434, 0x443, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b,
-0x441, 0x435, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x447, 0x43e, 0x440, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x43f, 0x430, 0x439,
-0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x436, 0x443, 0x43c, 0x430, 0x3b, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x42f, 0x3b, 0x414,
-0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f, 0x3b, 0x416, 0x3b, 0x428, 0x3b, 0x43, 0x4e, 0x3b, 0x54, 0x68, 0x20, 0x32, 0x3b, 0x54,
-0x68, 0x20, 0x33, 0x3b, 0x54, 0x68, 0x20, 0x34, 0x3b, 0x54, 0x68, 0x20, 0x35, 0x3b, 0x54, 0x68, 0x20, 0x36, 0x3b, 0x54,
-0x68, 0x20, 0x37, 0x3b, 0x43, 0x68, 0x1ee7, 0x20, 0x4e, 0x68, 0x1ead, 0x74, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x48, 0x61, 0x69,
-0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x42, 0x61, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x54, 0x1b0, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x4e,
-0x103, 0x6d, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x53, 0xe1, 0x75, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x42, 0x1ea3, 0x79, 0x3b, 0x43,
-0x4e, 0x3b, 0x54, 0x32, 0x3b, 0x54, 0x33, 0x3b, 0x54, 0x34, 0x3b, 0x54, 0x35, 0x3b, 0x54, 0x36, 0x3b, 0x54, 0x37, 0x3b,
-0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x4d, 0x65, 0x72, 0x3b, 0x49, 0x61, 0x75,
-0x3b, 0x47, 0x77, 0x65, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x53, 0x75, 0x6c, 0x3b, 0x44, 0x79,
-0x64, 0x64, 0x20, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x4d, 0x61, 0x77, 0x72, 0x74, 0x68, 0x3b,
-0x44, 0x79, 0x64, 0x64, 0x20, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x65, 0x72, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x49, 0x61,
-0x75, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x47, 0x77, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x53,
-0x61, 0x64, 0x77, 0x72, 0x6e, 0x3b, 0x53, 0x3b, 0x4c, 0x6c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x47, 0x3b, 0x53,
-0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x4d, 0x65, 0x72, 0x3b, 0x49, 0x61,
-0x75, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x43, 0x61, 0x77, 0x3b, 0x4d, 0x76, 0x75, 0x3b, 0x42,
-0x69, 0x6e, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x53, 0x69, 0x6e, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x67, 0x71, 0x3b, 0x43,
-0x61, 0x77, 0x65, 0x3b, 0x4d, 0x76, 0x75, 0x6c, 0x6f, 0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x62, 0x69, 0x6e, 0x69, 0x3b,
+0xd36, 0xd28, 0xd3f, 0xd2f, 0xd3e, 0xd34, 0xd4d, 0x200c, 0xd1a, 0x3b, 0x126, 0x61, 0x64, 0x3b, 0x54, 0x6e, 0x65, 0x3b, 0x54, 0x6c,
+0x69, 0x3b, 0x45, 0x72, 0x62, 0x3b, 0x126, 0x61, 0x6d, 0x3b, 0x120, 0x69, 0x6d, 0x3b, 0x53, 0x69, 0x62, 0x3b, 0x49, 0x6c,
+0x2d, 0x126, 0x61, 0x64, 0x64, 0x3b, 0x49, 0x74, 0x2d, 0x54, 0x6e, 0x65, 0x6a, 0x6e, 0x3b, 0x49, 0x74, 0x2d, 0x54, 0x6c,
+0x69, 0x65, 0x74, 0x61, 0x3b, 0x4c, 0x2d, 0x45, 0x72, 0x62, 0x67, 0x127, 0x61, 0x3b, 0x49, 0x6c, 0x2d, 0x126, 0x61, 0x6d,
+0x69, 0x73, 0x3b, 0x49, 0x6c, 0x2d, 0x120, 0x69, 0x6d, 0x67, 0x127, 0x61, 0x3b, 0x49, 0x73, 0x2d, 0x53, 0x69, 0x62, 0x74,
+0x3b, 0x126, 0x64, 0x3b, 0x54, 0x6e, 0x3b, 0x54, 0x6c, 0x3b, 0x45, 0x72, 0x3b, 0x126, 0x6d, 0x3b, 0x120, 0x6d, 0x3b, 0x53,
+0x62, 0x3b, 0x126, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x45, 0x3b, 0x126, 0x3b, 0x120, 0x3b, 0x53, 0x3b, 0x930, 0x935, 0x93f, 0x3b,
+0x938, 0x94b, 0x92e, 0x3b, 0x92e, 0x902, 0x917, 0x933, 0x3b, 0x92c, 0x941, 0x927, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x3b, 0x936, 0x941,
+0x915, 0x94d, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x930, 0x935, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x935, 0x93e,
+0x930, 0x3b, 0x92e, 0x902, 0x917, 0x933, 0x935, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x917, 0x941, 0x930,
+0x941, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935, 0x93e, 0x930,
+0x3b, 0x41d, 0x44f, 0x3b, 0x414, 0x430, 0x3b, 0x41c, 0x44f, 0x3b, 0x41b, 0x445, 0x3b, 0x41f, 0x4af, 0x3b, 0x411, 0x430, 0x3b, 0x411,
+0x44f, 0x3b, 0x43d, 0x44f, 0x43c, 0x3b, 0x434, 0x430, 0x432, 0x430, 0x430, 0x3b, 0x43c, 0x44f, 0x433, 0x43c, 0x430, 0x440, 0x3b, 0x43b,
+0x445, 0x430, 0x433, 0x432, 0x430, 0x3b, 0x43f, 0x4af, 0x440, 0x44d, 0x432, 0x3b, 0x431, 0x430, 0x430, 0x441, 0x430, 0x43d, 0x3b, 0x431,
+0x44f, 0x43c, 0x431, 0x430, 0x3b, 0x906, 0x907, 0x924, 0x3b, 0x938, 0x94b, 0x92e, 0x3b, 0x92e, 0x919, 0x94d, 0x917, 0x932, 0x3b, 0x92c,
+0x941, 0x927, 0x3b, 0x92c, 0x93f, 0x939, 0x940, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x3b, 0x906, 0x907,
+0x924, 0x92c, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x92c, 0x93e, 0x930, 0x3b, 0x92e, 0x919, 0x94d, 0x917, 0x932, 0x92c, 0x93e, 0x930,
+0x3b, 0x92c, 0x941, 0x927, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x93f, 0x939, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d,
+0x930, 0x92c, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x906, 0x3b, 0x938, 0x94b, 0x3b, 0x92e, 0x3b, 0x92c,
+0x941, 0x3b, 0x92c, 0x93f, 0x3b, 0x936, 0x941, 0x3b, 0x936, 0x3b, 0x73, 0xf8, 0x2e, 0x3b, 0x6d, 0x61, 0x2e, 0x3b, 0x74, 0x69,
+0x2e, 0x3b, 0x6f, 0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x2e, 0x3b, 0x66, 0x72, 0x2e, 0x3b, 0x6c, 0xf8, 0x2e, 0x3b, 0xb30, 0xb2c,
+0xb3f, 0x3b, 0xb38, 0xb4b, 0xb2e, 0x3b, 0xb2e, 0xb19, 0xb4d, 0xb17, 0xb33, 0x3b, 0xb2c, 0xb41, 0xb27, 0x3b, 0xb17, 0xb41, 0xb30, 0xb41,
+0x3b, 0xb36, 0xb41, 0xb15, 0xb4d, 0xb30, 0x3b, 0xb36, 0xb28, 0xb3f, 0x3b, 0xb30, 0xb2c, 0xb3f, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb38, 0xb4b,
+0xb2e, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb2e, 0xb19, 0xb4d, 0xb17, 0xb33, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb2c, 0xb41, 0xb27, 0xb2c, 0xb3e, 0xb30,
+0x3b, 0xb17, 0xb41, 0xb30, 0xb41, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb36, 0xb41, 0xb15, 0xb4d, 0xb30, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb36, 0xb28,
+0xb3f, 0xb2c, 0xb3e, 0xb30, 0x3b, 0xb30, 0x3b, 0xb38, 0xb4b, 0x3b, 0xb2e, 0x3b, 0xb2c, 0xb41, 0x3b, 0xb17, 0xb41, 0x3b, 0xb36, 0xb41,
+0x3b, 0xb36, 0x3b, 0x6cc, 0x6a9, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x62f, 0x648, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x633, 0x647, 0x200c,
+0x634, 0x646, 0x628, 0x647, 0x3b, 0x686, 0x647, 0x627, 0x631, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x67e, 0x646, 0x62c, 0x634, 0x646, 0x628,
+0x647, 0x3b, 0x62c, 0x645, 0x639, 0x647, 0x3b, 0x634, 0x646, 0x628, 0x647, 0x3b, 0x6cc, 0x3b, 0x62f, 0x3b, 0x633, 0x3b, 0x686, 0x3b,
+0x67e, 0x3b, 0x62c, 0x3b, 0x634, 0x3b, 0x6e, 0x69, 0x65, 0x64, 0x7a, 0x2e, 0x3b, 0x70, 0x6f, 0x6e, 0x2e, 0x3b, 0x77, 0x74,
+0x2e, 0x3b, 0x15b, 0x72, 0x2e, 0x3b, 0x63, 0x7a, 0x77, 0x2e, 0x3b, 0x70, 0x74, 0x2e, 0x3b, 0x73, 0x6f, 0x62, 0x2e, 0x3b,
+0x6e, 0x69, 0x65, 0x64, 0x7a, 0x69, 0x65, 0x6c, 0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x69, 0x65, 0x64, 0x7a, 0x69, 0x61, 0x142,
+0x65, 0x6b, 0x3b, 0x77, 0x74, 0x6f, 0x72, 0x65, 0x6b, 0x3b, 0x15b, 0x72, 0x6f, 0x64, 0x61, 0x3b, 0x63, 0x7a, 0x77, 0x61,
+0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0x69, 0x105, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x4e,
+0x3b, 0x50, 0x3b, 0x57, 0x3b, 0x15a, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x73, 0x65, 0x67,
+0x3b, 0x74, 0x65, 0x72, 0x3b, 0x71, 0x75, 0x61, 0x3b, 0x71, 0x75, 0x69, 0x3b, 0x73, 0x65, 0x78, 0x3b, 0x73, 0xe1, 0x62,
+0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x67, 0x75, 0x6e, 0x64, 0x61, 0x2d, 0x66, 0x65, 0x69,
+0x72, 0x61, 0x3b, 0x74, 0x65, 0x72, 0xe7, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x71, 0x75, 0x61, 0x72, 0x74,
+0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x71, 0x75, 0x69, 0x6e, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61,
+0x3b, 0x73, 0x65, 0x78, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x69, 0x72, 0x61, 0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b,
+0x44, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x51, 0x3b, 0x51, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0xa10, 0xa24, 0x3b, 0xa38, 0xa4b, 0xa2e,
+0x3b, 0xa2e, 0xa70, 0xa17, 0xa32, 0x3b, 0xa2c, 0xa41, 0xa71, 0xa27, 0x3b, 0xa35, 0xa40, 0xa30, 0x3b, 0xa38, 0xa3c, 0xa41, 0xa71, 0xa15,
+0xa30, 0x3b, 0xa38, 0xa3c, 0xa28, 0xa3f, 0xa71, 0xa1a, 0xa30, 0x3b, 0xa10, 0xa24, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38, 0xa4b, 0xa2e, 0xa35,
+0xa3e, 0xa30, 0x3b, 0xa2e, 0xa70, 0xa17, 0xa32, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa2c, 0xa41, 0xa71, 0xa27, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa35,
+0xa40, 0xa30, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38, 0xa3c, 0xa41, 0xa71, 0xa15, 0xa30, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa38, 0xa3c, 0xa28, 0xa3f,
+0xa71, 0xa1a, 0xa30, 0xa35, 0xa3e, 0xa30, 0x3b, 0xa10, 0x3b, 0xa38, 0xa4b, 0x3b, 0xa2e, 0xa70, 0x3b, 0xa2c, 0xa41, 0xa71, 0x3b, 0xa35,
+0xa40, 0x3b, 0xa38, 0xa3c, 0xa41, 0xa71, 0x3b, 0xa38, 0xa3c, 0x3b, 0x627, 0x62a, 0x648, 0x627, 0x631, 0x3b, 0x67e, 0x6cc, 0x631, 0x3b,
+0x645, 0x646, 0x6af, 0x644, 0x3b, 0x628, 0x64f, 0x62f, 0x6be, 0x3b, 0x62c, 0x645, 0x639, 0x631, 0x627, 0x62a, 0x3b, 0x62c, 0x645, 0x639,
+0x6c1, 0x3b, 0x6c1, 0x641, 0x62a, 0x6c1, 0x3b, 0x44, 0x6f, 0x6d, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d,
+0x69, 0xe9, 0x3b, 0x4a, 0x75, 0x65, 0x3b, 0x56, 0x69, 0x65, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x44, 0x6f, 0x6d, 0x69, 0x6e,
+0x67, 0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x4d, 0x69, 0xe9, 0x72,
+0x63, 0x6f, 0x6c, 0x65, 0x73, 0x3b, 0x4a, 0x75, 0x65, 0x76, 0x65, 0x73, 0x3b, 0x56, 0x69, 0x65, 0x72, 0x6e, 0x65, 0x73,
+0x3b, 0x53, 0xe1, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x44, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x4a, 0x3b, 0x56, 0x3b,
+0x53, 0x3b, 0x64, 0x75, 0x3b, 0x67, 0x6c, 0x69, 0x3b, 0x6d, 0x61, 0x3b, 0x6d, 0x65, 0x3b, 0x67, 0x69, 0x65, 0x3b, 0x76,
+0x65, 0x3b, 0x73, 0x6f, 0x3b, 0x64, 0x75, 0x6d, 0x65, 0x6e, 0x67, 0x69, 0x61, 0x3b, 0x67, 0x6c, 0x69, 0x6e, 0x64, 0x65,
+0x73, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x65, 0x73, 0x65, 0x6d, 0x6e, 0x61, 0x3b, 0x67, 0x69,
+0x65, 0x76, 0x67, 0x69, 0x61, 0x3b, 0x76, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x64, 0x69, 0x3b, 0x73, 0x6f, 0x6e, 0x64, 0x61,
+0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x44, 0x75, 0x6d, 0x3b, 0x4c,
+0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x69, 0x65, 0x3b, 0x4a, 0x6f, 0x69, 0x3b, 0x56, 0x69, 0x6e, 0x3b, 0x53,
+0xe2, 0x6d, 0x3b, 0x44, 0x75, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x103, 0x3b, 0x4c, 0x75, 0x6e, 0x69, 0x3b, 0x4d, 0x61, 0x72,
+0x21b, 0x69, 0x3b, 0x4d, 0x69, 0x65, 0x72, 0x63, 0x75, 0x72, 0x69, 0x3b, 0x4a, 0x6f, 0x69, 0x3b, 0x56, 0x69, 0x6e, 0x65,
+0x72, 0x69, 0x3b, 0x53, 0xe2, 0x6d, 0x62, 0x103, 0x74, 0x103, 0x3b, 0x64, 0x75, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x103, 0x3b,
+0x6c, 0x75, 0x6e, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x21b, 0x69, 0x3b, 0x6d, 0x69, 0x65, 0x72, 0x63, 0x75, 0x72, 0x69, 0x3b,
+0x6a, 0x6f, 0x69, 0x3b, 0x76, 0x69, 0x6e, 0x65, 0x72, 0x69, 0x3b, 0x73, 0xe2, 0x6d, 0x62, 0x103, 0x74, 0x103, 0x3b, 0x412,
+0x441, 0x3b, 0x41f, 0x43d, 0x3b, 0x412, 0x442, 0x3b, 0x421, 0x440, 0x3b, 0x427, 0x442, 0x3b, 0x41f, 0x442, 0x3b, 0x421, 0x431, 0x3b,
+0x412, 0x43e, 0x441, 0x43a, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x435, 0x3b, 0x41f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x44c,
+0x43d, 0x438, 0x43a, 0x3b, 0x412, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x421, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x427, 0x435,
+0x442, 0x432, 0x435, 0x440, 0x433, 0x3b, 0x41f, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x430, 0x3b, 0x421, 0x443, 0x431, 0x431, 0x43e, 0x442,
+0x430, 0x3b, 0x412, 0x3b, 0x41f, 0x3b, 0x412, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f, 0x3b, 0x421, 0x3b, 0x432, 0x441, 0x3b, 0x43f,
+0x43d, 0x3b, 0x432, 0x442, 0x3b, 0x441, 0x440, 0x3b, 0x447, 0x442, 0x3b, 0x43f, 0x442, 0x3b, 0x441, 0x431, 0x3b, 0x432, 0x43e, 0x441,
+0x43a, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x435, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x43b, 0x44c, 0x43d, 0x438, 0x43a,
+0x3b, 0x432, 0x442, 0x43e, 0x440, 0x43d, 0x438, 0x43a, 0x3b, 0x441, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x435,
+0x440, 0x433, 0x3b, 0x43f, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x430, 0x3b, 0x441, 0x443, 0x431, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x42,
+0x6b, 0x31, 0x3b, 0x42, 0x6b, 0x32, 0x3b, 0x42, 0x6b, 0x33, 0x3b, 0x42, 0x6b, 0x34, 0x3b, 0x42, 0x6b, 0x35, 0x3b, 0x4c,
+0xe2, 0x70, 0x3b, 0x4c, 0xe2, 0x79, 0x3b, 0x42, 0x69, 0x6b, 0x75, 0x61, 0x2d, 0xf4, 0x6b, 0x6f, 0x3b, 0x42, 0xef, 0x6b,
+0x75, 0x61, 0x2d, 0xfb, 0x73, 0x65, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61, 0x2d, 0x70, 0x74, 0xe2, 0x3b, 0x42, 0xef, 0x6b,
+0x75, 0x61, 0x2d, 0x75, 0x73, 0xef, 0xf6, 0x3b, 0x42, 0xef, 0x6b, 0x75, 0x61, 0x2d, 0x6f, 0x6b, 0xfc, 0x3b, 0x4c, 0xe2,
+0x70, 0xf4, 0x73, 0xf6, 0x3b, 0x4c, 0xe2, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x53,
+0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x59, 0x3b, 0x43d, 0x435, 0x434, 0x3b, 0x43f, 0x43e, 0x43d, 0x3b, 0x443, 0x442, 0x43e, 0x3b, 0x441,
+0x440, 0x435, 0x3b, 0x447, 0x435, 0x442, 0x3b, 0x43f, 0x435, 0x442, 0x3b, 0x441, 0x443, 0x431, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x459,
+0x430, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x43a, 0x3b, 0x443, 0x442, 0x43e, 0x440, 0x430, 0x43a, 0x3b, 0x441,
+0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x440, 0x442, 0x430, 0x43a, 0x3b, 0x43f, 0x435, 0x442, 0x430, 0x43a, 0x3b,
+0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x43d, 0x3b, 0x43f, 0x3b, 0x443, 0x3b, 0x441, 0x3b, 0x447, 0x3b, 0x43f, 0x3b, 0x441,
+0x3b, 0x6e, 0x65, 0x64, 0x3b, 0x70, 0x6f, 0x6e, 0x3b, 0x75, 0x74, 0x6f, 0x3b, 0x73, 0x72, 0x65, 0x3b, 0x10d, 0x65, 0x74,
+0x3b, 0x70, 0x65, 0x74, 0x3b, 0x73, 0x75, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a, 0x61, 0x3b, 0x70, 0x6f, 0x6e,
+0x65, 0x64, 0x65, 0x6c, 0x6a, 0x61, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72, 0x61, 0x6b, 0x3b, 0x73, 0x72, 0x65, 0x64, 0x61,
+0x3b, 0x10d, 0x65, 0x74, 0x76, 0x72, 0x74, 0x61, 0x6b, 0x3b, 0x70, 0x65, 0x74, 0x61, 0x6b, 0x3b, 0x73, 0x75, 0x62, 0x6f,
+0x74, 0x61, 0x3b, 0x425, 0x446, 0x431, 0x3b, 0x41a, 0x440, 0x441, 0x3b, 0x414, 0x446, 0x433, 0x3b, 0x4d4, 0x440, 0x442, 0x3b, 0x426,
+0x43f, 0x440, 0x3b, 0x41c, 0x440, 0x431, 0x3b, 0x421, 0x431, 0x442, 0x3b, 0x425, 0x443, 0x44b, 0x446, 0x430, 0x443, 0x431, 0x43e, 0x43d,
+0x3b, 0x41a, 0x44a, 0x443, 0x44b, 0x440, 0x438, 0x441, 0x4d5, 0x440, 0x3b, 0x414, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x4d4, 0x440,
+0x442, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x426, 0x44b, 0x43f, 0x43f, 0x4d5, 0x440, 0x4d5, 0x43c, 0x3b, 0x41c, 0x430, 0x439, 0x440,
+0x4d5, 0x43c, 0x431, 0x43e, 0x43d, 0x3b, 0x421, 0x430, 0x431, 0x430, 0x442, 0x3b, 0x425, 0x3b, 0x41a, 0x3b, 0x414, 0x3b, 0x4d4, 0x3b,
+0x426, 0x3b, 0x41c, 0x3b, 0x421, 0x3b, 0x445, 0x446, 0x431, 0x3b, 0x43a, 0x440, 0x441, 0x3b, 0x434, 0x446, 0x433, 0x3b, 0x4d5, 0x440,
+0x442, 0x3b, 0x446, 0x43f, 0x440, 0x3b, 0x43c, 0x440, 0x431, 0x3b, 0x441, 0x431, 0x442, 0x3b, 0x445, 0x443, 0x44b, 0x446, 0x430, 0x443,
+0x431, 0x43e, 0x43d, 0x3b, 0x43a, 0x44a, 0x443, 0x44b, 0x440, 0x438, 0x441, 0x4d5, 0x440, 0x3b, 0x434, 0x44b, 0x446, 0x446, 0x4d5, 0x433,
+0x3b, 0x4d5, 0x440, 0x442, 0x44b, 0x446, 0x446, 0x4d5, 0x433, 0x3b, 0x446, 0x44b, 0x43f, 0x43f, 0x4d5, 0x440, 0x4d5, 0x43c, 0x3b, 0x43c,
+0x430, 0x439, 0x440, 0x4d5, 0x43c, 0x431, 0x43e, 0x43d, 0x3b, 0x441, 0x430, 0x431, 0x430, 0x442, 0x3b, 0x53, 0x76, 0x6f, 0x3b, 0x4d,
+0x75, 0x76, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x3b, 0x43, 0x68, 0x69, 0x74, 0x3b, 0x43, 0x68, 0x69, 0x6e, 0x3b, 0x43, 0x68,
+0x69, 0x73, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x53, 0x76, 0x6f, 0x6e, 0x64, 0x6f, 0x3b, 0x4d, 0x75, 0x76, 0x68, 0x75, 0x72,
+0x6f, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x43, 0x68,
+0x69, 0x6e, 0x61, 0x3b, 0x43, 0x68, 0x69, 0x73, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x75, 0x67, 0x6f, 0x76, 0x65, 0x72,
+0x61, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x4d, 0x3b, 0xd89, 0xdbb, 0xdd2, 0xdaf,
+0xdcf, 0x3b, 0xdc3, 0xdb3, 0xdd4, 0xdaf, 0xdcf, 0x3b, 0xd85, 0xd9f, 0xdc4, 0x3b, 0xdb6, 0xdaf, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdca,
+0x200d, 0xdbb, 0xdc4, 0xdc3, 0xdca, 0x3b, 0xdc3, 0xdd2, 0xd9a, 0xdd4, 0x3b, 0xdc3, 0xdd9, 0xdb1, 0x3b, 0xd89, 0xdbb, 0xdd2, 0xdaf, 0xdcf,
+0x3b, 0xdc3, 0xdb3, 0xdd4, 0xdaf, 0xdcf, 0x3b, 0xd85, 0xd9f, 0xdc4, 0xdbb, 0xdd4, 0xdc0, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdaf, 0xdcf,
+0xdaf, 0xdcf, 0x3b, 0xdb6, 0xdca, 0x200d, 0xdbb, 0xdc4, 0xdc3, 0xdca, 0xdb4, 0xdad, 0xdd2, 0xdb1, 0xdca, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdd2,
+0xd9a, 0xdd4, 0xdbb, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xdc3, 0xdd9, 0xdb1, 0xdc3, 0xdd4, 0xdbb, 0xdcf, 0xdaf, 0xdcf, 0x3b, 0xd89, 0x3b, 0xdc3,
+0x3b, 0xd85, 0x3b, 0xdb6, 0x3b, 0xdb6, 0xdca, 0x200d, 0xdbb, 0x3b, 0xdc3, 0xdd2, 0x3b, 0xdc3, 0xdd9, 0x3b, 0x6e, 0x65, 0x3b, 0x70,
+0x6f, 0x3b, 0x75, 0x74, 0x3b, 0x73, 0x74, 0x3b, 0x161, 0x74, 0x3b, 0x70, 0x69, 0x3b, 0x73, 0x6f, 0x3b, 0x6e, 0x65, 0x64,
+0x65, 0x13e, 0x61, 0x3b, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x6c, 0x6f, 0x6b, 0x3b, 0x75, 0x74, 0x6f, 0x72, 0x6f, 0x6b, 0x3b,
+0x73, 0x74, 0x72, 0x65, 0x64, 0x61, 0x3b, 0x161, 0x74, 0x76, 0x72, 0x74, 0x6f, 0x6b, 0x3b, 0x70, 0x69, 0x61, 0x74, 0x6f,
+0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x50, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x160, 0x3b, 0x50,
+0x3b, 0x53, 0x3b, 0x6e, 0x65, 0x64, 0x3b, 0x70, 0x6f, 0x6e, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x73, 0x72, 0x65, 0x3b, 0x10d,
+0x65, 0x74, 0x3b, 0x70, 0x65, 0x74, 0x3b, 0x73, 0x6f, 0x62, 0x3b, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a, 0x61, 0x3b, 0x70,
+0x6f, 0x6e, 0x65, 0x64, 0x65, 0x6c, 0x6a, 0x65, 0x6b, 0x3b, 0x74, 0x6f, 0x72, 0x65, 0x6b, 0x3b, 0x73, 0x72, 0x65, 0x64,
+0x61, 0x3b, 0x10d, 0x65, 0x74, 0x72, 0x74, 0x65, 0x6b, 0x3b, 0x70, 0x65, 0x74, 0x65, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f,
+0x74, 0x61, 0x3b, 0x6e, 0x3b, 0x70, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x10d, 0x3b, 0x70, 0x3b, 0x73, 0x3b, 0x6e, 0x65, 0x64,
+0x2e, 0x3b, 0x70, 0x6f, 0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x72, 0x2e, 0x3b, 0x73, 0x72, 0x65, 0x2e, 0x3b, 0x10d, 0x65, 0x74,
+0x2e, 0x3b, 0x70, 0x65, 0x74, 0x2e, 0x3b, 0x73, 0x6f, 0x62, 0x2e, 0x3b, 0x41, 0x78, 0x64, 0x3b, 0x49, 0x73, 0x6e, 0x3b,
+0x54, 0x61, 0x6c, 0x3b, 0x41, 0x72, 0x62, 0x3b, 0x4b, 0x68, 0x61, 0x3b, 0x4a, 0x69, 0x6d, 0x3b, 0x53, 0x61, 0x62, 0x3b,
+0x41, 0x78, 0x61, 0x64, 0x3b, 0x49, 0x73, 0x6e, 0x69, 0x69, 0x6e, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x61, 0x64, 0x6f, 0x3b,
+0x41, 0x72, 0x62, 0x61, 0x63, 0x6f, 0x3b, 0x4b, 0x68, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x3b, 0x4a, 0x69, 0x6d, 0x63, 0x6f,
+0x3b, 0x53, 0x61, 0x62, 0x74, 0x69, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x4b, 0x3b, 0x4a, 0x3b, 0x53,
+0x3b, 0x44, 0x6f, 0x6d, 0x2e, 0x3b, 0x4c, 0x75, 0x6e, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x4d, 0x69, 0xe9, 0x2e,
+0x3b, 0x4a, 0x75, 0x65, 0x2e, 0x3b, 0x56, 0x69, 0x65, 0x2e, 0x3b, 0x53, 0xe1, 0x62, 0x2e, 0x3b, 0x64, 0x6f, 0x6d, 0x2e,
+0x3b, 0x6c, 0x75, 0x6e, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x6d, 0x69, 0xe9, 0x2e, 0x3b, 0x6a, 0x75, 0x65, 0x2e,
+0x3b, 0x76, 0x69, 0x65, 0x2e, 0x3b, 0x73, 0xe1, 0x62, 0x2e, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x6c,
+0x75, 0x6e, 0x65, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x6d, 0x69, 0xe9, 0x72, 0x63, 0x6f, 0x6c, 0x65,
+0x73, 0x3b, 0x6a, 0x75, 0x65, 0x76, 0x65, 0x73, 0x3b, 0x76, 0x69, 0x65, 0x72, 0x6e, 0x65, 0x73, 0x3b, 0x73, 0xe1, 0x62,
+0x61, 0x64, 0x6f, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x76, 0x3b, 0x73, 0x3b, 0x4a, 0x75,
+0x6d, 0x61, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61,
+0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73,
+0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x79, 0x3b,
+0x6b, 0x3b, 0x70, 0x3b, 0x74, 0x3b, 0x69, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x79, 0x65, 0x6e, 0x3b, 0x6b, 0x77, 0x61, 0x3b,
+0x70, 0x69, 0x6c, 0x3b, 0x74, 0x61, 0x74, 0x3b, 0x69, 0x6e, 0x65, 0x3b, 0x74, 0x61, 0x6e, 0x3b, 0x73, 0x69, 0x74, 0x3b,
+0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79,
+0x61, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x70, 0x69, 0x6c,
+0x69, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20,
+0x79, 0x61, 0x20, 0x69, 0x6e, 0x65, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b,
+0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x53, 0xf6, 0x6e, 0x3b, 0x4d, 0xe5, 0x6e,
+0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4f, 0x6e, 0x73, 0x3b, 0x54, 0x6f, 0x72, 0x3b, 0x46, 0x72, 0x65, 0x3b, 0x4c, 0xf6, 0x72,
+0x3b, 0x53, 0xf6, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x4d, 0xe5, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x54, 0x69, 0x73, 0x64, 0x61,
+0x67, 0x3b, 0x4f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x54, 0x6f, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x46, 0x72, 0x65,
+0x64, 0x61, 0x67, 0x3b, 0x4c, 0xf6, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x73, 0xf6, 0x6e, 0x3b, 0x6d, 0xe5, 0x6e, 0x3b, 0x74,
+0x69, 0x73, 0x3b, 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x3b, 0x66, 0x72, 0x65, 0x3b, 0x6c, 0xf6, 0x72, 0x3b,
+0x73, 0xf6, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x6d, 0xe5, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x69, 0x73, 0x64, 0x61, 0x67,
+0x3b, 0x6f, 0x6e, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x66, 0x72, 0x65, 0x64,
+0x61, 0x67, 0x3b, 0x6c, 0xf6, 0x72, 0x64, 0x61, 0x67, 0x3b, 0xb9e, 0xbbe, 0x3b, 0xba4, 0xbbf, 0x3b, 0xb9a, 0xbc6, 0x3b, 0xbaa,
+0xbc1, 0x3b, 0xbb5, 0xbbf, 0x3b, 0xbb5, 0xbc6, 0x3b, 0xb9a, 0x3b, 0xb9e, 0xbbe, 0xbaf, 0xbbf, 0xbb1, 0xbc1, 0x3b, 0xba4, 0xbbf, 0xb99,
+0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbb5, 0xbcd, 0xbb5, 0xbbe, 0xbaf, 0xbcd, 0x3b, 0xbaa, 0xbc1, 0xba4, 0xba9, 0xbcd, 0x3b,
+0xbb5, 0xbbf, 0xbaf, 0xbbe, 0xbb4, 0xba9, 0xbcd, 0x3b, 0xbb5, 0xbc6, 0xbb3, 0xbcd, 0xbb3, 0xbbf, 0x3b, 0xb9a, 0xba9, 0xbbf, 0x3b, 0xc06,
+0xc26, 0xc3f, 0x3b, 0xc38, 0xc4b, 0xc2e, 0x3b, 0xc2e, 0xc02, 0xc17, 0xc33, 0x3b, 0xc2c, 0xc41, 0xc27, 0x3b, 0xc17, 0xc41, 0xc30, 0xc41,
+0x3b, 0xc36, 0xc41, 0xc15, 0xc4d, 0xc30, 0x3b, 0xc36, 0xc28, 0xc3f, 0x3b, 0xc06, 0xc26, 0xc3f, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc38,
+0xc4b, 0xc2e, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc2e, 0xc02, 0xc17, 0xc33, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc2c, 0xc41, 0xc27, 0xc35,
+0xc3e, 0xc30, 0xc02, 0x3b, 0xc17, 0xc41, 0xc30, 0xc41, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc36, 0xc41, 0xc15, 0xc4d, 0xc30, 0xc35, 0xc3e,
+0xc30, 0xc02, 0x3b, 0xc36, 0xc28, 0xc3f, 0xc35, 0xc3e, 0xc30, 0xc02, 0x3b, 0xc06, 0x3b, 0xc38, 0xc4b, 0x3b, 0xc2e, 0x3b, 0xc2c, 0xc41,
+0x3b, 0xc17, 0xc41, 0x3b, 0xc36, 0xc41, 0x3b, 0xc36, 0x3b, 0xe2d, 0xe32, 0x2e, 0x3b, 0xe08, 0x2e, 0x3b, 0xe2d, 0x2e, 0x3b, 0xe1e,
+0x2e, 0x3b, 0xe1e, 0xe24, 0x2e, 0x3b, 0xe28, 0x2e, 0x3b, 0xe2a, 0x2e, 0x3b, 0xe27, 0xe31, 0xe19, 0xe2d, 0xe32, 0xe17, 0xe34, 0xe15,
+0xe22, 0xe4c, 0x3b, 0xe27, 0xe31, 0xe19, 0xe08, 0xe31, 0xe19, 0xe17, 0xe23, 0xe4c, 0x3b, 0xe27, 0xe31, 0xe19, 0xe2d, 0xe31, 0xe07, 0xe04,
+0xe32, 0xe23, 0x3b, 0xe27, 0xe31, 0xe19, 0xe1e, 0xe38, 0xe18, 0x3b, 0xe27, 0xe31, 0xe19, 0xe1e, 0xe24, 0xe2b, 0xe31, 0xe2a, 0xe1a, 0xe14,
+0xe35, 0x3b, 0xe27, 0xe31, 0xe19, 0xe28, 0xe38, 0xe01, 0xe23, 0xe4c, 0x3b, 0xe27, 0xe31, 0xe19, 0xe40, 0xe2a, 0xe32, 0xe23, 0xe4c, 0x3b,
+0xe2d, 0xe32, 0x3b, 0xe08, 0x3b, 0xe2d, 0x3b, 0xe1e, 0x3b, 0xe1e, 0xe24, 0x3b, 0xe28, 0x3b, 0xe2a, 0x3b, 0xf49, 0xf72, 0xf0b, 0xf58,
+0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0x3b, 0xf58, 0xf72, 0xf42, 0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b, 0xf63, 0xfb7, 0xf42,
+0xf0b, 0xf54, 0xf0b, 0x3b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56, 0xf74, 0xf0b, 0x3b, 0xf54, 0xf0b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf66,
+0xfa4, 0xf7a, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf49, 0xf72, 0xf0b, 0xf58, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60,
+0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf58, 0xf72, 0xf42, 0xf0b, 0xf51, 0xf58, 0xf62, 0xf0b, 0x3b,
+0xf42, 0xf5f, 0xf60, 0xf0b, 0xf63, 0xfb7, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf55, 0xf74, 0xf62, 0xf0b, 0xf56,
+0xf74, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf54, 0xf0b, 0xf66, 0xf44, 0xf66, 0xf0b, 0x3b, 0xf42, 0xf5f, 0xf60, 0xf0b, 0xf66, 0xfa4,
+0xf7a, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf49, 0xf72, 0x3b, 0xf5f, 0xfb3, 0x3b, 0xf58, 0xf72, 0x3b, 0xf63, 0xfb7, 0x3b, 0xf55, 0xf74,
+0x3b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xf7a, 0x3b, 0x1230, 0x1295, 0x1260, 0x1275, 0x3b, 0x1230, 0x1291, 0x12ed, 0x3b, 0x1220, 0x1209, 0x1235, 0x3b,
+0x1228, 0x1261, 0x12d5, 0x3b, 0x1283, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1262, 0x3b, 0x1240, 0x12f3, 0x121d, 0x3b, 0x1230, 0x3b, 0x1230, 0x3b,
+0x1220, 0x3b, 0x1228, 0x3b, 0x1283, 0x3b, 0x12d3, 0x3b, 0x1240, 0x3b, 0x1230, 0x1295, 0x1260, 0x1275, 0x3b, 0x1230, 0x1291, 0x12ed, 0x3b, 0x1230,
+0x1209, 0x1235, 0x3b, 0x1228, 0x1261, 0x12d5, 0x3b, 0x1213, 0x1219, 0x1235, 0x3b, 0x12d3, 0x122d, 0x1262, 0x3b, 0x1240, 0x12f3, 0x121d, 0x3b, 0x53,
+0x101, 0x70, 0x3b, 0x4d, 0x14d, 0x6e, 0x3b, 0x54, 0x16b, 0x73, 0x3b, 0x50, 0x75, 0x6c, 0x3b, 0x54, 0x75, 0x2bb, 0x61, 0x3b,
+0x46, 0x61, 0x6c, 0x3b, 0x54, 0x6f, 0x6b, 0x3b, 0x53, 0x101, 0x70, 0x61, 0x74, 0x65, 0x3b, 0x4d, 0x14d, 0x6e, 0x69, 0x74,
+0x65, 0x3b, 0x54, 0x16b, 0x73, 0x69, 0x74, 0x65, 0x3b, 0x50, 0x75, 0x6c, 0x65, 0x6c, 0x75, 0x6c, 0x75, 0x3b, 0x54, 0x75,
+0x2bb, 0x61, 0x70, 0x75, 0x6c, 0x65, 0x6c, 0x75, 0x6c, 0x75, 0x3b, 0x46, 0x61, 0x6c, 0x61, 0x69, 0x74, 0x65, 0x3b, 0x54,
+0x6f, 0x6b, 0x6f, 0x6e, 0x61, 0x6b, 0x69, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x46, 0x3b,
+0x54, 0x3b, 0x50, 0x61, 0x7a, 0x3b, 0x50, 0x7a, 0x74, 0x3b, 0x53, 0x61, 0x6c, 0x3b, 0xc7, 0x61, 0x72, 0x3b, 0x50, 0x65,
+0x72, 0x3b, 0x43, 0x75, 0x6d, 0x3b, 0x43, 0x6d, 0x74, 0x3b, 0x50, 0x61, 0x7a, 0x61, 0x72, 0x3b, 0x50, 0x61, 0x7a, 0x61,
+0x72, 0x74, 0x65, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x6c, 0x131, 0x3b, 0xc7, 0x61, 0x72, 0x15f, 0x61, 0x6d, 0x62, 0x61, 0x3b,
+0x50, 0x65, 0x72, 0x15f, 0x65, 0x6d, 0x62, 0x65, 0x3b, 0x43, 0x75, 0x6d, 0x61, 0x3b, 0x43, 0x75, 0x6d, 0x61, 0x72, 0x74,
+0x65, 0x73, 0x69, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0xc7, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x64a, 0x6d5,
+0x3b, 0x62f, 0x6c8, 0x3b, 0x633, 0x6d5, 0x3b, 0x686, 0x627, 0x3b, 0x67e, 0x6d5, 0x3b, 0x686, 0x6c8, 0x3b, 0x634, 0x6d5, 0x3b, 0x64a,
+0x6d5, 0x643, 0x634, 0x6d5, 0x646, 0x628, 0x6d5, 0x3b, 0x62f, 0x6c8, 0x634, 0x6d5, 0x646, 0x628, 0x6d5, 0x3b, 0x633, 0x6d5, 0x64a, 0x634,
+0x6d5, 0x646, 0x628, 0x6d5, 0x3b, 0x686, 0x627, 0x631, 0x634, 0x6d5, 0x646, 0x628, 0x6d5, 0x3b, 0x67e, 0x6d5, 0x64a, 0x634, 0x6d5, 0x646,
+0x628, 0x6d5, 0x3b, 0x62c, 0x6c8, 0x645, 0x6d5, 0x3b, 0x634, 0x6d5, 0x646, 0x628, 0x6d5, 0x3b, 0x64a, 0x3b, 0x62f, 0x3b, 0x633, 0x3b,
+0x686, 0x3b, 0x67e, 0x3b, 0x62c, 0x3b, 0x634, 0x3b, 0x41d, 0x434, 0x3b, 0x41f, 0x43d, 0x3b, 0x412, 0x442, 0x3b, 0x421, 0x440, 0x3b,
+0x427, 0x442, 0x3b, 0x41f, 0x442, 0x3b, 0x421, 0x431, 0x3b, 0x41d, 0x435, 0x434, 0x456, 0x43b, 0x44f, 0x3b, 0x41f, 0x43e, 0x43d, 0x435,
+0x434, 0x456, 0x43b, 0x43e, 0x43a, 0x3b, 0x412, 0x456, 0x432, 0x442, 0x43e, 0x440, 0x43e, 0x43a, 0x3b, 0x421, 0x435, 0x440, 0x435, 0x434,
+0x430, 0x3b, 0x427, 0x435, 0x442, 0x432, 0x435, 0x440, 0x3b, 0x41f, 0x2bc, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x44f, 0x3b, 0x421, 0x443,
+0x431, 0x43e, 0x442, 0x430, 0x3b, 0x41d, 0x3b, 0x41f, 0x3b, 0x412, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f, 0x3b, 0x421, 0x3b, 0x43d,
+0x435, 0x434, 0x456, 0x43b, 0x44f, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x456, 0x43b, 0x43e, 0x43a, 0x3b, 0x432, 0x456, 0x432, 0x442,
+0x43e, 0x440, 0x43e, 0x43a, 0x3b, 0x441, 0x435, 0x440, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x435, 0x440, 0x3b, 0x43f,
+0x2bc, 0x44f, 0x442, 0x43d, 0x438, 0x446, 0x44f, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x627, 0x62a, 0x648, 0x627, 0x631,
+0x3b, 0x633, 0x648, 0x645, 0x648, 0x627, 0x631, 0x3b, 0x645, 0x646, 0x6af, 0x644, 0x3b, 0x628, 0x62f, 0x6be, 0x3b, 0x62c, 0x645, 0x639,
+0x631, 0x627, 0x62a, 0x3b, 0x62c, 0x645, 0x639, 0x6c1, 0x3b, 0x6c1, 0x641, 0x62a, 0x6c1, 0x3b, 0x59, 0x61, 0x6b, 0x73, 0x68, 0x3b,
+0x44, 0x75, 0x73, 0x68, 0x3b, 0x53, 0x65, 0x73, 0x68, 0x3b, 0x43, 0x68, 0x6f, 0x72, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x4a,
+0x75, 0x6d, 0x3b, 0x53, 0x68, 0x61, 0x6e, 0x3b, 0x79, 0x61, 0x6b, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x64, 0x75,
+0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x73, 0x65, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x63, 0x68, 0x6f, 0x72,
+0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x70, 0x61, 0x79, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x6a, 0x75, 0x6d,
+0x61, 0x3b, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x61, 0x3b, 0x59, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x4a,
+0x3b, 0x53, 0x3b, 0x6cc, 0x2e, 0x3b, 0x62f, 0x2e, 0x3b, 0x633, 0x2e, 0x3b, 0x686, 0x2e, 0x3b, 0x67e, 0x2e, 0x3b, 0x62c, 0x2e,
+0x3b, 0x634, 0x2e, 0x3b, 0x42f, 0x43a, 0x448, 0x3b, 0x414, 0x443, 0x448, 0x3b, 0x421, 0x435, 0x448, 0x3b, 0x427, 0x43e, 0x440, 0x3b,
+0x41f, 0x430, 0x439, 0x3b, 0x416, 0x443, 0x43c, 0x3b, 0x428, 0x430, 0x43d, 0x3b, 0x44f, 0x43a, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b,
+0x434, 0x443, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x441, 0x435, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x447, 0x43e, 0x440, 0x448,
+0x430, 0x43d, 0x431, 0x430, 0x3b, 0x43f, 0x430, 0x439, 0x448, 0x430, 0x43d, 0x431, 0x430, 0x3b, 0x436, 0x443, 0x43c, 0x430, 0x3b, 0x448,
+0x430, 0x43d, 0x431, 0x430, 0x3b, 0x42f, 0x3b, 0x414, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x41f, 0x3b, 0x416, 0x3b, 0x428, 0x3b, 0x43,
+0x4e, 0x3b, 0x54, 0x68, 0x20, 0x32, 0x3b, 0x54, 0x68, 0x20, 0x33, 0x3b, 0x54, 0x68, 0x20, 0x34, 0x3b, 0x54, 0x68, 0x20,
+0x35, 0x3b, 0x54, 0x68, 0x20, 0x36, 0x3b, 0x54, 0x68, 0x20, 0x37, 0x3b, 0x43, 0x68, 0x1ee7, 0x20, 0x4e, 0x68, 0x1ead, 0x74,
+0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x48, 0x61, 0x69, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x42, 0x61, 0x3b, 0x54, 0x68, 0x1ee9, 0x20,
+0x54, 0x1b0, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x4e, 0x103, 0x6d, 0x3b, 0x54, 0x68, 0x1ee9, 0x20, 0x53, 0xe1, 0x75, 0x3b, 0x54,
+0x68, 0x1ee9, 0x20, 0x42, 0x1ea3, 0x79, 0x3b, 0x43, 0x4e, 0x3b, 0x54, 0x32, 0x3b, 0x54, 0x33, 0x3b, 0x54, 0x34, 0x3b, 0x54,
+0x35, 0x3b, 0x54, 0x36, 0x3b, 0x54, 0x37, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x77,
+0x3b, 0x4d, 0x65, 0x72, 0x3b, 0x49, 0x61, 0x75, 0x3b, 0x47, 0x77, 0x65, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x44, 0x79, 0x64,
+0x64, 0x20, 0x53, 0x75, 0x6c, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x44, 0x79, 0x64, 0x64,
+0x20, 0x4d, 0x61, 0x77, 0x72, 0x74, 0x68, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x4d, 0x65, 0x72, 0x63, 0x68, 0x65, 0x72,
+0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x49, 0x61, 0x75, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x47, 0x77, 0x65, 0x6e, 0x65,
+0x72, 0x3b, 0x44, 0x79, 0x64, 0x64, 0x20, 0x53, 0x61, 0x64, 0x77, 0x72, 0x6e, 0x3b, 0x53, 0x3b, 0x4c, 0x6c, 0x3b, 0x4d,
+0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x6c, 0x75, 0x6e, 0x3b, 0x4d, 0x61,
+0x77, 0x3b, 0x4d, 0x65, 0x72, 0x3b, 0x49, 0x61, 0x75, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0xc0,
+0xec, 0x6b, 0xfa, 0x3b, 0x41, 0x6a, 0xe9, 0x3b, 0xcc, 0x73, 0x1eb9, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301,
+0x72, 0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x62, 0x1ecd, 0x3b, 0x1eb8, 0x74, 0xec, 0x3b, 0xc0, 0x62, 0xe1, 0x6d, 0x1eb9, 0x301,
+0x74, 0x61, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0x41, 0x6a,
+0xe9, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0xcc, 0x73, 0x1eb9, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x72,
+0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x62, 0x1ecd, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0x1eb8, 0x74, 0xec, 0x3b, 0x1ecc, 0x6a,
+0x1ecd, 0x301, 0x20, 0xc0, 0x62, 0xe1, 0x6d, 0x1eb9, 0x301, 0x74, 0x61, 0x3b, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x41, 0x6a, 0xe9,
+0x3b, 0xcc, 0x73, 0x25b, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x72, 0xfa, 0x3b, 0x186, 0x6a, 0x254, 0x301,
+0x62, 0x254, 0x3b, 0x190, 0x74, 0xec, 0x3b, 0xc0, 0x62, 0xe1, 0x6d, 0x25b, 0x301, 0x74, 0x61, 0x3b, 0x186, 0x6a, 0x254, 0x301,
+0x20, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0x41, 0x6a, 0xe9, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20,
+0xcc, 0x73, 0x25b, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x72, 0xfa, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x62,
+0x254, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0x190, 0x74, 0xec, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0xc0, 0x62, 0xe1, 0x6d,
+0x25b, 0x301, 0x74, 0x61, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x73, 0x6f, 0x3b, 0x42, 0x69, 0x6c, 0x3b, 0x54, 0x68, 0x61,
+0x3b, 0x53, 0x69, 0x6e, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x67, 0x71, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x6f, 0x3b, 0x4d,
+0x73, 0x6f, 0x6d, 0x62, 0x75, 0x6c, 0x75, 0x6b, 0x6f, 0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x3b,
0x4c, 0x77, 0x65, 0x73, 0x69, 0x74, 0x68, 0x61, 0x74, 0x68, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x6e, 0x65, 0x3b,
0x4c, 0x77, 0x65, 0x73, 0x69, 0x68, 0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x67, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b,
-0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x41, 0x6a, 0xe9, 0x3b, 0xcc, 0x73, 0x1eb9, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x1ecc, 0x6a, 0x1ecd,
-0x301, 0x72, 0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x62, 0x1ecd, 0x3b, 0x1eb8, 0x74, 0xec, 0x3b, 0xc0, 0x62, 0xe1, 0x6d, 0x1eb9,
-0x301, 0x74, 0x61, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0x41,
-0x6a, 0xe9, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0xcc, 0x73, 0x1eb9, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301,
-0x72, 0xfa, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x62, 0x1ecd, 0x3b, 0x1ecc, 0x6a, 0x1ecd, 0x301, 0x20, 0x1eb8, 0x74, 0xec, 0x3b, 0x1ecc,
-0x6a, 0x1ecd, 0x301, 0x20, 0xc0, 0x62, 0xe1, 0x6d, 0x1eb9, 0x301, 0x74, 0x61, 0x3b, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x41, 0x6a,
-0xe9, 0x3b, 0xcc, 0x73, 0x25b, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x72, 0xfa, 0x3b, 0x186, 0x6a, 0x254,
-0x301, 0x62, 0x254, 0x3b, 0x190, 0x74, 0xec, 0x3b, 0xc0, 0x62, 0xe1, 0x6d, 0x25b, 0x301, 0x74, 0x61, 0x3b, 0x186, 0x6a, 0x254,
-0x301, 0x20, 0xc0, 0xec, 0x6b, 0xfa, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0x41, 0x6a, 0xe9, 0x3b, 0x186, 0x6a, 0x254, 0x301,
-0x20, 0xcc, 0x73, 0x25b, 0x301, 0x67, 0x75, 0x6e, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x72, 0xfa, 0x3b, 0x186, 0x6a, 0x254, 0x301,
-0x62, 0x254, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0x190, 0x74, 0xec, 0x3b, 0x186, 0x6a, 0x254, 0x301, 0x20, 0xc0, 0x62, 0xe1,
-0x6d, 0x25b, 0x301, 0x74, 0x61, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x73, 0x6f, 0x3b, 0x42, 0x69, 0x6c, 0x3b, 0x54, 0x68,
-0x61, 0x3b, 0x53, 0x69, 0x6e, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x67, 0x71, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x6f, 0x3b,
-0x4d, 0x73, 0x6f, 0x6d, 0x62, 0x75, 0x6c, 0x75, 0x6b, 0x6f, 0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69,
-0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x74, 0x68, 0x61, 0x74, 0x68, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x6e, 0x65,
-0x3b, 0x4c, 0x77, 0x65, 0x73, 0x69, 0x68, 0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x67, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6f,
-0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54,
-0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x73, 0xf8, 0x6e, 0x3b, 0x6d, 0xe5, 0x6e, 0x3b, 0x74, 0x79, 0x73,
-0x3b, 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x66, 0x72, 0x65, 0x3b, 0x6c, 0x61, 0x75, 0x3b, 0x73, 0xf8, 0x6e,
-0x64, 0x61, 0x67, 0x3b, 0x6d, 0xe5, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x79, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x6f, 0x6e,
-0x73, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x66, 0x72, 0x65, 0x64, 0x61, 0x67, 0x3b,
-0x6c, 0x61, 0x75, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x73, 0xf8, 0x2e, 0x3b, 0x6d, 0xe5, 0x2e, 0x3b, 0x74, 0x79, 0x2e, 0x3b,
-0x6f, 0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x2e, 0x3b, 0x66, 0x72, 0x2e, 0x3b, 0x6c, 0x61, 0x2e, 0x3b, 0x4a, 0x65, 0x64, 0x3b,
-0x4a, 0x65, 0x6c, 0x3b, 0x4a, 0x65, 0x6d, 0x3b, 0x4a, 0x65, 0x72, 0x63, 0x3b, 0x4a, 0x65, 0x72, 0x64, 0x3b, 0x4a, 0x65,
-0x68, 0x3b, 0x4a, 0x65, 0x73, 0x3b, 0x4a, 0x65, 0x64, 0x6f, 0x6f, 0x6e, 0x65, 0x65, 0x3b, 0x4a, 0x65, 0x6c, 0x68, 0x65,
-0x69, 0x6e, 0x3b, 0x4a, 0x65, 0x6d, 0x61, 0x79, 0x72, 0x74, 0x3b, 0x4a, 0x65, 0x72, 0x63, 0x65, 0x61, 0x6e, 0x3b, 0x4a,
-0x65, 0x72, 0x64, 0x65, 0x69, 0x6e, 0x3b, 0x4a, 0x65, 0x68, 0x65, 0x69, 0x6e, 0x65, 0x79, 0x3b, 0x4a, 0x65, 0x73, 0x61,
-0x72, 0x6e, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x74, 0x68, 0x3b, 0x4d, 0x68, 0x72, 0x3b, 0x59,
-0x6f, 0x77, 0x3b, 0x47, 0x77, 0x65, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x44, 0x65, 0x20, 0x53, 0x75, 0x6c, 0x3b, 0x44, 0x65,
-0x20, 0x4c, 0x75, 0x6e, 0x3b, 0x44, 0x65, 0x20, 0x4d, 0x65, 0x72, 0x74, 0x68, 0x3b, 0x44, 0x65, 0x20, 0x4d, 0x65, 0x72,
-0x68, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x20, 0x59, 0x6f, 0x77, 0x3b, 0x44, 0x65, 0x20, 0x47, 0x77, 0x65, 0x6e, 0x65, 0x72,
-0x3b, 0x44, 0x65, 0x20, 0x53, 0x61, 0x64, 0x6f, 0x72, 0x6e, 0x3b, 0x4b, 0x77, 0x65, 0x3b, 0x44, 0x77, 0x6f, 0x3b, 0x42,
-0x65, 0x6e, 0x3b, 0x57, 0x75, 0x6b, 0x3b, 0x59, 0x61, 0x77, 0x3b, 0x46, 0x69, 0x61, 0x3b, 0x4d, 0x65, 0x6d, 0x3b, 0x4b,
-0x77, 0x65, 0x73, 0x69, 0x64, 0x61, 0x3b, 0x44, 0x77, 0x6f, 0x77, 0x64, 0x61, 0x3b, 0x42, 0x65, 0x6e, 0x61, 0x64, 0x61,
-0x3b, 0x57, 0x75, 0x6b, 0x75, 0x64, 0x61, 0x3b, 0x59, 0x61, 0x77, 0x64, 0x61, 0x3b, 0x46, 0x69, 0x64, 0x61, 0x3b, 0x4d,
-0x65, 0x6d, 0x65, 0x6e, 0x65, 0x64, 0x61, 0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x57, 0x3b, 0x59, 0x3b, 0x46, 0x3b,
-0x4d, 0x3b, 0x906, 0x926, 0x93f, 0x924, 0x94d, 0x92f, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x935, 0x93e, 0x930, 0x3b, 0x92e,
-0x902, 0x917, 0x933, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x935, 0x93e, 0x930,
-0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x1ee4, 0x6b, 0x61,
-0x3b, 0x4d, 0x1ecd, 0x6e, 0x3b, 0x54, 0x69, 0x75, 0x3b, 0x57, 0x65, 0x6e, 0x3b, 0x54, 0x1ecd, 0x1ecd, 0x3b, 0x46, 0x72, 0x61,
-0x1ecb, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x4d, 0x62, 0x1ecd, 0x73, 0x1ecb, 0x20, 0x1ee4, 0x6b, 0x61, 0x3b, 0x4d, 0x1ecd, 0x6e, 0x64,
-0x65, 0x3b, 0x54, 0x69, 0x75, 0x7a, 0x64, 0x65, 0x65, 0x3b, 0x57, 0x65, 0x6e, 0x65, 0x7a, 0x64, 0x65, 0x65, 0x3b, 0x54,
-0x1ecd, 0x1ecd, 0x7a, 0x64, 0x65, 0x65, 0x3b, 0x46, 0x72, 0x61, 0x1ecb, 0x64, 0x65, 0x65, 0x3b, 0x53, 0x61, 0x74, 0x1ecd, 0x64,
-0x65, 0x65, 0x3b, 0x57, 0x6b, 0x79, 0x3b, 0x57, 0x6b, 0x77, 0x3b, 0x57, 0x6b, 0x6c, 0x3b, 0x57, 0x74, 0x169, 0x3b, 0x57,
-0x6b, 0x6e, 0x3b, 0x57, 0x74, 0x6e, 0x3b, 0x57, 0x74, 0x68, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x79, 0x75, 0x6d, 0x77, 0x61,
-0x3b, 0x57, 0x61, 0x20, 0x6b, 0x77, 0x61, 0x6d, 0x62, 0x129, 0x6c, 0x129, 0x6c, 0x79, 0x61, 0x3b, 0x57, 0x61, 0x20, 0x6b,
-0x65, 0x6c, 0x129, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x61, 0x6e,
-0x61, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x57, 0x61, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x74,
-0x68, 0x61, 0x74, 0x169, 0x3b, 0x59, 0x3b, 0x57, 0x3b, 0x45, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x1230,
-0x2f, 0x1245, 0x3b, 0x1230, 0x1291, 0x3b, 0x1230, 0x120a, 0x131d, 0x3b, 0x1208, 0x1313, 0x3b, 0x12a3, 0x121d, 0x12f5, 0x3b, 0x12a3, 0x122d, 0x1265,
-0x3b, 0x1230, 0x2f, 0x123d, 0x3b, 0x1230, 0x1295, 0x1260, 0x122d, 0x20, 0x1245, 0x12f3, 0x12c5, 0x3b, 0x1230, 0x1291, 0x3b, 0x1230, 0x120a, 0x131d,
-0x3b, 0x1208, 0x1313, 0x20, 0x12c8, 0x122a, 0x20, 0x1208, 0x1265, 0x12cb, 0x3b, 0x12a3, 0x121d, 0x12f5, 0x3b, 0x12a3, 0x122d, 0x1265, 0x3b, 0x1230,
-0x1295, 0x1260, 0x122d, 0x20, 0x123d, 0x1313, 0x12c5, 0x3b, 0x1230, 0x3b, 0x1230, 0x3b, 0x1230, 0x3b, 0x1208, 0x3b, 0x12a3, 0x3b, 0x12a3, 0x3b,
-0x1230, 0x3b, 0x1230, 0x2f, 0x12d3, 0x3b, 0x1230, 0x1296, 0x3b, 0x1273, 0x120b, 0x1238, 0x3b, 0x12a3, 0x1228, 0x122d, 0x3b, 0x12a8, 0x121a, 0x123d,
-0x3b, 0x1305, 0x121d, 0x12d3, 0x3b, 0x1230, 0x2f, 0x1295, 0x3b, 0x1230, 0x1295, 0x1260, 0x1275, 0x20, 0x12d3, 0x1263, 0x12ed, 0x3b, 0x1230, 0x1296,
-0x3b, 0x1273, 0x120b, 0x1238, 0x1296, 0x3b, 0x12a3, 0x1228, 0x122d, 0x1263, 0x12d3, 0x3b, 0x12a8, 0x121a, 0x123d, 0x3b, 0x1305, 0x121d, 0x12d3, 0x1275,
-0x3b, 0x1230, 0x1295, 0x1260, 0x1275, 0x20, 0x1295, 0x12a2, 0x123d, 0x3b, 0x1230, 0x3b, 0x1230, 0x3b, 0x1273, 0x3b, 0x12a3, 0x3b, 0x12a8, 0x3b,
-0x1305, 0x3b, 0x1230, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x69, 0x65, 0x3b,
-0x6a, 0x6f, 0x69, 0x3b, 0x76, 0x69, 0x6e, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x65, 0x6e, 0x69, 0x65, 0x3b,
-0x6c, 0x75, 0x6e, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x72, 0x73, 0x3b, 0x6d, 0x69, 0x65, 0x72, 0x63, 0x75,
-0x73, 0x3b, 0x6a, 0x6f, 0x69, 0x62, 0x65, 0x3b, 0x76, 0x69, 0x6e, 0x61, 0x72, 0x73, 0x3b, 0x73, 0x61, 0x62, 0x69, 0x64,
-0x65, 0x3b, 0x53, 0x77, 0x6f, 0x3b, 0x4d, 0x75, 0x73, 0x3b, 0x56, 0x68, 0x69, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x1e4a, 0x61,
-0x3b, 0x1e70, 0x61, 0x6e, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x53, 0x77, 0x6f, 0x6e, 0x64, 0x61, 0x68, 0x61, 0x3b, 0x4d, 0x75,
-0x73, 0x75, 0x6d, 0x62, 0x75, 0x6c, 0x75, 0x77, 0x6f, 0x3b, 0x1e3c, 0x61, 0x76, 0x68, 0x75, 0x76, 0x68, 0x69, 0x6c, 0x69,
-0x3b, 0x1e3c, 0x61, 0x76, 0x68, 0x75, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x1e3c, 0x61, 0x76, 0x68, 0x75, 0x1e4b, 0x61, 0x3b, 0x1e3c,
-0x61, 0x76, 0x68, 0x75, 0x1e71, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x75, 0x67, 0x69, 0x76, 0x68, 0x65, 0x6c, 0x61, 0x3b, 0x6b,
+0x53, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x54, 0x3b,
+0x54, 0x3b, 0x53, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x73, 0xf8, 0x6e, 0x3b, 0x6d, 0xe5, 0x6e, 0x3b, 0x74, 0x79, 0x73, 0x3b,
+0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x6f, 0x72, 0x3b, 0x66, 0x72, 0x65, 0x3b, 0x6c, 0x61, 0x75, 0x3b, 0x73, 0xf8, 0x6e, 0x64,
+0x61, 0x67, 0x3b, 0x6d, 0xe5, 0x6e, 0x64, 0x61, 0x67, 0x3b, 0x74, 0x79, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x6f, 0x6e, 0x73,
+0x64, 0x61, 0x67, 0x3b, 0x74, 0x6f, 0x72, 0x73, 0x64, 0x61, 0x67, 0x3b, 0x66, 0x72, 0x65, 0x64, 0x61, 0x67, 0x3b, 0x6c,
+0x61, 0x75, 0x72, 0x64, 0x61, 0x67, 0x3b, 0x73, 0xf8, 0x2e, 0x3b, 0x6d, 0xe5, 0x2e, 0x3b, 0x74, 0x79, 0x2e, 0x3b, 0x6f,
+0x6e, 0x2e, 0x3b, 0x74, 0x6f, 0x2e, 0x3b, 0x66, 0x72, 0x2e, 0x3b, 0x6c, 0x61, 0x2e, 0x3b, 0x43d, 0x435, 0x434, 0x3b, 0x43f,
+0x43e, 0x43d, 0x3b, 0x443, 0x442, 0x43e, 0x3b, 0x441, 0x440, 0x438, 0x3b, 0x447, 0x435, 0x442, 0x3b, 0x43f, 0x435, 0x442, 0x3b, 0x441,
+0x443, 0x431, 0x3b, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x3b, 0x43f, 0x43e, 0x43d, 0x435, 0x434, 0x435, 0x459, 0x430, 0x43a, 0x3b,
+0x443, 0x442, 0x43e, 0x440, 0x430, 0x43a, 0x3b, 0x441, 0x440, 0x438, 0x458, 0x435, 0x434, 0x430, 0x3b, 0x447, 0x435, 0x442, 0x432, 0x440,
+0x442, 0x430, 0x43a, 0x3b, 0x43f, 0x435, 0x442, 0x430, 0x43a, 0x3b, 0x441, 0x443, 0x431, 0x43e, 0x442, 0x430, 0x3b, 0x4a, 0x65, 0x64,
+0x3b, 0x4a, 0x65, 0x6c, 0x3b, 0x4a, 0x65, 0x6d, 0x3b, 0x4a, 0x65, 0x72, 0x63, 0x3b, 0x4a, 0x65, 0x72, 0x64, 0x3b, 0x4a,
+0x65, 0x68, 0x3b, 0x4a, 0x65, 0x73, 0x3b, 0x4a, 0x65, 0x64, 0x6f, 0x6f, 0x6e, 0x65, 0x65, 0x3b, 0x4a, 0x65, 0x6c, 0x68,
+0x65, 0x69, 0x6e, 0x3b, 0x4a, 0x65, 0x6d, 0x61, 0x79, 0x72, 0x74, 0x3b, 0x4a, 0x65, 0x72, 0x63, 0x65, 0x61, 0x6e, 0x3b,
+0x4a, 0x65, 0x72, 0x64, 0x65, 0x69, 0x6e, 0x3b, 0x4a, 0x65, 0x68, 0x65, 0x69, 0x6e, 0x65, 0x79, 0x3b, 0x4a, 0x65, 0x73,
+0x61, 0x72, 0x6e, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x74, 0x68, 0x3b, 0x4d, 0x68, 0x72, 0x3b,
+0x59, 0x6f, 0x77, 0x3b, 0x47, 0x77, 0x65, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x64, 0x79, 0x20, 0x53, 0x75, 0x6c, 0x3b, 0x64,
+0x79, 0x20, 0x4c, 0x75, 0x6e, 0x3b, 0x64, 0x79, 0x20, 0x4d, 0x65, 0x75, 0x72, 0x74, 0x68, 0x3b, 0x64, 0x79, 0x20, 0x4d,
+0x65, 0x72, 0x68, 0x65, 0x72, 0x3b, 0x64, 0x79, 0x20, 0x59, 0x6f, 0x77, 0x3b, 0x64, 0x79, 0x20, 0x47, 0x77, 0x65, 0x6e,
+0x65, 0x72, 0x3b, 0x64, 0x79, 0x20, 0x53, 0x61, 0x64, 0x6f, 0x72, 0x6e, 0x3b, 0x4b, 0x77, 0x65, 0x3b, 0x44, 0x77, 0x6f,
+0x3b, 0x42, 0x65, 0x6e, 0x3b, 0x57, 0x75, 0x6b, 0x3b, 0x59, 0x61, 0x77, 0x3b, 0x46, 0x69, 0x61, 0x3b, 0x4d, 0x65, 0x6d,
+0x3b, 0x4b, 0x77, 0x65, 0x73, 0x69, 0x64, 0x61, 0x3b, 0x44, 0x77, 0x6f, 0x77, 0x64, 0x61, 0x3b, 0x42, 0x65, 0x6e, 0x61,
+0x64, 0x61, 0x3b, 0x57, 0x75, 0x6b, 0x75, 0x64, 0x61, 0x3b, 0x59, 0x61, 0x77, 0x64, 0x61, 0x3b, 0x46, 0x69, 0x64, 0x61,
+0x3b, 0x4d, 0x65, 0x6d, 0x65, 0x6e, 0x65, 0x64, 0x61, 0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x57, 0x3b, 0x59, 0x3b,
+0x46, 0x3b, 0x4d, 0x3b, 0x906, 0x926, 0x93f, 0x924, 0x94d, 0x92f, 0x935, 0x93e, 0x930, 0x3b, 0x938, 0x94b, 0x92e, 0x935, 0x93e, 0x930,
+0x3b, 0x92e, 0x902, 0x917, 0x933, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x927, 0x935, 0x93e, 0x930, 0x3b, 0x917, 0x941, 0x930, 0x941, 0x935,
+0x93e, 0x930, 0x3b, 0x936, 0x941, 0x915, 0x94d, 0x930, 0x935, 0x93e, 0x930, 0x3b, 0x936, 0x928, 0x93f, 0x935, 0x93e, 0x930, 0x3b, 0x1ee4,
+0x6b, 0x61, 0x3b, 0x4d, 0x1ecd, 0x6e, 0x3b, 0x54, 0x69, 0x75, 0x3b, 0x57, 0x65, 0x6e, 0x3b, 0x54, 0x1ecd, 0x1ecd, 0x3b, 0x46,
+0x72, 0x61, 0x1ecb, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x4d, 0x62, 0x1ecd, 0x73, 0x1ecb, 0x20, 0x1ee4, 0x6b, 0x61, 0x3b, 0x4d, 0x1ecd,
+0x6e, 0x64, 0x65, 0x3b, 0x54, 0x69, 0x75, 0x7a, 0x64, 0x65, 0x65, 0x3b, 0x57, 0x65, 0x6e, 0x65, 0x7a, 0x64, 0x65, 0x65,
+0x3b, 0x54, 0x1ecd, 0x1ecd, 0x7a, 0x64, 0x65, 0x65, 0x3b, 0x46, 0x72, 0x61, 0x1ecb, 0x64, 0x65, 0x65, 0x3b, 0x53, 0x61, 0x74,
+0x1ecd, 0x64, 0x65, 0x65, 0x3b, 0x57, 0x6b, 0x79, 0x3b, 0x57, 0x6b, 0x77, 0x3b, 0x57, 0x6b, 0x6c, 0x3b, 0x57, 0x74, 0x169,
+0x3b, 0x57, 0x6b, 0x6e, 0x3b, 0x57, 0x74, 0x6e, 0x3b, 0x57, 0x74, 0x68, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x79, 0x75, 0x6d,
+0x77, 0x61, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x77, 0x61, 0x6d, 0x62, 0x129, 0x6c, 0x129, 0x6c, 0x79, 0x61, 0x3b, 0x57, 0x61,
+0x20, 0x6b, 0x65, 0x6c, 0x129, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x57, 0x61, 0x20, 0x6b,
+0x61, 0x6e, 0x61, 0x3b, 0x57, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x57, 0x61, 0x20, 0x74, 0x68, 0x61,
+0x6e, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x59, 0x3b, 0x57, 0x3b, 0x45, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41,
+0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x75, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x69, 0x65, 0x3b, 0x6a, 0x6f, 0x69,
+0x3b, 0x76, 0x69, 0x6e, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x65, 0x6e, 0x69, 0x65, 0x3b, 0x6c, 0x75, 0x6e,
+0x69, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x61, 0x72, 0x73, 0x3b, 0x6d, 0x69, 0x65, 0x72, 0x63, 0x75, 0x73, 0x3b, 0x6a,
+0x6f, 0x69, 0x62, 0x65, 0x3b, 0x76, 0x69, 0x6e, 0x61, 0x72, 0x73, 0x3b, 0x73, 0x61, 0x62, 0x69, 0x64, 0x65, 0x3b, 0x6b,
0x254, 0x73, 0x3b, 0x64, 0x7a, 0x6f, 0x3b, 0x62, 0x6c, 0x61, 0x3b, 0x6b, 0x75, 0x256, 0x3b, 0x79, 0x61, 0x77, 0x3b, 0x66,
0x69, 0x256, 0x3b, 0x6d, 0x65, 0x6d, 0x3b, 0x6b, 0x254, 0x73, 0x69, 0x256, 0x61, 0x3b, 0x64, 0x7a, 0x6f, 0x256, 0x61, 0x3b,
0x62, 0x6c, 0x61, 0x256, 0x61, 0x3b, 0x6b, 0x75, 0x256, 0x61, 0x3b, 0x79, 0x61, 0x77, 0x6f, 0x256, 0x61, 0x3b, 0x66, 0x69,
0x256, 0x61, 0x3b, 0x6d, 0x65, 0x6d, 0x6c, 0x65, 0x256, 0x61, 0x3b, 0x6b, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x6b, 0x3b, 0x79,
-0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x12c8, 0x130b, 0x3b, 0x1233, 0x12ed, 0x1296, 0x3b, 0x121b, 0x1246, 0x1233, 0x129b, 0x3b, 0x12a0, 0x1229, 0x12cb,
-0x3b, 0x1203, 0x1219, 0x1233, 0x3b, 0x12a0, 0x122d, 0x1263, 0x3b, 0x1244, 0x122b, 0x3b, 0x12c8, 0x3b, 0x1233, 0x3b, 0x121b, 0x3b, 0x12a0, 0x3b,
-0x1203, 0x3b, 0x12a0, 0x3b, 0x1244, 0x3b, 0x4c, 0x50, 0x3b, 0x50, 0x31, 0x3b, 0x50, 0x32, 0x3b, 0x50, 0x33, 0x3b, 0x50, 0x34,
-0x3b, 0x50, 0x35, 0x3b, 0x50, 0x36, 0x3b, 0x4c, 0x101, 0x70, 0x75, 0x6c, 0x65, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6b, 0x61,
-0x68, 0x69, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6c, 0x75, 0x61, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6b, 0x6f, 0x6c, 0x75, 0x3b,
-0x50, 0x6f, 0x2bb, 0x61, 0x68, 0x101, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6c, 0x69, 0x6d, 0x61, 0x3b, 0x50, 0x6f, 0x2bb, 0x61,
-0x6f, 0x6e, 0x6f, 0x3b, 0x4c, 0x69, 0x6e, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x69, 0x79, 0x3b,
-0x48, 0x75, 0x77, 0x3b, 0x42, 0x69, 0x79, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4c, 0x69, 0x6e, 0x67, 0x67, 0x6f, 0x3b, 0x4c,
-0x75, 0x6e, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x4d, 0x69, 0x79, 0x65, 0x72, 0x6b, 0x75, 0x6c,
-0x65, 0x73, 0x3b, 0x48, 0x75, 0x77, 0x65, 0x62, 0x65, 0x73, 0x3b, 0x42, 0x69, 0x79, 0x65, 0x72, 0x6e, 0x65, 0x73, 0x3b,
-0x53, 0x61, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x42, 0x3b, 0x53,
-0x3b, 0x53, 0x75, 0x2e, 0x3b, 0x4d, 0xe4, 0x2e, 0x3b, 0x5a, 0x69, 0x2e, 0x3b, 0x4d, 0x69, 0x2e, 0x3b, 0x44, 0x75, 0x2e,
-0x3b, 0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e, 0x3b, 0x53, 0x75, 0x6e, 0x6e, 0x74, 0x69, 0x67, 0x3b, 0x4d, 0xe4, 0xe4,
-0x6e, 0x74, 0x69, 0x67, 0x3b, 0x5a, 0x69, 0x69, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0x4d, 0x69, 0x74, 0x74, 0x77,
-0x75, 0x63, 0x68, 0x3b, 0x44, 0x75, 0x6e, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0x46, 0x72, 0x69, 0x69, 0x74, 0x69,
-0x67, 0x3b, 0x53, 0x61, 0x6d, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0xa46d, 0xa18f, 0x3b, 0xa18f, 0xa2cd, 0x3b, 0xa18f, 0xa44d,
-0x3b, 0xa18f, 0xa315, 0x3b, 0xa18f, 0xa1d6, 0x3b, 0xa18f, 0xa26c, 0x3b, 0xa18f, 0xa0d8, 0x3b, 0xa46d, 0xa18f, 0xa44d, 0x3b, 0xa18f, 0xa282, 0xa2cd,
-0x3b, 0xa18f, 0xa282, 0xa44d, 0x3b, 0xa18f, 0xa282, 0xa315, 0x3b, 0xa18f, 0xa282, 0xa1d6, 0x3b, 0xa18f, 0xa282, 0xa26c, 0x3b, 0xa18f, 0xa282, 0xa0d8,
-0x3b, 0xa18f, 0x3b, 0xa2cd, 0x3b, 0xa44d, 0x3b, 0xa315, 0x3b, 0xa1d6, 0x3b, 0xa26c, 0x3b, 0xa0d8, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d,
-0x76, 0x75, 0x3b, 0x42, 0x69, 0x6c, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4e, 0x65, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x47, 0x71,
-0x69, 0x3b, 0x75, 0x53, 0x6f, 0x6e, 0x74, 0x6f, 0x3b, 0x75, 0x4d, 0x76, 0x75, 0x6c, 0x6f, 0x3b, 0x75, 0x4c, 0x65, 0x73,
-0x69, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4c, 0x65, 0x73, 0x69, 0x74, 0x68, 0x61, 0x74, 0x68, 0x75, 0x3b, 0x75, 0x4c, 0x65,
-0x73, 0x69, 0x6e, 0x65, 0x3b, 0x6e, 0x67, 0x6f, 0x4c, 0x65, 0x73, 0x69, 0x68, 0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x75, 0x6d,
-0x47, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x6f, 0x73, 0x3b, 0x42, 0x65, 0x64, 0x3b,
-0x52, 0x61, 0x72, 0x3b, 0x4e, 0x65, 0x3b, 0x48, 0x6c, 0x61, 0x3b, 0x4d, 0x6f, 0x6b, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x61,
-0x67, 0x61, 0x3b, 0x4d, 0x6f, 0x73, 0x75, 0x70, 0x61, 0x6c, 0x6f, 0x67, 0x6f, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x62, 0x65,
-0x64, 0x69, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x72, 0x6f, 0x3b, 0x4c, 0x61, 0x62, 0x6f, 0x6e, 0x65, 0x3b, 0x4c,
-0x61, 0x62, 0x6f, 0x68, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x6f, 0x6b, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x73, 0x6f,
-0x74, 0x6e, 0x3b, 0x76, 0x75, 0x6f, 0x73, 0x3b, 0x6d, 0x61, 0x14b, 0x3b, 0x67, 0x61, 0x73, 0x6b, 0x3b, 0x64, 0x75, 0x6f,
-0x72, 0x3b, 0x62, 0x65, 0x61, 0x72, 0x3b, 0x6c, 0xe1, 0x76, 0x3b, 0x73, 0x6f, 0x74, 0x6e, 0x61, 0x62, 0x65, 0x61, 0x69,
-0x76, 0x69, 0x3b, 0x76, 0x75, 0x6f, 0x73, 0x73, 0xe1, 0x72, 0x67, 0x61, 0x3b, 0x6d, 0x61, 0x14b, 0x14b, 0x65, 0x62, 0xe1,
-0x72, 0x67, 0x61, 0x3b, 0x67, 0x61, 0x73, 0x6b, 0x61, 0x76, 0x61, 0x68, 0x6b, 0x6b, 0x75, 0x3b, 0x64, 0x75, 0x6f, 0x72,
-0x61, 0x73, 0x64, 0x61, 0x74, 0x3b, 0x62, 0x65, 0x61, 0x72, 0x6a, 0x61, 0x64, 0x61, 0x74, 0x3b, 0x6c, 0xe1, 0x76, 0x76,
-0x61, 0x72, 0x64, 0x61, 0x74, 0x3b, 0x53, 0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b,
-0x61, 0x65, 0x6a, 0x6c, 0x65, 0x67, 0x65, 0x3b, 0x6d, 0xe5, 0x61, 0x6e, 0x74, 0x61, 0x3b, 0x64, 0xe4, 0x6a, 0x73, 0x74,
-0x61, 0x3b, 0x67, 0x61, 0x73, 0x6b, 0x65, 0x76, 0x61, 0x68, 0x6b, 0x6f, 0x65, 0x3b, 0x64, 0xe5, 0x61, 0x72, 0x73, 0x74,
-0x61, 0x3b, 0x62, 0x65, 0x61, 0x72, 0x6a, 0x61, 0x64, 0x61, 0x68, 0x6b, 0x65, 0x3b, 0x6c, 0x61, 0x61, 0x76, 0x61, 0x64,
-0x61, 0x68, 0x6b, 0x65, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x43,
-0x70, 0x72, 0x3b, 0x43, 0x74, 0x74, 0x3b, 0x43, 0x6d, 0x6e, 0x3b, 0x43, 0x6d, 0x74, 0x3b, 0x41, 0x72, 0x73, 0x3b, 0x49,
-0x63, 0x6d, 0x3b, 0x45, 0x73, 0x74, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68, 0x75,
-0x6d, 0x61, 0x74, 0x61, 0x74, 0x6f, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x43, 0x68, 0x75, 0x6d,
-0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x63, 0x68, 0x75, 0x6d, 0x61,
-0x3b, 0x45, 0x73, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x49,
-0x3b, 0x45, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x4a, 0x69, 0x6d, 0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b,
-0x61, 0x6e, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x4e, 0x67, 0x75, 0x3b, 0x49, 0x74, 0x75, 0x6b, 0x75, 0x20, 0x6a, 0x61, 0x20,
-0x6a, 0x75, 0x6d, 0x77, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6a, 0x69, 0x6d, 0x77, 0x65,
-0x72, 0x69, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61, 0x77, 0x69, 0x3b, 0x4b, 0x75, 0x72,
-0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b,
-0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61, 0x73, 0x61,
-0x6e, 0x75, 0x3b, 0x4b, 0x69, 0x66, 0x75, 0x6c, 0x61, 0x20, 0x6e, 0x67, 0x75, 0x77, 0x6f, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b,
-0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x64, 0x65, 0x77, 0x3b, 0x61, 0x61, 0x253, 0x3b, 0x6d, 0x61,
-0x77, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x6e, 0x61, 0x61, 0x3b, 0x6d, 0x77, 0x64, 0x3b, 0x68, 0x62, 0x69, 0x3b, 0x64, 0x65,
-0x77, 0x6f, 0x3b, 0x61, 0x61, 0x253, 0x6e, 0x64, 0x65, 0x3b, 0x6d, 0x61, 0x77, 0x62, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x6e,
-0x6a, 0x65, 0x73, 0x6c, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x6e, 0x61, 0x61, 0x73, 0x61, 0x61, 0x6e, 0x64, 0x65, 0x3b, 0x6d,
-0x61, 0x77, 0x6e, 0x64, 0x65, 0x3b, 0x68, 0x6f, 0x6f, 0x72, 0x65, 0x2d, 0x62, 0x69, 0x69, 0x72, 0x3b, 0x64, 0x3b, 0x61,
-0x3b, 0x6d, 0x3b, 0x6e, 0x3b, 0x6e, 0x3b, 0x6d, 0x3b, 0x68, 0x3b, 0x4b, 0x4d, 0x41, 0x3b, 0x4e, 0x54, 0x54, 0x3b, 0x4e,
-0x4d, 0x4e, 0x3b, 0x4e, 0x4d, 0x54, 0x3b, 0x41, 0x52, 0x54, 0x3b, 0x4e, 0x4d, 0x41, 0x3b, 0x4e, 0x4d, 0x4d, 0x3b, 0x4b,
-0x69, 0x75, 0x6d, 0x69, 0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4e, 0x6a, 0x75, 0x6d,
-0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x61, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69,
-0x74, 0x68, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x74, 0x68,
-0x69, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x72, 0x65, 0x3b,
-0x4b, 0x75, 0x6e, 0x3b, 0x4f, 0x6e, 0x67, 0x3b, 0x49, 0x6e, 0x65, 0x3b, 0x49, 0x6c, 0x65, 0x3b, 0x53, 0x61, 0x70, 0x3b,
-0x4b, 0x77, 0x65, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x61, 0x72, 0x65, 0x3b, 0x4d, 0x64,
-0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x6b, 0x75, 0x6e, 0x69, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20,
-0x65, 0x65, 0x20, 0x6f, 0x6e, 0x67, 0x27, 0x77, 0x61, 0x6e, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65,
-0x20, 0x69, 0x6e, 0x65, 0x74, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x69, 0x6c, 0x65, 0x3b,
-0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x73, 0x61, 0x70, 0x61, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f,
-0x74, 0x20, 0x65, 0x65, 0x20, 0x6b, 0x77, 0x65, 0x3b, 0x41, 0x3b, 0x4b, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53,
-0x3b, 0x4b, 0x3b, 0x44, 0x69, 0x6d, 0x3b, 0x50, 0x6f, 0x73, 0x3b, 0x50, 0x69, 0x72, 0x3b, 0x54, 0x61, 0x74, 0x3b, 0x4e,
-0x61, 0x69, 0x3b, 0x53, 0x68, 0x61, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x44, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x75, 0x3b, 0x43,
-0x68, 0x69, 0x70, 0x6f, 0x73, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x74, 0x61,
-0x74, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x73, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x53,
-0x61, 0x62, 0x75, 0x64, 0x75, 0x3b, 0x44, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x53, 0x3b, 0x53, 0x3b,
-0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x76, 0x75, 0x3b, 0x53, 0x69, 0x62, 0x3b, 0x53, 0x69, 0x74, 0x3b, 0x53, 0x69, 0x6e, 0x3b,
-0x53, 0x69, 0x68, 0x3b, 0x4d, 0x67, 0x71, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x6f, 0x3b, 0x4d, 0x76, 0x75, 0x6c, 0x6f, 0x3b,
-0x53, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x53, 0x69, 0x74, 0x68, 0x61, 0x74, 0x68, 0x75, 0x3b, 0x53, 0x69, 0x6e, 0x65,
-0x3b, 0x53, 0x69, 0x68, 0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x67, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x53, 0x3b,
-0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x49, 0x6a, 0x70, 0x3b, 0x49, 0x6a, 0x74, 0x3b,
-0x49, 0x6a, 0x6e, 0x3b, 0x49, 0x6a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x49, 0x6a, 0x6d,
-0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75,
-0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b,
-0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x49, 0x6a, 0x75, 0x6d,
-0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x31, 0x3b,
-0x2d30, 0x2d59, 0x2d30, 0x3b, 0x2d30, 0x2d62, 0x2d4f, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x3b,
-0x2d30, 0x2d59, 0x2d49, 0x2d4e, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x3b, 0x2d30, 0x2d59, 0x2d30, 0x2d4e, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d62, 0x2d4f,
-0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4f, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x2d30,
-0x2d59, 0x3b, 0x2d59, 0x2d49, 0x2d4e, 0x2d61, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x2d62, 0x2d30, 0x2d59, 0x3b, 0x61, 0x73, 0x61,
-0x3b, 0x61, 0x79, 0x6e, 0x3b, 0x61, 0x73, 0x69, 0x3b, 0x61, 0x6b, 0x1e5b, 0x3b, 0x61, 0x6b, 0x77, 0x3b, 0x61, 0x73, 0x69,
-0x6d, 0x3b, 0x61, 0x73, 0x69, 0x1e0d, 0x3b, 0x61, 0x73, 0x61, 0x6d, 0x61, 0x73, 0x3b, 0x61, 0x79, 0x6e, 0x61, 0x73, 0x3b,
-0x61, 0x73, 0x69, 0x6e, 0x61, 0x73, 0x3b, 0x61, 0x6b, 0x1e5b, 0x61, 0x73, 0x3b, 0x61, 0x6b, 0x77, 0x61, 0x73, 0x3b, 0x61,
-0x73, 0x69, 0x6d, 0x77, 0x61, 0x73, 0x3b, 0x61, 0x73, 0x69, 0x1e0d, 0x79, 0x61, 0x73, 0x3b, 0x59, 0x61, 0x6e, 0x3b, 0x53,
-0x61, 0x6e, 0x3b, 0x4b, 0x72, 0x61, 0x1e0d, 0x3b, 0x4b, 0x75, 0x1e93, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x53, 0x1e0d, 0x69, 0x73,
-0x3b, 0x53, 0x61, 0x79, 0x3b, 0x59, 0x61, 0x6e, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x6e, 0x61, 0x73, 0x73, 0x3b, 0x4b,
-0x72, 0x61, 0x1e0d, 0x61, 0x73, 0x73, 0x3b, 0x4b, 0x75, 0x1e93, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x6d, 0x61, 0x73, 0x73,
-0x3b, 0x53, 0x1e0d, 0x69, 0x73, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x79, 0x61, 0x73, 0x73, 0x3b, 0x59, 0x3b, 0x53, 0x3b,
-0x4b, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x41, 0x4e, 0x3b, 0x4f, 0x52, 0x4b, 0x3b, 0x4f, 0x4b,
-0x42, 0x3b, 0x4f, 0x4b, 0x53, 0x3b, 0x4f, 0x4b, 0x4e, 0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4f, 0x4d, 0x4b, 0x3b, 0x53, 0x61,
-0x6e, 0x64, 0x65, 0x3b, 0x4f, 0x72, 0x77, 0x6f, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x72, 0x77, 0x61,
-0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x4f,
-0x72, 0x77, 0x61, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x6f, 0x3b,
-0x4f, 0x72, 0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x52, 0x3b, 0x53, 0x3b,
-0x4e, 0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x48, 0x69, 0x76, 0x3b, 0x48, 0x69,
-0x64, 0x3b, 0x48, 0x69, 0x74, 0x3b, 0x48, 0x69, 0x68, 0x3b, 0x4c, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x75, 0x6c,
-0x75, 0x6e, 0x67, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x73, 0x68, 0x61, 0x68, 0x75, 0x76, 0x69, 0x6c, 0x75, 0x68, 0x61, 0x3b,
-0x70, 0x61, 0x20, 0x68, 0x69, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x68, 0x69, 0x64, 0x61, 0x74, 0x75, 0x3b,
-0x70, 0x61, 0x20, 0x68, 0x69, 0x74, 0x61, 0x79, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x75, 0x3b,
-0x70, 0x61, 0x20, 0x73, 0x68, 0x61, 0x68, 0x75, 0x6c, 0x65, 0x6d, 0x62, 0x65, 0x6c, 0x61, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b,
-0x48, 0x3b, 0x48, 0x3b, 0x48, 0x3b, 0x57, 0x3b, 0x4a, 0x3b, 0x4a, 0x70, 0x69, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e,
-0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4a, 0x75,
-0x6d, 0x61, 0x70, 0x69, 0x6c, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x75, 0x3b, 0x4a, 0x75,
-0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d,
-0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b,
-0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4a, 0x3b, 0x6b, 0x61, 0x72, 0x3b, 0x6e, 0x74,
-0x25b, 0x3b, 0x74, 0x61, 0x72, 0x3b, 0x61, 0x72, 0x61, 0x3b, 0x61, 0x6c, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x3b, 0x73, 0x69,
-0x62, 0x3b, 0x6b, 0x61, 0x72, 0x69, 0x3b, 0x6e, 0x74, 0x25b, 0x6e, 0x25b, 0x3b, 0x74, 0x61, 0x72, 0x61, 0x74, 0x61, 0x3b,
-0x61, 0x72, 0x61, 0x62, 0x61, 0x3b, 0x61, 0x6c, 0x61, 0x6d, 0x69, 0x73, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x73,
-0x69, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x4a, 0x3b, 0x53, 0x3b,
-0x4b, 0x6d, 0x61, 0x3b, 0x54, 0x61, 0x74, 0x3b, 0x49, 0x6e, 0x65, 0x3b, 0x54, 0x61, 0x6e, 0x3b, 0x41, 0x72, 0x6d, 0x3b,
-0x4d, 0x61, 0x61, 0x3b, 0x4e, 0x4d, 0x4d, 0x3b, 0x4b, 0x69, 0x75, 0x6d, 0x69, 0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61,
-0x74, 0x61, 0x74, 0x75, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74,
-0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x74, 0x68, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b,
-0x4e, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x74, 0x68, 0x69, 0x69, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b,
-0x41, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x13c6, 0x13cd, 0x13ac, 0x3b, 0x13c9, 0x13c5, 0x13af, 0x3b, 0x13d4, 0x13b5, 0x13c1, 0x3b, 0x13e6, 0x13a2,
-0x13c1, 0x3b, 0x13c5, 0x13a9, 0x13c1, 0x3b, 0x13e7, 0x13be, 0x13a9, 0x3b, 0x13c8, 0x13d5, 0x13be, 0x3b, 0x13a4, 0x13be, 0x13d9, 0x13d3, 0x13c6, 0x13cd,
-0x13ac, 0x3b, 0x13a4, 0x13be, 0x13d9, 0x13d3, 0x13c9, 0x13c5, 0x13af, 0x3b, 0x13d4, 0x13b5, 0x13c1, 0x13a2, 0x13a6, 0x3b, 0x13e6, 0x13a2, 0x13c1, 0x13a2,
-0x13a6, 0x3b, 0x13c5, 0x13a9, 0x13c1, 0x13a2, 0x13a6, 0x3b, 0x13e7, 0x13be, 0x13a9, 0x13b6, 0x13cd, 0x13d7, 0x3b, 0x13a4, 0x13be, 0x13d9, 0x13d3, 0x13c8,
-0x13d5, 0x13be, 0x3b, 0x13c6, 0x3b, 0x13c9, 0x3b, 0x13d4, 0x3b, 0x13e6, 0x3b, 0x13c5, 0x3b, 0x13e7, 0x3b, 0x13a4, 0x3b, 0x64, 0x69, 0x6d,
-0x3b, 0x6c, 0x69, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x72, 0x3b, 0x7a, 0x65, 0x3b, 0x76, 0x61, 0x6e, 0x3b,
-0x73, 0x61, 0x6d, 0x3b, 0x64, 0x69, 0x6d, 0x61, 0x6e, 0x73, 0x3b, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72,
-0x64, 0x69, 0x3b, 0x6d, 0x65, 0x72, 0x6b, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x7a, 0x65, 0x64, 0x69, 0x3b, 0x76, 0x61, 0x6e,
-0x64, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x73, 0x61, 0x6d, 0x64, 0x69, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b,
-0x7a, 0x3b, 0x76, 0x3b, 0x73, 0x3b, 0x4c, 0x6c, 0x32, 0x3b, 0x4c, 0x6c, 0x33, 0x3b, 0x4c, 0x6c, 0x34, 0x3b, 0x4c, 0x6c,
-0x35, 0x3b, 0x4c, 0x6c, 0x36, 0x3b, 0x4c, 0x6c, 0x37, 0x3b, 0x4c, 0x6c, 0x31, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61,
-0x20, 0x6c, 0x79, 0x61, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x74,
-0x61, 0x74, 0x75, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x68,
-0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4c,
-0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x6c,
-0x69, 0x6e, 0x6a, 0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e,
-0x6f, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c,
-0x69, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x3b, 0x50, 0xed, 0x69, 0x6c, 0x69, 0x3b, 0x54, 0xe1, 0x61, 0x74, 0x75, 0x3b, 0xcd,
-0x6e, 0x65, 0x3b, 0x54, 0xe1, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x6d, 0x3b, 0x4d, 0xf3, 0x6f,
-0x73, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0xed, 0x69, 0x72, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x74,
-0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0xed, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x61, 0x6e, 0x6f, 0x3b,
-0x41, 0x6c, 0x61, 0x6d, 0xed, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0xe1, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61,
-0x6d, 0xf3, 0x6f, 0x73, 0x69, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x45, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4d, 0x3b,
-0x53, 0x61, 0x62, 0x3b, 0x42, 0x61, 0x6c, 0x3b, 0x4c, 0x77, 0x32, 0x3b, 0x4c, 0x77, 0x33, 0x3b, 0x4c, 0x77, 0x34, 0x3b,
-0x4c, 0x77, 0x35, 0x3b, 0x4c, 0x77, 0x36, 0x3b, 0x53, 0x61, 0x62, 0x62, 0x69, 0x69, 0x74, 0x69, 0x3b, 0x42, 0x61, 0x6c,
-0x61, 0x7a, 0x61, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x73,
-0x61, 0x74, 0x75, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x6e, 0x61, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x74, 0x61, 0x61,
-0x6e, 0x6f, 0x3b, 0x4c, 0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x4c, 0x3b,
-0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x50, 0x61, 0x20, 0x4d, 0x75, 0x6c, 0x75, 0x6e, 0x67, 0x75, 0x3b, 0x50,
-0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x6d, 0x6f, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x62, 0x75, 0x6c, 0x69,
-0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69,
-0x6e, 0x65, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x73, 0x61, 0x6e, 0x6f, 0x3b, 0x50, 0x61, 0x63, 0x68, 0x69,
-0x62, 0x65, 0x6c, 0x75, 0x73, 0x68, 0x69, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x73, 0x69, 0x67, 0x3b, 0x74, 0x65, 0x72, 0x3b,
-0x6b, 0x75, 0x61, 0x3b, 0x6b, 0x69, 0x6e, 0x3b, 0x73, 0x65, 0x73, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x75, 0x6d, 0x69,
-0x6e, 0x67, 0x75, 0x3b, 0x73, 0x69, 0x67, 0x75, 0x6e, 0x64, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x74, 0x65, 0x72,
-0x73, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x6b, 0x75, 0x61, 0x72, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b,
-0x6b, 0x69, 0x6e, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x73, 0x65, 0x73, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x72,
-0x61, 0x3b, 0x73, 0x61, 0x62, 0x61, 0x64, 0x75, 0x3b, 0x64, 0x3b, 0x73, 0x3b, 0x74, 0x3b, 0x6b, 0x3b, 0x6b, 0x3b, 0x73,
-0x3b, 0x73, 0x3b, 0x4b, 0x49, 0x55, 0x3b, 0x4d, 0x52, 0x41, 0x3b, 0x57, 0x41, 0x49, 0x3b, 0x57, 0x45, 0x54, 0x3b, 0x57,
-0x45, 0x4e, 0x3b, 0x57, 0x54, 0x4e, 0x3b, 0x4a, 0x55, 0x4d, 0x3b, 0x4b, 0x69, 0x75, 0x6d, 0x69, 0x61, 0x3b, 0x4d, 0x75,
-0x72, 0x61, 0x6d, 0x75, 0x6b, 0x6f, 0x3b, 0x57, 0x61, 0x69, 0x72, 0x69, 0x3b, 0x57, 0x65, 0x74, 0x68, 0x61, 0x74, 0x75,
-0x3b, 0x57, 0x65, 0x6e, 0x61, 0x3b, 0x57, 0x65, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73,
-0x69, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x57, 0x3b, 0x57, 0x3b, 0x57, 0x3b, 0x57, 0x3b, 0x4a, 0x3b, 0x54, 0x69, 0x73, 0x3b,
-0x54, 0x61, 0x69, 0x3b, 0x41, 0x65, 0x6e, 0x3b, 0x53, 0x6f, 0x6d, 0x3b, 0x41, 0x6e, 0x67, 0x3b, 0x4d, 0x75, 0x74, 0x3b,
-0x4c, 0x6f, 0x68, 0x3b, 0x42, 0x65, 0x74, 0x75, 0x74, 0x61, 0x62, 0x20, 0x74, 0x69, 0x73, 0x61, 0x70, 0x3b, 0x42, 0x65,
-0x74, 0x75, 0x74, 0x20, 0x6e, 0x65, 0x74, 0x61, 0x69, 0x3b, 0x42, 0x65, 0x74, 0x75, 0x74, 0x61, 0x62, 0x20, 0x61, 0x65,
-0x6e, 0x67, 0x27, 0x3b, 0x42, 0x65, 0x74, 0x75, 0x74, 0x61, 0x62, 0x20, 0x73, 0x6f, 0x6d, 0x6f, 0x6b, 0x3b, 0x42, 0x65,
-0x74, 0x75, 0x74, 0x61, 0x62, 0x20, 0x61, 0x6e, 0x67, 0x27, 0x77, 0x61, 0x6e, 0x3b, 0x42, 0x65, 0x74, 0x75, 0x74, 0x61,
-0x62, 0x20, 0x6d, 0x75, 0x74, 0x3b, 0x42, 0x65, 0x74, 0x75, 0x74, 0x61, 0x62, 0x20, 0x6c, 0x6f, 0x3b, 0x54, 0x3b, 0x54,
-0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x61, 0x3b, 0x44, 0x65,
-0x3b, 0x57, 0x75, 0x3b, 0x44, 0x6f, 0x3b, 0x46, 0x72, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x61, 0x78,
-0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x6e, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x44, 0x65,
-0x6e, 0x73, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x57, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x78, 0x74, 0x73,
-0x65, 0x65, 0x73, 0x3b, 0x44, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x46,
-0x72, 0x61, 0x69, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x53, 0x61, 0x74, 0x65, 0x72, 0x74, 0x61, 0x78,
-0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x46, 0x3b, 0x41, 0x3b,
-0x53, 0x75, 0x2e, 0x3b, 0x4d, 0x6f, 0x2e, 0x3b, 0x44, 0x69, 0x2e, 0x3b, 0x4d, 0x65, 0x2e, 0x3b, 0x44, 0x75, 0x2e, 0x3b,
-0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e, 0x3b, 0x53, 0x75, 0x6e, 0x6e, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x4d, 0x6f,
-0x6f, 0x6e, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x44, 0x69, 0x6e, 0x6e, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x4d,
-0x65, 0x74, 0x77, 0x6f, 0x63, 0x68, 0x3b, 0x44, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b,
-0x46, 0x72, 0x69, 0x69, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x53, 0x61, 0x6d, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b,
-0x4a, 0x75, 0x6d, 0x61, 0x70, 0xed, 0x6c, 0xed, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x74, 0x75, 0x3b, 0x4a, 0x75,
-0x6d, 0x61, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x6e, 0x254, 0x3b, 0x41, 0x6c, 0x61, 0xe1, 0x6d, 0x69,
-0x73, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0xe1, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0xf3, 0x73, 0x69, 0x3b, 0x53, 0x61,
-0x62, 0x69, 0x3b, 0x42, 0x61, 0x6c, 0x61, 0x3b, 0x4b, 0x75, 0x62, 0x69, 0x3b, 0x4b, 0x75, 0x73, 0x61, 0x3b, 0x4b, 0x75,
-0x6e, 0x61, 0x3b, 0x4b, 0x75, 0x74, 0x61, 0x3b, 0x4d, 0x75, 0x6b, 0x61, 0x3b, 0x53, 0x61, 0x62, 0x69, 0x69, 0x74, 0x69,
-0x3b, 0x42, 0x61, 0x6c, 0x61, 0x7a, 0x61, 0x3b, 0x4f, 0x77, 0x6f, 0x6b, 0x75, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4f, 0x77,
-0x6f, 0x6b, 0x75, 0x73, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x6c, 0x6f, 0x6b, 0x75, 0x6e, 0x61, 0x3b, 0x4f, 0x6c, 0x6f, 0x6b,
-0x75, 0x74, 0x61, 0x61, 0x6e, 0x75, 0x3b, 0x4f, 0x6c, 0x6f, 0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b,
-0x42, 0x3b, 0x42, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x4a, 0x32, 0x3b, 0x4a, 0x33, 0x3b, 0x4a, 0x34,
-0x3b, 0x4a, 0x35, 0x3b, 0x41, 0x6c, 0x3b, 0x49, 0x6a, 0x3b, 0x4a, 0x31, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x72,
-0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a,
-0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x75, 0x72, 0x77, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x61, 0x6e,
-0x6e, 0x65, 0x3b, 0x4d, 0x75, 0x72, 0x77, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4a,
-0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4a, 0x70, 0x69, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b,
-0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x6d, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x3b,
-0x42, 0x61, 0x72, 0x3b, 0x41, 0x61, 0x72, 0x3b, 0x55, 0x6e, 0x69, 0x3b, 0x55, 0x6e, 0x67, 0x3b, 0x4b, 0x61, 0x6e, 0x3b,
-0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x65, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x65, 0x62,
-0x61, 0x72, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x75, 0x6e,
-0x69, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x75, 0x6e, 0x67, 0x27, 0x6f, 0x6e, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x6b, 0x61, 0x6e,
-0x79, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x73, 0x61, 0x62, 0x69, 0x74, 0x69, 0x3b, 0x4a, 0x3b, 0x42, 0x3b, 0x41, 0x3b, 0x55,
-0x3b, 0x55, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x4e, 0x61, 0x62, 0x3b, 0x53, 0x61, 0x6e, 0x3b, 0x53, 0x61, 0x6c, 0x3b, 0x52,
-0x61, 0x62, 0x3b, 0x43, 0x61, 0x6d, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x51, 0x75, 0x6e, 0x3b, 0x4e, 0x61, 0x62, 0x61, 0x20,
-0x53, 0x61, 0x6d, 0x62, 0x61, 0x74, 0x3b, 0x53, 0x61, 0x6e, 0x69, 0x3b, 0x53, 0x61, 0x6c, 0x75, 0x73, 0x3b, 0x52, 0x61,
-0x62, 0x75, 0x71, 0x3b, 0x43, 0x61, 0x6d, 0x75, 0x73, 0x3b, 0x4a, 0x75, 0x6d, 0x71, 0x61, 0x74, 0x61, 0x3b, 0x51, 0x75,
-0x6e, 0x78, 0x61, 0x20, 0x53, 0x61, 0x6d, 0x62, 0x61, 0x74, 0x3b, 0x4e, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x52, 0x3b, 0x43,
-0x3b, 0x4a, 0x3b, 0x51, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x41, 0x74, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61,
-0x3b, 0x41, 0x6c, 0x6d, 0x3b, 0x41, 0x6c, 0x6a, 0x3b, 0x41, 0x73, 0x73, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x64, 0x69, 0x3b,
-0x41, 0x74, 0x69, 0x6e, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61,
-0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x61, 0x3b, 0x41, 0x6c, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73,
-0x73, 0x61, 0x62, 0x64, 0x75, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x53, 0x3b,
-0x4a, 0x4d, 0x50, 0x3b, 0x57, 0x55, 0x54, 0x3b, 0x54, 0x41, 0x52, 0x3b, 0x54, 0x41, 0x44, 0x3b, 0x54, 0x41, 0x4e, 0x3b,
-0x54, 0x41, 0x42, 0x3b, 0x4e, 0x47, 0x53, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x6c, 0x3b, 0x57, 0x75, 0x6f, 0x6b,
-0x20, 0x54, 0x69, 0x63, 0x68, 0x3b, 0x54, 0x69, 0x63, 0x68, 0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x54, 0x69, 0x63,
-0x68, 0x20, 0x41, 0x64, 0x65, 0x6b, 0x3b, 0x54, 0x69, 0x63, 0x68, 0x20, 0x41, 0x6e, 0x67, 0x27, 0x77, 0x65, 0x6e, 0x3b,
-0x54, 0x69, 0x63, 0x68, 0x20, 0x41, 0x62, 0x69, 0x63, 0x68, 0x3b, 0x4e, 0x67, 0x65, 0x73, 0x6f, 0x3b, 0x4a, 0x3b, 0x57,
-0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x41, 0x73, 0x61, 0x3b, 0x41, 0x79, 0x6e, 0x3b, 0x41,
-0x73, 0x6e, 0x3b, 0x41, 0x6b, 0x72, 0x3b, 0x41, 0x6b, 0x77, 0x3b, 0x41, 0x73, 0x6d, 0x3b, 0x41, 0x73, 0x1e0d, 0x3b, 0x41,
-0x73, 0x61, 0x6d, 0x61, 0x73, 0x3b, 0x41, 0x79, 0x6e, 0x61, 0x73, 0x3b, 0x41, 0x73, 0x69, 0x6e, 0x61, 0x73, 0x3b, 0x41,
-0x6b, 0x72, 0x61, 0x73, 0x3b, 0x41, 0x6b, 0x77, 0x61, 0x73, 0x3b, 0x41, 0x73, 0x69, 0x6d, 0x77, 0x61, 0x73, 0x3b, 0x41,
-0x73, 0x69, 0x1e0d, 0x79, 0x61, 0x73, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41,
-0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x41, 0x74, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x3b, 0x41, 0x6c, 0x6d,
-0x3b, 0x41, 0x6c, 0x7a, 0x3b, 0x41, 0x73, 0x69, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x41, 0x74, 0x69, 0x6e,
-0x6e, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x6c, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61, 0x3b, 0x41,
-0x6c, 0x68, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x61, 0x3b, 0x41, 0x6c, 0x7a, 0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x69, 0x62,
-0x74, 0x69, 0x3b, 0x4a, 0x70, 0x69, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6d, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41,
-0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x70, 0x69, 0x69, 0x3b,
-0x4a, 0x75, 0x6d, 0x61, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x6e, 0x65, 0x3b, 0x4a, 0x75,
-0x6d, 0x61, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75,
-0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x930, 0x92c, 0x93f, 0x3b, 0x938, 0x92e,
-0x3b, 0x92e, 0x902, 0x917, 0x932, 0x3b, 0x92c, 0x941, 0x926, 0x3b, 0x92c, 0x93f, 0x938, 0x925, 0x93f, 0x3b, 0x938, 0x941, 0x916, 0x941,
-0x930, 0x3b, 0x938, 0x941, 0x928, 0x93f, 0x3b, 0x930, 0x92c, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x938, 0x92e, 0x92c, 0x93e, 0x930, 0x3b,
-0x92e, 0x902, 0x917, 0x932, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x926, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x93f, 0x938, 0x925, 0x93f,
-0x92c, 0x93e, 0x930, 0x3b, 0x938, 0x941, 0x916, 0x941, 0x930, 0x92c, 0x93e, 0x930, 0x3b, 0x938, 0x941, 0x928, 0x93f, 0x92c, 0x93e, 0x930,
-0x3b, 0x930, 0x3b, 0x938, 0x3b, 0x92e, 0x902, 0x3b, 0x92c, 0x941, 0x3b, 0x92c, 0x93f, 0x3b, 0x938, 0x941, 0x3b, 0x938, 0x941, 0x3b,
-0x4c, 0x75, 0x6d, 0x3b, 0x4e, 0x6b, 0x6f, 0x3b, 0x4e, 0x64, 0x79, 0x3b, 0x4e, 0x64, 0x67, 0x3b, 0x4e, 0x6a, 0x77, 0x3b,
-0x4e, 0x67, 0x76, 0x3b, 0x4c, 0x75, 0x62, 0x3b, 0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x75, 0x3b, 0x4e, 0x6b, 0x6f, 0x64,
-0x79, 0x61, 0x3b, 0x4e, 0x64, 0xe0, 0x61, 0x79, 0xe0, 0x3b, 0x4e, 0x64, 0x61, 0x6e, 0x67, 0xf9, 0x3b, 0x4e, 0x6a, 0xf2,
-0x77, 0x61, 0x3b, 0x4e, 0x67, 0xf2, 0x76, 0x79, 0x61, 0x3b, 0x4c, 0x75, 0x62, 0x69, 0x6e, 0x67, 0x75, 0x3b, 0x4c, 0x3b,
-0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4c, 0x3b, 0x6e, 0x74, 0x73, 0x3b, 0x6b, 0x70, 0x61, 0x3b,
-0x67, 0x68, 0x254, 0x3b, 0x74, 0x254, 0x6d, 0x3b, 0x75, 0x6d, 0x65, 0x3b, 0x67, 0x68, 0x268, 0x3b, 0x64, 0x7a, 0x6b, 0x3b,
-0x74, 0x73, 0x75, 0x294, 0x6e, 0x74, 0x73, 0x268, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x6b, 0x70, 0xe0, 0x3b, 0x74, 0x73,
-0x75, 0x294, 0x75, 0x67, 0x68, 0x254, 0x65, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x74, 0x254, 0x300, 0x6d, 0x6c, 0xf2, 0x3b,
-0x74, 0x73, 0x75, 0x294, 0x75, 0x6d, 0xe8, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x67, 0x68, 0x268, 0x302, 0x6d, 0x3b, 0x74,
-0x73, 0x75, 0x294, 0x6e, 0x64, 0x7a, 0x268, 0x6b, 0x254, 0x294, 0x254, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x67, 0x3b, 0x74, 0x3b,
-0x75, 0x3b, 0x67, 0x3b, 0x64, 0x3b, 0x6e, 0x254, 0x79, 0x3b, 0x6e, 0x6a, 0x61, 0x3b, 0x75, 0x75, 0x6d, 0x3b, 0x14b, 0x67,
-0x65, 0x3b, 0x6d, 0x62, 0x254, 0x3b, 0x6b, 0x254, 0x254, 0x3b, 0x6a, 0x6f, 0x6e, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6e,
-0x254, 0x302, 0x79, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6e, 0x6a, 0x61, 0x14b, 0x67, 0x75, 0x6d, 0x62, 0x61, 0x3b, 0x14b,
-0x67, 0x77, 0xe0, 0x20, 0xfb, 0x6d, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x14b, 0x67, 0xea, 0x3b, 0x14b, 0x67, 0x77, 0xe0,
-0x20, 0x6d, 0x62, 0x254, 0x6b, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6b, 0x254, 0x254, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20,
-0x6a, 0xf4, 0x6e, 0x3b, 0x6e, 0x3b, 0x6e, 0x3b, 0x75, 0x3b, 0x14b, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6a, 0x3b, 0x41, 0x6c,
-0x68, 0x61, 0x64, 0x69, 0x3b, 0x41, 0x74, 0x69, 0x6e, 0x6e, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x6c, 0x61, 0x61, 0x74, 0x61,
-0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x41, 0x6c, 0x7a,
-0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x69, 0x62, 0x74, 0x69, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4d,
-0x3b, 0x5a, 0x3b, 0x53, 0x3b, 0xe9, 0x74, 0x3b, 0x6d, 0x254, 0x301, 0x73, 0x3b, 0x6b, 0x77, 0x61, 0x3b, 0x6d, 0x75, 0x6b,
-0x3b, 0x14b, 0x67, 0x69, 0x3b, 0x257, 0xf3, 0x6e, 0x3b, 0x65, 0x73, 0x61, 0x3b, 0xe9, 0x74, 0x69, 0x3b, 0x6d, 0x254, 0x301,
-0x73, 0xfa, 0x3b, 0x6b, 0x77, 0x61, 0x73, 0xfa, 0x3b, 0x6d, 0x75, 0x6b, 0x254, 0x301, 0x73, 0xfa, 0x3b, 0x14b, 0x67, 0x69,
-0x73, 0xfa, 0x3b, 0x257, 0xf3, 0x6e, 0x25b, 0x73, 0xfa, 0x3b, 0x65, 0x73, 0x61, 0x253, 0x61, 0x73, 0xfa, 0x3b, 0x65, 0x3b,
-0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x14b, 0x3b, 0x257, 0x3b, 0x65, 0x3b, 0x44, 0x69, 0x6d, 0x3b, 0x54, 0x65, 0x6e, 0x3b,
-0x54, 0x61, 0x6c, 0x3b, 0x41, 0x6c, 0x61, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x41, 0x72, 0x6a, 0x3b, 0x53, 0x69, 0x62, 0x3b,
-0x44, 0x69, 0x6d, 0x61, 0x73, 0x3b, 0x54, 0x65, 0x6e, 0x65, 0x14b, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x41,
-0x6c, 0x61, 0x72, 0x62, 0x61, 0x79, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x73, 0x61, 0x79, 0x3b, 0x41, 0x72, 0x6a, 0x75,
-0x6d, 0x61, 0x3b, 0x53, 0x69, 0x62, 0x69, 0x74, 0x69, 0x3b, 0x44, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x41, 0x3b,
-0x41, 0x3b, 0x53, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x3b, 0x73, 0x6d, 0x62, 0x3b, 0x73, 0x6d,
-0x6c, 0x3b, 0x73, 0x6d, 0x6e, 0x3b, 0x66, 0xfa, 0x6c, 0x3b, 0x73, 0xe9, 0x72, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254,
-0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20,
-0x6d, 0x259, 0x301, 0x62, 0x25b, 0x30c, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20, 0x6d,
-0x259, 0x301, 0x6c, 0x25b, 0x301, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20, 0x6d, 0x259,
-0x301, 0x6e, 0x79, 0x69, 0x3b, 0x66, 0xfa, 0x6c, 0x61, 0x64, 0xe9, 0x3b, 0x73, 0xe9, 0x72, 0x61, 0x64, 0xe9, 0x3b, 0x73,
-0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x66, 0x3b, 0x73, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x3b, 0x6c, 0x1dd,
-0x6e, 0x3b, 0x6d, 0x61, 0x61, 0x3b, 0x6d, 0x25b, 0x6b, 0x3b, 0x6a, 0x1dd, 0x1dd, 0x3b, 0x6a, 0xfa, 0x6d, 0x3b, 0x73, 0x61,
-0x6d, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x1dd, 0x3b, 0x6c, 0x1dd, 0x6e, 0x64, 0xed, 0x3b, 0x6d, 0x61, 0x61, 0x64, 0xed,
-0x3b, 0x6d, 0x25b, 0x6b, 0x72, 0x25b, 0x64, 0xed, 0x3b, 0x6a, 0x1dd, 0x1dd, 0x64, 0xed, 0x3b, 0x6a, 0xfa, 0x6d, 0x62, 0xe1,
-0x3b, 0x73, 0x61, 0x6d, 0x64, 0xed, 0x3b, 0x73, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x6a, 0x3b, 0x73,
-0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x72, 0x61,
-0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x53, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61,
-0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e,
-0x6f, 0x3b, 0x41, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a,
-0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x49, 0x3b,
-0x4a, 0x3b, 0x43, 0x79, 0x61, 0x3b, 0x43, 0x6c, 0x61, 0x3b, 0x43, 0x7a, 0x69, 0x3b, 0x43, 0x6b, 0x6f, 0x3b, 0x43, 0x6b,
-0x61, 0x3b, 0x43, 0x67, 0x61, 0x3b, 0x43, 0x7a, 0x65, 0x3b, 0x43, 0x6f, 0x6d, 0x27, 0x79, 0x61, 0x6b, 0x6b, 0x65, 0x3b,
-0x43, 0x6f, 0x6d, 0x6c, 0x61, 0x61, 0x257, 0x69, 0x69, 0x3b, 0x43, 0x6f, 0x6d, 0x7a, 0x79, 0x69, 0x69, 0x257, 0x69, 0x69,
-0x3b, 0x43, 0x6f, 0x6d, 0x6b, 0x6f, 0x6c, 0x6c, 0x65, 0x3b, 0x43, 0x6f, 0x6d, 0x6b, 0x61, 0x6c, 0x64, 0x1dd, 0x253, 0x6c,
-0x69, 0x69, 0x3b, 0x43, 0x6f, 0x6d, 0x67, 0x61, 0x69, 0x73, 0x75, 0x75, 0x3b, 0x43, 0x6f, 0x6d, 0x7a, 0x79, 0x65, 0x253,
-0x73, 0x75, 0x75, 0x3b, 0x59, 0x3b, 0x4c, 0x3b, 0x5a, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x45, 0x3b, 0x73, 0x254,
+0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x4c, 0x50, 0x3b, 0x50, 0x31, 0x3b, 0x50, 0x32, 0x3b, 0x50, 0x33, 0x3b, 0x50, 0x34, 0x3b,
+0x50, 0x35, 0x3b, 0x50, 0x36, 0x3b, 0x4c, 0x101, 0x70, 0x75, 0x6c, 0x65, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6b, 0x61, 0x68,
+0x69, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6c, 0x75, 0x61, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6b, 0x6f, 0x6c, 0x75, 0x3b, 0x50,
+0x6f, 0x2bb, 0x61, 0x68, 0x101, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6c, 0x69, 0x6d, 0x61, 0x3b, 0x50, 0x6f, 0x2bb, 0x61, 0x6f,
+0x6e, 0x6f, 0x3b, 0x4c, 0x69, 0x6e, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x69, 0x79, 0x3b, 0x48,
+0x75, 0x77, 0x3b, 0x42, 0x69, 0x79, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4c, 0x69, 0x6e, 0x67, 0x67, 0x6f, 0x3b, 0x4c, 0x75,
+0x6e, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x4d, 0x69, 0x79, 0x65, 0x72, 0x6b, 0x75, 0x6c, 0x65,
+0x73, 0x3b, 0x48, 0x75, 0x77, 0x65, 0x62, 0x65, 0x73, 0x3b, 0x42, 0x69, 0x79, 0x65, 0x72, 0x6e, 0x65, 0x73, 0x3b, 0x53,
+0x61, 0x62, 0x61, 0x64, 0x6f, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x42, 0x3b, 0x53, 0x3b,
+0x53, 0x75, 0x2e, 0x3b, 0x4d, 0xe4, 0x2e, 0x3b, 0x5a, 0x69, 0x2e, 0x3b, 0x4d, 0x69, 0x2e, 0x3b, 0x44, 0x75, 0x2e, 0x3b,
+0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e, 0x3b, 0x53, 0x75, 0x6e, 0x6e, 0x74, 0x69, 0x67, 0x3b, 0x4d, 0xe4, 0xe4, 0x6e,
+0x74, 0x69, 0x67, 0x3b, 0x5a, 0x69, 0x69, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0x4d, 0x69, 0x74, 0x74, 0x77, 0x75,
+0x63, 0x68, 0x3b, 0x44, 0x75, 0x6e, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0x46, 0x72, 0x69, 0x69, 0x74, 0x69, 0x67,
+0x3b, 0x53, 0x61, 0x6d, 0x73, 0x63, 0x68, 0x74, 0x69, 0x67, 0x3b, 0xa46d, 0xa18f, 0x3b, 0xa18f, 0xa2cd, 0x3b, 0xa18f, 0xa44d, 0x3b,
+0xa18f, 0xa315, 0x3b, 0xa18f, 0xa1d6, 0x3b, 0xa18f, 0xa26c, 0x3b, 0xa18f, 0xa0d8, 0x3b, 0xa46d, 0xa18f, 0xa44d, 0x3b, 0xa18f, 0xa282, 0xa2cd, 0x3b,
+0xa18f, 0xa282, 0xa44d, 0x3b, 0xa18f, 0xa282, 0xa315, 0x3b, 0xa18f, 0xa282, 0xa1d6, 0x3b, 0xa18f, 0xa282, 0xa26c, 0x3b, 0xa18f, 0xa282, 0xa0d8, 0x3b,
+0xa18f, 0x3b, 0xa2cd, 0x3b, 0xa44d, 0x3b, 0xa315, 0x3b, 0xa1d6, 0x3b, 0xa26c, 0x3b, 0xa0d8, 0x3b, 0x73, 0x6f, 0x74, 0x6e, 0x3b, 0x76,
+0x75, 0x6f, 0x73, 0x3b, 0x6d, 0x61, 0x14b, 0x3b, 0x67, 0x61, 0x73, 0x6b, 0x3b, 0x64, 0x75, 0x6f, 0x72, 0x3b, 0x62, 0x65,
+0x61, 0x72, 0x3b, 0x6c, 0xe1, 0x76, 0x3b, 0x73, 0x6f, 0x74, 0x6e, 0x61, 0x62, 0x65, 0x61, 0x69, 0x76, 0x69, 0x3b, 0x76,
+0x75, 0x6f, 0x73, 0x73, 0xe1, 0x72, 0x67, 0x61, 0x3b, 0x6d, 0x61, 0x14b, 0x14b, 0x65, 0x62, 0xe1, 0x72, 0x67, 0x61, 0x3b,
+0x67, 0x61, 0x73, 0x6b, 0x61, 0x76, 0x61, 0x68, 0x6b, 0x6b, 0x75, 0x3b, 0x64, 0x75, 0x6f, 0x72, 0x61, 0x73, 0x64, 0x61,
+0x74, 0x3b, 0x62, 0x65, 0x61, 0x72, 0x6a, 0x61, 0x64, 0x61, 0x74, 0x3b, 0x6c, 0xe1, 0x76, 0x76, 0x61, 0x72, 0x64, 0x61,
+0x74, 0x3b, 0x53, 0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x61, 0x65, 0x6a, 0x6c,
+0x65, 0x67, 0x65, 0x3b, 0x6d, 0xe5, 0x61, 0x6e, 0x74, 0x61, 0x3b, 0x64, 0xe4, 0x6a, 0x73, 0x74, 0x61, 0x3b, 0x67, 0x61,
+0x73, 0x6b, 0x65, 0x76, 0x61, 0x68, 0x6b, 0x6f, 0x65, 0x3b, 0x64, 0xe5, 0x61, 0x72, 0x73, 0x74, 0x61, 0x3b, 0x62, 0x65,
+0x61, 0x72, 0x6a, 0x61, 0x64, 0x61, 0x68, 0x6b, 0x65, 0x3b, 0x6c, 0x61, 0x61, 0x76, 0x61, 0x64, 0x61, 0x68, 0x6b, 0x65,
+0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x43, 0x70, 0x72, 0x3b, 0x43,
+0x74, 0x74, 0x3b, 0x43, 0x6d, 0x6e, 0x3b, 0x43, 0x6d, 0x74, 0x3b, 0x41, 0x72, 0x73, 0x3b, 0x49, 0x63, 0x6d, 0x3b, 0x45,
+0x73, 0x74, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x74, 0x61,
+0x74, 0x6f, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x43, 0x68, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e,
+0x6f, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x63, 0x68, 0x75, 0x6d, 0x61, 0x3b, 0x45, 0x73, 0x61,
+0x62, 0x61, 0x74, 0x6f, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x45, 0x3b, 0x4a,
+0x75, 0x6d, 0x3b, 0x4a, 0x69, 0x6d, 0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x4b,
+0x61, 0x73, 0x3b, 0x4e, 0x67, 0x75, 0x3b, 0x49, 0x74, 0x75, 0x6b, 0x75, 0x20, 0x6a, 0x61, 0x20, 0x6a, 0x75, 0x6d, 0x77,
+0x61, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6a, 0x69, 0x6d, 0x77, 0x65, 0x72, 0x69, 0x3b, 0x4b,
+0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61, 0x77, 0x69, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b,
+0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61,
+0x6e, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x20, 0x6b, 0x61, 0x73, 0x61, 0x6e, 0x75, 0x3b, 0x4b,
+0x69, 0x66, 0x75, 0x6c, 0x61, 0x20, 0x6e, 0x67, 0x75, 0x77, 0x6f, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
+0x4b, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x64, 0x65, 0x77, 0x3b, 0x61, 0x61, 0x253, 0x3b, 0x6d, 0x61, 0x77, 0x3b, 0x6e, 0x6a,
+0x65, 0x3b, 0x6e, 0x61, 0x61, 0x3b, 0x6d, 0x77, 0x64, 0x3b, 0x68, 0x62, 0x69, 0x3b, 0x64, 0x65, 0x77, 0x6f, 0x3b, 0x61,
+0x61, 0x253, 0x6e, 0x64, 0x65, 0x3b, 0x6d, 0x61, 0x77, 0x62, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x6e, 0x6a, 0x65, 0x73, 0x6c,
+0x61, 0x61, 0x72, 0x65, 0x3b, 0x6e, 0x61, 0x61, 0x73, 0x61, 0x61, 0x6e, 0x64, 0x65, 0x3b, 0x6d, 0x61, 0x77, 0x6e, 0x64,
+0x65, 0x3b, 0x68, 0x6f, 0x6f, 0x72, 0x65, 0x2d, 0x62, 0x69, 0x69, 0x72, 0x3b, 0x64, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x6e,
+0x3b, 0x6e, 0x3b, 0x6d, 0x3b, 0x68, 0x3b, 0x4b, 0x4d, 0x41, 0x3b, 0x4e, 0x54, 0x54, 0x3b, 0x4e, 0x4d, 0x4e, 0x3b, 0x4e,
+0x4d, 0x54, 0x3b, 0x41, 0x52, 0x54, 0x3b, 0x4e, 0x4d, 0x41, 0x3b, 0x4e, 0x4d, 0x4d, 0x3b, 0x4b, 0x69, 0x75, 0x6d, 0x69,
+0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x69, 0x6e, 0x65,
+0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x61, 0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x74, 0x68, 0x69, 0x3b,
+0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x74, 0x68, 0x69, 0x3b, 0x4b, 0x3b,
+0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x72, 0x65, 0x3b, 0x4b, 0x75, 0x6e, 0x3b,
+0x4f, 0x6e, 0x67, 0x3b, 0x49, 0x6e, 0x65, 0x3b, 0x49, 0x6c, 0x65, 0x3b, 0x53, 0x61, 0x70, 0x3b, 0x4b, 0x77, 0x65, 0x3b,
+0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x61, 0x72, 0x65, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74,
+0x20, 0x65, 0x65, 0x20, 0x6b, 0x75, 0x6e, 0x69, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x6f,
+0x6e, 0x67, 0x2019, 0x77, 0x61, 0x6e, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x69, 0x6e, 0x65,
+0x74, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x69, 0x6c, 0x65, 0x3b, 0x4d, 0x64, 0x65, 0x72,
+0x6f, 0x74, 0x20, 0x65, 0x65, 0x20, 0x73, 0x61, 0x70, 0x61, 0x3b, 0x4d, 0x64, 0x65, 0x72, 0x6f, 0x74, 0x20, 0x65, 0x65,
+0x20, 0x6b, 0x77, 0x65, 0x3b, 0x41, 0x3b, 0x4b, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x44,
+0x69, 0x6d, 0x3b, 0x50, 0x6f, 0x73, 0x3b, 0x50, 0x69, 0x72, 0x3b, 0x54, 0x61, 0x74, 0x3b, 0x4e, 0x61, 0x69, 0x3b, 0x53,
+0x68, 0x61, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x44, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x6f,
+0x73, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x43,
+0x68, 0x69, 0x6e, 0x61, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x73, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x53, 0x61, 0x62, 0x75, 0x64,
+0x75, 0x3b, 0x44, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x6f, 0x6e, 0x3b,
+0x4d, 0x76, 0x75, 0x3b, 0x53, 0x69, 0x62, 0x3b, 0x53, 0x69, 0x74, 0x3b, 0x53, 0x69, 0x6e, 0x3b, 0x53, 0x69, 0x68, 0x3b,
+0x4d, 0x67, 0x71, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x6f, 0x3b, 0x4d, 0x76, 0x75, 0x6c, 0x6f, 0x3b, 0x53, 0x69, 0x62, 0x69,
+0x6c, 0x69, 0x3b, 0x53, 0x69, 0x74, 0x68, 0x61, 0x74, 0x68, 0x75, 0x3b, 0x53, 0x69, 0x6e, 0x65, 0x3b, 0x53, 0x69, 0x68,
+0x6c, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x67, 0x71, 0x69, 0x62, 0x65, 0x6c, 0x6f, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x53, 0x3b,
+0x53, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x49, 0x6a, 0x70, 0x3b, 0x49, 0x6a, 0x74, 0x3b, 0x49, 0x6a, 0x6e, 0x3b,
+0x49, 0x6a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x49, 0x6a, 0x6d, 0x3b, 0x49, 0x6a, 0x75,
+0x6d, 0x61, 0x70, 0x69, 0x6c, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x49, 0x6a, 0x75,
+0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x68, 0x61,
+0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73,
+0x69, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x31, 0x3b, 0x2d30, 0x2d59, 0x2d30, 0x3b,
+0x2d30, 0x2d62, 0x2d4f, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4e,
+0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x3b, 0x2d30, 0x2d59, 0x2d30, 0x2d4e, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d62, 0x2d4f, 0x2d30, 0x2d59, 0x3b, 0x2d30,
+0x2d59, 0x2d49, 0x2d4f, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x2d30, 0x2d59, 0x3b, 0x2d59, 0x2d49,
+0x2d4e, 0x2d61, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x2d62, 0x2d30, 0x2d59, 0x3b, 0x61, 0x73, 0x61, 0x3b, 0x61, 0x79, 0x6e,
+0x3b, 0x61, 0x73, 0x69, 0x3b, 0x61, 0x6b, 0x1e5b, 0x3b, 0x61, 0x6b, 0x77, 0x3b, 0x61, 0x73, 0x69, 0x6d, 0x3b, 0x61, 0x73,
+0x69, 0x1e0d, 0x3b, 0x61, 0x73, 0x61, 0x6d, 0x61, 0x73, 0x3b, 0x61, 0x79, 0x6e, 0x61, 0x73, 0x3b, 0x61, 0x73, 0x69, 0x6e,
+0x61, 0x73, 0x3b, 0x61, 0x6b, 0x1e5b, 0x61, 0x73, 0x3b, 0x61, 0x6b, 0x77, 0x61, 0x73, 0x3b, 0x61, 0x73, 0x69, 0x6d, 0x77,
+0x61, 0x73, 0x3b, 0x61, 0x73, 0x69, 0x1e0d, 0x79, 0x61, 0x73, 0x3b, 0x59, 0x61, 0x6e, 0x3b, 0x53, 0x61, 0x6e, 0x3b, 0x4b,
+0x72, 0x61, 0x1e0d, 0x3b, 0x4b, 0x75, 0x1e93, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x53, 0x1e0d, 0x69, 0x73, 0x3b, 0x53, 0x61, 0x79,
+0x3b, 0x59, 0x61, 0x6e, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x6e, 0x61, 0x73, 0x73, 0x3b, 0x4b, 0x72, 0x61, 0x1e0d, 0x61,
+0x73, 0x73, 0x3b, 0x4b, 0x75, 0x1e93, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x6d, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x1e0d, 0x69,
+0x73, 0x61, 0x73, 0x73, 0x3b, 0x53, 0x61, 0x79, 0x61, 0x73, 0x73, 0x3b, 0x59, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
+0x53, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x53, 0x41, 0x4e, 0x3b, 0x4f, 0x52, 0x4b, 0x3b, 0x4f, 0x4b, 0x42, 0x3b, 0x4f, 0x4b,
+0x53, 0x3b, 0x4f, 0x4b, 0x4e, 0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4f, 0x4d, 0x4b, 0x3b, 0x53, 0x61, 0x6e, 0x64, 0x65, 0x3b,
+0x4f, 0x72, 0x77, 0x6f, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b, 0x61, 0x62, 0x69,
+0x72, 0x69, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b,
+0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x72, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4f, 0x72, 0x77, 0x61,
+0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b,
+0x4d, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x48, 0x69, 0x76, 0x3b, 0x48, 0x69, 0x64, 0x3b, 0x48, 0x69,
+0x74, 0x3b, 0x48, 0x69, 0x68, 0x3b, 0x4c, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x75, 0x6c, 0x75, 0x6e, 0x67, 0x75,
+0x3b, 0x70, 0x61, 0x20, 0x73, 0x68, 0x61, 0x68, 0x75, 0x76, 0x69, 0x6c, 0x75, 0x68, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x68,
+0x69, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x68, 0x69, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x68,
+0x69, 0x74, 0x61, 0x79, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x73,
+0x68, 0x61, 0x68, 0x75, 0x6c, 0x65, 0x6d, 0x62, 0x65, 0x6c, 0x61, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x48, 0x3b, 0x48, 0x3b,
+0x48, 0x3b, 0x57, 0x3b, 0x4a, 0x3b, 0x4a, 0x70, 0x69, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b, 0x4a, 0x74,
+0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69,
+0x6c, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e,
+0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b,
+0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b,
+0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4a, 0x3b, 0x6b, 0x61, 0x72, 0x3b, 0x6e, 0x74, 0x25b, 0x3b, 0x74, 0x61,
+0x72, 0x3b, 0x61, 0x72, 0x61, 0x3b, 0x61, 0x6c, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x3b, 0x73, 0x69, 0x62, 0x3b, 0x6b, 0x61,
+0x72, 0x69, 0x3b, 0x6e, 0x74, 0x25b, 0x6e, 0x25b, 0x3b, 0x74, 0x61, 0x72, 0x61, 0x74, 0x61, 0x3b, 0x61, 0x72, 0x61, 0x62,
+0x61, 0x3b, 0x61, 0x6c, 0x61, 0x6d, 0x69, 0x73, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x73, 0x69, 0x62, 0x69, 0x72,
+0x69, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x4a, 0x3b, 0x53, 0x3b, 0x4b, 0x6d, 0x61, 0x3b,
+0x54, 0x61, 0x74, 0x3b, 0x49, 0x6e, 0x65, 0x3b, 0x54, 0x61, 0x6e, 0x3b, 0x41, 0x72, 0x6d, 0x3b, 0x4d, 0x61, 0x61, 0x3b,
+0x4e, 0x4d, 0x4d, 0x3b, 0x4b, 0x69, 0x75, 0x6d, 0x69, 0x61, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75,
+0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b,
+0x41, 0x72, 0x61, 0x6d, 0x69, 0x74, 0x68, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4e, 0x4a, 0x75, 0x6d,
+0x61, 0x6d, 0x6f, 0x74, 0x68, 0x69, 0x69, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x4d, 0x3b,
+0x4e, 0x3b, 0x13c6, 0x13cd, 0x13ac, 0x3b, 0x13c9, 0x13c5, 0x13af, 0x3b, 0x13d4, 0x13b5, 0x13c1, 0x3b, 0x13e6, 0x13a2, 0x13c1, 0x3b, 0x13c5, 0x13a9,
+0x13c1, 0x3b, 0x13e7, 0x13be, 0x13a9, 0x3b, 0x13c8, 0x13d5, 0x13be, 0x3b, 0x13a4, 0x13be, 0x13d9, 0x13d3, 0x13c6, 0x13cd, 0x13ac, 0x3b, 0x13a4, 0x13be,
+0x13d9, 0x13d3, 0x13c9, 0x13c5, 0x13af, 0x3b, 0x13d4, 0x13b5, 0x13c1, 0x13a2, 0x13a6, 0x3b, 0x13e6, 0x13a2, 0x13c1, 0x13a2, 0x13a6, 0x3b, 0x13c5, 0x13a9,
+0x13c1, 0x13a2, 0x13a6, 0x3b, 0x13e7, 0x13be, 0x13a9, 0x13b6, 0x13cd, 0x13d7, 0x3b, 0x13a4, 0x13be, 0x13d9, 0x13d3, 0x13c8, 0x13d5, 0x13be, 0x3b, 0x13c6,
+0x3b, 0x13c9, 0x3b, 0x13d4, 0x3b, 0x13e6, 0x3b, 0x13c5, 0x3b, 0x13e7, 0x3b, 0x13a4, 0x3b, 0x64, 0x69, 0x6d, 0x3b, 0x6c, 0x69, 0x6e,
+0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x72, 0x3b, 0x7a, 0x65, 0x3b, 0x76, 0x61, 0x6e, 0x3b, 0x73, 0x61, 0x6d, 0x3b,
+0x64, 0x69, 0x6d, 0x61, 0x6e, 0x73, 0x3b, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d,
+0x65, 0x72, 0x6b, 0x72, 0x65, 0x64, 0x69, 0x3b, 0x7a, 0x65, 0x64, 0x69, 0x3b, 0x76, 0x61, 0x6e, 0x64, 0x72, 0x65, 0x64,
+0x69, 0x3b, 0x73, 0x61, 0x6d, 0x64, 0x69, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x7a, 0x3b, 0x76, 0x3b,
+0x73, 0x3b, 0x4c, 0x6c, 0x32, 0x3b, 0x4c, 0x6c, 0x33, 0x3b, 0x4c, 0x6c, 0x34, 0x3b, 0x4c, 0x6c, 0x35, 0x3b, 0x4c, 0x6c,
+0x36, 0x3b, 0x4c, 0x6c, 0x37, 0x3b, 0x4c, 0x6c, 0x31, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61,
+0x70, 0x69, 0x6c, 0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b,
+0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4c, 0x69,
+0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76,
+0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x6c, 0x69, 0x6e, 0x6a, 0x69,
+0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x79, 0x61, 0x6e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61,
+0x20, 0x6d, 0x61, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x4c, 0x69, 0x64, 0x75, 0x76, 0x61, 0x20, 0x6c, 0x69, 0x74, 0x61, 0x6e,
+0x64, 0x69, 0x3b, 0x50, 0xed, 0x69, 0x6c, 0x69, 0x3b, 0x54, 0xe1, 0x61, 0x74, 0x75, 0x3b, 0xcd, 0x6e, 0x65, 0x3b, 0x54,
+0xe1, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x6d, 0x3b, 0x4d, 0xf3, 0x6f, 0x73, 0x69, 0x3b, 0x4a,
+0x75, 0x6d, 0x61, 0x70, 0xed, 0x69, 0x72, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x74, 0x75, 0x3b, 0x4a, 0x75,
+0x6d, 0x61, 0xed, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0xe1, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x61, 0x6d,
+0xed, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0xe1, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0xf3, 0x6f, 0x73,
+0x69, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x45, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x53, 0x61, 0x62, 0x3b,
+0x42, 0x61, 0x6c, 0x3b, 0x4c, 0x77, 0x32, 0x3b, 0x4c, 0x77, 0x33, 0x3b, 0x4c, 0x77, 0x34, 0x3b, 0x4c, 0x77, 0x35, 0x3b,
+0x4c, 0x77, 0x36, 0x3b, 0x53, 0x61, 0x62, 0x62, 0x69, 0x69, 0x74, 0x69, 0x3b, 0x42, 0x61, 0x6c, 0x61, 0x7a, 0x61, 0x3b,
+0x4c, 0x77, 0x61, 0x6b, 0x75, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x73, 0x61, 0x74, 0x75, 0x3b,
+0x4c, 0x77, 0x61, 0x6b, 0x75, 0x6e, 0x61, 0x3b, 0x4c, 0x77, 0x61, 0x6b, 0x75, 0x74, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4c,
+0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b,
+0x4c, 0x3b, 0x4c, 0x3b, 0x50, 0x61, 0x20, 0x4d, 0x75, 0x6c, 0x75, 0x6e, 0x67, 0x75, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63,
+0x68, 0x69, 0x6d, 0x6f, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x62, 0x75, 0x6c, 0x69, 0x3b, 0x50, 0x61, 0x6c,
+0x69, 0x63, 0x68, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x50, 0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x3b, 0x50,
+0x61, 0x6c, 0x69, 0x63, 0x68, 0x69, 0x73, 0x61, 0x6e, 0x6f, 0x3b, 0x50, 0x61, 0x63, 0x68, 0x69, 0x62, 0x65, 0x6c, 0x75,
+0x73, 0x68, 0x69, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x73, 0x69, 0x67, 0x3b, 0x74, 0x65, 0x72, 0x3b, 0x6b, 0x75, 0x61, 0x3b,
+0x6b, 0x69, 0x6e, 0x3b, 0x73, 0x65, 0x73, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x75, 0x3b,
+0x73, 0x69, 0x67, 0x75, 0x6e, 0x64, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x74, 0x65, 0x72, 0x73, 0x61, 0x2d, 0x66,
+0x65, 0x72, 0x61, 0x3b, 0x6b, 0x75, 0x61, 0x72, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x6b, 0x69, 0x6e, 0x74,
+0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x73, 0x65, 0x73, 0x74, 0x61, 0x2d, 0x66, 0x65, 0x72, 0x61, 0x3b, 0x73, 0x61,
+0x62, 0x61, 0x64, 0x75, 0x3b, 0x64, 0x3b, 0x73, 0x3b, 0x74, 0x3b, 0x6b, 0x3b, 0x6b, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x44,
+0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4b, 0x49, 0x55, 0x3b, 0x4d, 0x52, 0x41,
+0x3b, 0x57, 0x41, 0x49, 0x3b, 0x57, 0x45, 0x54, 0x3b, 0x57, 0x45, 0x4e, 0x3b, 0x57, 0x54, 0x4e, 0x3b, 0x4a, 0x55, 0x4d,
+0x3b, 0x4b, 0x69, 0x75, 0x6d, 0x69, 0x61, 0x3b, 0x4d, 0x75, 0x72, 0x61, 0x6d, 0x75, 0x6b, 0x6f, 0x3b, 0x57, 0x61, 0x69,
+0x72, 0x69, 0x3b, 0x57, 0x65, 0x74, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x57, 0x65, 0x6e, 0x61, 0x3b, 0x57, 0x65, 0x74, 0x61,
+0x6e, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x57, 0x3b, 0x57, 0x3b,
+0x57, 0x3b, 0x57, 0x3b, 0x4a, 0x3b, 0x4b, 0x74, 0x73, 0x3b, 0x4b, 0x6f, 0x74, 0x3b, 0x4b, 0x6f, 0x6f, 0x3b, 0x4b, 0x6f,
+0x73, 0x3b, 0x4b, 0x6f, 0x61, 0x3b, 0x4b, 0x6f, 0x6d, 0x3b, 0x4b, 0x6f, 0x6c, 0x3b, 0x4b, 0x6f, 0x74, 0x69, 0x73, 0x61,
+0x70, 0x3b, 0x4b, 0x6f, 0x74, 0x61, 0x61, 0x69, 0x3b, 0x4b, 0x6f, 0x61, 0x65, 0x6e, 0x67, 0x2019, 0x3b, 0x4b, 0x6f, 0x73,
+0x6f, 0x6d, 0x6f, 0x6b, 0x3b, 0x4b, 0x6f, 0x61, 0x6e, 0x67, 0x2019, 0x77, 0x61, 0x6e, 0x3b, 0x4b, 0x6f, 0x6d, 0x75, 0x75,
+0x74, 0x3b, 0x4b, 0x6f, 0x6c, 0x6f, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4c,
+0x3b, 0x53, 0x6f, 0x6e, 0x3b, 0x4d, 0x61, 0x3b, 0x44, 0x65, 0x3b, 0x57, 0x75, 0x3b, 0x44, 0x6f, 0x3b, 0x46, 0x72, 0x3b,
+0x53, 0x61, 0x74, 0x3b, 0x53, 0x6f, 0x6e, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x6e, 0x74,
+0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x44, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73,
+0x3b, 0x57, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x44, 0x6f, 0x6e, 0x64, 0x65, 0x72,
+0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x46, 0x72, 0x61, 0x69, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65,
+0x73, 0x3b, 0x53, 0x61, 0x74, 0x65, 0x72, 0x74, 0x61, 0x78, 0x74, 0x73, 0x65, 0x65, 0x73, 0x3b, 0x53, 0x3b, 0x4d, 0x3b,
+0x45, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x46, 0x3b, 0x41, 0x3b, 0x53, 0x75, 0x2e, 0x3b, 0x4d, 0x6f, 0x2e, 0x3b, 0x44, 0x69,
+0x2e, 0x3b, 0x4d, 0x65, 0x2e, 0x3b, 0x44, 0x75, 0x2e, 0x3b, 0x46, 0x72, 0x2e, 0x3b, 0x53, 0x61, 0x2e, 0x3b, 0x53, 0x75,
+0x6e, 0x6e, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x4d, 0x6f, 0x6f, 0x6e, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x44, 0x69,
+0x6e, 0x6e, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x4d, 0x65, 0x74, 0x77, 0x6f, 0x63, 0x68, 0x3b, 0x44, 0x75, 0x6e,
+0x6e, 0x65, 0x72, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x46, 0x72, 0x69, 0x69, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b,
+0x53, 0x61, 0x6d, 0x73, 0x64, 0x61, 0x61, 0x63, 0x68, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0xed, 0x6c, 0xed, 0x3b, 0x4a,
+0x75, 0x6d, 0x61, 0x74, 0xe1, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74,
+0xe1, 0x6e, 0x254, 0x3b, 0x41, 0x6c, 0x61, 0xe1, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0xe1, 0x61, 0x3b, 0x4a,
+0x75, 0x6d, 0x61, 0x6d, 0xf3, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x62, 0x69, 0x3b, 0x42, 0x61, 0x6c, 0x61, 0x3b, 0x4b, 0x75,
+0x62, 0x69, 0x3b, 0x4b, 0x75, 0x73, 0x61, 0x3b, 0x4b, 0x75, 0x6e, 0x61, 0x3b, 0x4b, 0x75, 0x74, 0x61, 0x3b, 0x4d, 0x75,
+0x6b, 0x61, 0x3b, 0x53, 0x61, 0x62, 0x69, 0x69, 0x74, 0x69, 0x3b, 0x42, 0x61, 0x6c, 0x61, 0x7a, 0x61, 0x3b, 0x4f, 0x77,
+0x6f, 0x6b, 0x75, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4f, 0x77, 0x6f, 0x6b, 0x75, 0x73, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x6c,
+0x6f, 0x6b, 0x75, 0x6e, 0x61, 0x3b, 0x4f, 0x6c, 0x6f, 0x6b, 0x75, 0x74, 0x61, 0x61, 0x6e, 0x75, 0x3b, 0x4f, 0x6c, 0x6f,
+0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x42, 0x3b, 0x53, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b,
+0x4d, 0x3b, 0x4a, 0x32, 0x3b, 0x4a, 0x33, 0x3b, 0x4a, 0x34, 0x3b, 0x4a, 0x35, 0x3b, 0x41, 0x6c, 0x3b, 0x49, 0x6a, 0x3b,
+0x4a, 0x31, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75,
+0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x75,
+0x72, 0x77, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4d, 0x75, 0x72, 0x77, 0x61, 0x20, 0x77,
+0x61, 0x20, 0x4b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4a, 0x70,
+0x69, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a,
+0x6d, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x3b, 0x42, 0x61, 0x72, 0x3b, 0x41, 0x61, 0x72, 0x3b, 0x55, 0x6e,
+0x69, 0x3b, 0x55, 0x6e, 0x67, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x65, 0x6a,
+0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x65, 0x62, 0x61, 0x72, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x61, 0x6b, 0x61,
+0x61, 0x72, 0x65, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x75, 0x6e, 0x69, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x75, 0x6e, 0x67, 0x2019,
+0x6f, 0x6e, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x6b, 0x61, 0x6e, 0x79, 0x3b, 0x4e, 0x61, 0x6b, 0x61, 0x73, 0x61, 0x62, 0x69,
+0x74, 0x69, 0x3b, 0x4a, 0x3b, 0x42, 0x3b, 0x41, 0x3b, 0x55, 0x3b, 0x55, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x41, 0x6c, 0x68,
+0x3b, 0x41, 0x74, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x3b, 0x41, 0x6c, 0x6d, 0x3b, 0x41, 0x6c, 0x6a,
+0x3b, 0x41, 0x73, 0x73, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x41, 0x74, 0x69, 0x6e, 0x69, 0x3b, 0x41, 0x74,
+0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x69,
+0x73, 0x61, 0x3b, 0x41, 0x6c, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x73, 0x61, 0x62, 0x64, 0x75, 0x3b, 0x48, 0x3b,
+0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x4a, 0x4d, 0x50, 0x3b, 0x57, 0x55, 0x54, 0x3b,
+0x54, 0x41, 0x52, 0x3b, 0x54, 0x41, 0x44, 0x3b, 0x54, 0x41, 0x4e, 0x3b, 0x54, 0x41, 0x42, 0x3b, 0x4e, 0x47, 0x53, 0x3b,
+0x4a, 0x75, 0x6d, 0x61, 0x70, 0x69, 0x6c, 0x3b, 0x57, 0x75, 0x6f, 0x6b, 0x20, 0x54, 0x69, 0x63, 0x68, 0x3b, 0x54, 0x69,
+0x63, 0x68, 0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x54, 0x69, 0x63, 0x68, 0x20, 0x41, 0x64, 0x65, 0x6b, 0x3b, 0x54,
+0x69, 0x63, 0x68, 0x20, 0x41, 0x6e, 0x67, 0x2019, 0x77, 0x65, 0x6e, 0x3b, 0x54, 0x69, 0x63, 0x68, 0x20, 0x41, 0x62, 0x69,
+0x63, 0x68, 0x3b, 0x4e, 0x67, 0x65, 0x73, 0x6f, 0x3b, 0x4a, 0x3b, 0x57, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54,
+0x3b, 0x4e, 0x3b, 0x41, 0x73, 0x61, 0x3b, 0x41, 0x79, 0x6e, 0x3b, 0x41, 0x73, 0x6e, 0x3b, 0x41, 0x6b, 0x72, 0x3b, 0x41,
+0x6b, 0x77, 0x3b, 0x41, 0x73, 0x6d, 0x3b, 0x41, 0x73, 0x1e0d, 0x3b, 0x41, 0x73, 0x61, 0x6d, 0x61, 0x73, 0x3b, 0x41, 0x79,
+0x6e, 0x61, 0x73, 0x3b, 0x41, 0x73, 0x69, 0x6e, 0x61, 0x73, 0x3b, 0x41, 0x6b, 0x72, 0x61, 0x73, 0x3b, 0x41, 0x6b, 0x77,
+0x61, 0x73, 0x3b, 0x41, 0x73, 0x69, 0x6d, 0x77, 0x61, 0x73, 0x3b, 0x41, 0x73, 0x69, 0x1e0d, 0x79, 0x61, 0x73, 0x3b, 0x41,
+0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x41, 0x74, 0x69,
+0x3b, 0x41, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x3b, 0x41, 0x6c, 0x6d, 0x3b, 0x41, 0x6c, 0x7a, 0x3b, 0x41, 0x73, 0x69,
+0x3b, 0x41, 0x6c, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x41, 0x74, 0x69, 0x6e, 0x6e, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x6c, 0x61,
+0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x69, 0x73, 0x61,
+0x3b, 0x41, 0x6c, 0x7a, 0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73, 0x69, 0x62, 0x74, 0x69, 0x3b, 0x4a, 0x70, 0x69, 0x3b, 0x4a,
+0x74, 0x74, 0x3b, 0x4a, 0x6d, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a,
+0x6d, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x70, 0x69, 0x69, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x74, 0x61, 0x74,
+0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b,
+0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61,
+0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x31, 0x3b,
+0x930, 0x92c, 0x93f, 0x3b, 0x938, 0x92e, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x3b, 0x92c, 0x941, 0x926, 0x3b, 0x92c, 0x93f, 0x938, 0x925,
+0x93f, 0x3b, 0x938, 0x941, 0x916, 0x941, 0x930, 0x3b, 0x938, 0x941, 0x928, 0x93f, 0x3b, 0x930, 0x92c, 0x93f, 0x92c, 0x93e, 0x930, 0x3b,
+0x938, 0x92e, 0x92c, 0x93e, 0x930, 0x3b, 0x92e, 0x902, 0x917, 0x932, 0x92c, 0x93e, 0x930, 0x3b, 0x92c, 0x941, 0x926, 0x92c, 0x93e, 0x930,
+0x3b, 0x92c, 0x93f, 0x938, 0x925, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x938, 0x941, 0x916, 0x941, 0x930, 0x92c, 0x93e, 0x930, 0x3b, 0x938,
+0x941, 0x928, 0x93f, 0x92c, 0x93e, 0x930, 0x3b, 0x930, 0x3b, 0x938, 0x3b, 0x92e, 0x902, 0x3b, 0x92c, 0x941, 0x3b, 0x92c, 0x93f, 0x3b,
+0x938, 0x941, 0x3b, 0x938, 0x941, 0x3b, 0x4c, 0x75, 0x6d, 0x3b, 0x4e, 0x6b, 0x6f, 0x3b, 0x4e, 0x64, 0x79, 0x3b, 0x4e, 0x64,
+0x67, 0x3b, 0x4e, 0x6a, 0x77, 0x3b, 0x4e, 0x67, 0x76, 0x3b, 0x4c, 0x75, 0x62, 0x3b, 0x4c, 0x75, 0x6d, 0x69, 0x6e, 0x67,
+0x75, 0x3b, 0x4e, 0x6b, 0x6f, 0x64, 0x79, 0x61, 0x3b, 0x4e, 0x64, 0xe0, 0x61, 0x79, 0xe0, 0x3b, 0x4e, 0x64, 0x61, 0x6e,
+0x67, 0xf9, 0x3b, 0x4e, 0x6a, 0xf2, 0x77, 0x61, 0x3b, 0x4e, 0x67, 0xf2, 0x76, 0x79, 0x61, 0x3b, 0x4c, 0x75, 0x62, 0x69,
+0x6e, 0x67, 0x75, 0x3b, 0x4c, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4c, 0x3b, 0x53, 0x6f,
+0x6e, 0x3b, 0x4d, 0xe9, 0x69, 0x3b, 0x44, 0xeb, 0x6e, 0x3b, 0x4d, 0xeb, 0x74, 0x3b, 0x44, 0x6f, 0x6e, 0x3b, 0x46, 0x72,
+0x65, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x53, 0x6f, 0x6e, 0x6e, 0x64, 0x65, 0x67, 0x3b, 0x4d, 0xe9, 0x69, 0x6e, 0x64, 0x65,
+0x67, 0x3b, 0x44, 0xeb, 0x6e, 0x73, 0x63, 0x68, 0x64, 0x65, 0x67, 0x3b, 0x4d, 0xeb, 0x74, 0x74, 0x77, 0x6f, 0x63, 0x68,
+0x3b, 0x44, 0x6f, 0x6e, 0x6e, 0x65, 0x73, 0x63, 0x68, 0x64, 0x65, 0x67, 0x3b, 0x46, 0x72, 0x65, 0x69, 0x64, 0x65, 0x67,
+0x3b, 0x53, 0x61, 0x6d, 0x73, 0x63, 0x68, 0x64, 0x65, 0x67, 0x3b, 0x53, 0x6f, 0x6e, 0x2e, 0x3b, 0x4d, 0xe9, 0x69, 0x2e,
+0x3b, 0x44, 0xeb, 0x6e, 0x2e, 0x3b, 0x4d, 0xeb, 0x74, 0x2e, 0x3b, 0x44, 0x6f, 0x6e, 0x2e, 0x3b, 0x46, 0x72, 0x65, 0x2e,
+0x3b, 0x53, 0x61, 0x6d, 0x2e, 0x3b, 0x6e, 0x74, 0x73, 0x3b, 0x6b, 0x70, 0x61, 0x3b, 0x67, 0x68, 0x254, 0x3b, 0x74, 0x254,
+0x6d, 0x3b, 0x75, 0x6d, 0x65, 0x3b, 0x67, 0x68, 0x268, 0x3b, 0x64, 0x7a, 0x6b, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x6e, 0x74,
+0x73, 0x268, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x6b, 0x70, 0xe0, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x67, 0x68, 0x254,
+0x65, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x74, 0x254, 0x300, 0x6d, 0x6c, 0xf2, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x6d,
+0xe8, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x75, 0x67, 0x68, 0x268, 0x302, 0x6d, 0x3b, 0x74, 0x73, 0x75, 0x294, 0x6e, 0x64, 0x7a,
+0x268, 0x6b, 0x254, 0x294, 0x254, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x67, 0x3b, 0x74, 0x3b, 0x75, 0x3b, 0x67, 0x3b, 0x64, 0x3b,
+0x6e, 0x254, 0x79, 0x3b, 0x6e, 0x6a, 0x61, 0x3b, 0x75, 0x75, 0x6d, 0x3b, 0x14b, 0x67, 0x65, 0x3b, 0x6d, 0x62, 0x254, 0x3b,
+0x6b, 0x254, 0x254, 0x3b, 0x6a, 0x6f, 0x6e, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6e, 0x254, 0x302, 0x79, 0x3b, 0x14b, 0x67,
+0x77, 0xe0, 0x20, 0x6e, 0x6a, 0x61, 0x14b, 0x67, 0x75, 0x6d, 0x62, 0x61, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0xfb, 0x6d,
+0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x14b, 0x67, 0xea, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6d, 0x62, 0x254, 0x6b, 0x3b,
+0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6b, 0x254, 0x254, 0x3b, 0x14b, 0x67, 0x77, 0xe0, 0x20, 0x6a, 0xf4, 0x6e, 0x3b, 0x6e, 0x3b,
+0x6e, 0x3b, 0x75, 0x3b, 0x14b, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6a, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x64, 0x69, 0x3b, 0x41,
+0x74, 0x69, 0x6e, 0x6e, 0x69, 0x3b, 0x41, 0x74, 0x61, 0x6c, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62,
+0x61, 0x3b, 0x41, 0x6c, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x41, 0x6c, 0x7a, 0x75, 0x6d, 0x61, 0x3b, 0x41, 0x73,
+0x69, 0x62, 0x74, 0x69, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x53, 0x3b, 0xe9,
+0x74, 0x3b, 0x6d, 0x254, 0x301, 0x73, 0x3b, 0x6b, 0x77, 0x61, 0x3b, 0x6d, 0x75, 0x6b, 0x3b, 0x14b, 0x67, 0x69, 0x3b, 0x257,
+0xf3, 0x6e, 0x3b, 0x65, 0x73, 0x61, 0x3b, 0xe9, 0x74, 0x69, 0x3b, 0x6d, 0x254, 0x301, 0x73, 0xfa, 0x3b, 0x6b, 0x77, 0x61,
+0x73, 0xfa, 0x3b, 0x6d, 0x75, 0x6b, 0x254, 0x301, 0x73, 0xfa, 0x3b, 0x14b, 0x67, 0x69, 0x73, 0xfa, 0x3b, 0x257, 0xf3, 0x6e,
+0x25b, 0x73, 0xfa, 0x3b, 0x65, 0x73, 0x61, 0x253, 0x61, 0x73, 0xfa, 0x3b, 0x65, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b,
+0x14b, 0x3b, 0x257, 0x3b, 0x65, 0x3b, 0x44, 0x69, 0x6d, 0x3b, 0x54, 0x65, 0x6e, 0x3b, 0x54, 0x61, 0x6c, 0x3b, 0x41, 0x6c,
+0x61, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x41, 0x72, 0x6a, 0x3b, 0x53, 0x69, 0x62, 0x3b, 0x44, 0x69, 0x6d, 0x61, 0x73, 0x3b,
+0x54, 0x65, 0x6e, 0x65, 0x14b, 0x3b, 0x54, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x41, 0x6c, 0x61, 0x72, 0x62, 0x61, 0x79,
+0x3b, 0x41, 0x72, 0x61, 0x6d, 0x69, 0x73, 0x61, 0x79, 0x3b, 0x41, 0x72, 0x6a, 0x75, 0x6d, 0x61, 0x3b, 0x53, 0x69, 0x62,
+0x69, 0x74, 0x69, 0x3b, 0x44, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x73, 0x254,
0x301, 0x6e, 0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x3b, 0x73, 0x6d, 0x62, 0x3b, 0x73, 0x6d, 0x6c, 0x3b, 0x73, 0x6d, 0x6e, 0x3b,
-0x6d, 0x62, 0x73, 0x3b, 0x73, 0x61, 0x73, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x64,
-0x254, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x61, 0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x62, 0x61, 0x3b, 0x73,
-0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x61, 0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x6c, 0x61, 0x6c, 0x3b, 0x73, 0x254, 0x301,
-0x6e, 0x64, 0x254, 0x20, 0x6d, 0x61, 0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x6e, 0x61, 0x3b, 0x6d, 0x61, 0x62, 0xe1, 0x67, 0xe1,
-0x20, 0x6d, 0xe1, 0x20, 0x73, 0x75, 0x6b, 0x75, 0x6c, 0x3b, 0x73, 0xe1, 0x73, 0x61, 0x64, 0x69, 0x3b, 0x73, 0x3b, 0x6d,
-0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x43, 0xe4, 0x14b, 0x3b, 0x4a, 0x69, 0x65, 0x63, 0x3b,
-0x52, 0x25b, 0x77, 0x3b, 0x44, 0x69, 0x254, 0x331, 0x6b, 0x3b, 0x14a, 0x75, 0x61, 0x61, 0x6e, 0x3b, 0x44, 0x68, 0x69, 0x65,
-0x65, 0x63, 0x3b, 0x42, 0xe4, 0x6b, 0x25b, 0x6c, 0x3b, 0x43, 0xe4, 0x14b, 0x20, 0x6b, 0x75, 0x254, 0x74, 0x68, 0x3b, 0x4a,
-0x69, 0x65, 0x63, 0x20, 0x6c, 0x61, 0x331, 0x74, 0x3b, 0x52, 0x25b, 0x77, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x44,
-0x69, 0x254, 0x331, 0x6b, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x14a, 0x75, 0x61, 0x61, 0x6e, 0x20, 0x6c, 0xe4, 0x74,
-0x6e, 0x69, 0x3b, 0x44, 0x68, 0x69, 0x65, 0x65, 0x63, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x42, 0xe4, 0x6b, 0x25b,
-0x6c, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x43, 0x3b, 0x4a, 0x3b, 0x52, 0x3b, 0x44, 0x3b, 0x14a, 0x3b, 0x44, 0x3b,
-0x42, 0x3b, 0x411, 0x441, 0x3b, 0x411, 0x43d, 0x3b, 0x41e, 0x43f, 0x3b, 0x421, 0x44d, 0x3b, 0x427, 0x43f, 0x3b, 0x411, 0x44d, 0x3b,
-0x421, 0x431, 0x3b, 0x411, 0x430, 0x441, 0x43a, 0x44b, 0x4bb, 0x44b, 0x430, 0x43d, 0x43d, 0x44c, 0x430, 0x3b, 0x411, 0x44d, 0x43d, 0x438,
-0x434, 0x438, 0x44d, 0x43b, 0x438, 0x43d, 0x43d, 0x44c, 0x438, 0x43a, 0x3b, 0x41e, 0x43f, 0x442, 0x443, 0x43e, 0x440, 0x443, 0x43d, 0x43d,
-0x44c, 0x443, 0x43a, 0x3b, 0x421, 0x44d, 0x440, 0x44d, 0x434, 0x44d, 0x3b, 0x427, 0x44d, 0x43f, 0x43f, 0x438, 0x44d, 0x440, 0x3b, 0x411,
-0x44d, 0x44d, 0x442, 0x438, 0x4a5, 0x441, 0x44d, 0x3b, 0x421, 0x443, 0x431, 0x443, 0x43e, 0x442, 0x430, 0x3b, 0x411, 0x3b, 0x411, 0x3b,
-0x41e, 0x3b, 0x421, 0x3b, 0x427, 0x3b, 0x411, 0x3b, 0x421, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e,
-0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4d, 0x75,
-0x6c, 0x75, 0x6e, 0x67, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e,
-0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x61, 0x68, 0x61, 0x6d, 0x69, 0x73,
-0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4d, 0x3b,
-0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4a, 0x3b, 0x79, 0x65, 0x6e, 0x3b, 0x6b, 0x77, 0x61, 0x3b,
-0x70, 0x69, 0x6c, 0x3b, 0x74, 0x61, 0x74, 0x3b, 0x69, 0x6e, 0x65, 0x3b, 0x74, 0x61, 0x6e, 0x3b, 0x73, 0x69, 0x74, 0x3b,
-0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x79, 0x65, 0x6e, 0x67, 0x61, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79,
-0x61, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x70, 0x69, 0x6c,
-0x69, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20,
-0x79, 0x61, 0x20, 0x69, 0x6e, 0x65, 0x3b, 0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b,
-0x73, 0x69, 0x6b, 0x75, 0x20, 0x79, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x79, 0x3b, 0x6b, 0x3b, 0x70, 0x3b, 0x74,
-0x3b, 0x69, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0xa55e, 0xa54c, 0xa535, 0x3b, 0xa5f3, 0xa5e1, 0xa609, 0x3b, 0xa55a, 0xa55e, 0xa55a, 0x3b, 0xa549,
-0xa55e, 0xa552, 0x3b, 0xa549, 0xa524, 0xa546, 0xa562, 0x3b, 0xa549, 0xa524, 0xa540, 0xa56e, 0x3b, 0xa53b, 0xa52c, 0xa533, 0x3b, 0x6c, 0x61, 0x68,
-0x61, 0x64, 0x69, 0x3b, 0x74, 0x25b, 0x25b, 0x6e, 0x25b, 0x25b, 0x3b, 0x74, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x61, 0x6c,
-0x61, 0x62, 0x61, 0x3b, 0x61, 0x69, 0x6d, 0x69, 0x73, 0x61, 0x3b, 0x61, 0x69, 0x6a, 0x69, 0x6d, 0x61, 0x3b, 0x73, 0x69,
-0x253, 0x69, 0x74, 0x69, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x4d, 0xe4, 0x6e, 0x3b, 0x5a, 0x69, 0x161, 0x3b, 0x4d, 0x69, 0x74,
-0x3b, 0x46, 0x72, 0xf3, 0x3b, 0x46, 0x72, 0x69, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x53, 0x75, 0x6e, 0x6e, 0x74, 0x61, 0x67,
-0x3b, 0x4d, 0xe4, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x5a, 0x69, 0x161, 0x74, 0x61, 0x67, 0x3b, 0x4d, 0x69, 0x74, 0x74, 0x77,
-0x75, 0x10d, 0x3b, 0x46, 0x72, 0xf3, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x46, 0x72, 0x69, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x61,
-0x6d, 0x161, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x4d, 0x3b, 0x46, 0x3b, 0x46, 0x3b, 0x53, 0x3b,
-0x73, 0x64, 0x3b, 0x6d, 0x64, 0x3b, 0x6d, 0x77, 0x3b, 0x65, 0x74, 0x3b, 0x6b, 0x6c, 0x3b, 0x66, 0x6c, 0x3b, 0x73, 0x73,
-0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x25b, 0x3b, 0x6d, 0xf3, 0x6e, 0x64, 0x69, 0x65, 0x3b, 0x6d, 0x75, 0xe1, 0x6e,
-0x79, 0xe1, 0x14b, 0x6d, 0xf3, 0x6e, 0x64, 0x69, 0x65, 0x3b, 0x6d, 0x65, 0x74, 0xfa, 0x6b, 0x70, 0xed, 0xe1, 0x70, 0x25b,
-0x3b, 0x6b, 0xfa, 0x70, 0xe9, 0x6c, 0x69, 0x6d, 0x65, 0x74, 0xfa, 0x6b, 0x70, 0x69, 0x61, 0x70, 0x25b, 0x3b, 0x66, 0x65,
-0x6c, 0xe9, 0x74, 0x65, 0x3b, 0x73, 0xe9, 0x73, 0x65, 0x6c, 0xe9, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x65, 0x3b,
-0x6b, 0x3b, 0x66, 0x3b, 0x73, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x6c, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x69,
-0x65, 0x3b, 0x78, 0x75, 0x65, 0x3b, 0x76, 0x69, 0x65, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
-0x75, 0x3b, 0x6c, 0x6c, 0x75, 0x6e, 0x65, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x6d, 0x69, 0xe9, 0x72,
-0x63, 0x6f, 0x6c, 0x65, 0x73, 0x3b, 0x78, 0x75, 0x65, 0x76, 0x65, 0x73, 0x3b, 0x76, 0x69, 0x65, 0x6e, 0x72, 0x65, 0x73,
-0x3b, 0x73, 0xe1, 0x62, 0x61, 0x64, 0x75, 0x3b, 0x53, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x3b, 0x4d, 0x254, 0x301, 0x6e, 0x64,
-0x69, 0x3b, 0xc1, 0x70, 0x74, 0x61, 0x20, 0x4d, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x3b, 0x57, 0x25b, 0x301, 0x6e, 0x25b, 0x73,
-0x25b, 0x64, 0x25b, 0x3b, 0x54, 0x254, 0x301, 0x73, 0x25b, 0x64, 0x25b, 0x3b, 0x46, 0x25b, 0x6c, 0xe2, 0x79, 0x25b, 0x64, 0x25b,
-0x3b, 0x53, 0xe1, 0x73, 0x69, 0x64, 0x25b, 0x3b, 0x53, 0x254, 0x301, 0x3b, 0x4d, 0x254, 0x301, 0x3b, 0xc1, 0x4d, 0x3b, 0x57,
-0x25b, 0x301, 0x3b, 0x54, 0x254, 0x301, 0x3b, 0x46, 0x25b, 0x3b, 0x53, 0xe1, 0x3b, 0x73, 0x254, 0x6e, 0x64, 0x69, 0x3b, 0x6c,
-0x75, 0x6e, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x25b, 0x72, 0x6b, 0x25b, 0x72, 0x25b, 0x64, 0x69,
-0x3b, 0x79, 0x65, 0x64, 0x69, 0x3b, 0x76, 0x61, 0x14b, 0x64, 0x25b, 0x72, 0x25b, 0x64, 0x69, 0x3b, 0x6d, 0x254, 0x6e, 0x254,
-0x20, 0x73, 0x254, 0x6e, 0x64, 0x69, 0x3b, 0x73, 0x6f, 0x3b, 0x6c, 0x75, 0x3b, 0x6d, 0x61, 0x3b, 0x6d, 0x25b, 0x3b, 0x79,
-0x65, 0x3b, 0x76, 0x61, 0x3b, 0x6d, 0x73, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x31, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20,
-0x32, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x33, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x34, 0x3b, 0x41, 0x6e, 0x65, 0x67,
-0x20, 0x35, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x36, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x37, 0x3b, 0x41, 0x31, 0x3b,
-0x41, 0x32, 0x3b, 0x41, 0x33, 0x3b, 0x41, 0x34, 0x3b, 0x41, 0x35, 0x3b, 0x41, 0x36, 0x3b, 0x41, 0x37, 0x3b, 0x6c, 0x79,
-0x25b, 0x2bc, 0x25b, 0x301, 0x20, 0x73, 0x1e85, 0xed, 0x14b, 0x74, 0xe8, 0x3b, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6c, 0x79, 0x25b,
-0x30c, 0x2bc, 0x3b, 0x6d, 0x62, 0x254, 0x301, 0x254, 0x6e, 0x74, 0xe8, 0x20, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6c, 0x79, 0x25b,
-0x30c, 0x2bc, 0x3b, 0x74, 0x73, 0xe8, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x6d, 0x62,
-0x254, 0x301, 0x254, 0x6e, 0x74, 0xe8, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0x79, 0x25b, 0x30c,
-0x2bc, 0x3b, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6d, 0xe0, 0x67, 0x61, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x6d, 0xe0,
-0x67, 0x61, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x77, 0x61, 0x6b, 0x21f, 0x61,
-0x14b, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x77, 0x61, 0x14b, 0x17e, 0x69, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75,
-0x6e, 0x75, 0x14b, 0x70, 0x61, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x79, 0x61, 0x6d, 0x6e, 0x69, 0x3b, 0x41, 0x14b,
-0x70, 0xe9, 0x74, 0x75, 0x74, 0x6f, 0x70, 0x61, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x7a, 0x61, 0x70, 0x74, 0x61,
-0x14b, 0x3b, 0x4f, 0x77, 0xe1, 0x14b, 0x67, 0x79, 0x75, 0x17e, 0x61, 0x17e, 0x61, 0x70, 0x69, 0x3b, 0x41, 0x3b, 0x57, 0x3b,
-0x4e, 0x3b, 0x59, 0x3b, 0x54, 0x3b, 0x5a, 0x3b, 0x4f, 0x3b, 0x2d30, 0x2d59, 0x2d30, 0x2d4e, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d62, 0x2d4f,
-0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4f, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x2d30,
-0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4e, 0x2d61, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x2d62, 0x2d30, 0x2d59, 0x3b
+0x66, 0xfa, 0x6c, 0x3b, 0x73, 0xe9, 0x72, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x64,
+0x69, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20, 0x6d, 0x259, 0x301, 0x62, 0x25b, 0x30c,
+0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20, 0x6d, 0x259, 0x301, 0x6c, 0x25b, 0x301, 0x3b,
+0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x259, 0x6c, 0xfa, 0x20, 0x6d, 0x259, 0x301, 0x6e, 0x79, 0x69, 0x3b, 0x66,
+0xfa, 0x6c, 0x61, 0x64, 0xe9, 0x3b, 0x73, 0xe9, 0x72, 0x61, 0x64, 0xe9, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x73,
+0x3b, 0x73, 0x3b, 0x66, 0x3b, 0x73, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x3b, 0x6c, 0x1dd, 0x6e, 0x3b, 0x6d, 0x61, 0x61, 0x3b,
+0x6d, 0x25b, 0x6b, 0x3b, 0x6a, 0x1dd, 0x1dd, 0x3b, 0x6a, 0xfa, 0x6d, 0x3b, 0x73, 0x61, 0x6d, 0x3b, 0x73, 0x254, 0x301, 0x6e,
+0x64, 0x1dd, 0x3b, 0x6c, 0x1dd, 0x6e, 0x64, 0xed, 0x3b, 0x6d, 0x61, 0x61, 0x64, 0xed, 0x3b, 0x6d, 0x25b, 0x6b, 0x72, 0x25b,
+0x64, 0xed, 0x3b, 0x6a, 0x1dd, 0x1dd, 0x64, 0xed, 0x3b, 0x6a, 0xfa, 0x6d, 0x62, 0xe1, 0x3b, 0x73, 0x61, 0x6d, 0x64, 0xed,
+0x3b, 0x73, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x6a, 0x3b, 0x73, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4a,
+0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a,
+0x6d, 0x6f, 0x3b, 0x53, 0x61, 0x62, 0x61, 0x74, 0x6f, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a,
+0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x72, 0x61, 0x68,
+0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73,
+0x69, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x4a, 0x3b, 0x43, 0x79, 0x61, 0x3b,
+0x43, 0x6c, 0x61, 0x3b, 0x43, 0x7a, 0x69, 0x3b, 0x43, 0x6b, 0x6f, 0x3b, 0x43, 0x6b, 0x61, 0x3b, 0x43, 0x67, 0x61, 0x3b,
+0x43, 0x7a, 0x65, 0x3b, 0x43, 0x6f, 0x6d, 0x2019, 0x79, 0x61, 0x6b, 0x6b, 0x65, 0x3b, 0x43, 0x6f, 0x6d, 0x6c, 0x61, 0x61,
+0x257, 0x69, 0x69, 0x3b, 0x43, 0x6f, 0x6d, 0x7a, 0x79, 0x69, 0x69, 0x257, 0x69, 0x69, 0x3b, 0x43, 0x6f, 0x6d, 0x6b, 0x6f,
+0x6c, 0x6c, 0x65, 0x3b, 0x43, 0x6f, 0x6d, 0x6b, 0x61, 0x6c, 0x64, 0x1dd, 0x253, 0x6c, 0x69, 0x69, 0x3b, 0x43, 0x6f, 0x6d,
+0x67, 0x61, 0x69, 0x73, 0x75, 0x75, 0x3b, 0x43, 0x6f, 0x6d, 0x7a, 0x79, 0x65, 0x253, 0x73, 0x75, 0x75, 0x3b, 0x59, 0x3b,
+0x4c, 0x3b, 0x5a, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x45, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x3b, 0x6d, 0x254, 0x301,
+0x6e, 0x3b, 0x73, 0x6d, 0x62, 0x3b, 0x73, 0x6d, 0x6c, 0x3b, 0x73, 0x6d, 0x6e, 0x3b, 0x6d, 0x62, 0x73, 0x3b, 0x73, 0x61,
+0x73, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x3b, 0x6d, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x3b, 0x73, 0x254, 0x301, 0x6e,
+0x64, 0x254, 0x20, 0x6d, 0x61, 0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x62, 0x61, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20,
+0x6d, 0x61, 0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x6c, 0x61, 0x6c, 0x3b, 0x73, 0x254, 0x301, 0x6e, 0x64, 0x254, 0x20, 0x6d, 0x61,
+0x66, 0xfa, 0x20, 0x6d, 0xe1, 0x6e, 0x61, 0x3b, 0x6d, 0x61, 0x62, 0xe1, 0x67, 0xe1, 0x20, 0x6d, 0xe1, 0x20, 0x73, 0x75,
+0x6b, 0x75, 0x6c, 0x3b, 0x73, 0xe1, 0x73, 0x61, 0x64, 0x69, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x73,
+0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x43, 0xe4, 0x14b, 0x3b, 0x4a, 0x69, 0x65, 0x63, 0x3b, 0x52, 0x25b, 0x77, 0x3b, 0x44, 0x69,
+0x254, 0x331, 0x6b, 0x3b, 0x14a, 0x75, 0x61, 0x61, 0x6e, 0x3b, 0x44, 0x68, 0x69, 0x65, 0x65, 0x63, 0x3b, 0x42, 0xe4, 0x6b,
+0x25b, 0x6c, 0x3b, 0x43, 0xe4, 0x14b, 0x20, 0x6b, 0x75, 0x254, 0x74, 0x68, 0x3b, 0x4a, 0x69, 0x65, 0x63, 0x20, 0x6c, 0x61,
+0x331, 0x74, 0x3b, 0x52, 0x25b, 0x77, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x44, 0x69, 0x254, 0x331, 0x6b, 0x20, 0x6c,
+0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x14a, 0x75, 0x61, 0x61, 0x6e, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x44, 0x68, 0x69,
+0x65, 0x65, 0x63, 0x20, 0x6c, 0xe4, 0x74, 0x6e, 0x69, 0x3b, 0x42, 0xe4, 0x6b, 0x25b, 0x6c, 0x20, 0x6c, 0xe4, 0x74, 0x6e,
+0x69, 0x3b, 0x43, 0x3b, 0x4a, 0x3b, 0x52, 0x3b, 0x44, 0x3b, 0x14a, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x411, 0x441, 0x3b, 0x411,
+0x43d, 0x3b, 0x41e, 0x43f, 0x3b, 0x421, 0x44d, 0x3b, 0x427, 0x43f, 0x3b, 0x411, 0x44d, 0x3b, 0x421, 0x431, 0x3b, 0x411, 0x430, 0x441,
+0x43a, 0x44b, 0x4bb, 0x44b, 0x430, 0x43d, 0x43d, 0x44c, 0x430, 0x3b, 0x411, 0x44d, 0x43d, 0x438, 0x434, 0x438, 0x44d, 0x43b, 0x438, 0x43d,
+0x43d, 0x44c, 0x438, 0x43a, 0x3b, 0x41e, 0x43f, 0x442, 0x443, 0x43e, 0x440, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x43a, 0x3b, 0x421, 0x44d,
+0x440, 0x44d, 0x434, 0x44d, 0x3b, 0x427, 0x44d, 0x43f, 0x43f, 0x438, 0x44d, 0x440, 0x3b, 0x411, 0x44d, 0x44d, 0x442, 0x438, 0x4a5, 0x441,
+0x44d, 0x3b, 0x421, 0x443, 0x431, 0x443, 0x43e, 0x442, 0x430, 0x3b, 0x411, 0x3b, 0x411, 0x3b, 0x41e, 0x3b, 0x421, 0x3b, 0x427, 0x3b,
+0x411, 0x3b, 0x421, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x4a, 0x74, 0x74, 0x3b, 0x4a, 0x6e, 0x6e, 0x3b, 0x4a, 0x74, 0x6e, 0x3b,
+0x41, 0x6c, 0x68, 0x3b, 0x49, 0x6a, 0x75, 0x3b, 0x4a, 0x6d, 0x6f, 0x3b, 0x4d, 0x75, 0x6c, 0x75, 0x6e, 0x67, 0x75, 0x3b,
+0x4a, 0x75, 0x6d, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6e, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6d,
+0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x41, 0x6c, 0x61, 0x68, 0x61, 0x6d, 0x69, 0x73, 0x69, 0x3b, 0x49, 0x6a, 0x75, 0x6d,
+0x61, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x6d, 0x6f, 0x73, 0x69, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b,
+0x41, 0x3b, 0x49, 0x3b, 0x4a, 0x3b, 0xa55e, 0xa54c, 0xa535, 0x3b, 0xa5f3, 0xa5e1, 0xa609, 0x3b, 0xa55a, 0xa55e, 0xa55a, 0x3b, 0xa549, 0xa55e,
+0xa552, 0x3b, 0xa549, 0xa524, 0xa546, 0xa562, 0x3b, 0xa549, 0xa524, 0xa540, 0xa56e, 0x3b, 0xa53b, 0xa52c, 0xa533, 0x3b, 0x6c, 0x61, 0x68, 0x61,
+0x64, 0x69, 0x3b, 0x74, 0x25b, 0x25b, 0x6e, 0x25b, 0x25b, 0x3b, 0x74, 0x61, 0x6c, 0x61, 0x74, 0x61, 0x3b, 0x61, 0x6c, 0x61,
+0x62, 0x61, 0x3b, 0x61, 0x69, 0x6d, 0x69, 0x73, 0x61, 0x3b, 0x61, 0x69, 0x6a, 0x69, 0x6d, 0x61, 0x3b, 0x73, 0x69, 0x253,
+0x69, 0x74, 0x69, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x4d, 0xe4, 0x6e, 0x3b, 0x5a, 0x69, 0x161, 0x3b, 0x4d, 0x69, 0x74, 0x3b,
+0x46, 0x72, 0xf3, 0x3b, 0x46, 0x72, 0x69, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x53, 0x75, 0x6e, 0x6e, 0x74, 0x61, 0x67, 0x3b,
+0x4d, 0xe4, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x5a, 0x69, 0x161, 0x74, 0x61, 0x67, 0x3b, 0x4d, 0x69, 0x74, 0x74, 0x77, 0x75,
+0x10d, 0x3b, 0x46, 0x72, 0xf3, 0x6e, 0x74, 0x61, 0x67, 0x3b, 0x46, 0x72, 0x69, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x6d,
+0x161, 0x74, 0x61, 0x67, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x4d, 0x3b, 0x46, 0x3b, 0x46, 0x3b, 0x53, 0x3b, 0x73,
+0x64, 0x3b, 0x6d, 0x64, 0x3b, 0x6d, 0x77, 0x3b, 0x65, 0x74, 0x3b, 0x6b, 0x6c, 0x3b, 0x66, 0x6c, 0x3b, 0x73, 0x73, 0x3b,
+0x73, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x25b, 0x3b, 0x6d, 0xf3, 0x6e, 0x64, 0x69, 0x65, 0x3b, 0x6d, 0x75, 0xe1, 0x6e, 0x79,
+0xe1, 0x14b, 0x6d, 0xf3, 0x6e, 0x64, 0x69, 0x65, 0x3b, 0x6d, 0x65, 0x74, 0xfa, 0x6b, 0x70, 0xed, 0xe1, 0x70, 0x25b, 0x3b,
+0x6b, 0xfa, 0x70, 0xe9, 0x6c, 0x69, 0x6d, 0x65, 0x74, 0xfa, 0x6b, 0x70, 0x69, 0x61, 0x70, 0x25b, 0x3b, 0x66, 0x65, 0x6c,
+0xe9, 0x74, 0x65, 0x3b, 0x73, 0xe9, 0x73, 0x65, 0x6c, 0xe9, 0x3b, 0x73, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x65, 0x3b, 0x6b,
+0x3b, 0x66, 0x3b, 0x73, 0x3b, 0x64, 0x6f, 0x6d, 0x3b, 0x6c, 0x6c, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6d, 0x69, 0x65,
+0x3b, 0x78, 0x75, 0x65, 0x3b, 0x76, 0x69, 0x65, 0x3b, 0x73, 0x61, 0x62, 0x3b, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x75,
+0x3b, 0x6c, 0x6c, 0x75, 0x6e, 0x65, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x65, 0x73, 0x3b, 0x6d, 0x69, 0xe9, 0x72, 0x63,
+0x6f, 0x6c, 0x65, 0x73, 0x3b, 0x78, 0x75, 0x65, 0x76, 0x65, 0x73, 0x3b, 0x76, 0x69, 0x65, 0x6e, 0x72, 0x65, 0x73, 0x3b,
+0x73, 0xe1, 0x62, 0x61, 0x64, 0x75, 0x3b, 0x53, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x3b, 0x4d, 0x254, 0x301, 0x6e, 0x64, 0x69,
+0x3b, 0xc1, 0x70, 0x74, 0x61, 0x20, 0x4d, 0x254, 0x301, 0x6e, 0x64, 0x69, 0x3b, 0x57, 0x25b, 0x301, 0x6e, 0x25b, 0x73, 0x25b,
+0x64, 0x25b, 0x3b, 0x54, 0x254, 0x301, 0x73, 0x25b, 0x64, 0x25b, 0x3b, 0x46, 0x25b, 0x6c, 0xe2, 0x79, 0x25b, 0x64, 0x25b, 0x3b,
+0x53, 0xe1, 0x73, 0x69, 0x64, 0x25b, 0x3b, 0x53, 0x254, 0x301, 0x3b, 0x4d, 0x254, 0x301, 0x3b, 0xc1, 0x4d, 0x3b, 0x57, 0x25b,
+0x301, 0x3b, 0x54, 0x254, 0x301, 0x3b, 0x46, 0x25b, 0x3b, 0x53, 0xe1, 0x3b, 0x73, 0x254, 0x6e, 0x64, 0x69, 0x3b, 0x6c, 0x75,
+0x6e, 0x64, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x64, 0x69, 0x3b, 0x6d, 0x25b, 0x72, 0x6b, 0x25b, 0x72, 0x25b, 0x64, 0x69, 0x3b,
+0x79, 0x65, 0x64, 0x69, 0x3b, 0x76, 0x61, 0x14b, 0x64, 0x25b, 0x72, 0x25b, 0x64, 0x69, 0x3b, 0x6d, 0x254, 0x6e, 0x254, 0x20,
+0x73, 0x254, 0x6e, 0x64, 0x69, 0x3b, 0x73, 0x6f, 0x3b, 0x6c, 0x75, 0x3b, 0x6d, 0x61, 0x3b, 0x6d, 0x25b, 0x3b, 0x79, 0x65,
+0x3b, 0x76, 0x61, 0x3b, 0x6d, 0x73, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x31, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x32,
+0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x33, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x34, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20,
+0x35, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x36, 0x3b, 0x41, 0x6e, 0x65, 0x67, 0x20, 0x37, 0x3b, 0x41, 0x31, 0x3b, 0x41,
+0x32, 0x3b, 0x41, 0x33, 0x3b, 0x41, 0x34, 0x3b, 0x41, 0x35, 0x3b, 0x41, 0x36, 0x3b, 0x41, 0x37, 0x3b, 0x6c, 0x79, 0x25b,
+0x2bc, 0x25b, 0x301, 0x20, 0x73, 0x1e85, 0xed, 0x14b, 0x74, 0xe8, 0x3b, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6c, 0x79, 0x25b, 0x30c,
+0x2bc, 0x3b, 0x6d, 0x62, 0x254, 0x301, 0x254, 0x6e, 0x74, 0xe8, 0x20, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6c, 0x79, 0x25b, 0x30c,
+0x2bc, 0x3b, 0x74, 0x73, 0xe8, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x6d, 0x62, 0x254,
+0x301, 0x254, 0x6e, 0x74, 0xe8, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc,
+0x3b, 0x6d, 0x76, 0x66, 0xf2, 0x20, 0x6d, 0xe0, 0x67, 0x61, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x6d, 0xe0, 0x67,
+0x61, 0x20, 0x6c, 0x79, 0x25b, 0x30c, 0x2bc, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x77, 0x61, 0x6b, 0x21f, 0x61, 0x14b,
+0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x77, 0x61, 0x14b, 0x17e, 0x69, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x6e,
+0x75, 0x14b, 0x70, 0x61, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x79, 0x61, 0x6d, 0x6e, 0x69, 0x3b, 0x41, 0x14b, 0x70,
+0xe9, 0x74, 0x75, 0x74, 0x6f, 0x70, 0x61, 0x3b, 0x41, 0x14b, 0x70, 0xe9, 0x74, 0x75, 0x7a, 0x61, 0x70, 0x74, 0x61, 0x14b,
+0x3b, 0x4f, 0x77, 0xe1, 0x14b, 0x67, 0x79, 0x75, 0x17e, 0x61, 0x17e, 0x61, 0x70, 0x69, 0x3b, 0x41, 0x3b, 0x57, 0x3b, 0x4e,
+0x3b, 0x59, 0x3b, 0x54, 0x3b, 0x5a, 0x3b, 0x4f, 0x3b, 0x2d30, 0x2d59, 0x2d30, 0x2d4e, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d62, 0x2d4f, 0x2d30,
+0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4f, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d55, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d3d, 0x2d61, 0x2d30, 0x2d59,
+0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d4e, 0x2d61, 0x2d30, 0x2d59, 0x3b, 0x2d30, 0x2d59, 0x2d49, 0x2d39, 0x2d62, 0x2d30, 0x2d59, 0x3b, 0x6e, 0x6a, 0x65,
+0x3b, 0x70, 0xf3, 0x6e, 0x3b, 0x77, 0x61, 0x142, 0x3b, 0x73, 0x72, 0x6a, 0x3b, 0x73, 0x74, 0x77, 0x3b, 0x70, 0x11b, 0x74,
+0x3b, 0x73, 0x6f, 0x62, 0x3b, 0x6e, 0x6a, 0x65, 0x17a, 0x65, 0x6c, 0x61, 0x3b, 0x70, 0xf3, 0x6e, 0x6a, 0x65, 0x17a, 0x65,
+0x6c, 0x65, 0x3b, 0x77, 0x61, 0x142, 0x74, 0x6f, 0x72, 0x61, 0x3b, 0x73, 0x72, 0x6a, 0x6f, 0x64, 0x61, 0x3b, 0x73, 0x74,
+0x77, 0xf3, 0x72, 0x74, 0x6b, 0x3b, 0x70, 0x11b, 0x74, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x6e, 0x3b,
+0x70, 0x3b, 0x77, 0x3b, 0x73, 0x3b, 0x73, 0x3b, 0x70, 0x3b, 0x73, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x70, 0xf3, 0x6e, 0x3b,
+0x77, 0x75, 0x74, 0x3b, 0x73, 0x72, 0x6a, 0x3b, 0x161, 0x74, 0x77, 0x3b, 0x70, 0x6a, 0x61, 0x3b, 0x73, 0x6f, 0x62, 0x3b,
+0x6e, 0x6a, 0x65, 0x64, 0x17a, 0x65, 0x6c, 0x61, 0x3b, 0x70, 0xf3, 0x6e, 0x64, 0x17a, 0x65, 0x6c, 0x61, 0x3b, 0x77, 0x75,
+0x74, 0x6f, 0x72, 0x61, 0x3b, 0x73, 0x72, 0x6a, 0x65, 0x64, 0x61, 0x3b, 0x161, 0x74, 0x77, 0xf3, 0x72, 0x74, 0x6b, 0x3b,
+0x70, 0x6a, 0x61, 0x74, 0x6b, 0x3b, 0x73, 0x6f, 0x62, 0x6f, 0x74, 0x61, 0x3b, 0x6e, 0x3b, 0x70, 0x3b, 0x77, 0x3b, 0x73,
+0x3b, 0x161, 0x3b, 0x70, 0x3b, 0x73, 0x3b, 0x70, 0x61, 0x3b, 0x76, 0x75, 0x3b, 0x6d, 0x61, 0x3b, 0x6b, 0x6f, 0x3b, 0x74,
+0x75, 0x3b, 0x76, 0xe1, 0x3b, 0x6c, 0xe1, 0x3b, 0x70, 0x61, 0x73, 0x65, 0x70, 0x65, 0x69, 0x76, 0x69, 0x3b, 0x76, 0x75,
+0x6f, 0x73, 0x73, 0x61, 0x72, 0x67, 0xe2, 0x3b, 0x6d, 0x61, 0x6a, 0x65, 0x62, 0x61, 0x72, 0x67, 0xe2, 0x3b, 0x6b, 0x6f,
+0x73, 0x6b, 0x6f, 0x6b, 0x6b, 0x6f, 0x3b, 0x74, 0x75, 0x6f, 0x72, 0xe2, 0x73, 0x74, 0xe2, 0x68, 0x3b, 0x76, 0xe1, 0x73,
+0x74, 0x75, 0x70, 0x70, 0x65, 0x69, 0x76, 0x69, 0x3b, 0x6c, 0xe1, 0x76, 0x75, 0x72, 0x64, 0xe2, 0x68, 0x3b, 0x70, 0x61,
+0x73, 0x65, 0x70, 0x65, 0x65, 0x69, 0x76, 0x69, 0x3b, 0x76, 0x75, 0x6f, 0x73, 0x73, 0x61, 0x61, 0x72, 0x67, 0xe2, 0x3b,
+0x6d, 0x61, 0x6a, 0x65, 0x62, 0x61, 0x61, 0x72, 0x67, 0xe2, 0x3b, 0x6b, 0x6f, 0x73, 0x6b, 0x6f, 0x68, 0x6f, 0x3b, 0x74,
+0x75, 0x6f, 0x72, 0xe2, 0x73, 0x74, 0x75, 0x76, 0x3b, 0x76, 0xe1, 0x73, 0x74, 0x75, 0x70, 0x70, 0x65, 0x65, 0x69, 0x76,
+0x69, 0x3b, 0x6c, 0xe1, 0x76, 0x75, 0x72, 0x64, 0x75, 0x76, 0x3b, 0x50, 0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x54,
+0x3b, 0x56, 0x3b, 0x4c, 0x3b
};
static const ushort am_data[] = {
0x41, 0x4d, 0x57, 0x44, 0x76, 0x6d, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x64, 0x69, 0x74, 0x65, 0x1325, 0x12cb, 0x1275, 0x635, 0x56f,
0x565, 0x57d, 0x585, 0x580, 0x56b, 0x581, 0x20, 0x561, 0x57c, 0x561, 0x57b, 0x9aa, 0x9c2, 0x9f0, 0x9cd, 0x9ac, 0x9be, 0x9b9, 0x9cd, 0x9a3,
-0x9aa, 0x9c2, 0x9b0, 0x9cd, 0x9ac, 0x9be, 0x9b9, 0x9cd, 0x9a3, 0xf66, 0xf94, 0xf0b, 0xf46, 0xf0b, 0x43f, 0x440, 0x2e, 0x43e, 0x431, 0x2e,
-0x1014, 0x1036, 0x1014, 0x1000, 0x103a, 0x434, 0x430, 0x20, 0x43f, 0x430, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x1796, 0x17d2, 0x179a, 0x17b9, 0x1780,
-0x61, 0x2e, 0x20, 0x6d, 0x2e, 0x4e0a, 0x5348, 0xd801, 0xdc08, 0xd801, 0xdc23, 0x61, 0x6d, 0x61, 0x2e, 0x6d, 0x2e, 0x61, 0x70, 0x2e,
-0x10d3, 0x10d8, 0x10da, 0x10d8, 0x10e1, 0x76, 0x6f, 0x72, 0x6d, 0x2e, 0x3c0, 0x2e, 0x3bc, 0x2e, 0x5dc, 0x5e4, 0x5e0, 0x5d4, 0x5f4, 0x5e6,
-0x92a, 0x942, 0x930, 0x94d, 0x935, 0x93e, 0x939, 0x94d, 0x928, 0x64, 0x65, 0x2e, 0x66, 0x2e, 0x68, 0x2e, 0x5348, 0x524d, 0x442, 0x4af,
-0x441, 0x43a, 0x435, 0x20, 0x434, 0x435, 0x439, 0x456, 0x43d, 0x442, 0x4af, 0x448, 0x43a, 0x4e9, 0x20, 0x447, 0x435, 0x439, 0x438, 0x43d,
-0x43a, 0x438, 0xc624, 0xc804, 0x5a, 0x2e, 0x4d, 0x55, 0x2e, 0xe81, 0xec8, 0xead, 0xe99, 0xe97, 0xec8, 0xebd, 0xe87, 0x70, 0x72, 0x69,
-0x65, 0x6b, 0x161, 0x70, 0x75, 0x73, 0x64, 0x69, 0x65, 0x6e, 0x101, 0x6e, 0x74, 0x254, 0x301, 0x6e, 0x67, 0x254, 0x301, 0x70,
-0x72, 0x69, 0x65, 0x161, 0x70, 0x69, 0x65, 0x74, 0x43f, 0x440, 0x435, 0x442, 0x43f, 0x43b, 0x430, 0x434, 0x43d, 0x435, 0x50, 0x47,
-0x51, 0x4e, 0x5b, 0x41, 0x4d, 0x5d, 0x4ae, 0x4e8, 0x92a, 0x942, 0x930, 0x94d, 0x935, 0x20, 0x92e, 0x927, 0x94d, 0x92f, 0x93e, 0x928,
-0x94d, 0x939, 0x63a, 0x2e, 0x645, 0x2e, 0x642, 0x628, 0x644, 0x200c, 0x627, 0x632, 0x638, 0x647, 0x631, 0x64, 0x61, 0x20, 0x6d, 0x61,
-0x6e, 0x68, 0xe3, 0x434, 0x43e, 0x20, 0x43f, 0x43e, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x4e, 0x44, 0x43f, 0x440, 0x435, 0x20, 0x43f,
-0x43e, 0x434, 0x43d, 0x435, 0x70, 0x72, 0x65, 0x20, 0x70, 0x6f, 0x64, 0x6e, 0x65, 0xdb4, 0xdd9, 0x2e, 0xdc0, 0x2e, 0x64, 0x6f,
-0x70, 0x2e, 0x73, 0x6e, 0x2e, 0x66, 0x6d, 0xbae, 0xbc1, 0xbb1, 0xbcd, 0xbaa, 0xb95, 0xbb2, 0xbcd, 0xe01, 0xe48, 0xe2d, 0xe19, 0xe40,
-0xe17, 0xe35, 0xe48, 0xe22, 0xe07, 0xf66, 0xf94, 0xf0b, 0xf51, 0xfb2, 0xf7c, 0xf0b, 0x1295, 0x1309, 0x1206, 0x20, 0x1230, 0x12d3, 0x1270, 0xd6,
-0xd6, 0x434, 0x43f, 0x642, 0x628, 0x644, 0x20, 0x62f, 0x648, 0x67e, 0x6c1, 0x631, 0x53, 0x41, 0xc0, 0xe1, 0x72, 0x1ecd, 0x300, 0xc0,
-0xe1, 0x72, 0x254, 0x300, 0x45, 0x6b, 0x75, 0x73, 0x65, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x61, 0x67,
-0x41, 0x4e, 0x92e, 0x2e, 0x92a, 0x942, 0x2e, 0x41, 0x2e, 0x4d, 0x2e, 0x128, 0x79, 0x61, 0x6b, 0x77, 0x61, 0x6b, 0x79, 0x61,
-0x14b, 0x64, 0x69, 0xa3b8, 0xa111, 0x4d, 0x61, 0x2f, 0x4d, 0x6f, 0x4c, 0x75, 0x6d, 0x61, 0x20, 0x6c, 0x77, 0x61, 0x20, 0x4b,
-0x73, 0x75, 0x62, 0x61, 0x6b, 0x61, 0x4b, 0x69, 0x72, 0x6f, 0x6b, 0x6f, 0x54, 0x65, 0x73, 0x69, 0x72, 0x61, 0x6e, 0x6b,
-0x61, 0x6e, 0x67, 0x27, 0x61, 0x6d, 0x61, 0x2d5c, 0x2d49, 0x2d3c, 0x2d30, 0x2d61, 0x2d5c, 0x74, 0x69, 0x66, 0x61, 0x77, 0x74, 0x6e,
-0x20, 0x74, 0x75, 0x66, 0x61, 0x74, 0x70, 0x61, 0x6d, 0x69, 0x6c, 0x61, 0x75, 0x75, 0x74, 0x75, 0x6b, 0x6f, 0x4b, 0x49,
-0x13cc, 0x13be, 0x13b4, 0x4d, 0x75, 0x68, 0x69, 0x54, 0x4f, 0x4f, 0x75, 0x6c, 0x75, 0x63, 0x68, 0x65, 0x6c, 0x6f, 0x52, 0x168,
-0x42, 0x65, 0x65, 0x74, 0x1c1, 0x67, 0x6f, 0x61, 0x67, 0x61, 0x73, 0x190, 0x6e, 0x6b, 0x61, 0x6b, 0x25b, 0x6e, 0x79, 0xe1,
-0x4d, 0x75, 0x6e, 0x6b, 0x79, 0x6f, 0x69, 0x63, 0x68, 0x65, 0x68, 0x65, 0x61, 0x76, 0x6f, 0x54, 0x61, 0x70, 0x61, 0x72,
-0x61, 0x63, 0x68, 0x75, 0x41, 0x64, 0x64, 0x75, 0x68, 0x61, 0x4f, 0x44, 0x5a, 0x64, 0x61, 0x74, 0x20, 0x61, 0x7a, 0x61,
-0x6c, 0x6d, 0x61, 0x6b, 0x65, 0x6f, 0x92b, 0x941, 0x902, 0x44, 0x69, 0x6e, 0x64, 0x61, 0x61, 0x2e, 0x67, 0x49, 0x20, 0x62,
-0x69, 0x6b, 0x25b, 0x302, 0x67, 0x6c, 0xe0, 0x53, 0x75, 0x62, 0x62, 0x61, 0x61, 0x68, 0x69, 0x69, 0x64, 0x69, 0x253, 0x61,
-0x6b, 0xed, 0x6b, 0xed, 0x72, 0xed, 0x67, 0x73, 0xe1, 0x72, 0xfa, 0x77, 0xe1, 0x77, 0x69, 0x63, 0x68, 0x69, 0x73, 0x68,
-0x75, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6d, 0x61, 0x6e, 0xe1, 0x52, 0x57, 0x4c, 0x77, 0x61, 0x6d, 0x69, 0x6c, 0x61, 0x77,
-0x75, 0x79, 0x61, 0x20, 0x61, 0x73, 0x75, 0x62, 0x75, 0x79, 0x69, 0x6b, 0x69, 0x25b, 0x6d, 0x25b, 0x301, 0x25b, 0x6d, 0x6d,
-0x62, 0x61, 0x2019, 0x6d, 0x62, 0x61, 0x2019, 0x6d, 0x62, 0x61, 0x2bc, 0xe1, 0x6d, 0x62, 0x61, 0x2bc
+0x9aa, 0x9c2, 0x9b0, 0x9cd, 0x9ac, 0x9be, 0x9b9, 0x9cd, 0x9a3, 0xf66, 0xf94, 0xf0b, 0xf46, 0xf0b, 0x41, 0x2e, 0x4d, 0x2e, 0x43f, 0x440,
+0x2e, 0x43e, 0x431, 0x2e, 0x1014, 0x1036, 0x1014, 0x1000, 0x103a, 0x434, 0x430, 0x20, 0x43f, 0x430, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x1796,
+0x17d2, 0x179a, 0x17b9, 0x1780, 0x61, 0x2e, 0x20, 0x6d, 0x2e, 0x4e0a, 0x5348, 0x64, 0x6f, 0x70, 0x6f, 0x6c, 0x65, 0x64, 0x6e, 0x65,
+0x61, 0x2e, 0x6d, 0x2e, 0x75, 0x6d, 0x20, 0x66, 0x79, 0x72, 0x72, 0x61, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x61, 0x70,
+0x2e, 0x6d, 0x76, 0x6f, 0x72, 0x6d, 0x2e, 0x3c0, 0x2e, 0x3bc, 0x2e, 0x5dc, 0x5e4, 0x5e0, 0x5d4, 0x5f4, 0x5e6, 0x92a, 0x942, 0x930,
+0x94d, 0x935, 0x93e, 0x939, 0x94d, 0x928, 0x64, 0x65, 0x2e, 0x66, 0x2e, 0x68, 0x2e, 0x5348, 0x524d, 0xcaa, 0xcc2, 0xcb0, 0xccd, 0xcb5,
+0xcbe, 0xcb9, 0xccd, 0xca8, 0x442, 0x430, 0x4a3, 0x435, 0x440, 0x442, 0x435, 0x4a3, 0x433, 0x456, 0x442, 0x430, 0x4a3, 0x43a, 0x44b, 0xc624,
+0xc804, 0x5a, 0x2e, 0x4d, 0x55, 0x2e, 0xe81, 0xec8, 0xead, 0xe99, 0xe97, 0xec8, 0xebd, 0xe87, 0x70, 0x72, 0x69, 0x65, 0x6b, 0x161,
+0x70, 0x75, 0x73, 0x64, 0x69, 0x65, 0x6e, 0x101, 0x6e, 0x74, 0x254, 0x301, 0x6e, 0x67, 0x254, 0x301, 0x70, 0x72, 0x69, 0x65,
+0x161, 0x70, 0x69, 0x65, 0x74, 0x43f, 0x440, 0x435, 0x442, 0x43f, 0x43b, 0x430, 0x434, 0x43d, 0x435, 0x50, 0x47, 0x92e, 0x2e, 0x92a,
+0x942, 0x2e, 0x4ae, 0x4e8, 0x61, 0x6d, 0x63a, 0x2e, 0x645, 0x2e, 0x642, 0x628, 0x644, 0x200c, 0x627, 0x632, 0x638, 0x647, 0x631, 0x64,
+0x61, 0x20, 0x6d, 0x61, 0x6e, 0x68, 0xe3, 0xa2a, 0xa42, 0x2e, 0xa26, 0xa41, 0x2e, 0x4e, 0x44, 0x43f, 0x440, 0x435, 0x20, 0x43f,
+0x43e, 0x434, 0x43d, 0x435, 0x70, 0x72, 0x65, 0x20, 0x70, 0x6f, 0x64, 0x6e, 0x65, 0x4d5, 0x43c, 0x431, 0x438, 0x441, 0x431, 0x43e,
+0x43d, 0x44b, 0x20, 0x440, 0x430, 0x437, 0x43c, 0x4d5, 0xdb4, 0xdd9, 0x2e, 0xdc0, 0x2e, 0x64, 0x6f, 0x70, 0x6f, 0x6c, 0x75, 0x64,
+0x6e, 0x69, 0x61, 0x64, 0x6f, 0x70, 0x2e, 0x73, 0x6e, 0x2e, 0x79, 0x61, 0x20, 0x61, 0x73, 0x75, 0x62, 0x75, 0x79, 0x69,
+0x66, 0x6d, 0xbae, 0xbc1, 0xbb1, 0xbcd, 0xbaa, 0xb95, 0xbb2, 0xbcd, 0x5b, 0x41, 0x4d, 0x5d, 0xe01, 0xe48, 0xe2d, 0xe19, 0xe40, 0xe17,
+0xe35, 0xe48, 0xe22, 0xe07, 0xf66, 0xf94, 0xf0b, 0xf51, 0xfb2, 0xf7c, 0xf0b, 0x1295, 0x1309, 0x1206, 0x20, 0x1230, 0x12d3, 0x1270, 0xd6, 0xd6,
+0x686, 0x6c8, 0x634, 0x62a, 0x649, 0x646, 0x20, 0x628, 0x6c7, 0x631, 0x6c7, 0x646, 0x434, 0x43f, 0x642, 0x628, 0x644, 0x20, 0x62f, 0x648,
+0x67e, 0x6c1, 0x631, 0x54, 0x4f, 0x53, 0x41, 0xc0, 0xe1, 0x72, 0x1ecd, 0x300, 0xc0, 0xe1, 0x72, 0x254, 0x300, 0x45, 0x6b, 0x75,
+0x73, 0x65, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x61, 0x67, 0x70, 0x72, 0x69, 0x6a, 0x65, 0x20, 0x70,
+0x6f, 0x64, 0x6e, 0x65, 0x41, 0x4e, 0x128, 0x79, 0x61, 0x6b, 0x77, 0x61, 0x6b, 0x79, 0x61, 0x61, 0x2e, 0x14b, 0x64, 0x69,
+0xa3b8, 0xa111, 0x69, 0x111, 0x69, 0x74, 0x62, 0x65, 0x61, 0x69, 0x76, 0x65, 0x74, 0x4d, 0x61, 0x2f, 0x4d, 0x6f, 0x4c, 0x75,
+0x6d, 0x61, 0x20, 0x6c, 0x77, 0x61, 0x20, 0x4b, 0x73, 0x75, 0x62, 0x61, 0x6b, 0x61, 0x4b, 0x69, 0x72, 0x6f, 0x6b, 0x6f,
+0x54, 0x65, 0x73, 0x69, 0x72, 0x61, 0x6e, 0x6b, 0x61, 0x6e, 0x67, 0x2019, 0x61, 0x6d, 0x61, 0x2d5c, 0x2d49, 0x2d3c, 0x2d30, 0x2d61,
+0x2d5c, 0x74, 0x69, 0x66, 0x61, 0x77, 0x74, 0x6e, 0x20, 0x74, 0x75, 0x66, 0x61, 0x74, 0x70, 0x61, 0x6d, 0x69, 0x6c, 0x61,
+0x75, 0x75, 0x74, 0x75, 0x6b, 0x6f, 0x4b, 0x49, 0x13cc, 0x13be, 0x13b4, 0x4d, 0x75, 0x68, 0x69, 0x54, 0x4f, 0x4f, 0x75, 0x6c,
+0x75, 0x63, 0x68, 0x65, 0x6c, 0x6f, 0x52, 0x168, 0x6b, 0x61, 0x72, 0x6f, 0x6f, 0x6e, 0x1c1, 0x67, 0x6f, 0x61, 0x67, 0x61,
+0x73, 0x55, 0x68, 0x72, 0x20, 0x76, 0xf6, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x61, 0x61, 0x63, 0x68, 0x73, 0x190, 0x6e, 0x6b,
+0x61, 0x6b, 0x25b, 0x6e, 0x79, 0xe1, 0x4d, 0x75, 0x6e, 0x6b, 0x79, 0x6f, 0x69, 0x63, 0x68, 0x65, 0x68, 0x65, 0x61, 0x76,
+0x6f, 0x54, 0x61, 0x70, 0x61, 0x72, 0x61, 0x63, 0x68, 0x75, 0x41, 0x64, 0x64, 0x75, 0x68, 0x61, 0x4f, 0x44, 0x5a, 0x64,
+0x61, 0x74, 0x20, 0x61, 0x7a, 0x61, 0x6c, 0x6d, 0x61, 0x6b, 0x65, 0x6f, 0x92b, 0x941, 0x902, 0x44, 0x69, 0x6e, 0x64, 0x61,
+0x6d, 0x6f, 0x69, 0x65, 0x73, 0x61, 0x2e, 0x67, 0x49, 0x20, 0x62, 0x69, 0x6b, 0x25b, 0x302, 0x67, 0x6c, 0xe0, 0x53, 0x75,
+0x62, 0x62, 0x61, 0x61, 0x68, 0x69, 0x69, 0x64, 0x69, 0x253, 0x61, 0x6b, 0xed, 0x6b, 0xed, 0x72, 0xed, 0x67, 0x73, 0xe1,
+0x72, 0xfa, 0x77, 0xe1, 0x77, 0x69, 0x63, 0x68, 0x69, 0x73, 0x68, 0x75, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6d, 0x61, 0x6e,
+0xe1, 0x52, 0x57, 0x42d, 0x418, 0x4c, 0x77, 0x61, 0x6d, 0x69, 0x6c, 0x61, 0x77, 0x75, 0x6b, 0x69, 0x25b, 0x6d, 0x25b, 0x301,
+0x25b, 0x6d, 0x6d, 0x62, 0x61, 0xa78c, 0x6d, 0x62, 0x61, 0xa78c, 0x6d, 0x62, 0x61, 0x2bc, 0xe1, 0x6d, 0x62, 0x61, 0x2bc, 0x64,
+0x6f, 0x70, 0x6f, 0x142, 0x64, 0x6e, 0x6a, 0x61
};
static const ushort pm_data[] = {
0x50, 0x4d, 0x57, 0x42, 0x6e, 0x6d, 0x2e, 0x70, 0x61, 0x73, 0x64, 0x69, 0x74, 0x65, 0x12a8, 0x1230, 0x12d3, 0x1275, 0x645, 0x56f,
0x565, 0x57d, 0x585, 0x580, 0x56b, 0x581, 0x20, 0x570, 0x565, 0x57f, 0x578, 0x985, 0x9aa, 0x9f0, 0x9be, 0x9b9, 0x9cd, 0x9a3, 0x985, 0x9aa,
-0x9b0, 0x9be, 0x9b9, 0x9cd, 0x9a3, 0xf55, 0xfb1, 0xf72, 0xf0b, 0xf46, 0xf0b, 0x441, 0x43b, 0x2e, 0x43e, 0x431, 0x2e, 0x100a, 0x1014, 0x1031,
-0x43f, 0x430, 0x441, 0x43b, 0x44f, 0x20, 0x43f, 0x430, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x179b, 0x17d2, 0x1784, 0x17b6, 0x1785, 0x70, 0x2e,
-0x20, 0x6d, 0x2e, 0x4e0b, 0x5348, 0xd801, 0xdc11, 0xd801, 0xdc23, 0x70, 0x6d, 0x70, 0x2e, 0x6d, 0x2e, 0x69, 0x70, 0x2e, 0x10e1, 0x10d0,
-0x10e6, 0x10d0, 0x10db, 0x10dd, 0x10e1, 0x6e, 0x61, 0x63, 0x68, 0x6d, 0x2e, 0x3bc, 0x2e, 0x3bc, 0x2e, 0x5d0, 0x5d7, 0x5d4, 0x5f4, 0x5e6,
-0x905, 0x92a, 0x930, 0x93e, 0x939, 0x94d, 0x928, 0x64, 0x75, 0x2e, 0x65, 0x2e, 0x68, 0x2e, 0x5348, 0x5f8c, 0x442, 0x4af, 0x441, 0x442,
-0x435, 0x43d, 0x20, 0x43a, 0x435, 0x439, 0x456, 0x43d, 0x442, 0x4af, 0x448, 0x442, 0x4e9, 0x43d, 0x20, 0x43a, 0x438, 0x439, 0x438, 0x43d,
-0x43a, 0x438, 0xc624, 0xd6c4, 0x5a, 0x2e, 0x4d, 0x57, 0x2e, 0xeab, 0xebc, 0xeb1, 0xe87, 0xe97, 0xec8, 0xebd, 0xe87, 0x70, 0x113, 0x63,
-0x70, 0x75, 0x73, 0x64, 0x69, 0x65, 0x6e, 0x101, 0x6d, 0x70, 0xf3, 0x6b, 0x77, 0x61, 0x70, 0x6f, 0x70, 0x69, 0x65, 0x74,
-0x43f, 0x43e, 0x43f, 0x43b, 0x430, 0x434, 0x43d, 0x435, 0x50, 0x54, 0x47, 0x57, 0x4e, 0x5b, 0x50, 0x4d, 0x5d, 0x4ae, 0x425, 0x909,
-0x924, 0x94d, 0x924, 0x930, 0x20, 0x92e, 0x927, 0x94d, 0x92f, 0x93e, 0x928, 0x94d, 0x939, 0x63a, 0x2e, 0x648, 0x2e, 0x628, 0x639, 0x62f,
-0x627, 0x632, 0x638, 0x647, 0x631, 0x64, 0x61, 0x20, 0x74, 0x61, 0x72, 0x64, 0x65, 0x73, 0x6d, 0x43f, 0x43e, 0x441, 0x43b, 0x435,
-0x20, 0x43f, 0x43e, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x4c, 0x4b, 0x43f, 0x43e, 0x43f, 0x43e, 0x434, 0x43d, 0x435, 0x70, 0x6f, 0x70,
-0x6f, 0x64, 0x6e, 0x65, 0xdb4, 0x2e, 0xdc0, 0x2e, 0x70, 0x6f, 0x70, 0x2e, 0x67, 0x6e, 0x2e, 0x65, 0x6d, 0xbaa, 0xbbf, 0xbb1,
-0xbcd, 0xbaa, 0xb95, 0xbb2, 0xbcd, 0xe2b, 0xe25, 0xe31, 0xe07, 0xe40, 0xe17, 0xe35, 0xe48, 0xe22, 0xe07, 0xf55, 0xfb1, 0xf72, 0xf0b, 0xf51,
-0xfb2, 0xf7c, 0xf0b, 0x12f5, 0x1215, 0x122d, 0x20, 0x1230, 0x12d3, 0x1275, 0xd6, 0x53, 0x43f, 0x43f, 0x628, 0x639, 0x62f, 0x20, 0x62f, 0x648,
-0x67e, 0x6c1, 0x631, 0x43, 0x48, 0x1ecc, 0x300, 0x73, 0xe1, 0x6e, 0x186, 0x300, 0x73, 0xe1, 0x6e, 0x4e, 0x74, 0x61, 0x6d, 0x62,
-0x61, 0x6d, 0x61, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x61, 0x67, 0x45, 0x57, 0x92e, 0x2e, 0x928, 0x902,
-0x2e, 0x50, 0x2e, 0x4d, 0x2e, 0x128, 0x79, 0x61, 0x77, 0x129, 0x6f, 0x6f, 0x263, 0x65, 0x74, 0x72, 0x254, 0x6e, 0x61, 0x6d,
-0x2e, 0xa06f, 0xa2d2, 0x4d, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x2f, 0x4d, 0x6f, 0x67, 0x6c, 0x75, 0x6d, 0x61, 0x20, 0x6c, 0x77,
-0x61, 0x20, 0x70, 0x6b, 0x69, 0x6b, 0x69, 0x69, 0x257, 0x65, 0x48, 0x77, 0x61, 0x129, 0x2d, 0x69, 0x6e, 0x129, 0x54, 0x65,
-0x69, 0x70, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x6f, 0x74, 0x6f, 0x2d5c, 0x2d30, 0x2d37, 0x2d33, 0x2d33, 0x2d6f, 0x2d30, 0x2d5c, 0x74, 0x61,
-0x64, 0x67, 0x67, 0x2b7, 0x61, 0x74, 0x6e, 0x20, 0x74, 0x6d, 0x65, 0x64, 0x64, 0x69, 0x74, 0x70, 0x61, 0x6d, 0x75, 0x6e,
-0x79, 0x69, 0x6b, 0x79, 0x69, 0x75, 0x6b, 0x6f, 0x6e, 0x79, 0x69, 0x55, 0x54, 0x13d2, 0x13af, 0x13f1, 0x13a2, 0x13d7, 0x13e2, 0x43,
-0x68, 0x69, 0x6c, 0x6f, 0x4d, 0x55, 0x55, 0x61, 0x6b, 0x61, 0x73, 0x75, 0x62, 0x61, 0x168, 0x47, 0x4b, 0x65, 0x6d, 0x6f,
-0x1c3, 0x75, 0x69, 0x61, 0x73, 0x190, 0x6e, 0x64, 0xe1, 0x6d, 0xe2, 0x45, 0x69, 0x67, 0x75, 0x6c, 0x6f, 0x69, 0x63, 0x68,
-0x61, 0x6d, 0x74, 0x68, 0x69, 0x45, 0x62, 0x6f, 0x6e, 0x67, 0x69, 0x41, 0x6c, 0x75, 0x75, 0x6c, 0x61, 0x4f, 0x54, 0x1e0c,
-0x65, 0x66, 0x66, 0x69, 0x72, 0x20, 0x61, 0x7a, 0x61, 0x6e, 0x79, 0x69, 0x61, 0x67, 0x68, 0x75, 0x6f, 0x92c, 0x947, 0x932,
-0x93e, 0x938, 0x947, 0x44, 0x69, 0x6c, 0x6f, 0x6c, 0x6f, 0x61, 0x2e, 0x6b, 0x49, 0x20, 0x253, 0x75, 0x67, 0x61, 0x6a, 0x254,
-0x70, 0x5a, 0x61, 0x61, 0x72, 0x69, 0x6b, 0x61, 0x79, 0x20, 0x62, 0x65, 0x62, 0x79, 0xe1, 0x6d, 0x75, 0x6e, 0x67, 0x259,
-0x67, 0xf3, 0x67, 0x259, 0x6c, 0x65, 0x63, 0x25b, 0x25b, 0x301, 0x6e, 0x6b, 0x6f, 0x6d, 0x63, 0x68, 0x6f, 0x63, 0x68, 0x69,
-0x6c, 0x27, 0x6c, 0x6c, 0x69, 0x6c, 0x6c, 0x69, 0x6b, 0x75, 0x67, 0xfa, 0x54, 0x14a, 0x50, 0x61, 0x73, 0x68, 0x61, 0x6d,
-0x69, 0x68, 0x65, 0x79, 0x61, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x61, 0x6e, 0x61, 0x6b, 0x69, 0x73, 0x25b, 0x301, 0x6e, 0x64,
-0x25b, 0x14b, 0x6b, 0x61, 0x20, 0x6d, 0x62, 0x254, 0x301, 0x74, 0x20, 0x6e, 0x6a, 0x69, 0x6e, 0x63, 0x77, 0xf2, 0x6e, 0x7a,
-0xe9, 0x6d
+0x9b0, 0x9be, 0x9b9, 0x9cd, 0x9a3, 0xf55, 0xfb1, 0xf72, 0xf0b, 0xf46, 0xf0b, 0x47, 0x2e, 0x4d, 0x2e, 0x441, 0x43b, 0x2e, 0x43e, 0x431,
+0x2e, 0x100a, 0x1014, 0x1031, 0x43f, 0x430, 0x441, 0x43b, 0x44f, 0x20, 0x43f, 0x430, 0x43b, 0x443, 0x434, 0x43d, 0x44f, 0x179b, 0x17d2, 0x1784,
+0x17b6, 0x1785, 0x70, 0x2e, 0x20, 0x6d, 0x2e, 0x4e0b, 0x5348, 0x6f, 0x64, 0x70, 0x6f, 0x6c, 0x65, 0x64, 0x6e, 0x65, 0x70, 0x2e,
+0x6d, 0x2e, 0x75, 0x6d, 0x20, 0x73, 0x65, 0x69, 0x6e, 0x6e, 0x61, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x69, 0x70, 0x2e,
+0x66, 0x6e, 0x61, 0x63, 0x68, 0x6d, 0x2e, 0x3bc, 0x2e, 0x3bc, 0x2e, 0x5d0, 0x5d7, 0x5d4, 0x5f4, 0x5e6, 0x905, 0x92a, 0x930, 0x93e,
+0x939, 0x94d, 0x928, 0x64, 0x75, 0x2e, 0x65, 0x2e, 0x68, 0x2e, 0x5348, 0x5f8c, 0xc85, 0xcaa, 0xcb0, 0xcbe, 0xcb9, 0xccd, 0xca8, 0x442,
+0x4af, 0x441, 0x442, 0x435, 0x43d, 0x20, 0x43a, 0x435, 0x439, 0x456, 0x43d, 0x433, 0x456, 0x442, 0x4af, 0x448, 0x442, 0x4e9, 0x43d, 0x20,
+0x43a, 0x438, 0x439, 0x438, 0x43d, 0xc624, 0xd6c4, 0x5a, 0x2e, 0x4d, 0x57, 0x2e, 0xeab, 0xebc, 0xeb1, 0xe87, 0xe97, 0xec8, 0xebd, 0xe87,
+0x70, 0x113, 0x63, 0x70, 0x75, 0x73, 0x64, 0x69, 0x65, 0x6e, 0x101, 0x6d, 0x70, 0xf3, 0x6b, 0x77, 0x61, 0x70, 0x6f, 0x70,
+0x69, 0x65, 0x74, 0x43f, 0x43e, 0x43f, 0x43b, 0x430, 0x434, 0x43d, 0x435, 0x50, 0x54, 0x47, 0x92e, 0x2e, 0x909, 0x2e, 0x4ae, 0x425,
+0x70, 0x6d, 0x63a, 0x2e, 0x648, 0x2e, 0x628, 0x639, 0x62f, 0x627, 0x632, 0x638, 0x647, 0x631, 0x64, 0x61, 0x20, 0x74, 0x61, 0x72,
+0x64, 0x65, 0xa2c, 0xa3e, 0x2e, 0xa26, 0xa41, 0x2e, 0x73, 0x6d, 0x4c, 0x4b, 0x43f, 0x43e, 0x20, 0x43f, 0x43e, 0x434, 0x43d, 0x435,
+0x70, 0x6f, 0x20, 0x70, 0x6f, 0x64, 0x6e, 0x65, 0x4d5, 0x43c, 0x431, 0x438, 0x441, 0x431, 0x43e, 0x43d, 0x44b, 0x20, 0x444, 0x4d5,
+0x441, 0x442, 0x4d5, 0xdb4, 0x2e, 0xdc0, 0x2e, 0x6f, 0x64, 0x70, 0x6f, 0x6c, 0x75, 0x64, 0x6e, 0x69, 0x61, 0x70, 0x6f, 0x70,
+0x2e, 0x67, 0x6e, 0x2e, 0x79, 0x61, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x61, 0x6e, 0x61, 0x65, 0x6d, 0xbaa, 0xbbf, 0xbb1, 0xbcd,
+0xbaa, 0xb95, 0xbb2, 0xbcd, 0x5b, 0x50, 0x4d, 0x5d, 0xe2b, 0xe25, 0xe31, 0xe07, 0xe40, 0xe17, 0xe35, 0xe48, 0xe22, 0xe07, 0xf55, 0xfb1,
+0xf72, 0xf0b, 0xf51, 0xfb2, 0xf7c, 0xf0b, 0x12f5, 0x1215, 0x122d, 0x20, 0x1230, 0x12d3, 0x1275, 0xd6, 0x53, 0x686, 0x6c8, 0x634, 0x62a, 0x649,
+0x646, 0x20, 0x643, 0x6d0, 0x64a, 0x649, 0x646, 0x43f, 0x43f, 0x628, 0x639, 0x62f, 0x20, 0x62f, 0x648, 0x67e, 0x6c1, 0x631, 0x54, 0x4b,
+0x43, 0x48, 0x1ecc, 0x300, 0x73, 0xe1, 0x6e, 0x186, 0x300, 0x73, 0xe1, 0x6e, 0x4e, 0x74, 0x61, 0x6d, 0x62, 0x61, 0x6d, 0x61,
+0x65, 0x74, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x61, 0x67, 0x70, 0x6f, 0x70, 0x6f, 0x64, 0x6e, 0x65, 0x43f, 0x43e,
+0x43f, 0x43e, 0x434, 0x43d, 0x435, 0x45, 0x57, 0x92e, 0x2e, 0x928, 0x902, 0x2e, 0x50, 0x2e, 0x4d, 0x2e, 0x128, 0x79, 0x61, 0x77,
+0x129, 0x6f, 0x6f, 0x70, 0x2e, 0x263, 0x65, 0x74, 0x72, 0x254, 0x6e, 0x61, 0x6d, 0x2e, 0xa06f, 0xa2d2, 0x65, 0x61, 0x68, 0x6b,
+0x65, 0x74, 0x62, 0x65, 0x61, 0x69, 0x76, 0x65, 0x74, 0x4d, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x2f, 0x4d, 0x6f, 0x67, 0x6c,
+0x75, 0x6d, 0x61, 0x20, 0x6c, 0x77, 0x61, 0x20, 0x70, 0x6b, 0x69, 0x6b, 0x69, 0x69, 0x257, 0x65, 0x48, 0x77, 0x61, 0x129,
+0x2d, 0x69, 0x6e, 0x129, 0x54, 0x65, 0x69, 0x70, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x6f, 0x74, 0x6f, 0x2d5c, 0x2d30, 0x2d37, 0x2d33,
+0x2d33, 0x2d6f, 0x2d30, 0x2d5c, 0x74, 0x61, 0x64, 0x67, 0x67, 0x2b7, 0x61, 0x74, 0x6e, 0x20, 0x74, 0x6d, 0x65, 0x64, 0x64, 0x69,
+0x74, 0x70, 0x61, 0x6d, 0x75, 0x6e, 0x79, 0x69, 0x6b, 0x79, 0x69, 0x75, 0x6b, 0x6f, 0x6e, 0x79, 0x69, 0x55, 0x54, 0x13d2,
+0x13af, 0x13f1, 0x13a2, 0x13d7, 0x13e2, 0x43, 0x68, 0x69, 0x6c, 0x6f, 0x4d, 0x55, 0x55, 0x61, 0x6b, 0x61, 0x73, 0x75, 0x62, 0x61,
+0x168, 0x47, 0x6b, 0x6f, 0x6f, 0x73, 0x6b, 0x6f, 0x6c, 0x69, 0x6e, 0x79, 0x1c3, 0x75, 0x69, 0x61, 0x73, 0x55, 0x68, 0x72,
+0x20, 0x6e, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x61, 0x63, 0x68, 0x73, 0x190, 0x6e, 0x64, 0xe1, 0x6d, 0xe2, 0x45,
+0x69, 0x67, 0x75, 0x6c, 0x6f, 0x69, 0x63, 0x68, 0x61, 0x6d, 0x74, 0x68, 0x69, 0x45, 0x62, 0x6f, 0x6e, 0x67, 0x69, 0x41,
+0x6c, 0x75, 0x75, 0x6c, 0x61, 0x4f, 0x54, 0x1e0c, 0x65, 0x66, 0x66, 0x69, 0x72, 0x20, 0x61, 0x7a, 0x61, 0x6e, 0x79, 0x69,
+0x61, 0x67, 0x68, 0x75, 0x6f, 0x92c, 0x947, 0x932, 0x93e, 0x938, 0x947, 0x44, 0x69, 0x6c, 0x6f, 0x6c, 0x6f, 0x6e, 0x6f, 0x6d,
+0xeb, 0x74, 0x74, 0x65, 0x73, 0x61, 0x2e, 0x6b, 0x49, 0x20, 0x253, 0x75, 0x67, 0x61, 0x6a, 0x254, 0x70, 0x5a, 0x61, 0x61,
+0x72, 0x69, 0x6b, 0x61, 0x79, 0x20, 0x62, 0x65, 0x62, 0x79, 0xe1, 0x6d, 0x75, 0x6e, 0x67, 0x259, 0x67, 0xf3, 0x67, 0x259,
+0x6c, 0x65, 0x63, 0x25b, 0x25b, 0x301, 0x6e, 0x6b, 0x6f, 0x6d, 0x63, 0x68, 0x6f, 0x63, 0x68, 0x69, 0x6c, 0x2019, 0x6c, 0x6c,
+0x69, 0x6c, 0x6c, 0x69, 0x6b, 0x75, 0x67, 0xfa, 0x54, 0x14a, 0x42d, 0x41a, 0x50, 0x61, 0x73, 0x68, 0x61, 0x6d, 0x69, 0x68,
+0x65, 0x6b, 0x69, 0x73, 0x25b, 0x301, 0x6e, 0x64, 0x25b, 0x14b, 0x6b, 0x61, 0x20, 0x6d, 0x62, 0x254, 0x301, 0x74, 0x20, 0x6e,
+0x6a, 0x69, 0x6e, 0x63, 0x77, 0xf2, 0x6e, 0x7a, 0xe9, 0x6d, 0x77, 0xf3, 0x74, 0x70, 0x6f, 0x142, 0x64, 0x6e, 0x6a, 0x61,
+0x70, 0x6f, 0x70, 0x6f, 0x142, 0x64, 0x6e, 0x6a, 0x75
};
static const ushort currency_symbol_data[] = {
-0x42, 0x72, 0x4b, 0x73, 0x68, 0x46, 0x64, 0x6a, 0x4e, 0x66, 0x6b, 0x52, 0x24, 0x4c, 0x65, 0x6b, 0xeb, 0x64, 0x65, 0x6e,
-0x20ac, 0x1265, 0x122d, 0x62c, 0x2e, 0x645, 0x2e, 0x200f, 0x62f, 0x2e, 0x62c, 0x2e, 0x200f, 0x62f, 0x2e, 0x628, 0x2e, 0x200f, 0x46, 0x43,
-0x46, 0x41, 0x641, 0x2e, 0x62c, 0x2e, 0x642, 0x2e, 0x200f, 0x62f, 0x2e, 0x639, 0x2e, 0x200f, 0x20aa, 0x62f, 0x2e, 0x623, 0x2e, 0x200f,
+0x42, 0x72, 0x4b, 0x73, 0x68, 0x52, 0x24, 0x4c, 0x65, 0x6b, 0xeb, 0x64, 0x65, 0x6e, 0x20ac, 0x1265, 0x122d, 0x62c, 0x2e, 0x645,
+0x2e, 0x200f, 0x62f, 0x2e, 0x62c, 0x2e, 0x200f, 0x62f, 0x2e, 0x628, 0x2e, 0x200f, 0x46, 0x43, 0x46, 0x41, 0x641, 0x2e, 0x62c, 0x2e,
+0x642, 0x2e, 0x200f, 0x46, 0x64, 0x6a, 0x4e, 0x66, 0x6b, 0x62f, 0x2e, 0x639, 0x2e, 0x200f, 0x20aa, 0x62f, 0x2e, 0x623, 0x2e, 0x200f,
0x62f, 0x2e, 0x643, 0x2e, 0x200f, 0x644, 0x2e, 0x644, 0x2e, 0x200f, 0x62f, 0x2e, 0x644, 0x2e, 0x200f, 0x623, 0x2e, 0x645, 0x2e, 0x200f,
0x62f, 0x2e, 0x645, 0x2e, 0x200f, 0x631, 0x2e, 0x639, 0x2e, 0x200f, 0x631, 0x2e, 0x642, 0x2e, 0x200f, 0x631, 0x2e, 0x633, 0x2e, 0x200f,
0x53, 0x62c, 0x2e, 0x633, 0x2e, 0x644, 0x2e, 0x633, 0x2e, 0x200f, 0x62f, 0x2e, 0x62a, 0x2e, 0x200f, 0x62f, 0x2e, 0x625, 0x2e, 0x200f,
-0x631, 0x2e, 0x64a, 0x2e, 0x200f, 0xa3, 0x564, 0x580, 0x2e, 0x20b9, 0x6d, 0x61, 0x6e, 0x2e, 0x43c, 0x430, 0x43d, 0x2e, 0x9f3, 0x4e,
-0x75, 0x2e, 0x43b, 0x432, 0x2e, 0x4b, 0x440, 0x2e, 0x17db, 0xffe5, 0x4d, 0x4f, 0x50, 0x24, 0x4e, 0x54, 0x24, 0x6b, 0x6e, 0x4b,
-0x4d, 0x4b, 0x10d, 0x6b, 0x72, 0x41, 0x66, 0x6c, 0x2e, 0x4e, 0x41, 0x66, 0x2e, 0x45, 0x43, 0x24, 0x50, 0x44, 0x47, 0x48,
-0x20b5, 0x41, 0x72, 0x4d, 0x4b, 0x52, 0x73, 0x55, 0x53, 0x24, 0x20a6, 0x20b1, 0x52, 0x46, 0x57, 0x53, 0x24, 0x53, 0x52, 0x4c,
-0x65, 0x45, 0x54, 0x53, 0x68, 0x54, 0x24, 0x55, 0x53, 0x68, 0x56, 0x54, 0x44, 0x41, 0x43, 0x46, 0x41, 0x46, 0x42, 0x75,
-0x43, 0x46, 0x46, 0x43, 0x46, 0x43, 0x46, 0x50, 0x46, 0x47, 0x47, 0x55, 0x4d, 0x43, 0x48, 0x46, 0x4c, 0x53, 0x44, 0x54,
-0x46, 0x74, 0x52, 0x70, 0x20b8, 0x441, 0x43e, 0x43c, 0x20a9, 0x20ad, 0x4b, 0x7a, 0x4c, 0x74, 0x434, 0x435, 0x43d, 0x52, 0x4d, 0x20ae,
-0x928, 0x947, 0x930, 0x942, 0x60b, 0x631, 0x6cc, 0x627, 0x644, 0x7a, 0x142, 0x52, 0x24, 0x4d, 0x54, 0x6e, 0x44, 0x62, 0x631, 0x4c,
-0x440, 0x443, 0x431, 0x2e, 0x20b4, 0x434, 0x438, 0x43d, 0x2e, 0x64, 0x69, 0x6e, 0x2e, 0x41a, 0x41c, 0xdbb, 0xdd4, 0x2e, 0x42, 0x73,
-0x20a1, 0x51, 0x43, 0x24, 0x42, 0x2f, 0x2e, 0x20b2, 0x53, 0x2f, 0x2e, 0x42, 0x73, 0x2e, 0x52, 0x73, 0x2e, 0xe3f, 0xa5, 0x20ba,
-0x73, 0x6f, 0x2bb, 0x6d, 0x441, 0x45e, 0x43c, 0x20ab
+0x631, 0x2e, 0x64a, 0x2e, 0x200f, 0xa3, 0x58f, 0x20b9, 0x41, 0x5a, 0x4e, 0x43c, 0x430, 0x43d, 0x2e, 0x20bd, 0x9f3, 0x4e, 0x75, 0x2e,
+0x43b, 0x432, 0x2e, 0x4b, 0x440, 0x2e, 0x17db, 0xffe5, 0x48, 0x4b, 0x24, 0x4d, 0x4f, 0x50, 0x24, 0x4e, 0x54, 0x24, 0x48, 0x52,
+0x4b, 0x4b, 0x4d, 0x4b, 0x10d, 0x6b, 0x72, 0x2e, 0x41, 0x66, 0x6c, 0x2e, 0x4e, 0x41, 0x66, 0x2e, 0x55, 0x53, 0x24, 0x50,
+0x44, 0x47, 0x48, 0x20b5, 0x41, 0x72, 0x4d, 0x4b, 0x52, 0x4d, 0x52, 0x73, 0x20a6, 0x20b1, 0x52, 0x46, 0x57, 0x53, 0x24, 0x53,
+0x52, 0x4c, 0x65, 0x45, 0x54, 0x53, 0x68, 0x54, 0x24, 0x55, 0x53, 0x68, 0x56, 0x54, 0x6b, 0x72, 0x44, 0x41, 0x43, 0x46,
+0x41, 0x46, 0x42, 0x75, 0x43, 0x46, 0x46, 0x43, 0x46, 0x43, 0x46, 0x50, 0x46, 0x47, 0x47, 0x55, 0x4d, 0x4d, 0x41, 0x44,
+0x43, 0x48, 0x46, 0x4c, 0x53, 0x44, 0x54, 0x47, 0x45, 0x4c, 0x20b2, 0x48, 0x55, 0x46, 0x49, 0x53, 0x4b, 0x52, 0x70, 0x43,
+0x41, 0x24, 0x20b8, 0x441, 0x43e, 0x43c, 0x20a9, 0x4b, 0x50, 0x57, 0x20ba, 0x20ad, 0x4b, 0x7a, 0x434, 0x435, 0x43d, 0x4e, 0x5a, 0x24,
+0x20ae, 0x43, 0x4e, 0xa5, 0x928, 0x947, 0x930, 0x942, 0x60b, 0x631, 0x6cc, 0x627, 0x644, 0x7a, 0x142, 0x52, 0x24, 0x200b, 0x4d, 0x54,
+0x6e, 0x44, 0x62, 0x631, 0x53, 0x2f, 0x2e, 0x42, 0x73, 0x52, 0x4f, 0x4e, 0x4c, 0x440, 0x443, 0x431, 0x2e, 0x20b4, 0x52, 0x53,
+0x44, 0x41a, 0x41c, 0xdbb, 0xdd4, 0x2e, 0x20a1, 0x51, 0x43, 0x24, 0x42, 0x2f, 0x2e, 0x42, 0x73, 0x2e, 0x52, 0x73, 0x2e, 0x54,
+0x48, 0x42, 0xa5, 0x73, 0x6f, 0x2bb, 0x6d, 0x441, 0x45e, 0x43c, 0x20ab, 0x41, 0x24
};
static const ushort currency_display_name_data[] = {
0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x74, 0x6f, 0x6f, 0x70, 0x68, 0x69, 0x79, 0x61, 0x61, 0x20, 0x42, 0x69,
0x72, 0x72, 0x69, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x69, 0x64, 0x2d, 0x41, 0x66, 0x72, 0x69,
-0x6b, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61,
-0x6d, 0x69, 0x62, 0x69, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x4c, 0x65, 0x6b, 0x75, 0x20, 0x73, 0x68, 0x71, 0x69, 0x70, 0x74, 0x61, 0x72, 0x3b, 0x3b, 0x6c, 0x65, 0x6b, 0x20,
-0x73, 0x68, 0x71, 0x69, 0x70, 0x74, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x6c, 0x65, 0x6b, 0xeb, 0x20, 0x73, 0x68, 0x71,
-0x69, 0x70, 0x74, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x6e, 0x61, 0x72, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61,
-0x73, 0x3b, 0x3b, 0x64, 0x65, 0x6e, 0x61, 0x72, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x73, 0x3b, 0x3b,
-0x3b, 0x3b, 0x64, 0x65, 0x6e, 0x61, 0x72, 0xeb, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x73, 0x3b, 0x45,
-0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x12e8, 0x12a2,
-0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x3b,
-0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631,
-0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631,
-0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631,
-0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631,
+0x6b, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x75, 0x69, 0x64, 0x2d, 0x41, 0x66,
+0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x69,
+0x64, 0x2d, 0x41, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x4e, 0x61,
+0x6d, 0x69, 0x62, 0x69, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4e, 0x61, 0x6d, 0x69,
+0x62, 0x69, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x6d, 0x69,
+0x62, 0x69, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x4c, 0x65, 0x6b, 0x75, 0x20, 0x73, 0x68,
+0x71, 0x69, 0x70, 0x74, 0x61, 0x72, 0x3b, 0x3b, 0x6c, 0x65, 0x6b, 0x20, 0x73, 0x68, 0x71, 0x69, 0x70, 0x74, 0x61, 0x72,
+0x3b, 0x3b, 0x3b, 0x3b, 0x6c, 0x65, 0x6b, 0xeb, 0x20, 0x73, 0x68, 0x71, 0x69, 0x70, 0x74, 0x61, 0x72, 0x3b, 0x44, 0x65,
+0x6e, 0x61, 0x72, 0x69, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x73, 0x3b, 0x3b, 0x64, 0x65, 0x6e, 0x61,
+0x72, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x65, 0x6e, 0x61, 0x72,
+0xeb, 0x20, 0x6d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x61, 0x73, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x6a, 0x61, 0x3b, 0x3b,
+0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20,
+0x1265, 0x122d, 0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x3b, 0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275,
+0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a,
+0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a,
+0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a,
+0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x645, 0x635, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646,
+0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626,
+0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
+0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631,
0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631,
-0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a,
-0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20,
-0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b,
-0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628,
-0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f,
-0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d,
-0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a,
-0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631,
-0x64a, 0x646, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643,
-0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b,
-0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631,
-0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643,
-0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642,
-0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631,
+0x20, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a,
+0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20,
+0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b,
+0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628,
+0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x64a, 0x3b, 0x641,
+0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a,
+0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20,
+0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641,
+0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a, 0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x623, 0x641, 0x631, 0x64a,
+0x642, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631,
0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632,
0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642,
0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631,
-0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a,
-0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646,
-0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a,
-0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a,
-0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x646, 0x627, 0x643,
+0x646, 0x643, 0x20, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x632,
+0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b,
+0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628,
+0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643,
+0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b,
+0x641, 0x631, 0x646, 0x643, 0x20, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631,
+0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627,
+0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a,
+0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643,
0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a,
-0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641,
-0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631,
-0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627, 0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x646, 0x627, 0x643, 0x641, 0x627,
-0x20, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b,
-0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631,
-0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
-0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b,
-0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631,
-0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627,
-0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626,
-0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a,
-0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644,
-0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a,
+0x631, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631,
+0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f,
+0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627,
+0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631,
+0x20, 0x639, 0x631, 0x627, 0x642, 0x64a, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a,
0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20,
-0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646,
-0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a,
-0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623,
-0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646,
-0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a,
-0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643,
-0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646,
-0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a,
-0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628,
-0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a,
-0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a,
-0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628,
-0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646,
-0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f,
-0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a,
-0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a,
-0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20,
-0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a,
-0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a,
-0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648,
-0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20,
-0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a,
-0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647,
-0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f,
-0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a,
+0x62c, 0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c,
+0x62f, 0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f,
+0x64a, 0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a,
+0x62f, 0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f,
+0x3b, 0x634, 0x64a, 0x643, 0x644, 0x20, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x64a, 0x20, 0x62c, 0x62f, 0x64a, 0x62f, 0x3b,
+0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631,
+0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
+0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b,
+0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631, 0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x623, 0x631,
+0x62f, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
+0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b,
+0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648,
+0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
+0x631, 0x20, 0x643, 0x648, 0x64a, 0x62a, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b,
+0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646,
+0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629,
+0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b,
+0x62c, 0x646, 0x64a, 0x629, 0x20, 0x644, 0x628, 0x646, 0x627, 0x646, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a,
+0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20,
+0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
+0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x62f, 0x64a,
+0x646, 0x627, 0x631, 0x20, 0x644, 0x64a, 0x628, 0x64a, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a,
+0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629,
+0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642,
+0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645,
+0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a,
+0x627, 0x646, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x642, 0x64a, 0x629, 0x20, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x629,
0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631,
-0x628, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639,
-0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644,
-0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a,
+0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645,
+0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645,
+0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x645, 0x63a, 0x631, 0x628, 0x64a, 0x3b, 0x631, 0x64a,
0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b,
-0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b,
-0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b,
-0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b,
-0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a,
-0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648,
-0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633,
-0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644,
-0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644,
-0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b,
-0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644,
+0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646,
+0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645,
+0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x639, 0x645, 0x627, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20,
+0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20,
+0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20,
+0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20,
+0x642, 0x637, 0x631, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644,
+0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a,
+0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b,
+0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x633, 0x639, 0x648, 0x62f,
0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645,
-0x627, 0x644, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647,
-0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b,
-0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f,
-0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647,
-0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644,
-0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629,
-0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631,
-0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633,
-0x648, 0x631, 0x64a, 0x629, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627,
-0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a,
-0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b,
+0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635,
+0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646,
+0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x634, 0x644, 0x646, 0x20, 0x635, 0x648, 0x645, 0x627, 0x644, 0x64a, 0x3b, 0x62c,
+0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627,
+0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20,
+0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c,
+0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x633, 0x648, 0x62f, 0x627,
+0x646, 0x64a, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633,
+0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629,
+0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a,
+0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b, 0x644, 0x64a, 0x631, 0x629, 0x20, 0x633, 0x648, 0x631, 0x64a, 0x629, 0x3b,
0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633,
+0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648,
+0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631,
+0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x64a, 0x646, 0x627, 0x631, 0x62a, 0x648, 0x646, 0x633, 0x64a, 0x3b, 0x62f, 0x631, 0x647,
+0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627,
+0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645,
+0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a,
0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20,
-0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a,
-0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625,
-0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b,
-0x62f, 0x631, 0x647, 0x645, 0x20, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645,
-0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645,
-0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645,
-0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645,
-0x646, 0x64a, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646,
-0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c,
-0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a,
-0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20,
-0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646,
-0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628,
-0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x540, 0x561, 0x575, 0x56f, 0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580,
-0x561, 0x574, 0x3b, 0x3b, 0x540, 0x561, 0x575, 0x56f, 0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580, 0x561, 0x574, 0x3b, 0x3b, 0x3b,
-0x3b, 0x540, 0x561, 0x575, 0x56f, 0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580, 0x561, 0x574, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62,
-0x61, 0x79, 0x63, 0x61, 0x6e, 0x20, 0x4d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62, 0x61,
-0x79, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62,
-0x61, 0x79, 0x63, 0x61, 0x6e, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x43c, 0x430, 0x43d, 0x430, 0x442, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x61, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b,
-0x65, 0x75, 0x72, 0x6f, 0x3b, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b,
-0x3b, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b, 0x3b, 0x3b, 0x3b, 0x9ac,
-0x9be, 0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af,
-0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa, 0x9bf, 0x3b, 0x3b, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af, 0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa, 0x9bf,
-0x3b, 0x3b, 0x3b, 0x3b, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af, 0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa, 0x9bf, 0x3b, 0xf51, 0xf44, 0xf74,
-0xf63, 0xf0b, 0xf40, 0xfb2, 0xf58, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x411, 0x44a, 0x43b, 0x433, 0x430, 0x440, 0x441, 0x43a, 0x438, 0x20, 0x43b, 0x435, 0x432, 0x3b, 0x3b, 0x431, 0x44a,
+0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a,
+0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a,
+0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a,
+0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x631, 0x64a, 0x627, 0x644, 0x20, 0x64a, 0x645, 0x646, 0x64a, 0x3b, 0x62c, 0x646,
+0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647,
+0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c,
+0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648,
+0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20,
+0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644,
+0x633, 0x648, 0x62f, 0x627, 0x646, 0x3b, 0x62c, 0x646, 0x64a, 0x647, 0x20, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648,
+0x62f, 0x627, 0x646, 0x3b, 0x540, 0x561, 0x575, 0x56f, 0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580, 0x561, 0x574, 0x3b, 0x3b, 0x540,
+0x561, 0x575, 0x56f, 0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580, 0x561, 0x574, 0x3b, 0x3b, 0x3b, 0x3b, 0x540, 0x561, 0x575, 0x56f,
+0x561, 0x56f, 0x561, 0x576, 0x20, 0x564, 0x580, 0x561, 0x574, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e,
+0x20, 0x4d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e, 0x20,
+0x6d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e,
+0x20, 0x6d, 0x61, 0x6e, 0x61, 0x74, 0x131, 0x3b, 0x43c, 0x430, 0x43d, 0x430, 0x442, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x45, 0x75, 0x72, 0x6f, 0x61, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b,
+0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b, 0x3b, 0x9ac, 0x9be, 0x982, 0x9b2,
+0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b, 0x3b, 0x3b, 0x3b, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9a6,
+0x9c7, 0x9b6, 0x9c0, 0x20, 0x99f, 0x9be, 0x995, 0x9be, 0x3b, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af, 0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa,
+0x9bf, 0x3b, 0x3b, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af, 0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa, 0x9bf, 0x3b, 0x3b, 0x3b, 0x3b, 0x9ad,
+0x9be, 0x9b0, 0x9a4, 0x9c0, 0x9af, 0x9bc, 0x20, 0x9b0, 0x9c1, 0x9aa, 0x9bf, 0x3b, 0xf51, 0xf44, 0xf74, 0xf63, 0xf0b, 0xf40, 0xfb2, 0xf58,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75,
+0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x61, 0x20, 0x65, 0x75, 0x72, 0x6f, 0x69, 0x6f, 0xf9, 0x3b, 0x65, 0x75,
+0x72, 0x6f, 0x3b, 0x411, 0x44a, 0x43b, 0x433, 0x430, 0x440, 0x441, 0x43a, 0x438, 0x20, 0x43b, 0x435, 0x432, 0x3b, 0x3b, 0x431, 0x44a,
0x43b, 0x433, 0x430, 0x440, 0x441, 0x43a, 0x438, 0x20, 0x43b, 0x435, 0x432, 0x3b, 0x3b, 0x3b, 0x3b, 0x431, 0x44a, 0x43b, 0x433, 0x430,
0x440, 0x441, 0x43a, 0x438, 0x20, 0x43b, 0x435, 0x432, 0x430, 0x3b, 0x1019, 0x103c, 0x1014, 0x103a, 0x1019, 0x102c, 0x1000, 0x103b, 0x1015, 0x103a,
0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x1019, 0x103c, 0x1014, 0x103a, 0x1019, 0x102c, 0x1000, 0x103b, 0x1015, 0x103a, 0x3b, 0x431, 0x435, 0x43b,
0x430, 0x440, 0x443, 0x441, 0x43a, 0x456, 0x20, 0x440, 0x443, 0x431, 0x435, 0x43b, 0x44c, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x179a, 0x17c0, 0x179b, 0x20, 0x1780, 0x1798, 0x17d2, 0x1796, 0x17bb, 0x1787, 0x17b6, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75,
-0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x73, 0x3b, 0x4eba, 0x6c11,
-0x5e01, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4eba, 0x6c11, 0x5e01, 0x3b, 0x6e2f, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e2f,
-0x5143, 0x3b, 0x6fb3, 0x95e8, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6fb3, 0x95e8, 0x5143, 0x3b, 0x65b0, 0x52a0, 0x5761, 0x5143, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65b0, 0x52a0, 0x5761, 0x5143, 0x3b, 0x6e2f, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e2f, 0x5e63,
+0x179a, 0x17c0, 0x179b, 0x200b, 0x1780, 0x1798, 0x17d2, 0x1796, 0x17bb, 0x1787, 0x17b6, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x179a, 0x17c0, 0x179b,
+0x200b, 0x1780, 0x1798, 0x17d2, 0x1796, 0x17bb, 0x1787, 0x17b6, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b,
+0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x73, 0x3b, 0x4eba, 0x6c11, 0x5e01, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4eba, 0x6c11,
+0x5e01, 0x3b, 0x6e2f, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e2f, 0x5143, 0x3b, 0x6fb3, 0x95e8, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x6fb3, 0x95e8, 0x5143, 0x3b, 0x65b0, 0x52a0, 0x5761, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65b0, 0x52a0, 0x5761, 0x5143,
0x3b, 0x6fb3, 0x9580, 0x5143, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6fb3, 0x9580, 0x5143, 0x3b, 0x65b0, 0x81fa, 0x5e63, 0x3b, 0x3b, 0x3b,
0x3b, 0x3b, 0x3b, 0x65b0, 0x81fa, 0x5e63, 0x3b, 0x68, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x61, 0x20, 0x6b, 0x75, 0x6e, 0x61,
0x3b, 0x3b, 0x68, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x61, 0x20, 0x6b, 0x75, 0x6e, 0x61, 0x3b, 0x3b, 0x68, 0x72, 0x76,
@@ -4755,873 +4921,919 @@ static const ushort currency_display_name_data[] = {
0x6f, 0x72, 0x75, 0x6e, 0x79, 0x3b, 0x10d, 0x65, 0x73, 0x6b, 0xfd, 0x63, 0x68, 0x20, 0x6b, 0x6f, 0x72, 0x75, 0x6e, 0x3b,
0x44, 0x61, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x44, 0x61, 0x6e, 0x73, 0x6b, 0x20, 0x6b,
0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x61, 0x6e, 0x73, 0x6b, 0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65,
-0x72, 0x3b, 0x41, 0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b,
-0x41, 0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b,
-0x41, 0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x4e, 0x65, 0x64,
-0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x61, 0x6e, 0x73, 0x65,
-0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d,
-0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b,
-0x3b, 0x3b, 0x3b, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c,
-0x69, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61,
-0x61, 0x6d, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x61,
-0x6d, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61,
-0x61, 0x6d, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61, 0x61,
-0x6e, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61, 0x61,
-0x6e, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b,
-0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x55, 0x53, 0x20, 0x44, 0x6f, 0x6c, 0x6c,
-0x61, 0x72, 0x3b, 0x3b, 0x55, 0x53, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x55, 0x53, 0x20,
-0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x61, 0x73, 0x74, 0x20, 0x43, 0x61, 0x72, 0x69, 0x62, 0x62, 0x65,
-0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x45, 0x61, 0x73, 0x74, 0x20, 0x43, 0x61, 0x72, 0x69,
-0x62, 0x62, 0x65, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x61, 0x73, 0x74,
-0x20, 0x43, 0x61, 0x72, 0x69, 0x62, 0x62, 0x65, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x41,
-0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x41, 0x75,
-0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x41,
-0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x61,
-0x68, 0x61, 0x6d, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x61, 0x68, 0x61, 0x6d,
-0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x61, 0x68, 0x61, 0x6d, 0x69,
-0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e,
-0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64,
-0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64,
-0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b,
-0x3b, 0x65, 0x75, 0x72, 0x6f, 0x73, 0x3b, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72,
-0x3b, 0x3b, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42,
-0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64,
-0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x6e, 0x20,
-0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x6e, 0x20, 0x64,
-0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x50, 0x75, 0x6c,
-0x61, 0x3b, 0x3b, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x70, 0x75, 0x6c, 0x61, 0x3b, 0x3b, 0x3b,
-0x3b, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x70, 0x75, 0x6c, 0x61, 0x73, 0x3b, 0x43, 0x46, 0x41,
-0x20, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61,
-0x6e, 0x63, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63,
-0x73, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c,
-0x61, 0x72, 0x3b, 0x3b, 0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b,
-0x3b, 0x3b, 0x3b, 0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b,
-0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61,
-0x72, 0x3b, 0x3b, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64, 0x6f,
-0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e,
-0x64, 0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61,
-0x6e, 0x64, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61,
-0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61,
-0x6c, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x72, 0x69, 0x74, 0x72, 0x65, 0x61,
-0x6e, 0x20, 0x4e, 0x61, 0x6b, 0x66, 0x61, 0x3b, 0x3b, 0x45, 0x72, 0x69, 0x74, 0x72, 0x65, 0x61, 0x6e, 0x20, 0x6e, 0x61,
-0x6b, 0x66, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x72, 0x69, 0x74, 0x72, 0x65, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x6b, 0x66,
-0x61, 0x73, 0x3b, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20,
-0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61,
-0x6e, 0x64, 0x73, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e,
-0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x46, 0x69, 0x6a,
-0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x46, 0x69, 0x6a, 0x69, 0x61, 0x6e, 0x20, 0x64,
-0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x69, 0x6a, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c,
-0x61, 0x72, 0x73, 0x3b, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x42,
-0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x72, 0x69, 0x74,
-0x69, 0x73, 0x68, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44,
-0x61, 0x6c, 0x61, 0x73, 0x69, 0x3b, 0x3b, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x61, 0x6c, 0x61, 0x73,
-0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x73,
-0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x69, 0x61, 0x6e, 0x20, 0x43, 0x65, 0x64, 0x69, 0x3b, 0x3b, 0x47, 0x68, 0x61, 0x6e,
-0x61, 0x69, 0x61, 0x6e, 0x20, 0x63, 0x65, 0x64, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x69, 0x61,
-0x6e, 0x20, 0x63, 0x65, 0x64, 0x69, 0x73, 0x3b, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x50, 0x6f,
-0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64,
-0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73,
-0x3b, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x65, 0x73, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x47,
-0x75, 0x79, 0x61, 0x6e, 0x61, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x47,
-0x75, 0x79, 0x61, 0x6e, 0x61, 0x65, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x48, 0x6f, 0x6e,
-0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x48, 0x6f, 0x6e, 0x67, 0x20,
-0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x48, 0x6f, 0x6e, 0x67, 0x20,
-0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20,
-0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b,
-0x3b, 0x3b, 0x3b, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6d,
-0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63,
-0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61,
-0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69,
-0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69,
-0x6e, 0x67, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e,
-0x67, 0x73, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e,
-0x64, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x61, 0x6e,
-0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x72,
-0x61, 0x6e, 0x64, 0x3b, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b,
-0x3b, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b,
-0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x4d, 0x61, 0x63,
-0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x50, 0x61, 0x74, 0x61, 0x63, 0x61, 0x3b, 0x3b, 0x4d, 0x61, 0x63, 0x61, 0x6e, 0x65,
-0x73, 0x65, 0x20, 0x70, 0x61, 0x74, 0x61, 0x63, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x63, 0x61, 0x6e, 0x65, 0x73,
-0x65, 0x20, 0x70, 0x61, 0x74, 0x61, 0x63, 0x61, 0x73, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x41,
-0x72, 0x69, 0x61, 0x72, 0x79, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x41, 0x72, 0x69, 0x61,
-0x72, 0x79, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x41, 0x72, 0x69, 0x61, 0x72,
-0x69, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b,
-0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x3b, 0x3b,
-0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x73, 0x3b, 0x4d, 0x61, 0x75,
-0x72, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74,
-0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69,
-0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44,
-0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c,
-0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61,
-0x72, 0x73, 0x3b, 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x4e, 0x61, 0x69, 0x72, 0x61, 0x3b, 0x3b, 0x4e,
-0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x69, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x69, 0x67,
-0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x69, 0x72, 0x61, 0x73, 0x3b, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61,
-0x6e, 0x69, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x69, 0x20,
-0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x69, 0x20, 0x72,
-0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e,
-0x65, 0x61, 0x6e, 0x20, 0x4b, 0x69, 0x6e, 0x61, 0x3b, 0x3b, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20,
-0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6b, 0x69, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x70, 0x75,
-0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6b, 0x69, 0x6e, 0x61, 0x3b, 0x50,
-0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x20, 0x50, 0x65, 0x73, 0x6f, 0x3b, 0x3b, 0x50, 0x68, 0x69, 0x6c,
-0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x20, 0x70, 0x65, 0x73, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x68, 0x69, 0x6c, 0x69,
-0x70, 0x70, 0x69, 0x6e, 0x65, 0x20, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x3b, 0x52, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20,
-0x46, 0x72, 0x61, 0x6e, 0x63, 0x3b, 0x3b, 0x52, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63,
-0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x3b, 0x53,
-0x61, 0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x54, 0x61, 0x6c, 0x61, 0x3b, 0x3b, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x74,
-0x61, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x53,
-0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69, 0x73, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x53, 0x65,
-0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69, 0x73, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x53,
-0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69, 0x73, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x53, 0x69,
-0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x3b, 0x3b,
-0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6c, 0x65, 0x6f, 0x6e, 0x65,
-0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6c,
-0x65, 0x6f, 0x6e, 0x65, 0x73, 0x3b, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c,
-0x61, 0x72, 0x3b, 0x3b, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72,
-0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72,
-0x73, 0x3b, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x44, 0x6f,
-0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64,
-0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x20,
-0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x53, 0x61, 0x69, 0x6e,
-0x74, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x61, 0x69, 0x6e,
-0x74, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x61,
-0x69, 0x6e, 0x74, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x53, 0x75,
-0x64, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x65,
-0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x65, 0x73, 0x65,
-0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x4c, 0x69, 0x6c, 0x61, 0x6e, 0x67,
-0x65, 0x6e, 0x69, 0x3b, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x6c, 0x69, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x6e, 0x69,
-0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x65, 0x6d, 0x61, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x6e, 0x69,
-0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b,
-0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b,
-0x3b, 0x3b, 0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e,
-0x67, 0x73, 0x3b, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x50, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x3b, 0x54,
-0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x70, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0x6f, 0x6e,
-0x67, 0x61, 0x6e, 0x20, 0x70, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64,
-0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b,
-0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20,
-0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61,
-0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x55, 0x67,
-0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x55, 0x67, 0x61, 0x6e,
-0x64, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x3b, 0x3b, 0x55, 0x67, 0x61, 0x6e,
-0x64, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74,
-0x75, 0x20, 0x56, 0x61, 0x74, 0x75, 0x3b, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x74, 0x75,
-0x3b, 0x3b, 0x3b, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x5a, 0x61,
-0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61,
-0x6e, 0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20,
-0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x73, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x65,
-0x73, 0x65, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x53, 0x75, 0x64, 0x61,
-0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20,
-0x53, 0x75, 0x64, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x4e, 0x65, 0x74, 0x68,
-0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x47, 0x75,
-0x69, 0x6c, 0x64, 0x65, 0x72, 0x3b, 0x3b, 0x4e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41,
-0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x3b, 0x3b, 0x3b, 0x3b,
-0x4e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61,
-0x6e, 0x20, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72,
-0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x74, 0x3b, 0x64, 0x6f, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3,
-0x6e, 0x61, 0x3b, 0x3b, 0x64, 0x6f, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x64,
-0x6f, 0x6e, 0x73, 0x6b, 0x61, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x75, 0x72, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
-0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x61, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x61,
-0x6c, 0x67, 0xe9, 0x72, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x61, 0x6c, 0x67, 0xe9, 0x72,
-0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x73, 0x20, 0x61, 0x6c, 0x67, 0xe9, 0x72, 0x69,
-0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f,
-0x29, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29,
-0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41,
-0x4f, 0x29, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b,
-0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66,
-0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e,
-0x63, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20,
-0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73,
-0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x20, 0x63,
-0x61, 0x6e, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x61, 0x6e, 0x61,
-0x64, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x61,
-0x64, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e,
-0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b,
-0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61,
-0x6e, 0x63, 0x20, 0x63, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20,
-0x63, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20,
-0x63, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x64, 0x6a, 0x69, 0x62,
-0x6f, 0x75, 0x74, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x64, 0x6a, 0x69, 0x62, 0x6f, 0x75,
-0x74, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x64, 0x6a, 0x69, 0x62, 0x6f,
-0x75, 0x74, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x50, 0x3b, 0x3b, 0x66, 0x72,
-0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x50, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x43, 0x46,
-0x50, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x3b, 0x3b, 0x66, 0x72, 0x61,
-0x6e, 0x63, 0x20, 0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73,
-0x20, 0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x73, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x20, 0x68, 0x61, 0xef,
-0x74, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x20, 0x68, 0x61, 0xef, 0x74, 0x69,
-0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x73, 0x20, 0x68, 0x61, 0xef, 0x74,
-0x69, 0x65, 0x6e, 0x6e, 0x65, 0x73, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63,
-0x68, 0x65, 0x3b, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63, 0x68, 0x65, 0x3b,
-0x3b, 0x3b, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x73, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63, 0x68, 0x65, 0x73,
+0x72, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f,
+0x3b, 0x41, 0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b, 0x41,
+0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x41,
+0x72, 0x75, 0x62, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x4e, 0x65, 0x64, 0x65,
+0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20,
+0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d, 0x41,
+0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69, 0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x3b,
+0x3b, 0x3b, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x2d, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x69,
+0x61, 0x61, 0x6e, 0x73, 0x65, 0x20, 0x67, 0x75, 0x6c, 0x64, 0x65, 0x6e, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x61,
+0x6d, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x61, 0x6d,
+0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x61,
+0x6d, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e,
+0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e,
+0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61,
+0x61, 0x6e, 0x73, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x55, 0x53, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x3b, 0x3b, 0x55, 0x53, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x55, 0x53, 0x20, 0x64,
+0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x61, 0x73, 0x74, 0x20, 0x43, 0x61, 0x72, 0x69, 0x62, 0x62, 0x65, 0x61,
+0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x45, 0x61, 0x73, 0x74, 0x20, 0x43, 0x61, 0x72, 0x69, 0x62,
+0x62, 0x65, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x61, 0x73, 0x74, 0x20,
+0x43, 0x61, 0x72, 0x69, 0x62, 0x62, 0x65, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x75,
+0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x41, 0x75, 0x73,
+0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x75,
+0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x61, 0x68,
+0x61, 0x6d, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x61, 0x68, 0x61, 0x6d, 0x69,
+0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x61, 0x68, 0x61, 0x6d, 0x69, 0x61,
+0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20,
+0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f,
+0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f,
+0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b,
+0x65, 0x75, 0x72, 0x6f, 0x73, 0x3b, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b,
+0x3b, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x65,
+0x6c, 0x69, 0x7a, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61,
+0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x6e, 0x20, 0x64,
+0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x6e, 0x20, 0x64, 0x6f,
+0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x50, 0x75, 0x6c, 0x61,
+0x3b, 0x3b, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x70, 0x75, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b,
+0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x6e, 0x20, 0x70, 0x75, 0x6c, 0x61, 0x73, 0x3b, 0x43, 0x65, 0x6e, 0x74,
+0x72, 0x61, 0x6c, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x43, 0x46, 0x41, 0x20, 0x46, 0x72, 0x61, 0x6e,
+0x63, 0x3b, 0x3b, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x43,
+0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20,
+0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x3b, 0x43,
+0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x43, 0x61, 0x6e, 0x61,
+0x64, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x61, 0x6e, 0x61, 0x64,
+0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49,
+0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x43, 0x61, 0x79, 0x6d, 0x61,
+0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b,
+0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x73, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x3b, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x6c,
+0x6c, 0x61, 0x72, 0x73, 0x3b, 0x45, 0x72, 0x69, 0x74, 0x72, 0x65, 0x61, 0x6e, 0x20, 0x4e, 0x61, 0x6b, 0x66, 0x61, 0x3b,
+0x3b, 0x45, 0x72, 0x69, 0x74, 0x72, 0x65, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x6b, 0x66, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x45,
+0x72, 0x69, 0x74, 0x72, 0x65, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x6b, 0x66, 0x61, 0x73, 0x3b, 0x46, 0x61, 0x6c, 0x6b, 0x6c,
+0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x46,
+0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x70, 0x6f, 0x75, 0x6e,
+0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64,
+0x73, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x46, 0x69, 0x6a, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c,
+0x61, 0x72, 0x3b, 0x3b, 0x46, 0x69, 0x6a, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b,
+0x3b, 0x46, 0x69, 0x6a, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x42, 0x72, 0x69, 0x74,
+0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x70,
+0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x70, 0x6f, 0x75, 0x6e,
+0x64, 0x73, 0x3b, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x3b, 0x3b, 0x47,
+0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x61, 0x6d,
+0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x73, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x69, 0x61,
+0x6e, 0x20, 0x43, 0x65, 0x64, 0x69, 0x3b, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x69, 0x61, 0x6e, 0x20, 0x63, 0x65, 0x64,
+0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x69, 0x61, 0x6e, 0x20, 0x63, 0x65, 0x64, 0x69, 0x73, 0x3b,
+0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x47, 0x69, 0x62,
+0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x69, 0x62, 0x72,
+0x61, 0x6c, 0x74, 0x61, 0x72, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x65,
+0x73, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x65, 0x73, 0x65,
+0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x65, 0x73, 0x65,
+0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x44,
+0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x6f, 0x6c,
+0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x64, 0x6f, 0x6c,
+0x6c, 0x61, 0x72, 0x73, 0x3b, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x49,
+0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x6e, 0x64, 0x69, 0x61,
+0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x44, 0x6f,
+0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72,
+0x73, 0x3b, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x4b,
+0x65, 0x6e, 0x79, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x65,
+0x6e, 0x79, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68,
+0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68,
+0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x75,
+0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x3b, 0x4c, 0x69, 0x62, 0x65,
+0x72, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61,
+0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x6e,
+0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x4d, 0x61, 0x63, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x50, 0x61,
+0x74, 0x61, 0x63, 0x61, 0x3b, 0x3b, 0x4d, 0x61, 0x63, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x61, 0x74, 0x61, 0x63,
+0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x63, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x61, 0x74, 0x61, 0x63, 0x61,
+0x73, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x41, 0x72, 0x69, 0x61, 0x72, 0x79, 0x3b, 0x3b, 0x4d,
+0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61,
+0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x20, 0x61, 0x72, 0x69, 0x61, 0x72, 0x69, 0x65, 0x73, 0x3b, 0x4d, 0x61, 0x6c, 0x61,
+0x77, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61,
+0x6e, 0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e,
+0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x73, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x52,
+0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x69,
+0x6e, 0x67, 0x67, 0x69, 0x74, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x72,
+0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x73, 0x3b, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x20, 0x52, 0x75,
+0x70, 0x65, 0x65, 0x3b, 0x3b, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65,
+0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73,
+0x3b, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x4e, 0x61,
+0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x6d,
+0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69,
+0x61, 0x6e, 0x20, 0x4e, 0x61, 0x69, 0x72, 0x61, 0x3b, 0x3b, 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x6e,
+0x61, 0x69, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x6e, 0x20, 0x6e, 0x61, 0x69,
+0x72, 0x61, 0x73, 0x3b, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x69, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b,
+0x3b, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x69, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b,
+0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x69, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x50, 0x61, 0x70,
+0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x4b, 0x69, 0x6e, 0x61, 0x3b,
+0x3b, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6b,
+0x69, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69,
+0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6b, 0x69, 0x6e, 0x61, 0x3b, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65,
+0x20, 0x50, 0x65, 0x73, 0x6f, 0x3b, 0x3b, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x20, 0x70, 0x65,
+0x73, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x20, 0x70, 0x65, 0x73,
+0x6f, 0x73, 0x3b, 0x52, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x3b, 0x3b, 0x52, 0x77,
+0x61, 0x6e, 0x64, 0x61, 0x6e, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x77, 0x61, 0x6e, 0x64,
+0x61, 0x6e, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x3b, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x54, 0x61, 0x6c,
+0x61, 0x3b, 0x3b, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x61,
+0x6d, 0x6f, 0x61, 0x6e, 0x20, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69,
+0x73, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69, 0x73,
+0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x69,
+0x73, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x73, 0x3b, 0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65, 0x6f, 0x6e,
+0x65, 0x61, 0x6e, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65,
+0x6f, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6c, 0x65, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x65, 0x72, 0x72,
+0x61, 0x20, 0x4c, 0x65, 0x6f, 0x6e, 0x65, 0x61, 0x6e, 0x20, 0x6c, 0x65, 0x6f, 0x6e, 0x65, 0x73, 0x3b, 0x53, 0x69, 0x6e,
+0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x53, 0x69, 0x6e, 0x67, 0x61,
+0x70, 0x6f, 0x72, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6e, 0x67, 0x61,
+0x70, 0x6f, 0x72, 0x65, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e,
+0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x53, 0x6f, 0x6c,
+0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b,
+0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x64,
+0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x53, 0x74, 0x2e, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x50, 0x6f,
+0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x74, 0x2e, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x70, 0x6f, 0x75, 0x6e,
+0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x74, 0x2e, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x20, 0x70, 0x6f, 0x75, 0x6e,
+0x64, 0x73, 0x3b, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53,
+0x75, 0x64, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x75, 0x64,
+0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x4c,
+0x69, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x6e, 0x69, 0x3b, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x6c, 0x69, 0x6c, 0x61,
+0x6e, 0x67, 0x65, 0x6e, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x20, 0x65, 0x6d, 0x61, 0x6c, 0x61,
+0x6e, 0x67, 0x65, 0x6e, 0x69, 0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69, 0x6c,
+0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c,
+0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x6e, 0x20, 0x73, 0x68,
+0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x3b, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x50, 0x61, 0x2bb, 0x61, 0x6e,
+0x67, 0x61, 0x3b, 0x3b, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x70, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x3b,
+0x3b, 0x3b, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x70, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x54, 0x72, 0x69,
+0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x26, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61,
+0x72, 0x3b, 0x3b, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x26, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f,
+0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20,
+0x26, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x3b, 0x55, 0x67, 0x61,
+0x6e, 0x64, 0x61, 0x6e, 0x20, 0x53, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x55, 0x67, 0x61, 0x6e, 0x64,
+0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x3b, 0x3b, 0x3b, 0x3b, 0x55, 0x67, 0x61, 0x6e, 0x64,
+0x61, 0x6e, 0x20, 0x73, 0x68, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75,
+0x20, 0x56, 0x61, 0x74, 0x75, 0x3b, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x74, 0x75, 0x3b,
+0x3b, 0x3b, 0x3b, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x5a, 0x61, 0x6d,
+0x62, 0x69, 0x61, 0x6e, 0x20, 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e,
+0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x6b,
+0x77, 0x61, 0x63, 0x68, 0x61, 0x73, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x65, 0x73,
+0x65, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x53, 0x75, 0x64, 0x61, 0x6e,
+0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x53,
+0x75, 0x64, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x20, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3b, 0x4e, 0x65, 0x74, 0x68, 0x65,
+0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x47, 0x75, 0x69,
+0x6c, 0x64, 0x65, 0x72, 0x3b, 0x3b, 0x4e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41, 0x6e,
+0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e,
+0x65, 0x74, 0x68, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x41, 0x6e, 0x74, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x6e,
+0x20, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f,
+0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x74, 0x3b, 0x64, 0x6f, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e,
+0x61, 0x3b, 0x3b, 0x64, 0x6f, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x6f,
+0x6e, 0x73, 0x6b, 0x61, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x75, 0x72, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75,
+0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x61, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x61, 0x6c,
+0x67, 0xe9, 0x72, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x61, 0x6c, 0x67, 0xe9, 0x72, 0x69,
+0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x73, 0x20, 0x61, 0x6c, 0x67, 0xe9, 0x72, 0x69, 0x65,
+0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29,
+0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b,
+0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f,
+0x29, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x66,
+0x72, 0x61, 0x6e, 0x63, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72,
+0x61, 0x6e, 0x63, 0x73, 0x20, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63,
+0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43,
+0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20,
+0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x61,
+0x6e, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x20, 0x63, 0x61, 0x6e, 0x61, 0x64,
+0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x61, 0x64,
+0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x3b,
+0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x66,
+0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x63, 0x6f, 0x6d, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e,
+0x63, 0x20, 0x63, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x63,
+0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x63,
+0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x69, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x64, 0x6a, 0x69, 0x62, 0x6f,
+0x75, 0x74, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x64, 0x6a, 0x69, 0x62, 0x6f, 0x75, 0x74,
+0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x64, 0x6a, 0x69, 0x62, 0x6f, 0x75,
+0x74, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x50, 0x3b, 0x3b, 0x66, 0x72, 0x61,
+0x6e, 0x63, 0x20, 0x43, 0x46, 0x50, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20, 0x43, 0x46, 0x50,
+0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e,
+0x63, 0x20, 0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73, 0x20,
+0x67, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x6e, 0x73, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x20, 0x68, 0x61, 0xef, 0x74,
+0x69, 0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x20, 0x68, 0x61, 0xef, 0x74, 0x69, 0x65,
+0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x6f, 0x75, 0x72, 0x64, 0x65, 0x73, 0x20, 0x68, 0x61, 0xef, 0x74, 0x69,
+0x65, 0x6e, 0x6e, 0x65, 0x73, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63, 0x68,
+0x65, 0x3b, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63, 0x68, 0x65, 0x3b, 0x3b,
+0x3b, 0x3b, 0x61, 0x72, 0x69, 0x61, 0x72, 0x79, 0x73, 0x20, 0x6d, 0x61, 0x6c, 0x67, 0x61, 0x63, 0x68, 0x65, 0x73, 0x3b,
+0x6f, 0x75, 0x67, 0x75, 0x69, 0x79, 0x61, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x65, 0x6e, 0x3b,
0x3b, 0x6f, 0x75, 0x67, 0x75, 0x69, 0x79, 0x61, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x65, 0x6e,
-0x3b, 0x3b, 0x6f, 0x75, 0x67, 0x75, 0x69, 0x79, 0x61, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x65,
-0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x6f, 0x75, 0x67, 0x75, 0x69, 0x79, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x74,
-0x61, 0x6e, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x63,
-0x69, 0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x63,
-0x69, 0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x73, 0x20, 0x6d, 0x61, 0x75,
-0x72, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x73, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x20, 0x6d, 0x61, 0x72,
-0x6f, 0x63, 0x61, 0x69, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x20, 0x6d, 0x61, 0x72, 0x6f, 0x63, 0x61,
-0x69, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x73, 0x20, 0x6d, 0x61, 0x72, 0x6f, 0x63, 0x61,
-0x69, 0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b,
-0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72,
-0x61, 0x6e, 0x63, 0x73, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65,
-0x20, 0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x3b, 0x3b, 0x72, 0x6f, 0x75,
-0x70, 0x69, 0x65, 0x20, 0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x3b, 0x3b,
-0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x73, 0x20, 0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65,
-0x6c, 0x6c, 0x65, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x3b, 0x3b, 0x66,
-0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63,
-0x73, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x73, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x20, 0x73, 0x79, 0x72, 0x69,
-0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x20, 0x73, 0x79, 0x72, 0x69, 0x65, 0x6e, 0x6e, 0x65,
-0x3b, 0x3b, 0x3b, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x73, 0x20, 0x73, 0x79, 0x72, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x73,
-0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x6e,
-0x61, 0x72, 0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72,
-0x73, 0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x6e,
-0x75, 0x61, 0x74, 0x75, 0x61, 0x6e, 0x3b, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75,
-0x61, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x73, 0x20, 0x76, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x61,
-0x6e, 0x73, 0x3b, 0x50, 0x75, 0x6e, 0x6e, 0x64, 0x20, 0x53, 0x61, 0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x3b, 0x10e5,
-0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x3b, 0x3b, 0x3b, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3,
-0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b,
-0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61,
-0x6e, 0x6b, 0x65, 0x6e, 0x3b, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e,
-0x6b, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61,
-0x6e, 0x6b, 0x65, 0x6e, 0x3b, 0x395, 0x3c5, 0x3c1, 0x3ce, 0x3b, 0x3b, 0x3b5, 0x3c5, 0x3c1, 0x3ce, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b5,
-0x3c5, 0x3c1, 0x3ce, 0x3b, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6d, 0x75, 0x74, 0x20, 0x6b, 0x6f, 0x72, 0x75,
-0x75, 0x6e, 0x69, 0x3b, 0x3b, 0x64, 0x61, 0x6e, 0x73, 0x6b, 0x69, 0x6e, 0x75, 0x74, 0x20, 0x6b, 0x6f, 0x72, 0x75, 0x75,
-0x6e, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6d, 0x75, 0x74, 0x20, 0x6b, 0x6f,
-0x72, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0xaad, 0xabe, 0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf, 0xaaf, 0xabe, 0x3b,
-0x3b, 0xaad, 0xabe, 0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf, 0xaaf, 0xabe, 0x3b, 0x3b, 0x3b, 0x3b, 0xaad, 0xabe,
-0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf, 0xaaf, 0xabe, 0x3b, 0x4e, 0x61, 0x69, 0x72, 0x61, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x75, 0x257, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x66, 0x61, 0x20, 0x6e, 0x61, 0x20, 0x41, 0x66,
-0x69, 0x72, 0x6b, 0x61, 0x20, 0x54, 0x61, 0x20, 0x59, 0x61, 0x6d, 0x6d, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x5e9, 0x5f4, 0x5d7, 0x3b, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x5e9, 0x5e7, 0x5dc,
-0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9,
-0x5dd, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f,
-0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e,
-0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x90f, 0x3b, 0x6d, 0x61, 0x67, 0x79,
-0x61, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x69, 0x6e, 0x74, 0x3b, 0x3b, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72, 0x20, 0x66, 0x6f,
-0x72, 0x69, 0x6e, 0x74, 0x3b, 0x3b, 0x3b, 0x3b, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x69, 0x6e,
-0x74, 0x3b, 0xcd, 0x73, 0x6c, 0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b, 0xed, 0x73, 0x6c,
-0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0xed, 0x73, 0x6c, 0x65, 0x6e, 0x73,
-0x6b, 0x61, 0x72, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x75, 0x72, 0x3b, 0x52, 0x75, 0x70, 0x69, 0x61, 0x68, 0x20, 0x49, 0x6e,
-0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x75, 0x70, 0x69, 0x61, 0x68, 0x20,
-0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20,
-0x53, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x73, 0x76, 0x69,
-0x7a, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x69, 0x20, 0x73, 0x76, 0x69,
-0x7a, 0x7a, 0x65, 0x72, 0x69, 0x3b, 0x65e5, 0x672c, 0x5186, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x5186, 0x3b, 0xcad, 0xcbe, 0xcb0,
-0xca4, 0xcc0, 0xcaf, 0x20, 0xcb0, 0xcc1, 0xcaa, 0xcbe, 0xcaf, 0xcbf, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6c1, 0x650, 0x646,
-0x62f, 0x64f, 0x633, 0x62a, 0x672, 0x646, 0x6cd, 0x20, 0x631, 0x6c4, 0x67e, 0x64e, 0x6d2, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x49a, 0x430, 0x437, 0x430, 0x49b, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x442, 0x435, 0x4a3, 0x433, 0x435, 0x441, 0x456, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b,
-0x3b, 0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b, 0x3b, 0x3b, 0x3b,
-0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b, 0xb300, 0xd55c, 0xbbfc, 0xad6d,
-0x20, 0xc6d0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xc870, 0xc120, 0x20, 0xbbfc, 0xc8fc, 0xc8fc, 0xc758, 0x20, 0xc778, 0xbbfc, 0x20,
-0xacf5, 0xd654, 0xad6d, 0x20, 0xc6d0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x66, 0x61, 0x72, 0x61, 0x6e, 0x67, 0x61,
-0x20, 0x72, 0x79, 0x27, 0x55, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xe81,
-0xeb5, 0xe9a, 0x20, 0xea5, 0xeb2, 0xea7, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x65, 0x69,
-0x72, 0x6f, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x61, 0x6c, 0xe1,
-0x6e, 0x67, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0xf3, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b,
-0x77, 0x61, 0x6e, 0x7a, 0x61, 0x20, 0x79, 0x61, 0x20, 0x41, 0x6e, 0x67, 0xf3, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x46, 0x61, 0x6c, 0xe1, 0x6e, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x6f, 0x73, 0x20, 0x6c, 0x69, 0x74, 0x61, 0x73, 0x3b,
-0x3b, 0x4c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x6f, 0x73, 0x20, 0x6c, 0x69, 0x74, 0x61, 0x73, 0x3b, 0x3b, 0x4c, 0x69, 0x65,
-0x74, 0x75, 0x76, 0x6f, 0x73, 0x20, 0x6c, 0x69, 0x74, 0x61, 0x69, 0x3b, 0x4c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x6f, 0x73,
-0x20, 0x6c, 0x69, 0x74, 0x6f, 0x3b, 0x4c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x6f, 0x73, 0x20, 0x6c, 0x69, 0x74, 0x173, 0x3b,
-0x41c, 0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x41c, 0x430,
-0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x3b, 0x3b, 0x41c, 0x430,
-0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x41, 0x72, 0x69, 0x61, 0x72,
-0x79, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x20, 0x4d, 0x61, 0x6c, 0x61,
-0x79, 0x73, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x20, 0x4d, 0x61,
-0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x72, 0x20, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x72, 0x20, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x3b, 0x44, 0x6f,
-0x6c, 0x61, 0x72, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x75, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44,
-0x6f, 0x6c, 0x61, 0x72, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x75, 0x72, 0x61, 0x3b, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d,
-0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a, 0x3b, 0x3b, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a, 0x3b,
-0x3b, 0x3b, 0x3b, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a, 0x3b, 0x45, 0x77, 0x72, 0x6f, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x3b,
-0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924,
-0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x422, 0x4e9, 0x433, 0x440, 0x4e9, 0x433, 0x3b, 0x3b, 0x442, 0x4e9, 0x433,
-0x440, 0x4e9, 0x433, 0x3b, 0x3b, 0x3b, 0x3b, 0x442, 0x4e9, 0x433, 0x440, 0x4e9, 0x433, 0x3b, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940,
-0x20, 0x930, 0x942, 0x92a, 0x948, 0x92f, 0x93e, 0x901, 0x3b, 0x3b, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940, 0x20, 0x930, 0x942, 0x92a,
-0x948, 0x92f, 0x93e, 0x901, 0x3b, 0x3b, 0x3b, 0x3b, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940, 0x20, 0x930, 0x942, 0x92a, 0x948, 0x92f,
-0x93e, 0x901, 0x939, 0x930, 0x942, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x93f, 0x901, 0x92f, 0x93e,
-0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x93f, 0x901, 0x92f, 0x93e, 0x3b, 0x3b, 0x3b, 0x3b,
-0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x93f, 0x901, 0x92f, 0x93e, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b,
-0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e,
-0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0xb1f,
-0xb19, 0xb15, 0xb3e, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cd, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644, 0x20, 0x627, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644, 0x20,
-0x627, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x3b, 0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644, 0x20, 0x627, 0x6cc, 0x631, 0x627, 0x646, 0x3b,
-0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627, 0x646, 0x3b, 0x3b, 0x627, 0x641,
-0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627, 0x646, 0x3b, 0x3b, 0x3b, 0x3b, 0x627, 0x641,
-0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627, 0x646, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x79,
-0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x3b, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x79, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b,
-0x69, 0x3b, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x65, 0x3b, 0x7a, 0x142, 0x6f,
-0x74, 0x79, 0x63, 0x68, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x63, 0x68, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x65, 0x67,
-0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x65, 0x67, 0x6f, 0x3b, 0x52, 0x65, 0x61, 0x6c, 0x20, 0x62, 0x72, 0x61,
-0x73, 0x69, 0x6c, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x52, 0x65, 0x61, 0x6c, 0x20, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c,
-0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x65, 0x61, 0x69, 0x73, 0x20, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c,
-0x65, 0x69, 0x72, 0x6f, 0x73, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x20, 0x61, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x6e,
-0x6f, 0x3b, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x20, 0x61, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b,
-0x3b, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x73, 0x3b,
-0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x20, 0x63, 0x61, 0x62, 0x6f, 0x2d, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x6f,
-0x3b, 0x3b, 0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x20, 0x63, 0x61, 0x62, 0x6f, 0x2d, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61,
-0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x73, 0x20, 0x63, 0x61, 0x62, 0x6f, 0x2d, 0x76,
-0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x44, 0xf3, 0x6c, 0x61, 0x72, 0x20, 0x64, 0x6f, 0x73, 0x20, 0x45,
-0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x3b, 0x3b, 0x44, 0xf3, 0x6c, 0x61, 0x72,
-0x20, 0x64, 0x6f, 0x73, 0x20, 0x45, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x3b,
-0x3b, 0x3b, 0x3b, 0x44, 0xf3, 0x6c, 0x61, 0x72, 0x65, 0x73, 0x20, 0x64, 0x6f, 0x73, 0x20, 0x45, 0x73, 0x74, 0x61, 0x64,
-0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x3b, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41,
-0x20, 0x64, 0x65, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46,
-0x41, 0x20, 0x64, 0x65, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x6f,
-0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x64, 0x65, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x50, 0x61, 0x74, 0x61, 0x63,
-0x61, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x3b, 0x50, 0x61, 0x74, 0x61, 0x63, 0x61, 0x20, 0x64,
-0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x74, 0x61, 0x63, 0x61, 0x73, 0x20, 0x64,
-0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x4d,
-0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64,
-0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x65, 0x74, 0x69,
-0x63, 0x61, 0x6c, 0x65, 0x73, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b,
-0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x73, 0x3b,
-0x44, 0x6f, 0x62, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20,
-0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0x3b, 0x3b, 0x44, 0x6f, 0x62, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x53,
-0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0x3b, 0x3b,
-0x3b, 0x3b, 0x44, 0x6f, 0x62, 0x72, 0x61, 0x73, 0x20, 0x64, 0x65, 0x20, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9,
-0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0x3b, 0xa2d, 0xa3e, 0xa30, 0xa24, 0xa40, 0x20, 0xa30, 0xa41,
-0xa2a, 0xa0f, 0x3b, 0x3b, 0xa2d, 0xa3e, 0xa30, 0xa24, 0xa40, 0x20, 0xa30, 0xa41, 0xa2a, 0xa0f, 0x3b, 0x3b, 0x3b, 0x3b, 0xa2d, 0xa3e,
-0xa30, 0xa24, 0xa40, 0x20, 0xa30, 0xa41, 0xa2a, 0xa0f, 0x3b, 0x631, 0x648, 0x67e, 0x626, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x6c, 0x65, 0x75, 0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x75, 0x20,
-0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65,
-0x219, 0x74, 0x69, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b, 0x6c,
-0x65, 0x75, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x75, 0x20,
-0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x6d, 0x6f, 0x6c,
-0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f,
-0x76, 0x65, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b, 0x420, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440,
-0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x440, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440, 0x443, 0x431,
-0x43b, 0x44c, 0x3b, 0x3b, 0x3b, 0x440, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x440, 0x443, 0x431, 0x43b,
-0x435, 0x439, 0x3b, 0x440, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44f,
-0x3b, 0x411, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b,
-0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x3b,
-0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x435, 0x439, 0x3b, 0x431,
-0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44f, 0x3b, 0x41a, 0x430,
-0x437, 0x430, 0x445, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x3b, 0x43a, 0x430, 0x437, 0x430, 0x445,
-0x441, 0x43a, 0x438, 0x439, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x3b, 0x3b, 0x43a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x43a,
+0x3b, 0x3b, 0x3b, 0x3b, 0x6f, 0x75, 0x67, 0x75, 0x69, 0x79, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61,
+0x6e, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x63, 0x69,
+0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x20, 0x6d, 0x61, 0x75, 0x72, 0x69, 0x63, 0x69,
+0x65, 0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x73, 0x20, 0x6d, 0x61, 0x75, 0x72,
+0x69, 0x63, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x73, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x20, 0x6d, 0x61, 0x72, 0x6f,
+0x63, 0x61, 0x69, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x20, 0x6d, 0x61, 0x72, 0x6f, 0x63, 0x61, 0x69,
+0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x72, 0x68, 0x61, 0x6d, 0x73, 0x20, 0x6d, 0x61, 0x72, 0x6f, 0x63, 0x61, 0x69,
+0x6e, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x66,
+0x72, 0x61, 0x6e, 0x63, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61,
+0x6e, 0x63, 0x73, 0x20, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x69, 0x73, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x20,
+0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x3b, 0x3b, 0x72, 0x6f, 0x75, 0x70,
+0x69, 0x65, 0x20, 0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x3b, 0x3b, 0x3b,
+0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x65, 0x73, 0x20, 0x64, 0x65, 0x73, 0x20, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c,
+0x6c, 0x65, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x3b, 0x3b, 0x66, 0x72,
+0x61, 0x6e, 0x63, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x73,
+0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x73, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x20, 0x73, 0x79, 0x72, 0x69, 0x65,
+0x6e, 0x6e, 0x65, 0x3b, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x20, 0x73, 0x79, 0x72, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x3b,
+0x3b, 0x3b, 0x3b, 0x6c, 0x69, 0x76, 0x72, 0x65, 0x73, 0x20, 0x73, 0x79, 0x72, 0x69, 0x65, 0x6e, 0x6e, 0x65, 0x73, 0x3b,
+0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61,
+0x72, 0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x73,
+0x20, 0x74, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x73, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x6e, 0x75,
+0x61, 0x74, 0x75, 0x61, 0x6e, 0x3b, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x20, 0x76, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x61,
+0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x76, 0x61, 0x74, 0x75, 0x73, 0x20, 0x76, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x61, 0x6e,
+0x73, 0x3b, 0x50, 0x75, 0x6e, 0x6e, 0x64, 0x20, 0x53, 0x61, 0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x3b, 0x70,
+0x68, 0x75, 0x6e, 0x6e, 0x64, 0x20, 0x53, 0x61, 0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x70, 0x68, 0x75, 0x6e,
+0x6e, 0x64, 0x20, 0x53, 0x61, 0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x70, 0x75, 0x69, 0x6e, 0x6e, 0x64, 0x20,
+0x53, 0x68, 0x61, 0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x3b, 0x70, 0x75, 0x6e, 0x6e, 0x64, 0x20, 0x53, 0x61,
+0x73, 0x61, 0x6e, 0x6e, 0x61, 0x63, 0x68, 0x3b, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8,
+0x3b, 0x3b, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x3b, 0x3b, 0x3b, 0x10e5, 0x10d0,
+0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x20, 0x10da, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x45, 0x75, 0x72,
+0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20,
+0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x6e, 0x3b, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46,
+0x72, 0x61, 0x6e, 0x6b, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20,
+0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x6e, 0x3b, 0x395, 0x3c5, 0x3c1, 0x3ce, 0x3b, 0x3b, 0x3b5, 0x3c5, 0x3c1, 0x3ce, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b5, 0x3c5, 0x3c1, 0x3ce, 0x3b, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6d, 0x75, 0x74, 0x20, 0x6b,
+0x6f, 0x72, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x3b, 0x64, 0x61, 0x6e, 0x73, 0x6b, 0x69, 0x6e, 0x75, 0x74, 0x20, 0x6b, 0x6f,
+0x72, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x69, 0x6d, 0x75, 0x74,
+0x20, 0x6b, 0x6f, 0x72, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0xaad, 0xabe, 0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf,
+0xaaf, 0xabe, 0x3b, 0x3b, 0xaad, 0xabe, 0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf, 0xaaf, 0xabe, 0x3b, 0x3b, 0x3b,
+0x3b, 0xaad, 0xabe, 0xab0, 0xaa4, 0xac0, 0xaaf, 0x20, 0xab0, 0xac2, 0xaaa, 0xabf, 0xaaf, 0xabe, 0x3b, 0x4e, 0x61, 0x69, 0x72, 0x61,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x75, 0x257, 0x69, 0x6e, 0x20, 0x53, 0x65, 0x66, 0x61, 0x20, 0x6e, 0x61,
+0x20, 0x41, 0x66, 0x69, 0x72, 0x6b, 0x61, 0x20, 0x54, 0x61, 0x20, 0x59, 0x61, 0x6d, 0x6d, 0x61, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x5e9, 0x5f4, 0x5d7, 0x3b, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b,
+0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7,
+0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x5e9, 0x5e7, 0x5dc, 0x5d9, 0x5dd, 0x20, 0x5d7, 0x5d3, 0x5e9, 0x5d9, 0x5dd, 0x3b, 0x92d, 0x93e, 0x930,
+0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941,
+0x92a, 0x92f, 0x93e, 0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x90f, 0x3b, 0x6d,
+0x61, 0x67, 0x79, 0x61, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x69, 0x6e, 0x74, 0x3b, 0x3b, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72,
+0x20, 0x66, 0x6f, 0x72, 0x69, 0x6e, 0x74, 0x3b, 0x3b, 0x3b, 0x3b, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72, 0x20, 0x66, 0x6f,
+0x72, 0x69, 0x6e, 0x74, 0x3b, 0xcd, 0x73, 0x6c, 0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b,
+0xed, 0x73, 0x6c, 0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0xed, 0x73, 0x6c,
+0x65, 0x6e, 0x73, 0x6b, 0x61, 0x72, 0x20, 0x6b, 0x72, 0xf3, 0x6e, 0x75, 0x72, 0x3b, 0x52, 0x75, 0x70, 0x69, 0x61, 0x68,
+0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x75, 0x70, 0x69,
+0x61, 0x68, 0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
+0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65,
+0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75,
+0x72, 0x6f, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x3b,
+0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x66,
+0x72, 0x61, 0x6e, 0x63, 0x68, 0x69, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x69, 0x3b, 0x65e5, 0x672c, 0x5186, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x5186, 0x3b, 0xcad, 0xcbe, 0xcb0, 0xca4, 0xcc0, 0xcaf, 0x20, 0xcb0, 0xcc1, 0xcaa, 0xcbe, 0xcaf, 0xcbf,
+0x3b, 0x3b, 0xcad, 0xcbe, 0xcb0, 0xca4, 0xcc0, 0xcaf, 0x20, 0xcb0, 0xcc1, 0xcaa, 0xcbe, 0xcaf, 0xcbf, 0x3b, 0x3b, 0x3b, 0x3b, 0xcad,
+0xcbe, 0xcb0, 0xca4, 0xcc0, 0xcaf, 0x20, 0xcb0, 0xcc1, 0xcaa, 0xcbe, 0xcaf, 0xcbf, 0x3b, 0x6c1, 0x650, 0x646, 0x62f, 0x64f, 0x633, 0x62a,
+0x672, 0x646, 0x6cd, 0x20, 0x631, 0x6c4, 0x67e, 0x64e, 0x6d2, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49a, 0x430, 0x437, 0x430,
+0x49b, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x442, 0x435, 0x4a3, 0x433, 0x435, 0x441, 0x456, 0x3b, 0x3b, 0x49a, 0x430, 0x437, 0x430, 0x49b,
+0x441, 0x442, 0x430, 0x43d, 0x20, 0x442, 0x435, 0x4a3, 0x433, 0x435, 0x441, 0x456, 0x3b, 0x3b, 0x3b, 0x3b, 0x49a, 0x430, 0x437, 0x430,
+0x49b, 0x441, 0x442, 0x430, 0x43d, 0x20, 0x442, 0x435, 0x4a3, 0x433, 0x435, 0x441, 0x456, 0x3b, 0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437,
+0x441, 0x442, 0x430, 0x43d, 0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b, 0x3b, 0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x441, 0x442, 0x430,
+0x43d, 0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b, 0x3b, 0x3b, 0x3b, 0x41a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d,
+0x20, 0x441, 0x43e, 0x43c, 0x443, 0x3b, 0xb300, 0xd55c, 0xbbfc, 0xad6d, 0x20, 0xc6d0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xb300, 0xd55c,
+0xbbfc, 0xad6d, 0x20, 0xc6d0, 0x3b, 0xc870, 0xc120, 0x20, 0xbbfc, 0xc8fc, 0xc8fc, 0xc758, 0x20, 0xc778, 0xbbfc, 0x20, 0xacf5, 0xd654, 0xad6d, 0x20,
+0xc6d0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xc870, 0xc120, 0x20, 0xbbfc, 0xc8fc, 0xc8fc, 0xc758, 0x20, 0xc778, 0xbbfc, 0x20, 0xacf5, 0xd654,
+0xad6d, 0x20, 0xc6d0, 0x3b, 0x49, 0x66, 0x61, 0x72, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x72, 0x79, 0x2019, 0x55, 0x62, 0x75, 0x72,
+0x75, 0x6e, 0x64, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xea5, 0xeb2, 0xea7, 0x20, 0xe81, 0xeb5, 0xe9a, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0xea5, 0xeb2, 0xea7, 0x20, 0xe81, 0xeb5, 0xe9a, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x65, 0x69, 0x72,
+0x6f, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x61, 0x6c, 0xe1, 0x6e,
+0x67, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0xf3, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x77,
+0x61, 0x6e, 0x7a, 0x61, 0x20, 0x79, 0x61, 0x20, 0x41, 0x6e, 0x67, 0xf3, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x46, 0x61, 0x6c, 0xe1, 0x6e, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x61, 0x73, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x61, 0x73, 0x3b, 0x3b, 0x65, 0x75,
+0x72, 0x61, 0x69, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x173, 0x3b, 0x41c, 0x430, 0x43a, 0x435, 0x434, 0x43e,
+0x43d, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x41c, 0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441,
+0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x3b, 0x3b, 0x41c, 0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441,
+0x43a, 0x438, 0x20, 0x434, 0x435, 0x43d, 0x430, 0x440, 0x3b, 0x41, 0x72, 0x69, 0x61, 0x72, 0x79, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x52, 0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x20, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x69, 0x6e, 0x67, 0x67, 0x69, 0x74, 0x20, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61,
+0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x72, 0x20, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44,
+0x6f, 0x6c, 0x61, 0x72, 0x20, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x72, 0x20, 0x53, 0x69,
+0x6e, 0x67, 0x61, 0x70, 0x75, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x72, 0x20, 0x53,
+0x69, 0x6e, 0x67, 0x61, 0x70, 0x75, 0x72, 0x61, 0x3b, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a,
+0x3b, 0x3b, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a, 0x3b, 0x3b, 0x3b, 0x3b, 0xd07, 0xd28, 0xd4d,
+0xd24, 0xd4d, 0xd2f, 0xd7b, 0x20, 0xd30, 0xd42, 0xd2a, 0x3b, 0x65, 0x77, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x77, 0x72, 0x6f, 0x3b,
+0x3b, 0x65, 0x77, 0x72, 0x6f, 0x3b, 0x65, 0x77, 0x72, 0x6f, 0x3b, 0x65, 0x77, 0x72, 0x6f, 0x3b, 0x92d, 0x93e, 0x930, 0x924,
+0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x93e, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a,
+0x92f, 0x93e, 0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x941, 0x92a, 0x92f, 0x947, 0x3b, 0x442,
+0x4e9, 0x433, 0x440, 0x4e9, 0x433, 0x3b, 0x3b, 0x442, 0x4e9, 0x433, 0x440, 0x4e9, 0x433, 0x3b, 0x3b, 0x3b, 0x3b, 0x442, 0x4e9, 0x433,
+0x440, 0x4e9, 0x433, 0x3b, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940, 0x20, 0x930, 0x942, 0x92a, 0x948, 0x92f, 0x93e, 0x901, 0x3b, 0x3b,
+0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940, 0x20, 0x930, 0x942, 0x92a, 0x948, 0x92f, 0x93e, 0x901, 0x3b, 0x3b, 0x3b, 0x3b, 0x928, 0x947,
+0x92a, 0x93e, 0x932, 0x940, 0x20, 0x930, 0x942, 0x92a, 0x948, 0x92f, 0x93e, 0x901, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20,
+0x930, 0x942, 0x92a, 0x93f, 0x901, 0x92f, 0x93e, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x93f,
+0x901, 0x92f, 0x93e, 0x3b, 0x3b, 0x3b, 0x3b, 0x92d, 0x93e, 0x930, 0x924, 0x940, 0x92f, 0x20, 0x930, 0x942, 0x92a, 0x93f, 0x901, 0x92f,
+0x93e, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0x3b, 0x6e, 0x6f, 0x72,
+0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x65, 0x20, 0x6b,
+0x72, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0xb1f, 0xb19, 0xb15, 0xb3e, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x627, 0x641, 0x63a,
+0x627, 0x646, 0x6cd, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644, 0x20, 0x627, 0x6cc, 0x631, 0x627, 0x646,
+0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644, 0x20, 0x627, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x3b, 0x3b, 0x3b, 0x631, 0x6cc, 0x627, 0x644,
+0x20, 0x627, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633,
+0x62a, 0x627, 0x646, 0x3b, 0x3b, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627,
+0x646, 0x3b, 0x3b, 0x3b, 0x3b, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x20, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627,
+0x646, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x79, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x3b, 0x3b, 0x7a, 0x142, 0x6f, 0x74,
+0x79, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x3b, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x73,
+0x6b, 0x69, 0x65, 0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x79, 0x63, 0x68, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x63, 0x68,
+0x3b, 0x7a, 0x142, 0x6f, 0x74, 0x65, 0x67, 0x6f, 0x20, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x65, 0x67, 0x6f, 0x3b, 0x52,
+0x65, 0x61, 0x6c, 0x20, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x52, 0x65, 0x61, 0x6c,
+0x20, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x52, 0x65, 0x61, 0x69, 0x73,
+0x20, 0x62, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x65, 0x69, 0x72, 0x6f, 0x73, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x20,
+0x61, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x20, 0x61, 0x6e, 0x67,
+0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x4b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x67,
+0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x20, 0x63, 0x61, 0x62, 0x6f, 0x2d, 0x76,
+0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x20, 0x63, 0x61, 0x62, 0x6f,
+0x2d, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x73, 0x63, 0x75, 0x64, 0x6f, 0x73,
+0x20, 0x63, 0x61, 0x62, 0x6f, 0x2d, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x44, 0xf3, 0x6c, 0x61,
+0x72, 0x20, 0x64, 0x6f, 0x73, 0x20, 0x45, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73,
+0x3b, 0x3b, 0x44, 0xf3, 0x6c, 0x61, 0x72, 0x20, 0x64, 0x6f, 0x73, 0x20, 0x45, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20,
+0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0xf3, 0x6c, 0x61, 0x72, 0x65, 0x73, 0x20, 0x64, 0x6f,
+0x73, 0x20, 0x45, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x3b, 0x46, 0x72, 0x61,
+0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x3b, 0x46, 0x72, 0x61,
+0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x46,
+0x72, 0x61, 0x6e, 0x63, 0x6f, 0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x50,
+0x61, 0x74, 0x61, 0x63, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x3b, 0x50, 0x61, 0x74, 0x61,
+0x63, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x74, 0x61, 0x63,
+0x61, 0x73, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20,
+0x64, 0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63,
+0x61, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b, 0x3b, 0x3b, 0x3b,
+0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69,
+0x71, 0x75, 0x65, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x75,
+0x72, 0x6f, 0x73, 0x3b, 0x44, 0x6f, 0x62, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d,
+0xe9, 0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0x3b, 0x3b, 0x44, 0x6f, 0x62, 0x72, 0x61, 0x20,
+0x64, 0x65, 0x20, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69,
+0x70, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x6f, 0x62, 0x72, 0x61, 0x73, 0x20, 0x64, 0x65, 0x20, 0x53, 0xe3, 0x6f, 0x20,
+0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0x3b, 0xa2d, 0xa3e, 0xa30, 0xa24,
+0xa40, 0x20, 0xa30, 0xa41, 0xa2a, 0xa07, 0xa06, 0x3b, 0x3b, 0xa2d, 0xa3e, 0xa30, 0xa24, 0xa40, 0x20, 0xa30, 0xa41, 0xa2a, 0xa07, 0xa06,
+0x3b, 0x3b, 0x3b, 0x3b, 0xa2d, 0xa3e, 0xa30, 0xa24, 0xa40, 0x20, 0xa30, 0xa41, 0xa2a, 0xa0f, 0x3b, 0x631, 0x648, 0x67e, 0x626, 0x6cc,
+0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65,
+0x72, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x3b, 0x3b, 0x3b, 0x3b,
+0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x73, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x3b, 0x6c, 0x65, 0x75, 0x20, 0x72, 0x6f,
+0x6d, 0xe2, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x75, 0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x73, 0x63,
+0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b, 0x3b, 0x6c, 0x65, 0x69,
+0x20, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b, 0x6c, 0x65, 0x75, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f,
+0x76, 0x65, 0x6e, 0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x75, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e,
+0x65, 0x73, 0x63, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x219, 0x74,
+0x69, 0x3b, 0x3b, 0x6c, 0x65, 0x69, 0x20, 0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x219, 0x74, 0x69, 0x3b,
+0x420, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x440, 0x43e,
+0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x440, 0x43e, 0x441, 0x441,
+0x438, 0x439, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44f, 0x3b, 0x440, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441,
+0x43a, 0x438, 0x445, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x435, 0x439, 0x3b, 0x440, 0x43e, 0x441, 0x441, 0x438, 0x439, 0x441, 0x43a, 0x43e,
+0x433, 0x43e, 0x20, 0x440, 0x443, 0x431, 0x43b, 0x44f, 0x3b, 0x411, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439,
+0x20, 0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439, 0x20,
+0x440, 0x443, 0x431, 0x43b, 0x44c, 0x3b, 0x3b, 0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x440,
+0x443, 0x431, 0x43b, 0x44f, 0x3b, 0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x440, 0x443, 0x431,
+0x43b, 0x435, 0x439, 0x3b, 0x431, 0x435, 0x43b, 0x43e, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20, 0x440, 0x443, 0x431,
+0x43b, 0x44f, 0x3b, 0x41a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x3b,
+0x43a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x3b, 0x43a, 0x430, 0x437,
+0x430, 0x445, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x43a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x43a,
0x438, 0x445, 0x20, 0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x43a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20,
0x442, 0x435, 0x43d, 0x433, 0x435, 0x3b, 0x41a, 0x438, 0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x441, 0x43e, 0x43c,
-0x3b, 0x3b, 0x43a, 0x438, 0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x441, 0x43e, 0x43c, 0x3b, 0x3b, 0x3b, 0x43a,
-0x438, 0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x441, 0x43e, 0x43c, 0x430, 0x3b, 0x43a, 0x438, 0x440, 0x433, 0x438,
-0x437, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20, 0x441, 0x43e, 0x43c, 0x430, 0x3b, 0x41c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a,
-0x438, 0x439, 0x20, 0x43b, 0x435, 0x439, 0x3b, 0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x43b,
-0x435, 0x439, 0x3b, 0x3b, 0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x43b, 0x435, 0x435, 0x432,
-0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x43e, 0x433, 0x43e, 0x20, 0x43b, 0x435, 0x44f, 0x3b, 0x423, 0x43a, 0x440,
-0x430, 0x438, 0x43d, 0x441, 0x43a, 0x430, 0x44f, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x430, 0x3b, 0x3b, 0x443, 0x43a, 0x440, 0x430,
-0x438, 0x43d, 0x441, 0x43a, 0x430, 0x44f, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x430, 0x3b, 0x3b, 0x3b, 0x443, 0x43a, 0x440, 0x430,
-0x438, 0x43d, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x433, 0x440, 0x438, 0x432, 0x435, 0x43d, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x438, 0x43d,
-0x441, 0x43a, 0x43e, 0x439, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x44b, 0x3b, 0x66, 0x61, 0x72, 0xe2, 0x6e, 0x67, 0x61, 0x20,
-0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x421, 0x440, 0x43f,
-0x441, 0x43a, 0x438, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x438,
-0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x430, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x430, 0x3b, 0x3b,
-0x441, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x430, 0x3b, 0x4b, 0x6f, 0x6e, 0x76, 0x65,
-0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61,
-0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x61, 0x20, 0x6b, 0x6f,
-0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62,
-0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x65,
-0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65,
-0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61,
-0x10d, 0x6b, 0x69, 0x68, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x69, 0x68, 0x20,
-0x6d, 0x61, 0x72, 0x61, 0x6b, 0x61, 0x3b, 0x45, 0x76, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
-0x76, 0x72, 0x61, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x61, 0x3b, 0x53, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x20, 0x64, 0x69, 0x6e,
-0x61, 0x72, 0x3b, 0x3b, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x3b, 0x3b, 0x73, 0x72,
-0x70, 0x73, 0x6b, 0x61, 0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x61, 0x3b, 0x3b, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x68,
-0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x61, 0x3b, 0x41a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d,
-0x430, 0x20, 0x41c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435,
-0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x430, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431,
-0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e,
-0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x435, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440,
-0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x435, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x65, 0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d,
-0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x438, 0x445, 0x20, 0x43a, 0x43e,
-0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x438, 0x445, 0x20, 0x43c, 0x430, 0x440, 0x430, 0x43a, 0x430, 0x3b,
-0x415, 0x432, 0x440, 0x43e, 0x3b, 0x3b, 0x435, 0x432, 0x440, 0x43e, 0x3b, 0x3b, 0x435, 0x432, 0x440, 0x430, 0x3b, 0x3b, 0x435, 0x432,
-0x440, 0x430, 0x3b, 0x41b, 0x430, 0x440, 0x3b, 0x3b, 0x43b, 0x430, 0x440, 0x3b, 0x3b, 0x3b, 0x3b, 0x43b, 0x430, 0x440, 0x44b, 0x3b,
-0x421, 0x43e, 0x43c, 0x3b, 0x3b, 0x441, 0x43e, 0x43c, 0x3b, 0x3b, 0x3b, 0x3b, 0x441, 0x43e, 0x43c, 0x44b, 0x3b, 0x44, 0x6f, 0x72,
-0x61, 0x20, 0x72, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x6b, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xdc1,
-0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a, 0xdcf, 0x20, 0xdbb, 0xdd4, 0xdb4, 0xdd2, 0xdba, 0xdbd, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0xe1, 0x3b,
-0x65, 0x75, 0x72, 0x61, 0x3b, 0x65, 0x75, 0x72, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x3b,
-0x65, 0x76, 0x72, 0x61, 0x3b, 0x65, 0x76, 0x72, 0x69, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x76, 0x3b, 0x53, 0x68, 0x69,
-0x6c, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46,
-0x61, 0x72, 0x61, 0x6e, 0x20, 0x4a, 0x61, 0x62, 0x62, 0x75, 0x75, 0x74, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x42, 0x69, 0x72, 0x74, 0x61, 0x20, 0x49, 0x74, 0x6f, 0x6f, 0x62, 0x62, 0x69, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65,
-0x73, 0x6f, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f,
-0x73, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x73, 0x3b, 0x62, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61,
-0x6e, 0x6f, 0x3b, 0x3b, 0x62, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x62, 0x6f, 0x6c,
-0x69, 0x76, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x6e, 0x6f,
-0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65,
-0x73, 0x6f, 0x73, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x6f,
-0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x6d,
-0x62, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x6d,
-0x62, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x63, 0x6f, 0x6c, 0xf3, 0x6e, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x72,
-0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x63, 0x6f, 0x6c, 0xf3, 0x6e, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x61, 0x72,
-0x72, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x6e, 0x65, 0x73, 0x20, 0x63,
-0x6f, 0x73, 0x74, 0x61, 0x72, 0x72, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63,
-0x75, 0x62, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x75, 0x62, 0x61, 0x6e, 0x6f, 0x3b, 0x3b,
-0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x63, 0x75, 0x62, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f,
-0x20, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x64, 0x6f,
-0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x64, 0x6f,
-0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x64, 0xf3, 0x6c, 0x61, 0x72, 0x20, 0x65, 0x73, 0x74, 0x61,
-0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x64, 0xf3, 0x6c, 0x61, 0x72, 0x20, 0x65, 0x73,
-0x74, 0x61, 0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x64, 0xf3, 0x6c, 0x61,
-0x72, 0x65, 0x73, 0x20, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x3b,
-0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x66, 0x72, 0x61,
-0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0x61, 0x6e,
-0x63, 0x6f, 0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x71, 0x75, 0x65, 0x74, 0x7a, 0x61, 0x6c,
-0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x3b, 0x3b, 0x71, 0x75, 0x65, 0x74, 0x7a,
-0x61, 0x6c, 0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x71,
-0x75, 0x65, 0x74, 0x7a, 0x61, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x65, 0x63,
-0x6f, 0x73, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x20, 0x68, 0x6f, 0x6e, 0x64, 0x75, 0x72, 0x65, 0xf1, 0x6f,
-0x3b, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x20, 0x68, 0x6f, 0x6e, 0x64, 0x75, 0x72, 0x65, 0xf1, 0x6f, 0x3b,
-0x3b, 0x3b, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x73, 0x20, 0x68, 0x6f, 0x6e, 0x64, 0x75, 0x72, 0x65, 0xf1,
-0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65,
-0x73, 0x6f, 0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73,
-0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x63, 0xf3, 0x72, 0x64, 0x6f, 0x62, 0x61, 0x20, 0x6e,
-0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x63, 0xf3, 0x72, 0x64, 0x6f, 0x62, 0x61,
-0x20, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x63, 0xf3, 0x72,
-0x64, 0x6f, 0x62, 0x61, 0x73, 0x20, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x3b,
-0x62, 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x3b, 0x3b, 0x62, 0x61, 0x6c,
-0x62, 0x6f, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x62, 0x61, 0x6c, 0x62,
-0x6f, 0x61, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x73, 0x3b, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e,
-0xed, 0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0xed,
-0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e,
-0xed, 0x65, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x73, 0x3b, 0x6e, 0x75, 0x65, 0x76, 0x6f,
-0x20, 0x73, 0x6f, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x6e, 0x75, 0x65, 0x76, 0x6f, 0x20,
-0x73, 0x6f, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e, 0x75, 0x65, 0x76, 0x6f,
-0x73, 0x20, 0x73, 0x6f, 0x6c, 0x65, 0x73, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73,
-0x6f, 0x20, 0x66, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x66, 0x69, 0x6c,
-0x69, 0x70, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x69, 0x70,
-0x69, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b,
-0x70, 0x65, 0x73, 0x6f, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73,
-0x6f, 0x73, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x73, 0x3b, 0x62, 0x6f, 0x6c, 0xed, 0x76, 0x61, 0x72,
-0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x62, 0x6f, 0x6c, 0xed, 0x76, 0x61, 0x72,
-0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x62, 0x6f, 0x6c, 0xed, 0x76,
-0x61, 0x72, 0x65, 0x73, 0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x73, 0x68, 0x69,
-0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79,
-0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20,
-0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x20,
-0x6b, 0x72, 0x6f, 0x6e, 0x61, 0x3b, 0x3b, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x61, 0x3b,
-0x3b, 0x3b, 0x3b, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x6f, 0x72, 0x3b, 0x65, 0x75,
-0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x421, 0x43e, 0x43c,
-0x43e, 0x43d, 0x4e3, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0xbae, 0xbb2, 0xbc7, 0xb9a, 0xbbf, 0xbaf, 0x20, 0xbb0, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbbf, 0xb9f, 0xbcd, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xb9a, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0x20, 0xb9f, 0xbbe, 0xbb2,
-0xbb0, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xb87, 0xbb2, 0xb99, 0xbcd, 0xb95, 0xbc8, 0x20, 0xbb0, 0xbc2, 0xbaa, 0xbbe,
-0xbaf, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xc30, 0xc42, 0xc2a, 0xc3e, 0xc2f, 0xc3f, 0x3b, 0x3b, 0xc30, 0xc42, 0xc2a,
-0xc3e, 0xc2f, 0xc3f, 0x3b, 0x3b, 0x3b, 0x3b, 0xc30, 0xc42, 0xc2a, 0xc3e, 0xc2f, 0xc32, 0xc41, 0x3b, 0xe1a, 0xe32, 0xe17, 0xe44, 0xe17,
-0xe22, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xe1a, 0xe32, 0xe17, 0xe44, 0xe17, 0xe22, 0x3b, 0xf61, 0xf74, 0xf0b, 0xf68, 0xf53, 0xf0b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf42, 0xf62, 0xf0b, 0xf66, 0xf92, 0xf7c, 0xf62, 0xf0b, 0xf58,
-0xf7c, 0xf0b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x20, 0x50, 0x61, 0x27, 0x61, 0x6e, 0x67, 0x61, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0xfc, 0x72, 0x6b, 0x20, 0x4c, 0x69, 0x72, 0x61, 0x73, 0x131, 0x3b, 0x3b, 0x54,
-0xfc, 0x72, 0x6b, 0x20, 0x6c, 0x69, 0x72, 0x61, 0x73, 0x131, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0xfc, 0x72, 0x6b, 0x20, 0x6c,
-0x69, 0x72, 0x61, 0x73, 0x131, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x457, 0x43d, 0x441, 0x44c, 0x43a, 0x430, 0x20, 0x433, 0x440, 0x438,
-0x432, 0x43d, 0x44f, 0x3b, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x44f, 0x3b, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x456, 0x3b,
-0x433, 0x440, 0x438, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x456, 0x3b, 0x67e, 0x627, 0x6a9, 0x633, 0x62a,
-0x627, 0x646, 0x6cc, 0x20, 0x631, 0x648, 0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x627, 0x646, 0x688, 0x6cc,
-0x646, 0x20, 0x631, 0x648, 0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b,
-0x69, 0x73, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d, 0x3b, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73,
-0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d, 0x3b, 0x3b, 0x3b, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73,
-0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d, 0x3b, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x20, 0x441, 0x45e, 0x43c, 0x3b, 0x3b, 0x40e, 0x437,
-0x431, 0x435, 0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x20, 0x441, 0x45e, 0x43c, 0x3b, 0x3b, 0x3b, 0x3b, 0x40e, 0x437, 0x431, 0x435,
-0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x20, 0x441, 0x45e, 0x43c, 0x3b, 0x110, 0x1ed3, 0x6e, 0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74,
-0x20, 0x4e, 0x61, 0x6d, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x111, 0x1ed3, 0x6e, 0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74, 0x20,
-0x4e, 0x61, 0x6d, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x72,
-0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x20,
-0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e,
-0x67, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c,
-0x69, 0x6e, 0x67, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53, 0x74, 0x65,
-0x72, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x53,
-0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74,
-0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x61,
-0x69, 0x72, 0x61, 0x20, 0x74, 0x69, 0x20, 0x4f, 0x72, 0xed, 0x6c, 0x1eb9, 0x301, 0xe8, 0x64, 0x65, 0x20, 0x4e, 0xe0, 0xec,
-0x6a, 0xed, 0x72, 0xed, 0xe0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x61, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x20,
-0x74, 0x69, 0x20, 0x4f, 0x72, 0xed, 0x6c, 0x25b, 0x301, 0xe8, 0x64, 0x65, 0x20, 0x42, 0x49, 0x4b, 0x45, 0x41, 0x4f, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x69, 0x2d, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61,
-0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6b,
-0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x3b,
-0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x72, 0x3b, 0x42, 0x6f, 0x73, 0x61, 0x6e,
-0x73, 0x6b, 0x6f, 0x2d, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x61, 0x20, 0x6b, 0x6f, 0x6e,
-0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f,
-0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x61, 0x20,
-0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b,
-0x3b, 0x42, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d,
-0x6b, 0x65, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x72,
-0x6b, 0x65, 0x3b, 0x42, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76,
-0x61, 0x10d, 0x6b, 0x69, 0x68, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x69, 0x68,
-0x20, 0x6d, 0x61, 0x72, 0x61, 0x6b, 0x61, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72,
-0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x69, 0x68, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62,
-0x69, 0x6c, 0x6e, 0x69, 0x68, 0x20, 0x6d, 0x61, 0x72, 0x61, 0x6b, 0x61, 0x3b, 0x41a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442,
-0x438, 0x431, 0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441,
-0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x430, 0x20, 0x43a, 0x43e, 0x43d, 0x432,
+0x3b, 0x3b, 0x43a, 0x438, 0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x441, 0x43e, 0x43c, 0x3b, 0x3b, 0x43a, 0x438,
+0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x441, 0x43e, 0x43c, 0x430, 0x3b, 0x43a, 0x438, 0x440, 0x433, 0x438, 0x437,
+0x441, 0x43a, 0x438, 0x445, 0x20, 0x441, 0x43e, 0x43c, 0x430, 0x3b, 0x43a, 0x438, 0x440, 0x433, 0x438, 0x437, 0x441, 0x43a, 0x43e, 0x433,
+0x43e, 0x20, 0x441, 0x43e, 0x43c, 0x430, 0x3b, 0x41c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x43b, 0x435,
+0x439, 0x3b, 0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x438, 0x439, 0x20, 0x43b, 0x435, 0x439, 0x3b, 0x3b, 0x43c,
+0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x43b, 0x435, 0x44f, 0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432,
+0x441, 0x43a, 0x438, 0x445, 0x20, 0x43b, 0x435, 0x435, 0x432, 0x3b, 0x43c, 0x43e, 0x43b, 0x434, 0x430, 0x432, 0x441, 0x43a, 0x43e, 0x433,
+0x43e, 0x20, 0x43b, 0x435, 0x44f, 0x3b, 0x423, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x441, 0x43a, 0x430, 0x44f, 0x20, 0x433, 0x440, 0x438,
+0x432, 0x43d, 0x430, 0x3b, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x441, 0x43a, 0x430, 0x44f, 0x20, 0x433, 0x440, 0x438, 0x432,
+0x43d, 0x430, 0x3b, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x441, 0x43a, 0x438, 0x435, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d,
+0x44b, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x433, 0x440, 0x438, 0x432, 0x435, 0x43d, 0x3b,
+0x443, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x441, 0x43a, 0x43e, 0x439, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x44b, 0x3b, 0x66, 0x61,
+0x72, 0xe2, 0x6e, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x421, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x441, 0x440, 0x43f,
+0x441, 0x43a, 0x438, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x3b, 0x3b, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x430, 0x20, 0x434, 0x438,
+0x43d, 0x430, 0x440, 0x430, 0x3b, 0x3b, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x445, 0x20, 0x434, 0x438, 0x43d, 0x430, 0x440, 0x430,
+0x3b, 0x42, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d,
+0x6b, 0x61, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61, 0x72,
+0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f,
+0x76, 0x61, 0x10d, 0x6b, 0x61, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20,
+0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63,
+0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x65, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c,
+0x6e, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68,
+0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x69, 0x68, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74,
+0x69, 0x62, 0x69, 0x6c, 0x6e, 0x69, 0x68, 0x20, 0x6d, 0x61, 0x72, 0x61, 0x6b, 0x61, 0x3b, 0x45, 0x76, 0x72, 0x6f, 0x3b,
+0x3b, 0x65, 0x76, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x61, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x61, 0x3b, 0x53, 0x72,
+0x70, 0x73, 0x6b, 0x69, 0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x3b, 0x3b, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x20, 0x64,
+0x69, 0x6e, 0x61, 0x72, 0x3b, 0x3b, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x61, 0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x61, 0x3b,
+0x3b, 0x73, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x68, 0x20, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x61, 0x3b, 0x411, 0x43e, 0x441, 0x430,
+0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x430, 0x20, 0x43a, 0x43e,
+0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b, 0x431,
+0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x430,
+0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430,
+0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430,
+0x447, 0x43a, 0x435, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x435, 0x20, 0x43c, 0x430,
+0x440, 0x43a, 0x65, 0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433,
+0x43e, 0x432, 0x430, 0x447, 0x43a, 0x438, 0x445, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d,
+0x438, 0x445, 0x20, 0x43c, 0x430, 0x440, 0x430, 0x43a, 0x430, 0x3b, 0x415, 0x432, 0x440, 0x43e, 0x3b, 0x3b, 0x435, 0x432, 0x440, 0x43e,
+0x3b, 0x3b, 0x435, 0x432, 0x440, 0x430, 0x3b, 0x3b, 0x435, 0x432, 0x440, 0x430, 0x3b, 0x41b, 0x430, 0x440, 0x3b, 0x3b, 0x43b, 0x430,
+0x440, 0x3b, 0x3b, 0x3b, 0x3b, 0x43b, 0x430, 0x440, 0x44b, 0x3b, 0x421, 0x43e, 0x43c, 0x3b, 0x3b, 0x441, 0x43e, 0x43c, 0x3b, 0x3b,
+0x3b, 0x3b, 0x441, 0x43e, 0x43c, 0x44b, 0x3b, 0x44, 0x6f, 0x72, 0x61, 0x20, 0x72, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x6b, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xdc1, 0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a, 0xdcf, 0x20,
+0xdbb, 0xdd4, 0xdb4, 0xdd2, 0xdba, 0xdbd, 0x3b, 0x3b, 0xdc1, 0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a, 0xdcf, 0x20, 0xdbb,
+0xdd4, 0xdb4, 0xdd2, 0xdba, 0xdbd, 0x3b, 0x3b, 0x3b, 0x3b, 0xdc1, 0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a, 0xdcf, 0x20,
+0xdbb, 0xdd4, 0xdb4, 0xdd2, 0xdba, 0xdbd, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
+0x75, 0x72, 0xe1, 0x3b, 0x65, 0x75, 0x72, 0x61, 0x3b, 0x65, 0x75, 0x72, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
+0x76, 0x72, 0x6f, 0x3b, 0x65, 0x76, 0x72, 0x61, 0x3b, 0x65, 0x76, 0x72, 0x69, 0x3b, 0x3b, 0x65, 0x76, 0x72, 0x6f, 0x76,
+0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x46, 0x61, 0x72, 0x61, 0x6e, 0x20, 0x4a, 0x61, 0x62, 0x62, 0x75, 0x75, 0x74, 0x69, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x42, 0x69, 0x72, 0x74, 0x61, 0x20, 0x49, 0x74, 0x6f, 0x6f, 0x62, 0x62, 0x69, 0x79, 0x61, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f,
+0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b,
+0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x61, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x73, 0x3b, 0x62, 0x6f, 0x6c,
+0x69, 0x76, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x62, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b,
+0x3b, 0x62, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x68, 0x69,
+0x6c, 0x65, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x3b, 0x3b,
+0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73,
+0x6f, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63,
+0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x63,
+0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x63, 0x6f, 0x6c, 0xf3, 0x6e, 0x20, 0x63, 0x6f, 0x73,
+0x74, 0x61, 0x72, 0x72, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x63, 0x6f, 0x6c, 0xf3, 0x6e, 0x20, 0x63, 0x6f,
+0x73, 0x74, 0x61, 0x72, 0x72, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x6e,
+0x65, 0x73, 0x20, 0x63, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x72, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x3b, 0x70, 0x65,
+0x73, 0x6f, 0x20, 0x63, 0x75, 0x62, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x63, 0x75, 0x62, 0x61,
+0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x63, 0x75, 0x62, 0x61, 0x6e, 0x6f, 0x73, 0x3b,
+0x70, 0x65, 0x73, 0x6f, 0x20, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73,
+0x6f, 0x20, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f,
+0x73, 0x20, 0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x64, 0xf3, 0x6c, 0x61, 0x72, 0x20,
+0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x64, 0xf3, 0x6c, 0x61,
+0x72, 0x20, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b, 0x3b,
+0x64, 0xf3, 0x6c, 0x61, 0x72, 0x65, 0x73, 0x20, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x75, 0x6e, 0x69, 0x64, 0x65, 0x6e,
+0x73, 0x65, 0x73, 0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b,
+0x3b, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b,
+0x66, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x73, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x71, 0x75, 0x65,
+0x74, 0x7a, 0x61, 0x6c, 0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x3b, 0x3b, 0x71,
+0x75, 0x65, 0x74, 0x7a, 0x61, 0x6c, 0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x74, 0x65, 0x63, 0x6f, 0x3b,
+0x3b, 0x3b, 0x3b, 0x71, 0x75, 0x65, 0x74, 0x7a, 0x61, 0x6c, 0x65, 0x73, 0x20, 0x67, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61,
+0x6c, 0x74, 0x65, 0x63, 0x6f, 0x73, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x20, 0x68, 0x6f, 0x6e, 0x64, 0x75,
+0x72, 0x65, 0xf1, 0x6f, 0x3b, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x20, 0x68, 0x6f, 0x6e, 0x64, 0x75, 0x72,
+0x65, 0xf1, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x6c, 0x65, 0x6d, 0x70, 0x69, 0x72, 0x61, 0x73, 0x20, 0x68, 0x6f, 0x6e, 0x64,
+0x75, 0x72, 0x65, 0xf1, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f,
+0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70,
+0x65, 0x73, 0x6f, 0x73, 0x20, 0x6d, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x73, 0x3b, 0x63, 0xf3, 0x72, 0x64, 0x6f,
+0x62, 0x61, 0x20, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x63, 0xf3, 0x72,
+0x64, 0x6f, 0x62, 0x61, 0x20, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x3b, 0x3b,
+0x3b, 0x63, 0xf3, 0x72, 0x64, 0x6f, 0x62, 0x61, 0x73, 0x20, 0x6e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0xfc, 0x65, 0x6e,
+0x73, 0x65, 0x73, 0x3b, 0x62, 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x3b,
+0x3b, 0x62, 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b,
+0x62, 0x61, 0x6c, 0x62, 0x6f, 0x61, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0xf1, 0x6f, 0x73, 0x3b, 0x67, 0x75,
+0x61, 0x72, 0x61, 0x6e, 0xed, 0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x67, 0x75, 0x61,
+0x72, 0x61, 0x6e, 0xed, 0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x75,
+0x61, 0x72, 0x61, 0x6e, 0xed, 0x65, 0x73, 0x20, 0x70, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x73, 0x3b, 0x6e,
+0x75, 0x65, 0x76, 0x6f, 0x20, 0x73, 0x6f, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x6e, 0x75,
+0x65, 0x76, 0x6f, 0x20, 0x73, 0x6f, 0x6c, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e,
+0x75, 0x65, 0x76, 0x6f, 0x73, 0x20, 0x73, 0x6f, 0x6c, 0x65, 0x73, 0x20, 0x70, 0x65, 0x72, 0x75, 0x61, 0x6e, 0x6f, 0x73,
+0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x66, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f,
+0x20, 0x66, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x66,
+0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x6f, 0x73, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61,
+0x79, 0x6f, 0x3b, 0x3b, 0x70, 0x65, 0x73, 0x6f, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x3b, 0x3b, 0x3b,
+0x3b, 0x70, 0x65, 0x73, 0x6f, 0x73, 0x20, 0x75, 0x72, 0x75, 0x67, 0x75, 0x61, 0x79, 0x6f, 0x73, 0x3b, 0x62, 0x6f, 0x6c,
+0xed, 0x76, 0x61, 0x72, 0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x62, 0x6f, 0x6c,
+0xed, 0x76, 0x61, 0x72, 0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x62,
+0x6f, 0x6c, 0xed, 0x76, 0x61, 0x72, 0x65, 0x73, 0x20, 0x76, 0x65, 0x6e, 0x65, 0x7a, 0x6f, 0x6c, 0x61, 0x6e, 0x6f, 0x73,
+0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69,
+0x61, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61,
+0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x7a, 0x61, 0x20, 0x54,
+0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x46, 0x61, 0x72, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b,
+0x6f, 0x6e, 0x67, 0x6f, 0x3b, 0x3b, 0x66, 0x61, 0x72, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e,
+0x67, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x61, 0x72, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x7a, 0x61, 0x20, 0x4b, 0x6f, 0x6e,
+0x67, 0x6f, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61,
+0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b,
+0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x7a, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61,
+0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b,
+0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b,
+0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x7a, 0x61, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64,
+0x61, 0x3b, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x61, 0x3b, 0x3b, 0x73, 0x76, 0x65, 0x6e,
+0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0x20,
+0x6b, 0x72, 0x6f, 0x6e, 0x6f, 0x72, 0x3b, 0xb87, 0xba8, 0xbcd, 0xba4, 0xbbf, 0xbaf, 0x20, 0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd,
+0x3b, 0x3b, 0xb87, 0xba8, 0xbcd, 0xba4, 0xbbf, 0xbaf, 0x20, 0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0xb87,
+0xba8, 0xbcd, 0xba4, 0xbbf, 0xbaf, 0x20, 0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xbae, 0xbb2, 0xbc7, 0xbb7,
+0xbbf, 0xbaf, 0xba9, 0xbcd, 0x20, 0xbb0, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbbf, 0xba4, 0xbcd, 0x3b, 0x3b, 0xbae, 0xbb2, 0xbc7, 0xbb7, 0xbbf,
+0xbaf, 0xba9, 0xbcd, 0x20, 0xbb0, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbbf, 0xba4, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0xbae, 0xbb2, 0xbc7, 0xbb7,
+0xbbf, 0xbaf, 0xba9, 0xbcd, 0x20, 0xbb0, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbbf, 0xba4, 0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xb9a, 0xbbf, 0xb99,
+0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0x20, 0xb9f, 0xbbe, 0xbb2, 0xbb0, 0xbcd, 0x3b, 0x3b, 0xb9a, 0xbbf, 0xb99, 0xbcd,
+0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0x20, 0xb9f, 0xbbe, 0xbb2, 0xbb0, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0xb9a, 0xbbf, 0xb99,
+0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0x20, 0xb9f, 0xbbe, 0xbb2, 0xbb0, 0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xb87, 0xbb2,
+0xb99, 0xbcd, 0xb95, 0xbc8, 0x20, 0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd, 0x3b, 0x3b, 0xb87, 0xbb2, 0xb99, 0xbcd, 0xb95, 0xbc8, 0x20,
+0xbb0, 0xbc2, 0xbaa, 0xbbe, 0xbaf, 0xbcd, 0x3b, 0x3b, 0x3b, 0x3b, 0xb87, 0xbb2, 0xb99, 0xbcd, 0xb95, 0xbc8, 0x20, 0xbb0, 0xbc2, 0xbaa,
+0xbbe, 0xbaf, 0xbcd, 0xb95, 0xbb3, 0xbcd, 0x3b, 0xc30, 0xc42, 0xc2a, 0xc3e, 0xc2f, 0xc3f, 0x3b, 0x3b, 0xc30, 0xc42, 0xc2a, 0xc3e, 0xc2f,
+0xc3f, 0x3b, 0x3b, 0x3b, 0x3b, 0xc30, 0xc42, 0xc2a, 0xc3e, 0xc2f, 0xc32, 0xc41, 0x3b, 0xe1a, 0xe32, 0xe17, 0xe44, 0xe17, 0xe22, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xe1a, 0xe32, 0xe17, 0xe44, 0xe17, 0xe22, 0x3b, 0xf61, 0xf74, 0xf0b, 0xf68, 0xf53, 0xf0b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf42, 0xf62, 0xf0b, 0xf66, 0xf92, 0xf7c, 0xf62, 0xf0b, 0xf58, 0xf7c, 0xf0b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x12e8, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x20, 0x1265, 0x122d, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x66, 0x61, 0x6b, 0x61, 0x74, 0x6f, 0x6e, 0x67, 0x61,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x50, 0x61, 0x2bb, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x66, 0x61, 0x6b, 0x61, 0x74, 0x6f,
+0x6e, 0x67, 0x61, 0x3b, 0x54, 0xfc, 0x72, 0x6b, 0x20, 0x4c, 0x69, 0x72, 0x61, 0x73, 0x131, 0x3b, 0x3b, 0x54, 0xfc, 0x72,
+0x6b, 0x20, 0x6c, 0x69, 0x72, 0x61, 0x73, 0x131, 0x3b, 0x3b, 0x3b, 0x3b, 0x54, 0xfc, 0x72, 0x6b, 0x20, 0x6c, 0x69, 0x72,
+0x61, 0x73, 0x131, 0x3b, 0x62c, 0x6c7, 0x6ad, 0x6af, 0x648, 0x20, 0x64a, 0x6c8, 0x6d5, 0x646, 0x649, 0x3b, 0x3b, 0x62c, 0x6c7, 0x6ad,
+0x6af, 0x648, 0x20, 0x64a, 0x6c8, 0x6d5, 0x646, 0x649, 0x3b, 0x3b, 0x3b, 0x3b, 0x62c, 0x6c7, 0x6ad, 0x6af, 0x648, 0x20, 0x64a, 0x6c8,
+0x6d5, 0x646, 0x649, 0x3b, 0x443, 0x43a, 0x440, 0x430, 0x457, 0x43d, 0x441, 0x44c, 0x43a, 0x430, 0x20, 0x433, 0x440, 0x438, 0x432, 0x43d,
+0x44f, 0x3b, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x44f, 0x3b, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x456, 0x3b, 0x433, 0x440,
+0x438, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x433, 0x440, 0x438, 0x432, 0x43d, 0x456, 0x3b, 0x67e, 0x627, 0x6a9, 0x633, 0x62a, 0x627, 0x646,
+0x6cc, 0x20, 0x631, 0x648, 0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x67e, 0x627, 0x6a9, 0x633, 0x62a, 0x627, 0x646, 0x6cc, 0x20, 0x631, 0x648,
+0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x67e, 0x627, 0x6a9, 0x633, 0x62a, 0x627, 0x646, 0x6cc, 0x20, 0x631, 0x648, 0x67e, 0x6cc,
+0x6c1, 0x3b, 0x628, 0x6be, 0x627, 0x631, 0x62a, 0x6cc, 0x20, 0x631, 0x648, 0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x628, 0x6be, 0x627, 0x631,
+0x62a, 0x6cc, 0x20, 0x631, 0x648, 0x67e, 0x6cc, 0x6c1, 0x3b, 0x3b, 0x3b, 0x3b, 0x628, 0x6be, 0x627, 0x631, 0x62a, 0x6cc, 0x20, 0x631,
+0x648, 0x67e, 0x6d2, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d,
+0x3b, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d, 0x3b, 0x3b,
+0x3b, 0x3b, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x2bb, 0x6d, 0x3b, 0x627,
+0x641, 0x63a, 0x627, 0x646, 0x6cc, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442,
+0x43e, 0x43d, 0x20, 0x441, 0x45e, 0x43c, 0x3b, 0x3b, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x20, 0x441,
+0x45e, 0x43c, 0x3b, 0x3b, 0x3b, 0x3b, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x20, 0x441, 0x45e, 0x43c,
+0x3b, 0x110, 0x1ed3, 0x6e, 0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x111, 0x1ed3, 0x6e, 0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x50,
+0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b,
+0x50, 0x75, 0x6e, 0x74, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x50, 0x72,
+0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50,
+0x75, 0x6e, 0x74, 0x20, 0x50, 0x72, 0x79, 0x64, 0x61, 0x69, 0x6e, 0x3b, 0x50, 0x75, 0x6e, 0x74, 0x20, 0x50, 0x72, 0x79,
+0x64, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x61, 0x69, 0x72, 0x61, 0x20, 0x74, 0x69, 0x20, 0x4f, 0x72, 0xed, 0x6c, 0x1eb9, 0x301,
+0xe8, 0x64, 0x65, 0x20, 0x4e, 0xe0, 0xec, 0x6a, 0xed, 0x72, 0xed, 0xe0, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46,
+0x61, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x20, 0x74, 0x69, 0x20, 0x4f, 0x72, 0xed, 0x6c, 0x25b, 0x301, 0xe8, 0x64, 0x65, 0x20,
+0x42, 0x49, 0x4b, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x69, 0x2d, 0x53, 0x6f, 0x75, 0x74, 0x68,
+0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x69, 0x2d, 0x53, 0x6f, 0x75,
+0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x3b, 0x3b, 0x3b, 0x3b, 0x69,
+0x2d, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x3b,
+0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x6b,
+0x72, 0x6f, 0x6e, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x65, 0x20, 0x6b, 0x72, 0x6f, 0x6e, 0x65,
+0x72, 0x3b, 0x42, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61,
+0x10d, 0x6b, 0x61, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61, 0x20, 0x6d, 0x61,
+0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72, 0x63, 0x65, 0x67,
+0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x61, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x61,
+0x20, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d, 0x68, 0x65, 0x72,
+0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x65, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x69,
+0x6c, 0x6e, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x3b, 0x3b, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x6f, 0x2d,
+0x68, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x61, 0x10d, 0x6b, 0x69, 0x68, 0x20, 0x6b, 0x6f, 0x6e, 0x76, 0x65, 0x72,
+0x74, 0x69, 0x62, 0x69, 0x6c, 0x6e, 0x69, 0x68, 0x20, 0x6d, 0x61, 0x72, 0x61, 0x6b, 0x61, 0x3b, 0x41a, 0x43e, 0x43d, 0x432,
0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b, 0x431, 0x43e, 0x441,
-0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x435, 0x20, 0x43a,
-0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x435, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x3b, 0x431, 0x43e,
-0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x438, 0x445,
-0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x430, 0x431, 0x438, 0x43b, 0x43d, 0x438, 0x445, 0x20, 0x43c, 0x430, 0x440, 0x430,
-0x43a, 0x430, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432,
-0x430, 0x447, 0x43a, 0x438, 0x445, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x438, 0x445,
-0x20, 0x43c, 0x430, 0x440, 0x430, 0x43a, 0x430, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x53, 0x69, 0x64, 0x69, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x1ecb, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c,
-0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x67, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x256, 0x69, 0x3b, 0x3b, 0x67, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69,
-0x256, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x256, 0x69, 0x3b, 0x263, 0x65, 0x74,
-0x6f, 0x256, 0x6f, 0x66, 0x65, 0x20, 0x61, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66,
-0x72, 0x61, 0x6e, 0x63, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x263, 0x65, 0x74, 0x6f, 0x256, 0x6f, 0x66, 0x65,
-0x20, 0x61, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20,
-0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x263, 0x65, 0x74, 0x6f, 0x256, 0x6f, 0x66, 0x65, 0x20, 0x61, 0x66,
-0x72, 0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x42, 0x43, 0x45,
-0x41, 0x4f, 0x3b, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b,
-0x3b, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b, 0x3b, 0x3b,
-0x3b, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b, 0x6e, 0x6f,
-0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61,
-0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76,
-0x64, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f,
-0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x65,
-0x75, 0x72, 0x6f, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79,
+0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a, 0x430, 0x20, 0x43a,
+0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x430, 0x20, 0x43c, 0x430, 0x440, 0x43a, 0x430, 0x3b, 0x3b,
+0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430, 0x447, 0x43a,
+0x435, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x435, 0x20, 0x43c, 0x430, 0x440, 0x43a,
+0x3b, 0x3b, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x43e, 0x2d, 0x445, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x430,
+0x447, 0x43a, 0x438, 0x445, 0x20, 0x43a, 0x43e, 0x43d, 0x432, 0x435, 0x440, 0x442, 0x438, 0x431, 0x438, 0x43b, 0x43d, 0x438, 0x445, 0x20,
+0x43c, 0x430, 0x440, 0x430, 0x43a, 0x430, 0x3b, 0x47, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x53, 0x69, 0x64, 0x69, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x1ecb, 0x72, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c, 0x69,
+0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x67,
+0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x256, 0x69, 0x3b, 0x3b, 0x67, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x256,
+0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x67, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x73, 0x69, 0x256, 0x69, 0x3b, 0x263, 0x65, 0x74, 0x6f,
+0x256, 0x6f, 0x66, 0x65, 0x20, 0x61, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72,
+0x61, 0x6e, 0x63, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x263, 0x65, 0x74, 0x6f, 0x256, 0x6f, 0x66, 0x65, 0x20,
+0x61, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x42,
+0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x263, 0x65, 0x74, 0x6f, 0x256, 0x6f, 0x66, 0x65, 0x20, 0x61, 0x66, 0x72,
+0x69, 0x6b, 0x61, 0x67, 0x61, 0x20, 0x43, 0x46, 0x41, 0x20, 0x66, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x42, 0x43, 0x45, 0x41,
+0x4f, 0x3b, 0x50, 0x69, 0x73, 0x6f, 0x20, 0x6e, 0x67, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61, 0x73, 0x3b,
+0x3b, 0x70, 0x69, 0x73, 0x6f, 0x20, 0x6e, 0x67, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61, 0x73, 0x3b, 0x3b,
+0x3b, 0x3b, 0x70, 0x69, 0x73, 0x6f, 0x20, 0x6e, 0x67, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61, 0x73, 0x3b,
+0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b, 0x3b, 0x53, 0x63,
+0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x63,
+0x68, 0x77, 0x69, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x65, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67,
+0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72,
+0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f,
+0x3b, 0x3b, 0x3b, 0x6e, 0x6f, 0x72, 0x67, 0x67, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x65, 0x75,
+0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f,
+0x3b, 0x72, 0x75, 0x6f, 0x167, 0x167, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x3b, 0x72, 0x75, 0x6f,
+0x167, 0x167, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x72, 0x75, 0x6f, 0x167, 0x167, 0x61, 0x20, 0x6b,
+0x72, 0x75, 0x76, 0x64, 0x6e, 0x6f, 0x3b, 0x3b, 0x3b, 0x72, 0x75, 0x6f, 0x167, 0x167, 0x61, 0x20, 0x6b, 0x72, 0x75, 0x76,
+0x64, 0x6e, 0x6f, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79,
0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x62, 0x75, 0x75, 0x257, 0x75, 0x20, 0x53, 0x65, 0x65, 0x66, 0x61,
-0x61, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x69, 0x72, 0x69, 0x6e, 0x67,
-0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x6a, 0x69,
-0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x65, 0x65, 0x6c, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69,
-0x71, 0x75, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x6f, 0x6c, 0x61, 0x20, 0x79, 0x61, 0x73, 0x65, 0x20,
-0x41, 0x6d, 0x65, 0x6c, 0x69, 0x6b, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x68, 0x65, 0x6c, 0x65, 0x72, 0x69,
-0x20, 0x73, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x2d30,
-0x2d37, 0x2d54, 0x2d49, 0x2d4e, 0x20, 0x2d4f, 0x20, 0x2d4d, 0x2d4e, 0x2d56, 0x2d54, 0x2d49, 0x2d31, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x61, 0x64, 0x72, 0x69, 0x6d, 0x20, 0x6e, 0x20, 0x6c, 0x6d, 0x263, 0x72, 0x69, 0x62, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x41, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x41, 0x7a, 0x7a, 0x61, 0x79, 0x72, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x45, 0x73, 0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64,
-0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20,
-0x48, 0x75, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69,
-0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x65, 0x66, 0x61, 0x20, 0x46, 0x72, 0x61, 0x14b, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f,
-0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x13a4, 0x13c3, 0x13cd, 0x13d7, 0x3b, 0x3b, 0x13a4, 0x13c3, 0x13cd, 0x13d7, 0x3b, 0x3b,
-0x3b, 0x3b, 0x13e7, 0x13c3, 0x13cd, 0x13d7, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x20, 0x6d, 0x6f, 0x72, 0x69, 0x73, 0x69, 0x65,
-0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0xed, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61,
-0x20, 0x54, 0x61, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0xed, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c,
-0x69, 0x6e, 0x67, 0x69, 0x20, 0x65, 0x79, 0x61, 0x20, 0x59, 0x75, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x53, 0x6b, 0x75, 0x64, 0x75, 0x20, 0x4b, 0x61, 0x62, 0x75, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e,
-0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x74, 0x61, 0x62, 0x20, 0x79,
-0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69,
-0x61, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x72, 0x6f, 0x70,
-0x69, 0x79, 0x69, 0x61, 0x6e, 0xed, 0x20, 0x65, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x49, 0x72, 0x6f, 0x70, 0x69, 0x79, 0x69, 0x61, 0x6e, 0xed, 0x20, 0x65, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e,
-0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x72, 0x69, 0x6e, 0x6a, 0x69, 0x20, 0x79, 0x61, 0x20,
-0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69,
-0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x64, 0x68, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x41, 0x6e, 0x67, 0x6f, 0x27, 0x6f, 0x74, 0x6f, 0x6c, 0x20, 0x6c, 0x6f, 0x6b, 0x27, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64,
-0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x6e, 0x67, 0x6f, 0x27, 0x6f, 0x74, 0x6f, 0x6c, 0x20, 0x6c, 0x6f,
-0x6b, 0x27, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x46, 0x41, 0x20, 0x46,
-0x72, 0x61, 0x14b, 0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69,
-0x6c, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x44, 0x65, 0x72, 0x68, 0x65, 0x6d, 0x20, 0x55, 0x6d, 0x65, 0x1e5b, 0x1e5b, 0x75, 0x6b, 0x69, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x930, 0x93e, 0x902, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x66, 0x61, 0x6c, 0x61, 0x6e, 0x67,
-0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x46, 0x41,
-0x20, 0x46, 0xe0, 0x6c, 0xe2, 0x14b, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72,
-0x1ce, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
-0x73, 0x65, 0x65, 0x66, 0x61, 0x20, 0x79, 0x61, 0x74, 0x69, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b,
-0x3b, 0x3b, 0x3b, 0x46, 0x259, 0x6c, 0xe1, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b,
-0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0xe1, 0x14b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x6f, 0x6c,
-0x61, 0x69, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72, 0x61, 0x14b, 0x20, 0x43,
-0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x68, 0x65, 0x6c, 0x61, 0x20,
-0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46,
-0x61, 0x72, 0x61, 0x6e, 0x67, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x61, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x62, 0x75, 0x75, 0x257, 0x69,
+0x20, 0x53, 0x65, 0x65, 0x66, 0x61, 0x61, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x55,
+0x67, 0x69, 0x79, 0x79, 0x61, 0x20, 0x4d, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x43, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x6a, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x65, 0x65, 0x6c, 0x20, 0x4b, 0x65, 0x6e,
+0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4d, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x20,
+0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x6f, 0x6c,
+0x61, 0x20, 0x79, 0x61, 0x73, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x6c, 0x69, 0x6b, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x68, 0x65, 0x6c, 0x65, 0x72, 0x69, 0x20, 0x73, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x2d30, 0x2d37, 0x2d54, 0x2d49, 0x2d4e, 0x20, 0x2d4f, 0x20, 0x2d4d, 0x2d4e, 0x2d56, 0x2d54, 0x2d49, 0x2d31,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x61, 0x64, 0x72, 0x69, 0x6d, 0x20, 0x6e, 0x20, 0x6c, 0x6d, 0x263, 0x72, 0x69,
+0x62, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x64, 0x69, 0x6e, 0x61, 0x72, 0x20, 0x41, 0x7a, 0x7a, 0x61, 0x79,
+0x72, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x45, 0x73, 0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79,
+0x61, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69,
+0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x48, 0x75, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a,
+0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x65, 0x66, 0x61, 0x20, 0x46, 0x72, 0x61, 0x14b,
+0x20, 0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x13a4, 0x13c3, 0x13cd, 0x13d7, 0x3b,
+0x3b, 0x13a4, 0x13c3, 0x13cd, 0x13d7, 0x3b, 0x3b, 0x3b, 0x3b, 0x13e7, 0x13c3, 0x13cd, 0x13d7, 0x3b, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x20,
+0x6d, 0x6f, 0x72, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x68, 0x69, 0x6c, 0xed,
+0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0xed, 0x61, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x65, 0x79, 0x61, 0x20, 0x59, 0x75, 0x67, 0x61,
+0x6e, 0x64, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6b, 0x75, 0x64, 0x75, 0x20, 0x4b, 0x61, 0x62, 0x75,
+0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x6b, 0x75, 0x64, 0x75, 0x20,
+0x4b, 0x61, 0x62, 0x75, 0x76, 0x65, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x75, 0x3b, 0x53, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69,
+0x74, 0x61, 0x62, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e,
+0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x45, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x72, 0x6f, 0x70, 0x69, 0x79, 0x69, 0x61,
+0x6e, 0xed, 0x20, 0x65, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x72, 0x6f,
+0x70, 0x69, 0x79, 0x69, 0x61, 0x6e, 0xed, 0x20, 0x65, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x72, 0x69, 0x6e, 0x6a, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x65, 0x6e, 0x79,
+0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20,
+0x54, 0x61, 0x6e, 0x64, 0x68, 0x61, 0x6e, 0x69, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x6e, 0x67, 0x6f,
+0x2019, 0x6f, 0x74, 0x6f, 0x6c, 0x20, 0x6c, 0x6f, 0x6b, 0x2019, 0x20, 0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x41, 0x6e, 0x67, 0x6f, 0x2019, 0x6f, 0x74, 0x6f, 0x6c, 0x20, 0x6c, 0x6f, 0x6b, 0x2019, 0x20, 0x4b,
+0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x43, 0x46, 0x41, 0x20, 0x46, 0x72, 0x61, 0x14b, 0x20,
+0x28, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x53, 0x69, 0x6c, 0x69, 0x6e, 0x67,
+0x20, 0x6d, 0x61, 0x72, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x44, 0x65, 0x72,
+0x68, 0x65, 0x6d, 0x20, 0x55, 0x6d, 0x65, 0x1e5b, 0x1e5b, 0x75, 0x6b, 0x69, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73,
+0x68, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x69, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x930, 0x93e, 0x902, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4e, 0x66, 0x61, 0x6c,
+0x61, 0x6e, 0x67, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x75, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x43, 0x46, 0x41, 0x20, 0x46, 0xe0, 0x6c, 0xe2, 0x14b, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x46, 0x72, 0x1ce, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41, 0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b,
+0x3b, 0x3b, 0x3b, 0x73, 0x65, 0x65, 0x66, 0x61, 0x20, 0x79, 0x61, 0x74, 0x69, 0x20, 0x42, 0x43, 0x45, 0x41, 0x4f, 0x3b,
+0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x259, 0x6c, 0xe1, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x20, 0x28, 0x42, 0x45, 0x41,
+0x43, 0x29, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x72, 0xe1, 0x14b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+0x73, 0x6f, 0x6c, 0x61, 0x69, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72, 0x61,
+0x14b, 0x20, 0x43, 0x46, 0x41, 0x20, 0x42, 0x45, 0x41, 0x43, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x49, 0x68, 0x65,
+0x6c, 0x61, 0x20, 0x79, 0x61, 0x20, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x79, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
0x3b, 0x3b, 0xa55e, 0xa524, 0xa52b, 0xa569, 0x20, 0xa55c, 0xa55e, 0xa54c, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x4c, 0x61, 0x69,
0x62, 0x68, 0x69, 0x79, 0x61, 0x20, 0x44, 0x61, 0x6c, 0x61, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x25b, 0x6c,
0xe2, 0x14b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x20, 0x43, 0x46, 0x41, 0x3b, 0x3b,
0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x73, 0x68, 0x69, 0x72, 0xe8, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x66, 0x65, 0x6c,
-0xe1, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b
+0xe1, 0x14b, 0x20, 0x43, 0x46, 0x41, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65,
+0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b,
+0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x65, 0x75, 0x72, 0x61, 0x6a, 0x3b, 0x65, 0x75, 0x72,
+0x61, 0x3b, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x77, 0x3b, 0x65, 0x75, 0x72, 0x6f, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b,
+
};
static const ushort currency_format_data[] = {
-0x25, 0x31, 0x25, 0x32, 0x25, 0x32, 0x25, 0x31, 0x25, 0x32, 0xa0, 0x25, 0x31, 0x25, 0x31, 0xa0, 0x25, 0x32, 0x28, 0x25,
-0x31, 0x25, 0x32, 0x29, 0x25, 0x32, 0xa0, 0x25, 0x31, 0x2d, 0x25, 0x32, 0x2212, 0x25, 0x31, 0x25, 0x32, 0x2d, 0x25, 0x31,
-0x28, 0x25, 0x32, 0x25, 0x31, 0x29, 0x200e, 0x25, 0x32, 0x25, 0x31, 0x25, 0x32, 0xa0, 0x2d, 0x25, 0x31, 0x25, 0x32, 0x25,
-0x31, 0x200e, 0x25, 0x32, 0x2d, 0xa0, 0x25, 0x31
+0x25, 0x31, 0x25, 0x32, 0x25, 0x32, 0x25, 0x31, 0x25, 0x32, 0xa0, 0x25, 0x31, 0x25, 0x31, 0xa0, 0x25, 0x32, 0x25, 0x32,
+0xa0, 0x2d, 0x25, 0x31, 0x25, 0x32, 0x2212, 0x25, 0x31, 0x25, 0x32, 0x2d, 0x25, 0x31, 0x25, 0x32, 0xa0, 0x25, 0x31, 0x2d,
+0x200e, 0x25, 0x32, 0x25, 0x31, 0x25, 0x32, 0x2d, 0xa0, 0x25, 0x31
};
static const ushort endonyms_data[] = {
0x4f, 0x72, 0x6f, 0x6d, 0x6f, 0x6f, 0x49, 0x74, 0x6f, 0x6f, 0x70, 0x68, 0x69, 0x79, 0x61, 0x61, 0x4b, 0x65, 0x65, 0x6e,
-0x69, 0x79, 0x61, 0x61, 0x51, 0x61, 0x66, 0x61, 0x72, 0x4f, 0x74, 0x6f, 0x62, 0x62, 0x69, 0x61, 0x59, 0x61, 0x62, 0x75,
-0x75, 0x74, 0x69, 0x45, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x41, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e, 0x73, 0x53,
-0x75, 0x69, 0x64, 0x2d, 0x41, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0xeb, 0x53, 0x68, 0x71,
-0x69, 0x70, 0x53, 0x68, 0x71, 0x69, 0x70, 0xeb, 0x72, 0x69, 0x4d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x69, 0x4b, 0x6f,
-0x73, 0x6f, 0x76, 0xeb, 0x12a0, 0x121b, 0x122d, 0x129b, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x627, 0x644, 0x639, 0x631, 0x628, 0x64a, 0x629,
-0x645, 0x635, 0x631, 0x627, 0x644, 0x62c, 0x632, 0x627, 0x626, 0x631, 0x627, 0x644, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x62a, 0x634, 0x627,
-0x62f, 0x62c, 0x632, 0x631, 0x20, 0x627, 0x644, 0x642, 0x645, 0x631, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x623, 0x631, 0x64a, 0x62a,
-0x631, 0x64a, 0x627, 0x627, 0x644, 0x639, 0x631, 0x627, 0x642, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x627, 0x644, 0x623, 0x631,
-0x62f, 0x646, 0x627, 0x644, 0x643, 0x648, 0x64a, 0x62a, 0x644, 0x628, 0x646, 0x627, 0x646, 0x644, 0x64a, 0x628, 0x64a, 0x627, 0x645, 0x648,
-0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a, 0x627, 0x627, 0x644, 0x645, 0x63a, 0x631, 0x628, 0x639, 0x64f, 0x645, 0x627, 0x646, 0x627, 0x644,
-0x623, 0x631, 0x627, 0x636, 0x64a, 0x20, 0x627, 0x644, 0x641, 0x644, 0x633, 0x637, 0x64a, 0x646, 0x64a, 0x629, 0x642, 0x637, 0x631, 0x627,
-0x644, 0x645, 0x645, 0x644, 0x643, 0x629, 0x20, 0x627, 0x644, 0x639, 0x631, 0x628, 0x64a, 0x629, 0x20, 0x627, 0x644, 0x633, 0x639, 0x648,
-0x62f, 0x64a, 0x629, 0x627, 0x644, 0x635, 0x648, 0x645, 0x627, 0x644, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x633, 0x648, 0x631,
-0x64a, 0x627, 0x62a, 0x648, 0x646, 0x633, 0x627, 0x644, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x20, 0x627, 0x644, 0x639, 0x631, 0x628,
-0x64a, 0x629, 0x20, 0x627, 0x644, 0x645, 0x62a, 0x62d, 0x62f, 0x629, 0x627, 0x644, 0x635, 0x62d, 0x631, 0x627, 0x621, 0x20, 0x627, 0x644,
-0x63a, 0x631, 0x628, 0x64a, 0x629, 0x627, 0x644, 0x64a, 0x645, 0x646, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f,
-0x627, 0x646, 0x570, 0x561, 0x575, 0x565, 0x580, 0x565, 0x576, 0x540, 0x561, 0x575, 0x561, 0x57d, 0x57f, 0x561, 0x576, 0x985, 0x9b8, 0x9ae,
-0x9c0, 0x9af, 0x9bc, 0x9be, 0x9ad, 0x9be, 0x9f0, 0x9a4, 0x61, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e, 0x41, 0x7a,
-0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e, 0x410, 0x437, 0x4d9, 0x440, 0x431, 0x430, 0x458, 0x4b9, 0x430, 0x43d, 0x65, 0x75,
-0x73, 0x6b, 0x61, 0x72, 0x61, 0x45, 0x73, 0x70, 0x61, 0x69, 0x6e, 0x69, 0x61, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9ac, 0x9be,
-0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6, 0x9ad, 0x9be, 0x9b0, 0x9a4, 0xf62, 0xfab, 0xf7c, 0xf44, 0xf0b, 0xf41, 0xf60, 0xf56, 0xfb2, 0xf74,
-0xf42, 0x62, 0x72, 0x65, 0x7a, 0x68, 0x6f, 0x6e, 0x65, 0x67, 0x46, 0x72, 0x61, 0xf1, 0x73, 0x431, 0x44a, 0x43b, 0x433, 0x430,
-0x440, 0x441, 0x43a, 0x438, 0x411, 0x44a, 0x43b, 0x433, 0x430, 0x440, 0x438, 0x44f, 0x1017, 0x1019, 0x102c, 0x1019, 0x103c, 0x1014, 0x103a, 0x1019,
-0x102c, 0x431, 0x435, 0x43b, 0x430, 0x440, 0x443, 0x441, 0x43a, 0x430, 0x44f, 0x411, 0x435, 0x43b, 0x430, 0x440, 0x443, 0x441, 0x44c, 0x1781,
-0x17d2, 0x1798, 0x17c2, 0x179a, 0x1780, 0x1798, 0x17d2, 0x1796, 0x17bb, 0x1787, 0x17b6, 0x63, 0x61, 0x74, 0x61, 0x6c, 0xe0, 0x45, 0x73, 0x70,
-0x61, 0x6e, 0x79, 0x61, 0x41, 0x6e, 0x64, 0x6f, 0x72, 0x72, 0x61, 0x46, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x49, 0x74, 0xe0,
-0x6c, 0x69, 0x61, 0x7b80, 0x4f53, 0x4e2d, 0x6587, 0x4e2d, 0x56fd, 0x4e2d, 0x56fd, 0x9999, 0x6e2f, 0x7279, 0x522b, 0x884c, 0x653f, 0x533a, 0x4e2d, 0x56fd,
-0x6fb3, 0x95e8, 0x7279, 0x522b, 0x884c, 0x653f, 0x533a, 0x65b0, 0x52a0, 0x5761, 0x7e41, 0x9ad4, 0x4e2d, 0x6587, 0x4e2d, 0x83ef, 0x4eba, 0x6c11, 0x5171, 0x548c,
-0x570b, 0x9999, 0x6e2f, 0x7279, 0x5225, 0x884c, 0x653f, 0x5340, 0x4e2d, 0x83ef, 0x4eba, 0x6c11, 0x5171, 0x548c, 0x570b, 0x6fb3, 0x9580, 0x7279, 0x5225, 0x884c,
-0x653f, 0x5340, 0x53f0, 0x7063, 0x68, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x69, 0x48, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x61,
-0x42, 0x6f, 0x73, 0x6e, 0x61, 0x20, 0x69, 0x20, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x69, 0x6e, 0x61, 0x10d,
-0x65, 0x161, 0x74, 0x69, 0x6e, 0x61, 0x10c, 0x65, 0x73, 0x6b, 0xe1, 0x20, 0x72, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x6b,
-0x61, 0x64, 0x61, 0x6e, 0x73, 0x6b, 0x44, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x47, 0x72, 0xf8, 0x6e, 0x6c, 0x61, 0x6e,
-0x64, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64,
-0x41, 0x72, 0x75, 0x62, 0x61, 0x56, 0x6c, 0x61, 0x61, 0x6d, 0x73, 0x42, 0x65, 0x6c, 0x67, 0x69, 0xeb, 0x43, 0x75, 0x72,
-0x61, 0xe7, 0x61, 0x6f, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x61, 0x72, 0x69, 0x62, 0x69, 0x73, 0x63,
-0x68, 0x20, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x2d, 0x4d, 0x61, 0x61, 0x72,
-0x74, 0x65, 0x6e, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x55,
-0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0xd801, 0xdc00, 0xd801, 0xdc4d, 0xd801, 0xdc4a, 0xd801, 0xdc2e,
-0xd801, 0xdc47, 0xd801, 0xdc0f, 0xd801, 0xdc2d, 0xd801, 0xdc4c, 0xd801, 0xdc34, 0xd801, 0xdc3b, 0xd801, 0xdc32, 0xd801, 0xdc3c, 0x20, 0xd801, 0xdc1d, 0xd801,
-0xdc3b, 0xd801, 0xdc29, 0xd801, 0xdc3b, 0xd801, 0xdc45, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x6e, 0x20, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x41, 0x6e, 0x67, 0x75, 0x69, 0x6c, 0x6c, 0x61, 0x41, 0x6e, 0x74, 0x69,
-0x67, 0x75, 0x61, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x42, 0x61, 0x72, 0x62, 0x75, 0x64, 0x61, 0x41, 0x75, 0x73, 0x74, 0x72,
-0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c,
-0x69, 0x61, 0x42, 0x61, 0x68, 0x61, 0x6d, 0x61, 0x73, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x6f, 0x73, 0x42, 0x65, 0x6c,
-0x67, 0x69, 0x75, 0x6d, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x42, 0x6f, 0x74,
-0x73, 0x77, 0x61, 0x6e, 0x61, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20,
-0x4f, 0x63, 0x65, 0x61, 0x6e, 0x20, 0x54, 0x65, 0x72, 0x72, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x6d, 0x65, 0x72,
-0x6f, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x43,
-0x61, 0x6e, 0x61, 0x64, 0x61, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x43,
-0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x63, 0x6f, 0x73,
-0x20, 0x28, 0x4b, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x43, 0x6f,
-0x6f, 0x6b, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x45, 0x72,
-0x69, 0x74, 0x72, 0x65, 0x61, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64,
-0x73, 0x46, 0x69, 0x6a, 0x69, 0x47, 0x75, 0x65, 0x72, 0x6e, 0x73, 0x65, 0x79, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x47,
-0x68, 0x61, 0x6e, 0x61, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x47, 0x72, 0x65, 0x6e, 0x61, 0x64, 0x61,
-0x47, 0x75, 0x61, 0x6d, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20,
-0x53, 0x41, 0x52, 0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x49, 0x72, 0x65, 0x6c, 0x61, 0x6e,
-0x64, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x4b, 0x69, 0x72, 0x69, 0x62, 0x61, 0x74,
-0x69, 0x4c, 0x65, 0x73, 0x6f, 0x74, 0x68, 0x6f, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x4d, 0x61, 0x63, 0x61, 0x75,
-0x20, 0x53, 0x41, 0x52, 0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x4d, 0x61, 0x64, 0x61, 0x67, 0x61, 0x73, 0x63, 0x61, 0x72,
-0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x4d, 0x61, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x20,
-0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75, 0x73, 0x4d, 0x69, 0x63, 0x72,
-0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x4d, 0x6f, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x72, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x69,
-0x62, 0x69, 0x61, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x4e,
-0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x4e, 0x69, 0x75, 0x65, 0x4e, 0x6f, 0x72, 0x66, 0x6f, 0x6c, 0x6b, 0x20, 0x49, 0x73,
-0x6c, 0x61, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x61,
-0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x50, 0x61, 0x6c, 0x61,
-0x75, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x50, 0x68, 0x69,
-0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x50, 0x69, 0x74, 0x63, 0x61, 0x69, 0x72, 0x6e, 0x20, 0x49, 0x73, 0x6c,
-0x61, 0x6e, 0x64, 0x73, 0x50, 0x75, 0x65, 0x72, 0x74, 0x6f, 0x20, 0x52, 0x69, 0x63, 0x6f, 0x52, 0x77, 0x61, 0x6e, 0x64,
-0x61, 0x53, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x4b, 0x69, 0x74, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4e, 0x65, 0x76,
-0x69, 0x73, 0x53, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x4c, 0x75, 0x63, 0x69, 0x61, 0x53, 0x74, 0x2e, 0x20, 0x56, 0x69, 0x6e,
-0x63, 0x65, 0x6e, 0x74, 0x20, 0x26, 0x20, 0x47, 0x72, 0x65, 0x6e, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x53, 0x61, 0x6d,
-0x6f, 0x61, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c,
-0x65, 0x6f, 0x6e, 0x65, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e,
-0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61,
-0x53, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x53, 0x77, 0x61,
-0x7a, 0x69, 0x6c, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x54, 0x6f, 0x6b, 0x65, 0x6c, 0x61,
-0x75, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54,
-0x6f, 0x62, 0x61, 0x67, 0x6f, 0x54, 0x75, 0x72, 0x6b, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x43, 0x61, 0x69, 0x63, 0x6f,
-0x73, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x54, 0x75, 0x76, 0x61, 0x6c, 0x75, 0x55, 0x67, 0x61, 0x6e, 0x64,
-0x61, 0x55, 0x4b, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, 0x69,
-0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x55, 0x2e, 0x53, 0x2e, 0x20, 0x4f, 0x75, 0x74, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x49,
-0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68,
-0x20, 0x56, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x55, 0x2e, 0x53, 0x2e, 0x20,
-0x56, 0x69, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61,
-0x5a, 0x69, 0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x44, 0x69, 0x65, 0x67, 0x6f, 0x20, 0x47, 0x61, 0x72, 0x63, 0x69, 0x61,
-0x49, 0x73, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x61, 0x6e, 0x4a, 0x65, 0x72, 0x73, 0x65, 0x79, 0x53, 0x6f, 0x75,
-0x74, 0x68, 0x20, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x20, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x65, 0x6e,
-0x65, 0x65, 0x73, 0x74, 0x69, 0x45, 0x65, 0x73, 0x74, 0x69, 0x66, 0xf8, 0x72, 0x6f, 0x79, 0x73, 0x6b, 0x74, 0x46, 0xf8,
-0x72, 0x6f, 0x79, 0x61, 0x72, 0x73, 0x75, 0x6f, 0x6d, 0x69, 0x53, 0x75, 0x6f, 0x6d, 0x69, 0x66, 0x72, 0x61, 0x6e, 0xe7,
-0x61, 0x69, 0x73, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6c, 0x67, 0xe9, 0x72, 0x69, 0x65, 0x42, 0x65, 0x6c, 0x67,
-0x69, 0x71, 0x75, 0x65, 0x42, 0xe9, 0x6e, 0x69, 0x6e, 0x42, 0x75, 0x72, 0x6b, 0x69, 0x6e, 0x61, 0x20, 0x46, 0x61, 0x73,
-0x6f, 0x42, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x66, 0x72, 0x61, 0x6e,
-0xe7, 0x61, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x52, 0xe9, 0x70, 0x75, 0x62, 0x6c, 0x69,
-0x71, 0x75, 0x65, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x66, 0x72, 0x69, 0x63, 0x61, 0x69, 0x6e, 0x65, 0x54, 0x63,
-0x68, 0x61, 0x64, 0x43, 0x6f, 0x6d, 0x6f, 0x72, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x67, 0x6f, 0x2d, 0x4b, 0x69, 0x6e, 0x73,
-0x68, 0x61, 0x73, 0x61, 0x43, 0x6f, 0x6e, 0x67, 0x6f, 0x2d, 0x42, 0x72, 0x61, 0x7a, 0x7a, 0x61, 0x76, 0x69, 0x6c, 0x6c,
-0x65, 0x43, 0xf4, 0x74, 0x65, 0x20, 0x64, 0x2019, 0x49, 0x76, 0x6f, 0x69, 0x72, 0x65, 0x44, 0x6a, 0x69, 0x62, 0x6f, 0x75,
-0x74, 0x69, 0x47, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x20, 0xe9, 0x71, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x65,
-0x47, 0x75, 0x79, 0x61, 0x6e, 0x65, 0x20, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x65, 0x50, 0x6f, 0x6c, 0x79,
-0x6e, 0xe9, 0x73, 0x69, 0x65, 0x20, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x65, 0x47, 0x61, 0x62, 0x6f, 0x6e,
-0x47, 0x75, 0x61, 0x64, 0x65, 0x6c, 0x6f, 0x75, 0x70, 0x65, 0x47, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x48, 0x61, 0xef, 0x74,
-0x69, 0x4c, 0x75, 0x78, 0x65, 0x6d, 0x62, 0x6f, 0x75, 0x72, 0x67, 0x4d, 0x61, 0x6c, 0x69, 0x4d, 0x61, 0x72, 0x74, 0x69,
-0x6e, 0x69, 0x71, 0x75, 0x65, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x65, 0x4d, 0x61, 0x75, 0x72, 0x69,
-0x63, 0x65, 0x4d, 0x61, 0x79, 0x6f, 0x74, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x4d, 0x61, 0x72, 0x6f, 0x63,
-0x4e, 0x6f, 0x75, 0x76, 0x65, 0x6c, 0x6c, 0x65, 0x2d, 0x43, 0x61, 0x6c, 0xe9, 0x64, 0x6f, 0x6e, 0x69, 0x65, 0x4e, 0x69,
-0x67, 0x65, 0x72, 0x4c, 0x61, 0x20, 0x52, 0xe9, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x53, 0xe9, 0x6e, 0xe9, 0x67, 0x61, 0x6c,
-0x53, 0x61, 0x69, 0x6e, 0x74, 0x2d, 0x50, 0x69, 0x65, 0x72, 0x72, 0x65, 0x2d, 0x65, 0x74, 0x2d, 0x4d, 0x69, 0x71, 0x75,
-0x65, 0x6c, 0x6f, 0x6e, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x53,
-0x75, 0x69, 0x73, 0x73, 0x65, 0x53, 0x79, 0x72, 0x69, 0x65, 0x54, 0x6f, 0x67, 0x6f, 0x54, 0x75, 0x6e, 0x69, 0x73, 0x69,
-0x65, 0x57, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x2d, 0x65, 0x74, 0x2d, 0x46, 0x75, 0x74, 0x75, 0x6e, 0x61, 0x53, 0x61, 0x69,
-0x6e, 0x74, 0x2d, 0x42, 0x61, 0x72, 0x74, 0x68, 0xe9, 0x6c, 0x65, 0x6d, 0x79, 0x53, 0x61, 0x69, 0x6e, 0x74, 0x2d, 0x4d,
-0x61, 0x72, 0x74, 0x69, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x72, 0x74, 0x69, 0x65, 0x20, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61,
-0x69, 0x73, 0x65, 0x29, 0x47, 0xe0, 0x69, 0x64, 0x68, 0x6c, 0x69, 0x67, 0x41, 0x6e, 0x20, 0x52, 0xec, 0x6f, 0x67, 0x68,
-0x61, 0x63, 0x68, 0x64, 0x20, 0x41, 0x6f, 0x6e, 0x61, 0x69, 0x63, 0x68, 0x74, 0x65, 0x67, 0x61, 0x6c, 0x65, 0x67, 0x6f,
-0x45, 0x73, 0x70, 0x61, 0xf1, 0x61, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x10e1, 0x10d0, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10d5,
-0x10d4, 0x10da, 0x10dd, 0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x6c, 0x61, 0x6e,
-0x64, 0xd6, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x69, 0x63, 0x68, 0x69, 0x73, 0x63, 0x68, 0x65, 0x73, 0x20, 0x44, 0x65,
-0x75, 0x74, 0x73, 0x63, 0x68, 0xd6, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x69, 0x63, 0x68, 0x42, 0x65, 0x6c, 0x67, 0x69,
-0x65, 0x6e, 0x4c, 0x69, 0x65, 0x63, 0x68, 0x74, 0x65, 0x6e, 0x73, 0x74, 0x65, 0x69, 0x6e, 0x4c, 0x75, 0x78, 0x65, 0x6d,
-0x62, 0x75, 0x72, 0x67, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x48, 0x6f, 0x63, 0x68, 0x64, 0x65,
-0x75, 0x74, 0x73, 0x63, 0x68, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x395, 0x3bb, 0x3bb, 0x3b7, 0x3bd, 0x3b9, 0x3ba, 0x3ac,
-0x395, 0x3bb, 0x3bb, 0x3ac, 0x3b4, 0x3b1, 0x39a, 0x3cd, 0x3c0, 0x3c1, 0x3bf, 0x3c2, 0x6b, 0x61, 0x6c, 0x61, 0x61, 0x6c, 0x6c, 0x69,
-0x73, 0x75, 0x74, 0x4b, 0x61, 0x6c, 0x61, 0x61, 0x6c, 0x6c, 0x69, 0x74, 0x20, 0x4e, 0x75, 0x6e, 0x61, 0x61, 0x74, 0xa97,
-0xac1, 0xa9c, 0xab0, 0xabe, 0xaa4, 0xac0, 0xaad, 0xabe, 0xab0, 0xaa4, 0x48, 0x61, 0x75, 0x73, 0x61, 0x4e, 0x61, 0x6a, 0x65, 0x72,
-0x69, 0x79, 0x61, 0x47, 0x61, 0x6e, 0x61, 0x4e, 0x69, 0x6a, 0x61, 0x72, 0x5e2, 0x5d1, 0x5e8, 0x5d9, 0x5ea, 0x5d9, 0x5e9, 0x5e8,
-0x5d0, 0x5dc, 0x939, 0x93f, 0x902, 0x926, 0x940, 0x92d, 0x93e, 0x930, 0x924, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72, 0x4d, 0x61, 0x67,
-0x79, 0x61, 0x72, 0x6f, 0x72, 0x73, 0x7a, 0xe1, 0x67, 0xed, 0x73, 0x6c, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0xcd, 0x73, 0x6c,
-0x61, 0x6e, 0x64, 0x42, 0x61, 0x68, 0x61, 0x73, 0x61, 0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x49,
-0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x46,
-0x72, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x47, 0x61, 0x65, 0x69, 0x6c, 0x67, 0x65, 0xc9, 0x69, 0x72, 0x65, 0x69, 0x74, 0x61,
+0x69, 0x79, 0x61, 0x61, 0x41, 0x66, 0x72, 0x69, 0x6b, 0x61, 0x61, 0x6e, 0x73, 0x53, 0x75, 0x69, 0x64, 0x2d, 0x41, 0x66,
+0x72, 0x69, 0x6b, 0x61, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0xeb, 0x73, 0x68, 0x71, 0x69, 0x70, 0x53, 0x68, 0x71, 0x69,
+0x70, 0xeb, 0x72, 0x69, 0x4d, 0x61, 0x71, 0x65, 0x64, 0x6f, 0x6e, 0x69, 0x4b, 0x6f, 0x73, 0x6f, 0x76, 0xeb, 0x12a0, 0x121b,
+0x122d, 0x129b, 0x12a2, 0x1275, 0x12ee, 0x1335, 0x12eb, 0x627, 0x644, 0x639, 0x631, 0x628, 0x64a, 0x629, 0x645, 0x635, 0x631, 0x627, 0x644, 0x62c,
+0x632, 0x627, 0x626, 0x631, 0x627, 0x644, 0x628, 0x62d, 0x631, 0x64a, 0x646, 0x62a, 0x634, 0x627, 0x62f, 0x62c, 0x632, 0x631, 0x20, 0x627,
+0x644, 0x642, 0x645, 0x631, 0x62c, 0x64a, 0x628, 0x648, 0x62a, 0x64a, 0x623, 0x631, 0x64a, 0x62a, 0x631, 0x64a, 0x627, 0x627, 0x644, 0x639,
+0x631, 0x627, 0x642, 0x625, 0x633, 0x631, 0x627, 0x626, 0x64a, 0x644, 0x627, 0x644, 0x623, 0x631, 0x62f, 0x646, 0x627, 0x644, 0x643, 0x648,
+0x64a, 0x62a, 0x644, 0x628, 0x646, 0x627, 0x646, 0x644, 0x64a, 0x628, 0x64a, 0x627, 0x645, 0x648, 0x631, 0x64a, 0x62a, 0x627, 0x646, 0x64a,
+0x627, 0x627, 0x644, 0x645, 0x63a, 0x631, 0x628, 0x639, 0x64f, 0x645, 0x627, 0x646, 0x627, 0x644, 0x623, 0x631, 0x627, 0x636, 0x64a, 0x20,
+0x627, 0x644, 0x641, 0x644, 0x633, 0x637, 0x64a, 0x646, 0x64a, 0x629, 0x642, 0x637, 0x631, 0x627, 0x644, 0x645, 0x645, 0x644, 0x643, 0x629,
+0x20, 0x627, 0x644, 0x639, 0x631, 0x628, 0x64a, 0x629, 0x20, 0x627, 0x644, 0x633, 0x639, 0x648, 0x62f, 0x64a, 0x629, 0x627, 0x644, 0x635,
+0x648, 0x645, 0x627, 0x644, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x633, 0x648, 0x631, 0x64a, 0x627, 0x62a, 0x648, 0x646, 0x633,
+0x627, 0x644, 0x625, 0x645, 0x627, 0x631, 0x627, 0x62a, 0x20, 0x627, 0x644, 0x639, 0x631, 0x628, 0x64a, 0x629, 0x20, 0x627, 0x644, 0x645,
+0x62a, 0x62d, 0x62f, 0x629, 0x627, 0x644, 0x635, 0x62d, 0x631, 0x627, 0x621, 0x20, 0x627, 0x644, 0x63a, 0x631, 0x628, 0x64a, 0x629, 0x627,
+0x644, 0x64a, 0x645, 0x646, 0x62c, 0x646, 0x648, 0x628, 0x20, 0x627, 0x644, 0x633, 0x648, 0x62f, 0x627, 0x646, 0x570, 0x561, 0x575, 0x565,
+0x580, 0x565, 0x576, 0x540, 0x561, 0x575, 0x561, 0x57d, 0x57f, 0x561, 0x576, 0x985, 0x9b8, 0x9ae, 0x9c0, 0x9af, 0x9bc, 0x9be, 0x9ad, 0x9be,
+0x9f0, 0x9a4, 0x61, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63, 0x61, 0x6e, 0x41, 0x7a, 0x259, 0x72, 0x62, 0x61, 0x79, 0x63,
+0x61, 0x6e, 0x410, 0x437, 0x4d9, 0x440, 0x431, 0x430, 0x458, 0x4b9, 0x430, 0x43d, 0x65, 0x75, 0x73, 0x6b, 0x61, 0x72, 0x61, 0x45,
+0x73, 0x70, 0x61, 0x69, 0x6e, 0x69, 0x61, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9ac, 0x9be, 0x982, 0x9b2, 0x9be, 0x9a6, 0x9c7, 0x9b6,
+0x9ad, 0x9be, 0x9b0, 0x9a4, 0xf62, 0xfab, 0xf7c, 0xf44, 0xf0b, 0xf41, 0xf60, 0xf56, 0xfb2, 0xf74, 0xf42, 0x62, 0x72, 0x65, 0x7a, 0x68,
+0x6f, 0x6e, 0x65, 0x67, 0x46, 0x72, 0x61, 0xf1, 0x73, 0x431, 0x44a, 0x43b, 0x433, 0x430, 0x440, 0x441, 0x43a, 0x438, 0x411, 0x44a,
+0x43b, 0x433, 0x430, 0x440, 0x438, 0x44f, 0x1017, 0x1019, 0x102c, 0x1019, 0x103c, 0x1014, 0x103a, 0x1019, 0x102c, 0x431, 0x435, 0x43b, 0x430, 0x440,
+0x443, 0x441, 0x43a, 0x430, 0x44f, 0x411, 0x435, 0x43b, 0x430, 0x440, 0x443, 0x441, 0x44c, 0x1781, 0x17d2, 0x1798, 0x17c2, 0x179a, 0x1780, 0x1798,
+0x17d2, 0x1796, 0x17bb, 0x1787, 0x17b6, 0x63, 0x61, 0x74, 0x61, 0x6c, 0xe0, 0x45, 0x73, 0x70, 0x61, 0x6e, 0x79, 0x61, 0x41, 0x6e,
+0x64, 0x6f, 0x72, 0x72, 0x61, 0x46, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x49, 0x74, 0xe0, 0x6c, 0x69, 0x61, 0x7b80, 0x4f53, 0x4e2d,
+0x6587, 0x4e2d, 0x56fd, 0x4e2d, 0x56fd, 0x9999, 0x6e2f, 0x7279, 0x522b, 0x884c, 0x653f, 0x533a, 0x4e2d, 0x56fd, 0x6fb3, 0x95e8, 0x7279, 0x522b, 0x884c, 0x653f,
+0x533a, 0x65b0, 0x52a0, 0x5761, 0x7e41, 0x9ad4, 0x4e2d, 0x6587, 0x4e2d, 0x83ef, 0x4eba, 0x6c11, 0x5171, 0x548c, 0x570b, 0x9999, 0x6e2f, 0x7279, 0x5225, 0x884c,
+0x653f, 0x5340, 0x4e2d, 0x83ef, 0x4eba, 0x6c11, 0x5171, 0x548c, 0x570b, 0x6fb3, 0x9580, 0x7279, 0x5225, 0x884c, 0x653f, 0x5340, 0x53f0, 0x7063, 0x68, 0x72,
+0x76, 0x61, 0x74, 0x73, 0x6b, 0x69, 0x48, 0x72, 0x76, 0x61, 0x74, 0x73, 0x6b, 0x61, 0x42, 0x6f, 0x73, 0x6e, 0x61, 0x20,
+0x69, 0x20, 0x48, 0x65, 0x72, 0x63, 0x65, 0x67, 0x6f, 0x76, 0x69, 0x6e, 0x61, 0x10d, 0x65, 0x161, 0x74, 0x69, 0x6e, 0x61,
+0x10c, 0x65, 0x73, 0x6b, 0xe1, 0x20, 0x72, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x6b, 0x61, 0x64, 0x61, 0x6e, 0x73, 0x6b,
+0x44, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x47, 0x72, 0xf8, 0x6e, 0x6c, 0x61, 0x6e, 0x64, 0x4e, 0x65, 0x64, 0x65, 0x72,
+0x6c, 0x61, 0x6e, 0x64, 0x73, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x64, 0x41, 0x72, 0x75, 0x62, 0x61, 0x56,
+0x6c, 0x61, 0x61, 0x6d, 0x73, 0x42, 0x65, 0x6c, 0x67, 0x69, 0xeb, 0x43, 0x75, 0x72, 0x61, 0xe7, 0x61, 0x6f, 0x53, 0x75,
+0x72, 0x69, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x61, 0x72, 0x69, 0x62, 0x69, 0x73, 0x63, 0x68, 0x20, 0x4e, 0x65, 0x64, 0x65,
+0x72, 0x6c, 0x61, 0x6e, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x2d, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20,
+0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x6e, 0x20, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x41, 0x6e, 0x67, 0x75, 0x69, 0x6c, 0x6c, 0x61, 0x41, 0x6e, 0x74, 0x69, 0x67,
+0x75, 0x61, 0x20, 0x26, 0x20, 0x42, 0x61, 0x72, 0x62, 0x75, 0x64, 0x61, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69,
+0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x42,
+0x61, 0x68, 0x61, 0x6d, 0x61, 0x73, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x6f, 0x73, 0x42, 0x65, 0x6c, 0x67, 0x69, 0x75,
+0x6d, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x42, 0x6f, 0x74, 0x73, 0x77, 0x61,
+0x6e, 0x61, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x4f, 0x63, 0x65,
+0x61, 0x6e, 0x20, 0x54, 0x65, 0x72, 0x72, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x6f, 0x6f, 0x6e,
+0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x43, 0x61, 0x6e, 0x61,
+0x64, 0x61, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x43, 0x68, 0x72, 0x69,
+0x73, 0x74, 0x6d, 0x61, 0x73, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x43, 0x6f, 0x63, 0x6f, 0x73, 0x20, 0x28, 0x4b,
+0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x43, 0x6f, 0x6f, 0x6b, 0x20,
+0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x45, 0x72, 0x69, 0x74, 0x72,
+0x65, 0x61, 0x46, 0x61, 0x6c, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x46, 0x69,
+0x6a, 0x69, 0x47, 0x75, 0x65, 0x72, 0x6e, 0x73, 0x65, 0x79, 0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x47, 0x68, 0x61, 0x6e,
+0x61, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x47, 0x72, 0x65, 0x6e, 0x61, 0x64, 0x61, 0x47, 0x75, 0x61,
+0x6d, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x48, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x20, 0x53, 0x41, 0x52,
+0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x49, 0x72, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x4a, 0x61,
+0x6d, 0x61, 0x69, 0x63, 0x61, 0x4b, 0x65, 0x6e, 0x79, 0x61, 0x4b, 0x69, 0x72, 0x69, 0x62, 0x61, 0x74, 0x69, 0x4c, 0x65,
+0x73, 0x6f, 0x74, 0x68, 0x6f, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x69, 0x61, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x20, 0x53, 0x41,
+0x52, 0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x4d, 0x61, 0x64, 0x61, 0x67, 0x61, 0x73, 0x63, 0x61, 0x72, 0x4d, 0x61, 0x6c,
+0x61, 0x77, 0x69, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x4d, 0x61, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x72, 0x73,
+0x68, 0x61, 0x6c, 0x6c, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75,
+0x73, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x4d, 0x6f, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x72, 0x61,
+0x74, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61,
+0x6c, 0x61, 0x6e, 0x64, 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x4e, 0x69, 0x75, 0x65, 0x4e, 0x6f, 0x72, 0x66, 0x6f,
+0x6c, 0x6b, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x20, 0x4d, 0x61,
+0x72, 0x69, 0x61, 0x6e, 0x61, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61,
+0x6e, 0x50, 0x61, 0x6c, 0x61, 0x75, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x4e, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6e,
+0x65, 0x61, 0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x50, 0x69, 0x74, 0x63, 0x61, 0x69, 0x72,
+0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x50, 0x75, 0x65, 0x72, 0x74, 0x6f, 0x20, 0x52, 0x69, 0x63, 0x6f,
+0x52, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x53, 0x74, 0x2e, 0x20, 0x4b, 0x69, 0x74, 0x74, 0x73, 0x20, 0x26, 0x20, 0x4e, 0x65,
+0x76, 0x69, 0x73, 0x53, 0x74, 0x2e, 0x20, 0x4c, 0x75, 0x63, 0x69, 0x61, 0x53, 0x74, 0x2e, 0x20, 0x56, 0x69, 0x6e, 0x63,
+0x65, 0x6e, 0x74, 0x20, 0x26, 0x20, 0x47, 0x72, 0x65, 0x6e, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x53, 0x61, 0x6d, 0x6f,
+0x61, 0x53, 0x65, 0x79, 0x63, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x53, 0x69, 0x65, 0x72, 0x72, 0x61, 0x20, 0x4c, 0x65,
+0x6f, 0x6e, 0x65, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x6c, 0x6f, 0x6d, 0x6f, 0x6e, 0x20,
+0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x53,
+0x74, 0x2e, 0x20, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x53, 0x77, 0x61, 0x7a, 0x69, 0x6c,
+0x61, 0x6e, 0x64, 0x54, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x54, 0x6f, 0x6b, 0x65, 0x6c, 0x61, 0x75, 0x54, 0x6f,
+0x6e, 0x67, 0x61, 0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x26, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f,
+0x54, 0x75, 0x72, 0x6b, 0x73, 0x20, 0x26, 0x20, 0x43, 0x61, 0x69, 0x63, 0x6f, 0x73, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e,
+0x64, 0x73, 0x54, 0x75, 0x76, 0x61, 0x6c, 0x75, 0x55, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73,
+0x68, 0x20, 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, 0x69, 0x6e, 0x67,
+0x64, 0x6f, 0x6d, 0x55, 0x2e, 0x53, 0x2e, 0x20, 0x4f, 0x75, 0x74, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x49, 0x73, 0x6c,
+0x61, 0x6e, 0x64, 0x73, 0x56, 0x61, 0x6e, 0x75, 0x61, 0x74, 0x75, 0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x56,
+0x69, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x55, 0x2e, 0x53, 0x2e, 0x20, 0x56, 0x69,
+0x72, 0x67, 0x69, 0x6e, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x5a, 0x69,
+0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x44, 0x69, 0x65, 0x67, 0x6f, 0x20, 0x47, 0x61, 0x72, 0x63, 0x69, 0x61, 0x49, 0x73,
+0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x4d, 0x61, 0x6e, 0x4a, 0x65, 0x72, 0x73, 0x65, 0x79, 0x53, 0x6f, 0x75, 0x74, 0x68,
+0x20, 0x53, 0x75, 0x64, 0x61, 0x6e, 0x53, 0x69, 0x6e, 0x74, 0x20, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x65, 0x6e, 0x65, 0x65,
+0x73, 0x74, 0x69, 0x45, 0x65, 0x73, 0x74, 0x69, 0x66, 0xf8, 0x72, 0x6f, 0x79, 0x73, 0x6b, 0x74, 0x46, 0xf8, 0x72, 0x6f,
+0x79, 0x61, 0x72, 0x73, 0x75, 0x6f, 0x6d, 0x69, 0x53, 0x75, 0x6f, 0x6d, 0x69, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69,
+0x73, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6c, 0x67, 0xe9, 0x72, 0x69, 0x65, 0x42, 0x65, 0x6c, 0x67, 0x69, 0x71,
+0x75, 0x65, 0x42, 0xe9, 0x6e, 0x69, 0x6e, 0x42, 0x75, 0x72, 0x6b, 0x69, 0x6e, 0x61, 0x20, 0x46, 0x61, 0x73, 0x6f, 0x42,
+0x75, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61,
+0x69, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x52, 0xe9, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x71, 0x75,
+0x65, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x66, 0x72, 0x69, 0x63, 0x61, 0x69, 0x6e, 0x65, 0x54, 0x63, 0x68, 0x61,
+0x64, 0x43, 0x6f, 0x6d, 0x6f, 0x72, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x67, 0x6f, 0x2d, 0x4b, 0x69, 0x6e, 0x73, 0x68, 0x61,
+0x73, 0x61, 0x43, 0x6f, 0x6e, 0x67, 0x6f, 0x2d, 0x42, 0x72, 0x61, 0x7a, 0x7a, 0x61, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x43,
+0xf4, 0x74, 0x65, 0x20, 0x64, 0x2019, 0x49, 0x76, 0x6f, 0x69, 0x72, 0x65, 0x44, 0x6a, 0x69, 0x62, 0x6f, 0x75, 0x74, 0x69,
+0x47, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x20, 0xe9, 0x71, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x65, 0x47, 0x75,
+0x79, 0x61, 0x6e, 0x65, 0x20, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x65, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0xe9,
+0x73, 0x69, 0x65, 0x20, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x65, 0x47, 0x61, 0x62, 0x6f, 0x6e, 0x47, 0x75,
+0x61, 0x64, 0x65, 0x6c, 0x6f, 0x75, 0x70, 0x65, 0x47, 0x75, 0x69, 0x6e, 0xe9, 0x65, 0x48, 0x61, 0xef, 0x74, 0x69, 0x4c,
+0x75, 0x78, 0x65, 0x6d, 0x62, 0x6f, 0x75, 0x72, 0x67, 0x4d, 0x61, 0x6c, 0x69, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x69,
+0x71, 0x75, 0x65, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x61, 0x6e, 0x69, 0x65, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x63, 0x65,
+0x4d, 0x61, 0x79, 0x6f, 0x74, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x4d, 0x61, 0x72, 0x6f, 0x63, 0x4e, 0x6f,
+0x75, 0x76, 0x65, 0x6c, 0x6c, 0x65, 0x2d, 0x43, 0x61, 0x6c, 0xe9, 0x64, 0x6f, 0x6e, 0x69, 0x65, 0x4e, 0x69, 0x67, 0x65,
+0x72, 0x4c, 0x61, 0x20, 0x52, 0xe9, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x53, 0xe9, 0x6e, 0xe9, 0x67, 0x61, 0x6c, 0x53, 0x61,
+0x69, 0x6e, 0x74, 0x2d, 0x50, 0x69, 0x65, 0x72, 0x72, 0x65, 0x2d, 0x65, 0x74, 0x2d, 0x4d, 0x69, 0x71, 0x75, 0x65, 0x6c,
+0x6f, 0x6e, 0x66, 0x72, 0x61, 0x6e, 0xe7, 0x61, 0x69, 0x73, 0x20, 0x73, 0x75, 0x69, 0x73, 0x73, 0x65, 0x53, 0x75, 0x69,
+0x73, 0x73, 0x65, 0x53, 0x79, 0x72, 0x69, 0x65, 0x54, 0x6f, 0x67, 0x6f, 0x54, 0x75, 0x6e, 0x69, 0x73, 0x69, 0x65, 0x57,
+0x61, 0x6c, 0x6c, 0x69, 0x73, 0x2d, 0x65, 0x74, 0x2d, 0x46, 0x75, 0x74, 0x75, 0x6e, 0x61, 0x53, 0x61, 0x69, 0x6e, 0x74,
+0x2d, 0x42, 0x61, 0x72, 0x74, 0x68, 0xe9, 0x6c, 0x65, 0x6d, 0x79, 0x53, 0x61, 0x69, 0x6e, 0x74, 0x2d, 0x4d, 0x61, 0x72,
+0x74, 0x69, 0x6e, 0x57, 0x65, 0x73, 0x74, 0x2d, 0x46, 0x72, 0x79, 0x73, 0x6b, 0x4e, 0x65, 0x64, 0x65, 0x72, 0x6c, 0xe2,
+0x6e, 0x47, 0xe0, 0x69, 0x64, 0x68, 0x6c, 0x69, 0x67, 0x41, 0x6e, 0x20, 0x52, 0xec, 0x6f, 0x67, 0x68, 0x61, 0x63, 0x68,
+0x64, 0x20, 0x41, 0x6f, 0x6e, 0x61, 0x69, 0x63, 0x68, 0x74, 0x65, 0x67, 0x61, 0x6c, 0x65, 0x67, 0x6f, 0x45, 0x73, 0x70,
+0x61, 0xf1, 0x61, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10e3, 0x10da, 0x10d8, 0x10e1, 0x10d0, 0x10e5, 0x10d0, 0x10e0, 0x10d7, 0x10d5, 0x10d4, 0x10da, 0x10dd,
+0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x44, 0x65, 0x75, 0x74, 0x73, 0x63, 0x68, 0x6c, 0x61, 0x6e, 0x64, 0xd6, 0x73,
+0x74, 0x65, 0x72, 0x72, 0x65, 0x69, 0x63, 0x68, 0x69, 0x73, 0x63, 0x68, 0x65, 0x73, 0x20, 0x44, 0x65, 0x75, 0x74, 0x73,
+0x63, 0x68, 0xd6, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x69, 0x63, 0x68, 0x42, 0x65, 0x6c, 0x67, 0x69, 0x65, 0x6e, 0x4c,
+0x69, 0x65, 0x63, 0x68, 0x74, 0x65, 0x6e, 0x73, 0x74, 0x65, 0x69, 0x6e, 0x4c, 0x75, 0x78, 0x65, 0x6d, 0x62, 0x75, 0x72,
+0x67, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x65, 0x72, 0x20, 0x48, 0x6f, 0x63, 0x68, 0x64, 0x65, 0x75, 0x74, 0x73,
+0x63, 0x68, 0x53, 0x63, 0x68, 0x77, 0x65, 0x69, 0x7a, 0x395, 0x3bb, 0x3bb, 0x3b7, 0x3bd, 0x3b9, 0x3ba, 0x3ac, 0x395, 0x3bb, 0x3bb,
+0x3ac, 0x3b4, 0x3b1, 0x39a, 0x3cd, 0x3c0, 0x3c1, 0x3bf, 0x3c2, 0x6b, 0x61, 0x6c, 0x61, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x75, 0x74,
+0x4b, 0x61, 0x6c, 0x61, 0x61, 0x6c, 0x6c, 0x69, 0x74, 0x20, 0x4e, 0x75, 0x6e, 0x61, 0x61, 0x74, 0xa97, 0xac1, 0xa9c, 0xab0,
+0xabe, 0xaa4, 0xac0, 0xaad, 0xabe, 0xab0, 0xaa4, 0x48, 0x61, 0x75, 0x73, 0x61, 0x4e, 0x61, 0x6a, 0x65, 0x72, 0x69, 0x79, 0x61,
+0x47, 0x61, 0x6e, 0x61, 0x4e, 0x69, 0x6a, 0x61, 0x72, 0x5e2, 0x5d1, 0x5e8, 0x5d9, 0x5ea, 0x5d9, 0x5e9, 0x5e8, 0x5d0, 0x5dc, 0x939,
+0x93f, 0x928, 0x94d, 0x926, 0x940, 0x92d, 0x93e, 0x930, 0x924, 0x6d, 0x61, 0x67, 0x79, 0x61, 0x72, 0x4d, 0x61, 0x67, 0x79, 0x61,
+0x72, 0x6f, 0x72, 0x73, 0x7a, 0xe1, 0x67, 0xed, 0x73, 0x6c, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0xcd, 0x73, 0x6c, 0x61, 0x6e,
+0x64, 0x42, 0x61, 0x68, 0x61, 0x73, 0x61, 0x20, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x49, 0x6e, 0x64,
+0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x47, 0x61, 0x65, 0x69, 0x6c, 0x67, 0x65, 0xc9, 0x69, 0x72, 0x65, 0x69, 0x74, 0x61,
0x6c, 0x69, 0x61, 0x6e, 0x6f, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x61, 0x53, 0x61, 0x6e, 0x20, 0x4d, 0x61, 0x72, 0x69, 0x6e,
0x6f, 0x53, 0x76, 0x69, 0x7a, 0x7a, 0x65, 0x72, 0x61, 0x65e5, 0x672c, 0x8a9e, 0x65e5, 0x672c, 0xc95, 0xca8, 0xccd, 0xca8, 0xca1, 0xcad,
0xcbe, 0xcb0, 0xca4, 0x6a9, 0x672, 0x634, 0x64f, 0x631, 0x6c1, 0x650, 0x646, 0x65b, 0x62f, 0x648, 0x633, 0x62a, 0x627, 0x646, 0x49b, 0x430,
0x437, 0x430, 0x49b, 0x20, 0x442, 0x456, 0x43b, 0x456, 0x49a, 0x430, 0x437, 0x430, 0x49b, 0x441, 0x442, 0x430, 0x43d, 0x4b, 0x69, 0x6e,
0x79, 0x61, 0x72, 0x77, 0x61, 0x6e, 0x64, 0x61, 0x43a, 0x44b, 0x440, 0x433, 0x44b, 0x437, 0x447, 0x430, 0x41a, 0x44b, 0x440, 0x433,
-0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d, 0xd55c, 0xad6d, 0xc5b4, 0xb300, 0xd55c, 0xbbfc, 0xad6d, 0xc870, 0xc120, 0x20, 0xbbfc, 0xc8fc, 0xc8fc, 0xc758,
-0x20, 0xc778, 0xbbfc, 0x20, 0xacf5, 0xd654, 0xad6d, 0x49, 0x6b, 0x69, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x55, 0x62, 0x75, 0x72, 0x75,
-0x6e, 0x64, 0x69, 0xea5, 0xeb2, 0xea7, 0x6c, 0x61, 0x74, 0x76, 0x69, 0x65, 0x161, 0x75, 0x4c, 0x61, 0x74, 0x76, 0x69, 0x6a,
-0x61, 0x6c, 0x69, 0x6e, 0x67, 0xe1, 0x6c, 0x61, 0x52, 0x65, 0x70, 0x69, 0x62, 0x69, 0x6b, 0x69, 0x20, 0x64, 0x65, 0x6d,
-0x6f, 0x6b, 0x72, 0x61, 0x74, 0x69, 0x6b, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0xf3, 0x41, 0x6e, 0x67,
-0xf3, 0x6c, 0x61, 0x52, 0x65, 0x70, 0x69, 0x62, 0x69, 0x6b, 0x69, 0x20, 0x79, 0x61, 0x20, 0x41, 0x66, 0x72, 0xed, 0x6b,
-0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0xe1, 0x74, 0x69, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x69, 0x65, 0x74, 0x75, 0x76,
-0x69, 0x173, 0x4c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x61, 0x43c, 0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441, 0x43a, 0x438, 0x41c,
-0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x438, 0x458, 0x430, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x4d, 0x61, 0x64,
-0x61, 0x67, 0x61, 0x73, 0x69, 0x6b, 0x61, 0x72, 0x61, 0x42, 0x61, 0x68, 0x61, 0x73, 0x61, 0x20, 0x4d, 0x65, 0x6c, 0x61,
-0x79, 0x75, 0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x53, 0x69, 0x6e, 0x67,
-0x61, 0x70, 0x75, 0x72, 0x61, 0xd2e, 0xd32, 0xd2f, 0xd3e, 0xd33, 0xd02, 0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0x4d, 0x61, 0x6c,
-0x74, 0x69, 0x92e, 0x930, 0x93e, 0x920, 0x940, 0x43c, 0x43e, 0x43d, 0x433, 0x43e, 0x43b, 0x41c, 0x43e, 0x43d, 0x433, 0x43e, 0x43b, 0x928,
-0x947, 0x92a, 0x93e, 0x932, 0x940, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x20, 0x62, 0x6f, 0x6b, 0x6d,
-0xe5, 0x6c, 0x4e, 0x6f, 0x72, 0x67, 0x65, 0x53, 0x76, 0x61, 0x6c, 0x62, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x67, 0x20, 0x4a,
-0x61, 0x6e, 0x20, 0x4d, 0x61, 0x79, 0x65, 0x6e, 0xb13, 0xb21, 0xb3c, 0xb3f, 0xb06, 0xb2d, 0xb3e, 0xb30, 0xb24, 0x67e, 0x69a, 0x62a,
-0x648, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627, 0x646, 0x641, 0x627, 0x631, 0x633, 0x6cc, 0x627, 0x6cc, 0x631, 0x627, 0x646,
-0x62f, 0x631, 0x6cc, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x50, 0x6f, 0x6c, 0x73, 0x6b, 0x61, 0x70, 0x6f, 0x72, 0x74, 0x75,
-0x67, 0x75, 0xea, 0x73, 0x20, 0x64, 0x6f, 0x20, 0x42, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x42, 0x72, 0x61, 0x73, 0x69, 0x6c,
-0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xea, 0x73, 0x41, 0x6e, 0x67, 0x6f, 0x6c, 0x61, 0x43, 0x61, 0x62, 0x6f, 0x20,
-0x56, 0x65, 0x72, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x6f, 0x72, 0x2d, 0x4c, 0x65, 0x73, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6e,
-0xe9, 0x2d, 0x42, 0x69, 0x73, 0x73, 0x61, 0x75, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x2c, 0x20, 0x52, 0x41, 0x45, 0x20, 0x64,
-0x61, 0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69, 0x71, 0x75, 0x65, 0x70, 0x6f, 0x72,
-0x74, 0x75, 0x67, 0x75, 0xea, 0x73, 0x20, 0x65, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x75, 0x50, 0x6f, 0x72, 0x74, 0x75, 0x67,
-0x61, 0x6c, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20, 0x50, 0x72, 0xed, 0x6e, 0x63, 0x69, 0x70,
-0x65, 0xa2a, 0xa70, 0xa1c, 0xa3e, 0xa2c, 0xa40, 0xa2d, 0xa3e, 0xa30, 0xa24, 0x67e, 0x646, 0x62c, 0x627, 0x628, 0x67e, 0x6a9, 0x633, 0x62a,
-0x627, 0x646, 0x72, 0x75, 0x6d, 0x61, 0x6e, 0x74, 0x73, 0x63, 0x68, 0x53, 0x76, 0x69, 0x7a, 0x72, 0x61, 0x72, 0x6f, 0x6d,
-0xe2, 0x6e, 0x103, 0x52, 0x6f, 0x6d, 0xe2, 0x6e, 0x69, 0x61, 0x52, 0x65, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x20,
-0x4d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x61, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439, 0x420, 0x43e, 0x441, 0x441, 0x438, 0x44f,
-0x41a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x442, 0x430, 0x43d, 0x41a, 0x438, 0x440, 0x433, 0x438, 0x437, 0x438, 0x44f, 0x41c, 0x43e, 0x43b,
-0x434, 0x43e, 0x432, 0x430, 0x423, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x430, 0x53, 0xe4, 0x6e, 0x67, 0xf6, 0x4b, 0xf6, 0x64, 0xf6,
-0x72, 0xf6, 0x73, 0xea, 0x73, 0x65, 0x20, 0x74, 0xee, 0x20, 0x42, 0xea, 0x61, 0x66, 0x72, 0xee, 0x6b, 0x61, 0x421, 0x440,
-0x43f, 0x441, 0x43a, 0x438, 0x421, 0x440, 0x431, 0x438, 0x458, 0x430, 0x53, 0x72, 0x70, 0x73, 0x6b, 0x69, 0x43, 0x72, 0x6e, 0x61,
-0x20, 0x47, 0x6f, 0x72, 0x61, 0x53, 0x72, 0x62, 0x69, 0x6a, 0x61, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x411, 0x43e, 0x441,
+0x44b, 0x437, 0x441, 0x442, 0x430, 0x43d, 0xd55c, 0xad6d, 0xc5b4, 0xb300, 0xd55c, 0xbbfc, 0xad6d, 0xc870, 0xc120, 0xbbfc, 0xc8fc, 0xc8fc, 0xc758, 0xc778,
+0xbbfc, 0xacf5, 0xd654, 0xad6d, 0x49, 0x6b, 0x69, 0x72, 0x75, 0x6e, 0x64, 0x69, 0x55, 0x62, 0x75, 0x72, 0x75, 0x6e, 0x64, 0x69,
+0xea5, 0xeb2, 0xea7, 0x6c, 0x61, 0x74, 0x76, 0x69, 0x65, 0x161, 0x75, 0x4c, 0x61, 0x74, 0x76, 0x69, 0x6a, 0x61, 0x6c, 0x69,
+0x6e, 0x67, 0xe1, 0x6c, 0x61, 0x52, 0x65, 0x70, 0x69, 0x62, 0x69, 0x6b, 0x69, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x6b, 0x72,
+0x61, 0x74, 0x69, 0x6b, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0xf3, 0x41, 0x6e, 0x67, 0xf3, 0x6c, 0x61,
+0x52, 0x65, 0x70, 0x69, 0x62, 0x69, 0x6b, 0x69, 0x20, 0x79, 0x61, 0x20, 0x41, 0x66, 0x72, 0xed, 0x6b, 0x61, 0x20, 0x79,
+0x61, 0x20, 0x4b, 0xe1, 0x74, 0x69, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x69, 0x65, 0x74, 0x75, 0x76, 0x69, 0x173, 0x4c,
+0x69, 0x65, 0x74, 0x75, 0x76, 0x61, 0x43c, 0x430, 0x43a, 0x435, 0x434, 0x43e, 0x43d, 0x441, 0x43a, 0x438, 0x41c, 0x430, 0x43a, 0x435,
+0x434, 0x43e, 0x43d, 0x438, 0x458, 0x430, 0x4d, 0x61, 0x6c, 0x61, 0x67, 0x61, 0x73, 0x79, 0x4d, 0x61, 0x64, 0x61, 0x67, 0x61,
+0x73, 0x69, 0x6b, 0x61, 0x72, 0x61, 0x42, 0x61, 0x68, 0x61, 0x73, 0x61, 0x20, 0x4d, 0x65, 0x6c, 0x61, 0x79, 0x75, 0x42,
+0x72, 0x75, 0x6e, 0x65, 0x69, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x75, 0x72, 0x61, 0xd2e, 0xd32, 0xd2f, 0xd3e, 0xd33, 0xd02,
+0xd07, 0xd28, 0xd4d, 0xd24, 0xd4d, 0xd2f, 0x4d, 0x61, 0x6c, 0x74, 0x69, 0x92e, 0x930, 0x93e, 0x920, 0x940, 0x43c, 0x43e, 0x43d, 0x433,
+0x43e, 0x43b, 0x41c, 0x43e, 0x43d, 0x433, 0x43e, 0x43b, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x940, 0x928, 0x947, 0x92a, 0x93e, 0x932, 0x6e,
+0x6f, 0x72, 0x73, 0x6b, 0x20, 0x62, 0x6f, 0x6b, 0x6d, 0xe5, 0x6c, 0x4e, 0x6f, 0x72, 0x67, 0x65, 0x53, 0x76, 0x61, 0x6c,
+0x62, 0x61, 0x72, 0x64, 0x20, 0x6f, 0x67, 0x20, 0x4a, 0x61, 0x6e, 0x20, 0x4d, 0x61, 0x79, 0x65, 0x6e, 0xb13, 0xb21, 0xb3c,
+0xb3f, 0xb06, 0xb2d, 0xb3e, 0xb30, 0xb24, 0x67e, 0x69a, 0x62a, 0x648, 0x627, 0x641, 0x63a, 0x627, 0x646, 0x633, 0x62a, 0x627, 0x646, 0x641,
+0x627, 0x631, 0x633, 0x6cc, 0x627, 0x6cc, 0x631, 0x627, 0x646, 0x70, 0x6f, 0x6c, 0x73, 0x6b, 0x69, 0x50, 0x6f, 0x6c, 0x73, 0x6b,
+0x61, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xea, 0x73, 0x20, 0x64, 0x6f, 0x20, 0x42, 0x72, 0x61, 0x73, 0x69, 0x6c,
+0x42, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xea, 0x73, 0x41, 0x6e, 0x67, 0x6f, 0x6c,
+0x61, 0x43, 0x61, 0x62, 0x6f, 0x20, 0x56, 0x65, 0x72, 0x64, 0x65, 0x54, 0x69, 0x6d, 0x6f, 0x72, 0x2d, 0x4c, 0x65, 0x73,
+0x74, 0x65, 0x47, 0x75, 0x69, 0x6e, 0xe9, 0x2d, 0x42, 0x69, 0x73, 0x73, 0x61, 0x75, 0x4d, 0x61, 0x63, 0x61, 0x75, 0x2c,
+0x20, 0x52, 0x41, 0x45, 0x20, 0x64, 0x61, 0x20, 0x43, 0x68, 0x69, 0x6e, 0x61, 0x4d, 0x6f, 0xe7, 0x61, 0x6d, 0x62, 0x69,
+0x71, 0x75, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x75, 0xea, 0x73, 0x20, 0x65, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x75,
+0x50, 0x6f, 0x72, 0x74, 0x75, 0x67, 0x61, 0x6c, 0x53, 0xe3, 0x6f, 0x20, 0x54, 0x6f, 0x6d, 0xe9, 0x20, 0x65, 0x20, 0x50,
+0x72, 0xed, 0x6e, 0x63, 0x69, 0x70, 0x65, 0xa2a, 0xa70, 0xa1c, 0xa3e, 0xa2c, 0xa40, 0xa2d, 0xa3e, 0xa30, 0xa24, 0x67e, 0x646, 0x62c,
+0x627, 0x628, 0x6cc, 0x67e, 0x6a9, 0x633, 0x62a, 0x627, 0x646, 0x52, 0x75, 0x6e, 0x61, 0x73, 0x69, 0x6d, 0x69, 0x50, 0x65, 0x72,
+0xfa, 0x42, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61, 0x45, 0x63, 0x75, 0x61, 0x64, 0x6f, 0x72, 0x72, 0x75, 0x6d, 0x61, 0x6e,
+0x74, 0x73, 0x63, 0x68, 0x53, 0x76, 0x69, 0x7a, 0x72, 0x61, 0x72, 0x6f, 0x6d, 0xe2, 0x6e, 0x103, 0x52, 0x6f, 0x6d, 0xe2,
+0x6e, 0x69, 0x61, 0x6d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x65, 0x6e, 0x65, 0x61, 0x73, 0x63, 0x103, 0x52, 0x65, 0x70, 0x75,
+0x62, 0x6c, 0x69, 0x63, 0x61, 0x20, 0x4d, 0x6f, 0x6c, 0x64, 0x6f, 0x76, 0x61, 0x440, 0x443, 0x441, 0x441, 0x43a, 0x438, 0x439,
+0x420, 0x43e, 0x441, 0x441, 0x438, 0x44f, 0x41a, 0x430, 0x437, 0x430, 0x445, 0x441, 0x442, 0x430, 0x43d, 0x41a, 0x438, 0x440, 0x433, 0x438,
+0x437, 0x438, 0x44f, 0x41c, 0x43e, 0x43b, 0x434, 0x43e, 0x432, 0x430, 0x423, 0x43a, 0x440, 0x430, 0x438, 0x43d, 0x430, 0x53, 0xe4, 0x6e,
+0x67, 0xf6, 0x4b, 0xf6, 0x64, 0xf6, 0x72, 0xf6, 0x73, 0xea, 0x73, 0x65, 0x20, 0x74, 0xee, 0x20, 0x42, 0xea, 0x61, 0x66,
+0x72, 0xee, 0x6b, 0x61, 0x441, 0x440, 0x43f, 0x441, 0x43a, 0x438, 0x421, 0x440, 0x431, 0x438, 0x458, 0x430, 0x73, 0x72, 0x70, 0x73,
+0x6b, 0x69, 0x43, 0x72, 0x6e, 0x61, 0x20, 0x47, 0x6f, 0x72, 0x61, 0x53, 0x72, 0x62, 0x69, 0x6a, 0x61, 0x411, 0x43e, 0x441,
0x43d, 0x430, 0x20, 0x438, 0x20, 0x425, 0x435, 0x440, 0x446, 0x435, 0x433, 0x43e, 0x432, 0x438, 0x43d, 0x430, 0x426, 0x440, 0x43d, 0x430,
0x20, 0x413, 0x43e, 0x440, 0x430, 0x41a, 0x43e, 0x441, 0x43e, 0x432, 0x43e, 0x4b, 0x6f, 0x73, 0x6f, 0x76, 0x6f, 0x438, 0x440, 0x43e,
-0x43d, 0x413, 0x443, 0x44b, 0x440, 0x434, 0x437, 0x44b, 0x441, 0x442, 0x43e, 0x43d, 0x423, 0x4d5, 0x440, 0x4d5, 0x441, 0x435, 0x53, 0x65,
-0x73, 0x6f, 0x74, 0x68, 0x6f, 0x53, 0x65, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x63, 0x68, 0x69, 0x53, 0x68, 0x6f, 0x6e,
-0x61, 0xdc3, 0xdd2, 0xd82, 0xdc4, 0xdbd, 0xdc1, 0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a, 0xdcf, 0xdc0, 0x53, 0x69, 0x73,
-0x77, 0x61, 0x74, 0x69, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x10d, 0x69, 0x6e, 0x61, 0x53, 0x6c, 0x6f, 0x76, 0x65, 0x6e,
-0x73, 0x6b, 0x6f, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x161, 0x10d, 0x69, 0x6e, 0x61, 0x53, 0x6c, 0x6f, 0x76, 0x65, 0x6e,
-0x69, 0x6a, 0x61, 0x53, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x53, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x79,
-0x61, 0x4a, 0x61, 0x62, 0x75, 0x75, 0x74, 0x69, 0x49, 0x74, 0x6f, 0x6f, 0x62, 0x69, 0x79, 0x61, 0x4b, 0x69, 0x69, 0x6e,
-0x69, 0x79, 0x61, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x45, 0x73, 0x70, 0x61, 0xf1, 0x61,
-0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x42, 0x6f, 0x6c, 0x69,
-0x76, 0x69, 0x61, 0x43, 0x68, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x43, 0x6f, 0x73, 0x74,
-0x61, 0x20, 0x52, 0x69, 0x63, 0x61, 0x43, 0x75, 0x62, 0x61, 0x52, 0x65, 0x70, 0xfa, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x20,
-0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e, 0x61, 0x45, 0x63, 0x75, 0x61, 0x64, 0x6f, 0x72, 0x45, 0x6c, 0x20,
-0x53, 0x61, 0x6c, 0x76, 0x61, 0x64, 0x6f, 0x72, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x20, 0x45, 0x63, 0x75, 0x61, 0x74,
-0x6f, 0x72, 0x69, 0x61, 0x6c, 0x47, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x61, 0x48, 0x6f, 0x6e, 0x64, 0x75, 0x72,
-0x61, 0x73, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x4d, 0xe9, 0x78, 0x69, 0x63, 0x6f, 0x4d,
-0xe9, 0x78, 0x69, 0x63, 0x6f, 0x4e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x50, 0x61, 0x6e, 0x61, 0x6d, 0xe1,
-0x50, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x50, 0x65, 0x72, 0xfa, 0x46, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61,
+0x43d, 0x413, 0x443, 0x44b, 0x440, 0x434, 0x437, 0x44b, 0x441, 0x442, 0x43e, 0x43d, 0x423, 0x4d5, 0x440, 0x4d5, 0x441, 0x435, 0x63, 0x68,
+0x69, 0x53, 0x68, 0x6f, 0x6e, 0x61, 0xdc3, 0xdd2, 0xd82, 0xdc4, 0xdbd, 0xdc1, 0xdca, 0x200d, 0xdbb, 0xdd3, 0x20, 0xdbd, 0xd82, 0xd9a,
+0xdcf, 0xdc0, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x10d, 0x69, 0x6e, 0x61, 0x53, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x73, 0x6b,
+0x6f, 0x73, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x161, 0x10d, 0x69, 0x6e, 0x61, 0x53, 0x6c, 0x6f, 0x76, 0x65, 0x6e, 0x69, 0x6a,
+0x61, 0x53, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x53, 0x6f, 0x6f, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x79, 0x61, 0x4a,
+0x61, 0x62, 0x75, 0x75, 0x74, 0x69, 0x49, 0x74, 0x6f, 0x6f, 0x62, 0x69, 0x79, 0x61, 0x4b, 0x69, 0x69, 0x6e, 0x69, 0x79,
+0x61, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x45, 0x73, 0x70, 0x61, 0xf1, 0x61, 0x65, 0x73,
+0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x43, 0x68, 0x69, 0x6c, 0x65, 0x43,
+0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61, 0x43, 0x6f, 0x73, 0x74, 0x61, 0x20, 0x52, 0x69, 0x63, 0x61, 0x43, 0x75, 0x62,
+0x61, 0x52, 0x65, 0x70, 0xfa, 0x62, 0x6c, 0x69, 0x63, 0x61, 0x20, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x6e,
+0x61, 0x45, 0x6c, 0x20, 0x53, 0x61, 0x6c, 0x76, 0x61, 0x64, 0x6f, 0x72, 0x47, 0x75, 0x69, 0x6e, 0x65, 0x61, 0x20, 0x45,
+0x63, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x47, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x61, 0x48, 0x6f,
+0x6e, 0x64, 0x75, 0x72, 0x61, 0x73, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x4d, 0xe9, 0x78,
+0x69, 0x63, 0x6f, 0x4d, 0xe9, 0x78, 0x69, 0x63, 0x6f, 0x4e, 0x69, 0x63, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x50, 0x61,
+0x6e, 0x61, 0x6d, 0xe1, 0x50, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x46, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61,
0x73, 0x45, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x73, 0x20, 0x55, 0x6e, 0x69, 0x64, 0x6f, 0x73, 0x55, 0x72, 0x75, 0x67, 0x75,
0x61, 0x79, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, 0x61, 0x69, 0x73, 0x6c, 0x61, 0x73, 0x20, 0x43, 0x61, 0x6e,
-0x61, 0x72, 0x69, 0x61, 0x73, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x64, 0x65, 0x20, 0x41, 0x6d, 0xe9, 0x72,
-0x69, 0x63, 0x61, 0x4c, 0x61, 0x74, 0x69, 0x6e, 0x6f, 0x61, 0x6d, 0xe9, 0x72, 0x69, 0x63, 0x61, 0x43, 0x65, 0x75, 0x74,
-0x61, 0x20, 0x79, 0x20, 0x4d, 0x65, 0x6c, 0x69, 0x6c, 0x6c, 0x61, 0x4b, 0x69, 0x73, 0x77, 0x61, 0x68, 0x69, 0x6c, 0x69,
-0x73, 0x76, 0x65, 0x6e, 0x73, 0x6b, 0x61, 0x53, 0x76, 0x65, 0x72, 0x69, 0x67, 0x65, 0x46, 0x69, 0x6e, 0x6c, 0x61, 0x6e,
-0x64, 0xc5, 0x6c, 0x61, 0x6e, 0x64, 0x422, 0x43e, 0x4b7, 0x438, 0x43a, 0x4e3, 0x422, 0x43e, 0x4b7, 0x438, 0x43a, 0x438, 0x441, 0x442,
-0x43e, 0x43d, 0xba4, 0xbae, 0xbbf, 0xbb4, 0xbcd, 0xb87, 0xba8, 0xbcd, 0xba4, 0xbbf, 0xbaf, 0xbbe, 0xbae, 0xbb2, 0xbc7, 0xbb7, 0xbbf, 0xbaf,
-0xbbe, 0xb9a, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0xb87, 0xbb2, 0xb99, 0xbcd, 0xb95, 0xbc8, 0xc24, 0xc46,
-0xc32, 0xc41, 0xc17, 0xc41, 0xc2d, 0xc3e, 0xc30, 0xc24, 0x20, 0xc26, 0xc47, 0xc36, 0xc02, 0xe44, 0xe17, 0xe22, 0xf54, 0xf7c, 0xf51, 0xf0b,
-0xf66, 0xf90, 0xf51, 0xf0b, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf53, 0xf42, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf42, 0xf62, 0xf0b, 0x1275, 0x130d, 0x122d,
-0x129b, 0x12a4, 0x122d, 0x1275, 0x122b, 0x6c, 0x65, 0x61, 0x20, 0x66, 0x61, 0x6b, 0x61, 0x74, 0x6f, 0x6e, 0x67, 0x61, 0x58, 0x69,
-0x74, 0x73, 0x6f, 0x6e, 0x67, 0x61, 0x54, 0xfc, 0x72, 0x6b, 0xe7, 0x65, 0x54, 0xfc, 0x72, 0x6b, 0x69, 0x79, 0x65, 0x47,
-0xfc, 0x6e, 0x65, 0x79, 0x20, 0x4b, 0x131, 0x62, 0x72, 0x131, 0x73, 0x20, 0x52, 0x75, 0x6d, 0x20, 0x4b, 0x65, 0x73, 0x69,
-0x6d, 0x69, 0x443, 0x43a, 0x440, 0x430, 0x457, 0x43d, 0x441, 0x44c, 0x43a, 0x430, 0x423, 0x43a, 0x440, 0x430, 0x457, 0x43d, 0x430, 0x627,
-0x631, 0x62f, 0x648, 0x67e, 0x627, 0x6a9, 0x633, 0x62a, 0x627, 0x646, 0x628, 0x6be, 0x627, 0x631, 0x62a, 0x6f, 0x2bb, 0x7a, 0x62, 0x65,
-0x6b, 0x63, 0x68, 0x61, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73, 0x74, 0x6f, 0x6e, 0x627, 0x648, 0x632, 0x628, 0x6cc,
-0x6a9, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442, 0x43e, 0x43d, 0x54, 0x69, 0x1ebf, 0x6e,
-0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74, 0x56, 0x69, 0x1ec7, 0x74, 0x20, 0x4e, 0x61, 0x6d, 0x43, 0x79, 0x6d, 0x72, 0x61, 0x65,
-0x67, 0x59, 0x20, 0x44, 0x65, 0x79, 0x72, 0x6e, 0x61, 0x73, 0x20, 0x55, 0x6e, 0x65, 0x64, 0x69, 0x67, 0x69, 0x73, 0x69,
-0x58, 0x68, 0x6f, 0x73, 0x61, 0xc8, 0x64, 0xe8, 0x20, 0x59, 0x6f, 0x72, 0xf9, 0x62, 0xe1, 0x4f, 0x72, 0xed, 0x6c, 0x1eb9,
-0x301, 0xe8, 0x64, 0x65, 0x20, 0x4e, 0xe0, 0xec, 0x6a, 0xed, 0x72, 0xed, 0xe0, 0x4f, 0x72, 0xed, 0x6c, 0x25b, 0x301, 0xe8,
-0x64, 0x65, 0x20, 0x42, 0x25b, 0x300, 0x6e, 0x25b, 0x300, 0x69, 0x73, 0x69, 0x5a, 0x75, 0x6c, 0x75, 0x69, 0x2d, 0x53, 0x6f,
-0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x79, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x4e, 0x6f, 0x72,
-0x65, 0x67, 0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x69, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x438, 0x47, 0x61,
-0x65, 0x6c, 0x67, 0x45, 0x6c, 0x6c, 0x61, 0x6e, 0x20, 0x56, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x6e, 0x65,
-0x77, 0x65, 0x6b, 0x52, 0x79, 0x77, 0x76, 0x61, 0x6e, 0x65, 0x74, 0x68, 0x20, 0x55, 0x6e, 0x79, 0x73, 0x41, 0x6b, 0x61,
-0x6e, 0x47, 0x61, 0x61, 0x6e, 0x61, 0x915, 0x94b, 0x902, 0x915, 0x923, 0x940, 0x49, 0x67, 0x62, 0x6f, 0x4b, 0x69, 0x6b, 0x61,
-0x6d, 0x62, 0x61, 0x1265, 0x120a, 0x1295, 0x1275, 0x130d, 0x1228, 0x66, 0x75, 0x72, 0x6c, 0x61, 0x6e, 0x49, 0x74, 0x61, 0x6c, 0x69,
-0x65, 0x54, 0x73, 0x68, 0x69, 0x76, 0x65, 0x6e, 0x1e13, 0x61, 0x65, 0x28b, 0x65, 0x67, 0x62, 0x65, 0x47, 0x68, 0x61, 0x6e,
-0x61, 0x20, 0x6e, 0x75, 0x74, 0x6f, 0x6d, 0x65, 0x54, 0x6f, 0x67, 0x6f, 0x20, 0x6e, 0x75, 0x74, 0x6f, 0x6d, 0x65, 0x12c8,
-0x120b, 0x12ed, 0x1273, 0x1271, 0x2bb, 0x14c, 0x6c, 0x65, 0x6c, 0x6f, 0x20, 0x48, 0x61, 0x77, 0x61, 0x69, 0x2bb, 0x69, 0x2bb, 0x41,
-0x6d, 0x65, 0x6c, 0x69, 0x6b, 0x61, 0x20, 0x48, 0x75, 0x69, 0x20, 0x50, 0x16b, 0x20, 0x2bb, 0x49, 0x61, 0x46, 0x69, 0x6c,
-0x69, 0x70, 0x69, 0x6e, 0x6f, 0x50, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61, 0x73, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69,
-0x7a, 0x65, 0x72, 0x74, 0xfc, 0xfc, 0x74, 0x73, 0x63, 0x68, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x4c, 0x69, 0xe4,
-0x63, 0x68, 0x74, 0x65, 0x73, 0x63, 0x68, 0x74, 0xe4, 0x69, 0xa188, 0xa320, 0xa259, 0xa34f, 0xa1e9, 0x69, 0x73, 0x69, 0x4e, 0x64,
-0x65, 0x62, 0x65, 0x6c, 0x65, 0x53, 0x65, 0x73, 0x6f, 0x74, 0x68, 0x6f, 0x20, 0x73, 0x61, 0x20, 0x4c, 0x65, 0x62, 0x6f,
-0x61, 0x64, 0x61, 0x76, 0x76, 0x69, 0x73, 0xe1, 0x6d, 0x65, 0x67, 0x69, 0x65, 0x6c, 0x6c, 0x61, 0x4e, 0x6f, 0x72, 0x67,
-0x61, 0x53, 0x75, 0x6f, 0x70, 0x6d, 0x61, 0x45, 0x6b, 0x65, 0x67, 0x75, 0x73, 0x69, 0x69, 0x4b, 0x69, 0x74, 0x61, 0x69,
-0x74, 0x61, 0x50, 0x75, 0x6c, 0x61, 0x61, 0x72, 0x53, 0x65, 0x6e, 0x65, 0x67, 0x61, 0x61, 0x6c, 0x47, 0x69, 0x6b, 0x75,
-0x79, 0x75, 0x4b, 0x69, 0x73, 0x61, 0x6d, 0x70, 0x75, 0x72, 0x73, 0x65, 0x6e, 0x61, 0x4b, 0x69, 0x68, 0x6f, 0x72, 0x6f,
-0x6d, 0x62, 0x6f, 0x2d5c, 0x2d30, 0x2d4e, 0x2d30, 0x2d63, 0x2d49, 0x2d56, 0x2d5c, 0x2d4d, 0x2d4e, 0x2d56, 0x2d54, 0x2d49, 0x2d31, 0x74, 0x61, 0x6d,
-0x61, 0x7a, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x6d, 0x263, 0x72, 0x69, 0x62, 0x54, 0x61, 0x71, 0x62, 0x61, 0x79, 0x6c, 0x69,
-0x74, 0x4c, 0x65, 0x7a, 0x7a, 0x61, 0x79, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x79, 0x61, 0x6e, 0x6b, 0x6f, 0x72, 0x65, 0x48,
-0x69, 0x62, 0x65, 0x6e, 0x61, 0x48, 0x75, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x4b, 0x79, 0x69, 0x76, 0x75,
-0x6e, 0x6a, 0x6f, 0x62, 0x61, 0x6d, 0x61, 0x6e, 0x61, 0x6b, 0x61, 0x6e, 0x4b, 0x129, 0x65, 0x6d, 0x62, 0x75, 0x13e3, 0x13b3,
-0x13a9, 0x13a0, 0x13b9, 0x13f0, 0x13df, 0x6b, 0x72, 0x65, 0x6f, 0x6c, 0x20, 0x6d, 0x6f, 0x72, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x4d,
-0x6f, 0x72, 0x69, 0x73, 0x43, 0x68, 0x69, 0x6d, 0x61, 0x6b, 0x6f, 0x6e, 0x64, 0x65, 0x4b, 0x268, 0x6c, 0x61, 0x61, 0x6e,
-0x67, 0x69, 0x54, 0x61, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0xed, 0x61, 0x4c, 0x75, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x59, 0x75,
-0x67, 0x61, 0x6e, 0x64, 0x61, 0x49, 0x63, 0x68, 0x69, 0x62, 0x65, 0x6d, 0x62, 0x61, 0x6b, 0x61, 0x62, 0x75, 0x76, 0x65,
-0x72, 0x64, 0x69, 0x61, 0x6e, 0x75, 0x4b, 0x61, 0x62, 0x75, 0x20, 0x56, 0x65, 0x72, 0x64, 0x69, 0x4b, 0x129, 0x6d, 0x129,
-0x72, 0x169, 0x4b, 0x61, 0x6c, 0x65, 0x6e, 0x6a, 0x69, 0x6e, 0x45, 0x6d, 0x65, 0x74, 0x61, 0x62, 0x20, 0x4b, 0x65, 0x6e,
-0x79, 0x61, 0x4b, 0x68, 0x6f, 0x65, 0x6b, 0x68, 0x6f, 0x65, 0x67, 0x6f, 0x77, 0x61, 0x62, 0x4e, 0x61, 0x6d, 0x69, 0x62,
-0x69, 0x61, 0x62, 0x4b, 0x69, 0x6d, 0x61, 0x63, 0x68, 0x61, 0x6d, 0x65, 0x4b, 0xf6, 0x6c, 0x73, 0x63, 0x68, 0x44, 0x6f,
-0xfc, 0x74, 0x73, 0x63, 0x68, 0x6c, 0x61, 0x6e, 0x64, 0x4d, 0x61, 0x61, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x61,
-0x4f, 0x6c, 0x75, 0x73, 0x6f, 0x67, 0x61, 0x4c, 0x75, 0x6c, 0x75, 0x68, 0x69, 0x61, 0x4b, 0x69, 0x70, 0x61, 0x72, 0x65,
-0x54, 0x61, 0x64, 0x68, 0x61, 0x6e, 0x69, 0x61, 0x4b, 0x69, 0x74, 0x65, 0x73, 0x6f, 0x4b, 0x65, 0x6e, 0x69, 0x61, 0x4b,
-0x6f, 0x79, 0x72, 0x61, 0x20, 0x63, 0x69, 0x69, 0x6e, 0x69, 0x4d, 0x61, 0x61, 0x6c, 0x69, 0x4b, 0x69, 0x72, 0x75, 0x77,
-0x61, 0x44, 0x68, 0x6f, 0x6c, 0x75, 0x6f, 0x52, 0x75, 0x6b, 0x69, 0x67, 0x61, 0x54, 0x61, 0x6d, 0x61, 0x7a, 0x69, 0x263,
-0x74, 0x4d, 0x65, 0x1e5b, 0x1e5b, 0x75, 0x6b, 0x4b, 0x6f, 0x79, 0x72, 0x61, 0x62, 0x6f, 0x72, 0x6f, 0x20, 0x73, 0x65, 0x6e,
-0x6e, 0x69, 0x4b, 0x69, 0x73, 0x68, 0x61, 0x6d, 0x62, 0x61, 0x61, 0x92c, 0x921, 0x93c, 0x94b, 0x54, 0x73, 0x68, 0x69, 0x6c,
-0x75, 0x62, 0x61, 0x44, 0x69, 0x74, 0x75, 0x6e, 0x67, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x75, 0x41,
-0x67, 0x68, 0x65, 0x6d, 0x4b, 0xe0, 0x6d, 0xe0, 0x6c, 0xfb, 0x14b, 0x181, 0xe0, 0x73, 0xe0, 0x61, 0x4b, 0xe0, 0x6d, 0x25b,
-0x300, 0x72, 0xfb, 0x6e, 0x5a, 0x61, 0x72, 0x6d, 0x61, 0x63, 0x69, 0x69, 0x6e, 0x65, 0x4e, 0x69, 0x17e, 0x65, 0x72, 0x64,
-0x75, 0xe1, 0x6c, 0xe1, 0x6a, 0x6f, 0x6f, 0x6c, 0x61, 0x53, 0x65, 0x6e, 0x65, 0x67, 0x61, 0x6c, 0x65, 0x77, 0x6f, 0x6e,
-0x64, 0x6f, 0x4b, 0x61, 0x6d, 0x259, 0x72, 0xfa, 0x6e, 0x72, 0x69, 0x6b, 0x70, 0x61, 0x6b, 0x61, 0x6d, 0x25b, 0x72, 0xfa,
-0x6e, 0x4d, 0x61, 0x6b, 0x75, 0x61, 0x55, 0x6d, 0x6f, 0x7a, 0x61, 0x6d, 0x62, 0x69, 0x6b, 0x69, 0x4d, 0x55, 0x4e, 0x44,
-0x41, 0x14a, 0x6b, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x14b, 0x4b, 0x77, 0x61, 0x73, 0x69, 0x6f, 0x4b, 0x61, 0x6d, 0x65, 0x72,
-0x75, 0x6e, 0x54, 0x68, 0x6f, 0x6b, 0x20, 0x4e, 0x61, 0x74, 0x68, 0x441, 0x430, 0x445, 0x430, 0x20, 0x442, 0x44b, 0x43b, 0x430,
-0x49, 0x73, 0x68, 0x69, 0x73, 0x61, 0x6e, 0x67, 0x75, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x79, 0x61, 0x4b, 0x69,
-0x73, 0x77, 0x61, 0x68, 0x69, 0x6c, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x4a, 0x61, 0x6d, 0x68,
-0x75, 0x72, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x69, 0x64, 0x65, 0x6d, 0x6f, 0x6b, 0x72, 0x61, 0x73, 0x69, 0x61, 0x20,
-0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x54, 0x61, 0x73, 0x61, 0x77, 0x61, 0x71, 0x20, 0x73, 0x65, 0x6e, 0x6e,
-0x69, 0xa559, 0xa524, 0xa55e, 0xa524, 0xa52b, 0xa569, 0x56, 0x61, 0x69, 0x4c, 0x61, 0x69, 0x62, 0x68, 0x69, 0x79, 0x61, 0x57, 0x61,
-0x6c, 0x73, 0x65, 0x72, 0x53, 0x63, 0x68, 0x77, 0x69, 0x7a, 0x6e, 0x75, 0x61, 0x73, 0x75, 0x65, 0x4b, 0x65, 0x6d, 0x65,
-0x6c, 0xfa, 0x6e, 0x61, 0x73, 0x74, 0x75, 0x72, 0x69, 0x61, 0x6e, 0x75, 0x4e, 0x64, 0x61, 0xa78c, 0x61, 0x4b, 0x61, 0x6d,
-0x25b, 0x6c, 0xfb, 0x6e, 0x6b, 0x61, 0x6b, 0x254, 0x4b, 0x61, 0x6d, 0x25b, 0x72, 0x75, 0x6e, 0x6d, 0x65, 0x74, 0x61, 0x2bc,
-0x4b, 0x61, 0x6d, 0x61, 0x6c, 0x75, 0x6e, 0x53, 0x68, 0x77, 0xf3, 0x14b, 0xf2, 0x20, 0x6e, 0x67, 0x69, 0x65, 0x6d, 0x62,
-0x254, 0x254, 0x6e, 0x4b, 0xe0, 0x6d, 0x61, 0x6c, 0xfb, 0x6d, 0x4c, 0x61, 0x6b, 0x21f, 0xf3, 0x6c, 0x2bc, 0x69, 0x79, 0x61,
-0x70, 0x69, 0x4d, 0xed, 0x6c, 0x61, 0x68, 0x61, 0x14b, 0x73, 0x6b, 0x61, 0x20, 0x54, 0x21f, 0x61, 0x6d, 0xe1, 0x6b, 0x21f,
-0x6f, 0x10d, 0x68, 0x65
+0x61, 0x72, 0x69, 0x61, 0x73, 0x65, 0x73, 0x70, 0x61, 0xf1, 0x6f, 0x6c, 0x20, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x6f, 0x61,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x6f, 0x4c, 0x61, 0x74, 0x69, 0x6e, 0x6f, 0x61, 0x6d, 0xe9, 0x72, 0x69, 0x63,
+0x61, 0x43, 0x65, 0x75, 0x74, 0x61, 0x20, 0x79, 0x20, 0x4d, 0x65, 0x6c, 0x69, 0x6c, 0x6c, 0x61, 0x4b, 0x69, 0x73, 0x77,
+0x61, 0x68, 0x69, 0x6c, 0x69, 0x4a, 0x61, 0x6d, 0x68, 0x75, 0x72, 0x69, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x69, 0x64, 0x65,
+0x6d, 0x6f, 0x6b, 0x72, 0x61, 0x73, 0x69, 0x61, 0x20, 0x79, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x6f, 0x73, 0x76, 0x65,
+0x6e, 0x73, 0x6b, 0x61, 0x53, 0x76, 0x65, 0x72, 0x69, 0x67, 0x65, 0x46, 0x69, 0x6e, 0x6c, 0x61, 0x6e, 0x64, 0xc5, 0x6c,
+0x61, 0x6e, 0x64, 0xba4, 0xbae, 0xbbf, 0xbb4, 0xbcd, 0xb87, 0xba8, 0xbcd, 0xba4, 0xbbf, 0xbaf, 0xbbe, 0xbae, 0xbb2, 0xbc7, 0xbb7, 0xbbf,
+0xbaf, 0xbbe, 0xb9a, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0xb87, 0xbb2, 0xb99, 0xbcd, 0xb95, 0xbc8, 0xc24,
+0xc46, 0xc32, 0xc41, 0xc17, 0xc41, 0xc2d, 0xc3e, 0xc30, 0xc24, 0x20, 0xc26, 0xc47, 0xc36, 0xc02, 0xe44, 0xe17, 0xe22, 0xf56, 0xf7c, 0xf51,
+0xf0b, 0xf66, 0xf90, 0xf51, 0xf0b, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf53, 0xf42, 0xf62, 0xf92, 0xfb1, 0xf0b, 0xf42, 0xf62, 0xf0b, 0x1275, 0x130d,
+0x122d, 0x129b, 0x12a4, 0x122d, 0x1275, 0x122b, 0x6c, 0x65, 0x61, 0x20, 0x66, 0x61, 0x6b, 0x61, 0x74, 0x6f, 0x6e, 0x67, 0x61, 0x54,
+0xfc, 0x72, 0x6b, 0xe7, 0x65, 0x54, 0xfc, 0x72, 0x6b, 0x69, 0x79, 0x65, 0x47, 0xfc, 0x6e, 0x65, 0x79, 0x20, 0x4b, 0x131,
+0x62, 0x72, 0x131, 0x73, 0x20, 0x52, 0x75, 0x6d, 0x20, 0x4b, 0x65, 0x73, 0x69, 0x6d, 0x69, 0x626, 0x6c7, 0x64a, 0x63a, 0x6c7,
+0x631, 0x686, 0x6d5, 0x62c, 0x6c7, 0x6ad, 0x6af, 0x648, 0x443, 0x43a, 0x440, 0x430, 0x457, 0x43d, 0x441, 0x44c, 0x43a, 0x430, 0x423, 0x43a,
+0x440, 0x430, 0x457, 0x43d, 0x430, 0x627, 0x631, 0x62f, 0x648, 0x67e, 0x627, 0x6a9, 0x633, 0x62a, 0x627, 0x646, 0x628, 0x6be, 0x627, 0x631,
+0x62a, 0x6f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x63, 0x68, 0x61, 0x4f, 0x2bb, 0x7a, 0x62, 0x65, 0x6b, 0x69, 0x73, 0x74, 0x6f,
+0x6e, 0x627, 0x648, 0x632, 0x628, 0x6cc, 0x6a9, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x40e, 0x437, 0x431, 0x435, 0x43a, 0x438, 0x441, 0x442,
+0x43e, 0x43d, 0x54, 0x69, 0x1ebf, 0x6e, 0x67, 0x20, 0x56, 0x69, 0x1ec7, 0x74, 0x56, 0x69, 0x1ec7, 0x74, 0x20, 0x4e, 0x61, 0x6d,
+0x43, 0x79, 0x6d, 0x72, 0x61, 0x65, 0x67, 0x59, 0x20, 0x44, 0x65, 0x79, 0x72, 0x6e, 0x61, 0x73, 0x20, 0x55, 0x6e, 0x65,
+0x64, 0x69, 0x67, 0xc8, 0x64, 0xe8, 0x20, 0x59, 0x6f, 0x72, 0xf9, 0x62, 0xe1, 0x4f, 0x72, 0xed, 0x6c, 0x1eb9, 0x301, 0xe8,
+0x64, 0x65, 0x20, 0x4e, 0xe0, 0xec, 0x6a, 0xed, 0x72, 0xed, 0xe0, 0x4f, 0x72, 0xed, 0x6c, 0x25b, 0x301, 0xe8, 0x64, 0x65,
+0x20, 0x42, 0x25b, 0x300, 0x6e, 0x25b, 0x300, 0x69, 0x73, 0x69, 0x5a, 0x75, 0x6c, 0x75, 0x69, 0x2d, 0x53, 0x6f, 0x75, 0x74,
+0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x79, 0x6e, 0x6f, 0x72, 0x73, 0x6b, 0x4e, 0x6f, 0x72, 0x65, 0x67,
+0x62, 0x6f, 0x73, 0x61, 0x6e, 0x73, 0x6b, 0x69, 0x431, 0x43e, 0x441, 0x430, 0x43d, 0x441, 0x43a, 0x438, 0x47, 0x61, 0x65, 0x6c,
+0x67, 0x45, 0x6c, 0x6c, 0x61, 0x6e, 0x20, 0x56, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x77, 0x65,
+0x6b, 0x52, 0x79, 0x77, 0x76, 0x61, 0x6e, 0x65, 0x74, 0x68, 0x20, 0x55, 0x6e, 0x79, 0x73, 0x41, 0x6b, 0x61, 0x6e, 0x47,
+0x61, 0x61, 0x6e, 0x61, 0x915, 0x94b, 0x902, 0x915, 0x923, 0x940, 0x49, 0x67, 0x62, 0x6f, 0x4b, 0x69, 0x6b, 0x61, 0x6d, 0x62,
+0x61, 0x66, 0x75, 0x72, 0x6c, 0x61, 0x6e, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x65, 0x65, 0x28b, 0x65, 0x67, 0x62, 0x65, 0x47,
+0x68, 0x61, 0x6e, 0x61, 0x20, 0x6e, 0x75, 0x74, 0x6f, 0x6d, 0x65, 0x54, 0x6f, 0x67, 0x6f, 0x20, 0x6e, 0x75, 0x74, 0x6f,
+0x6d, 0x65, 0x2bb, 0x14c, 0x6c, 0x65, 0x6c, 0x6f, 0x20, 0x48, 0x61, 0x77, 0x61, 0x69, 0x2bb, 0x69, 0x2bb, 0x41, 0x6d, 0x65,
+0x6c, 0x69, 0x6b, 0x61, 0x20, 0x48, 0x75, 0x69, 0x20, 0x50, 0x16b, 0x20, 0x2bb, 0x49, 0x61, 0x46, 0x69, 0x6c, 0x69, 0x70,
+0x69, 0x6e, 0x6f, 0x50, 0x69, 0x6c, 0x69, 0x70, 0x69, 0x6e, 0x61, 0x73, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x65,
+0x72, 0x74, 0xfc, 0xfc, 0x74, 0x73, 0x63, 0x68, 0x53, 0x63, 0x68, 0x77, 0x69, 0x69, 0x7a, 0x46, 0x72, 0x61, 0x6e, 0x6b,
+0x72, 0x69, 0x69, 0x63, 0x68, 0x4c, 0x69, 0xe4, 0x63, 0x68, 0x74, 0x65, 0x73, 0x63, 0x68, 0x74, 0xe4, 0x69, 0xa188, 0xa320,
+0xa259, 0xa34f, 0xa1e9, 0x64, 0x61, 0x76, 0x76, 0x69, 0x73, 0xe1, 0x6d, 0x65, 0x67, 0x69, 0x65, 0x6c, 0x6c, 0x61, 0x4e, 0x6f,
+0x72, 0x67, 0x61, 0x53, 0x75, 0x6f, 0x70, 0x6d, 0x61, 0x52, 0x75, 0x6f, 0x167, 0x167, 0x61, 0x45, 0x6b, 0x65, 0x67, 0x75,
+0x73, 0x69, 0x69, 0x4b, 0x69, 0x74, 0x61, 0x69, 0x74, 0x61, 0x50, 0x75, 0x6c, 0x61, 0x61, 0x72, 0x53, 0x65, 0x6e, 0x65,
+0x67, 0x61, 0x61, 0x6c, 0x4b, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x75, 0x6e, 0x47, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x72, 0x69,
+0x74, 0x61, 0x6e, 0x69, 0x47, 0x69, 0x6b, 0x75, 0x79, 0x75, 0x4b, 0x69, 0x73, 0x61, 0x6d, 0x70, 0x75, 0x72, 0x73, 0x65,
+0x6e, 0x61, 0x69, 0x73, 0x69, 0x4e, 0x64, 0x65, 0x62, 0x65, 0x6c, 0x65, 0x4b, 0x69, 0x68, 0x6f, 0x72, 0x6f, 0x6d, 0x62,
+0x6f, 0x2d5c, 0x2d30, 0x2d4e, 0x2d30, 0x2d63, 0x2d49, 0x2d56, 0x2d5c, 0x2d4d, 0x2d4e, 0x2d56, 0x2d54, 0x2d49, 0x2d31, 0x74, 0x61, 0x6d, 0x61, 0x7a,
+0x69, 0x67, 0x68, 0x74, 0x6c, 0x6d, 0x263, 0x72, 0x69, 0x62, 0x54, 0x61, 0x71, 0x62, 0x61, 0x79, 0x6c, 0x69, 0x74, 0x4c,
+0x65, 0x7a, 0x7a, 0x61, 0x79, 0x65, 0x72, 0x52, 0x75, 0x6e, 0x79, 0x61, 0x6e, 0x6b, 0x6f, 0x72, 0x65, 0x48, 0x69, 0x62,
+0x65, 0x6e, 0x61, 0x48, 0x75, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x6e, 0x69, 0x61, 0x4b, 0x79, 0x69, 0x76, 0x75, 0x6e, 0x6a,
+0x6f, 0x62, 0x61, 0x6d, 0x61, 0x6e, 0x61, 0x6b, 0x61, 0x6e, 0x4b, 0x129, 0x65, 0x6d, 0x62, 0x75, 0x13e3, 0x13b3, 0x13a9, 0x13a0,
+0x13b9, 0x13f0, 0x13df, 0x6b, 0x72, 0x65, 0x6f, 0x6c, 0x20, 0x6d, 0x6f, 0x72, 0x69, 0x73, 0x69, 0x65, 0x6e, 0x4d, 0x6f, 0x72,
+0x69, 0x73, 0x43, 0x68, 0x69, 0x6d, 0x61, 0x6b, 0x6f, 0x6e, 0x64, 0x65, 0x4b, 0x268, 0x6c, 0x61, 0x61, 0x6e, 0x67, 0x69,
+0x54, 0x61, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0xed, 0x61, 0x4c, 0x75, 0x67, 0x61, 0x6e, 0x64, 0x61, 0x59, 0x75, 0x67, 0x61,
+0x6e, 0x64, 0x61, 0x49, 0x63, 0x68, 0x69, 0x62, 0x65, 0x6d, 0x62, 0x61, 0x6b, 0x61, 0x62, 0x75, 0x76, 0x65, 0x72, 0x64,
+0x69, 0x61, 0x6e, 0x75, 0x4b, 0x61, 0x62, 0x75, 0x20, 0x56, 0x65, 0x72, 0x64, 0x69, 0x4b, 0x129, 0x6d, 0x129, 0x72, 0x169,
+0x4b, 0x61, 0x6c, 0x65, 0x6e, 0x6a, 0x69, 0x6e, 0x45, 0x6d, 0x65, 0x74, 0x61, 0x62, 0x20, 0x4b, 0x65, 0x6e, 0x79, 0x61,
+0x4b, 0x68, 0x6f, 0x65, 0x6b, 0x68, 0x6f, 0x65, 0x67, 0x6f, 0x77, 0x61, 0x62, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61,
+0x62, 0x4b, 0x69, 0x6d, 0x61, 0x63, 0x68, 0x61, 0x6d, 0x65, 0x4b, 0xf6, 0x6c, 0x73, 0x63, 0x68, 0x44, 0x6f, 0xfc, 0x74,
+0x73, 0x63, 0x68, 0x6c, 0x61, 0x6e, 0x64, 0x4d, 0x61, 0x61, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x61, 0x4f, 0x6c,
+0x75, 0x73, 0x6f, 0x67, 0x61, 0x4c, 0x75, 0x6c, 0x75, 0x68, 0x69, 0x61, 0x4b, 0x69, 0x70, 0x61, 0x72, 0x65, 0x54, 0x61,
+0x64, 0x68, 0x61, 0x6e, 0x69, 0x61, 0x4b, 0x69, 0x74, 0x65, 0x73, 0x6f, 0x4b, 0x65, 0x6e, 0x69, 0x61, 0x4b, 0x6f, 0x79,
+0x72, 0x61, 0x20, 0x63, 0x69, 0x69, 0x6e, 0x69, 0x4d, 0x61, 0x61, 0x6c, 0x69, 0x4b, 0x69, 0x72, 0x75, 0x77, 0x61, 0x44,
+0x68, 0x6f, 0x6c, 0x75, 0x6f, 0x52, 0x75, 0x6b, 0x69, 0x67, 0x61, 0x54, 0x61, 0x6d, 0x61, 0x7a, 0x69, 0x263, 0x74, 0x4d,
+0x65, 0x1e5b, 0x1e5b, 0x75, 0x6b, 0x4b, 0x6f, 0x79, 0x72, 0x61, 0x62, 0x6f, 0x72, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x6e, 0x69,
+0x4b, 0x69, 0x73, 0x68, 0x61, 0x6d, 0x62, 0x61, 0x61, 0x92c, 0x921, 0x93c, 0x94b, 0x54, 0x73, 0x68, 0x69, 0x6c, 0x75, 0x62,
+0x61, 0x44, 0x69, 0x74, 0x75, 0x6e, 0x67, 0x61, 0x20, 0x77, 0x61, 0x20, 0x4b, 0x6f, 0x6e, 0x67, 0x75, 0x4c, 0xeb, 0x74,
+0x7a, 0x65, 0x62, 0x75, 0x65, 0x72, 0x67, 0x65, 0x73, 0x63, 0x68, 0x4c, 0xeb, 0x74, 0x7a, 0x65, 0x62, 0x75, 0x65, 0x72,
+0x67, 0x41, 0x67, 0x68, 0x65, 0x6d, 0x4b, 0xe0, 0x6d, 0xe0, 0x6c, 0xfb, 0x14b, 0x181, 0xe0, 0x73, 0xe0, 0x61, 0x4b, 0xe0,
+0x6d, 0x25b, 0x300, 0x72, 0xfb, 0x6e, 0x5a, 0x61, 0x72, 0x6d, 0x61, 0x63, 0x69, 0x69, 0x6e, 0x65, 0x4e, 0x69, 0x17e, 0x65,
+0x72, 0x64, 0x75, 0xe1, 0x6c, 0xe1, 0x6a, 0x6f, 0x6f, 0x6c, 0x61, 0x53, 0x65, 0x6e, 0x65, 0x67, 0x61, 0x6c, 0x65, 0x77,
+0x6f, 0x6e, 0x64, 0x6f, 0x4b, 0x61, 0x6d, 0x259, 0x72, 0xfa, 0x6e, 0x72, 0x69, 0x6b, 0x70, 0x61, 0x6b, 0x61, 0x6d, 0x25b,
+0x72, 0xfa, 0x6e, 0x4d, 0x61, 0x6b, 0x75, 0x61, 0x55, 0x6d, 0x6f, 0x7a, 0x61, 0x6d, 0x62, 0x69, 0x6b, 0x69, 0x4d, 0x55,
+0x4e, 0x44, 0x41, 0x14a, 0x6b, 0x61, 0x6d, 0x65, 0x72, 0x75, 0x14b, 0x4b, 0x77, 0x61, 0x73, 0x69, 0x6f, 0x4b, 0x61, 0x6d,
+0x65, 0x72, 0x75, 0x6e, 0x54, 0x68, 0x6f, 0x6b, 0x20, 0x4e, 0x61, 0x74, 0x68, 0x441, 0x430, 0x445, 0x430, 0x20, 0x442, 0x44b,
+0x43b, 0x430, 0x49, 0x73, 0x68, 0x69, 0x73, 0x61, 0x6e, 0x67, 0x75, 0x54, 0x61, 0x6e, 0x73, 0x61, 0x6e, 0x69, 0x79, 0x61,
+0x54, 0x61, 0x73, 0x61, 0x77, 0x61, 0x71, 0x20, 0x73, 0x65, 0x6e, 0x6e, 0x69, 0xa559, 0xa524, 0xa55e, 0xa524, 0xa52b, 0xa569, 0x56,
+0x61, 0x69, 0x4c, 0x61, 0x69, 0x62, 0x68, 0x69, 0x79, 0x61, 0x57, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x53, 0x63, 0x68, 0x77,
+0x69, 0x7a, 0x6e, 0x75, 0x61, 0x73, 0x75, 0x65, 0x4b, 0x65, 0x6d, 0x65, 0x6c, 0xfa, 0x6e, 0x61, 0x73, 0x74, 0x75, 0x72,
+0x69, 0x61, 0x6e, 0x75, 0x4e, 0x64, 0x61, 0xa78c, 0x61, 0x4b, 0x61, 0x6d, 0x25b, 0x6c, 0xfb, 0x6e, 0x6b, 0x61, 0x6b, 0x254,
+0x4b, 0x61, 0x6d, 0x25b, 0x72, 0x75, 0x6e, 0x6d, 0x65, 0x74, 0x61, 0x2bc, 0x4b, 0x61, 0x6d, 0x61, 0x6c, 0x75, 0x6e, 0x53,
+0x68, 0x77, 0xf3, 0x14b, 0xf2, 0x20, 0x6e, 0x67, 0x69, 0x65, 0x6d, 0x62, 0x254, 0x254, 0x6e, 0x4b, 0xe0, 0x6d, 0x61, 0x6c,
+0xfb, 0x6d, 0x4c, 0x61, 0x6b, 0x21f, 0xf3, 0x6c, 0x2bc, 0x69, 0x79, 0x61, 0x70, 0x69, 0x4d, 0xed, 0x6c, 0x61, 0x68, 0x61,
+0x14b, 0x73, 0x6b, 0x61, 0x20, 0x54, 0x21f, 0x61, 0x6d, 0xe1, 0x6b, 0x21f, 0x6f, 0x10d, 0x68, 0x65, 0x64, 0x6f, 0x6c, 0x6e,
+0x6f, 0x73, 0x65, 0x72, 0x62, 0x161, 0x107, 0x69, 0x6e, 0x61, 0x4e, 0x69, 0x6d, 0x73, 0x6b, 0x61, 0x68, 0x6f, 0x72, 0x6e,
+0x6a, 0x6f, 0x73, 0x65, 0x72, 0x62, 0x161, 0x107, 0x69, 0x6e, 0x61, 0x4e, 0x11b, 0x6d, 0x73, 0x6b, 0x61, 0x61, 0x6e, 0x61,
+0x72, 0xe2, 0x161, 0x6b, 0x69, 0x65, 0x6c, 0xe2
};
static const char language_name_list[] =
@@ -5940,6 +6152,31 @@ static const char language_name_list[] =
"Akoose\0"
"Lakota\0"
"Standard Moroccan Tamazight\0"
+"Mapuche\0"
+"Central Kurdish\0"
+"LowerSorbian\0"
+"UpperSorbian\0"
+"Kenyang\0"
+"Mohawk\0"
+"Nko\0"
+"Prussian\0"
+"Kiche\0"
+"Southern Sami\0"
+"Lule Sami\0"
+"Inari Sami\0"
+"Skolt Sami\0"
+"Warlpiri\0"
+"Manichaean Middle Persian\0"
+"Mende\0"
+"Ancient North Arabian\0"
+"Linear A\0"
+"Hmong Njua\0"
+"Ho\0"
+"Lezghian\0"
+"Bassa\0"
+"Mono\0"
+"Tedim Chin\0"
+"Maithili\0"
;
static const quint16 language_name_index[] = {
@@ -6258,6 +6495,31 @@ static const quint16 language_name_index[] = {
2527, // Akoose
2534, // Lakota
2541, // Standard Moroccan Tamazight
+ 2569, // Mapuche
+ 2577, // Central Kurdish
+ 2593, // LowerSorbian
+ 2606, // UpperSorbian
+ 2619, // Kenyang
+ 2627, // Mohawk
+ 2634, // Nko
+ 2638, // Prussian
+ 2647, // Kiche
+ 2653, // Southern Sami
+ 2667, // Lule Sami
+ 2677, // Inari Sami
+ 2688, // Skolt Sami
+ 2699, // Warlpiri
+ 2708, // Manichaean Middle Persian
+ 2734, // Mende
+ 2740, // Ancient North Arabian
+ 2762, // Linear A
+ 2771, // Hmong Njua
+ 2782, // Ho
+ 2785, // Lezghian
+ 2794, // Bassa
+ 2800, // Mono
+ 2805, // Tedim Chin
+ 2816, // Maithili
};
static const char script_name_list[] =
@@ -6366,6 +6628,29 @@ static const char script_name_list[] =
"Ugaritic\0"
"Braille\0"
"Hiragana\0"
+"Caucasian Albanian\0"
+"Bassa Vah\0"
+"Duployan\0"
+"Elbasan\0"
+"Grantha\0"
+"Pahawh Hmong\0"
+"Khojki\0"
+"Linear A\0"
+"Mahajani\0"
+"Manichaean\0"
+"Mende Kikakui\0"
+"Modi\0"
+"Mro\0"
+"Old North Arabian\0"
+"Nabataean\0"
+"Palmyrene\0"
+"Pau Cin Hau\0"
+"Old Permic\0"
+"Psalter Pahlavi\0"
+"Siddham\0"
+"Khudawadi\0"
+"Tirhuta\0"
+"Varang Kshiti\0"
;
static const quint16 script_name_index[] = {
@@ -6474,6 +6759,29 @@ static const quint16 script_name_index[] = {
921, // Ugaritic
930, // Braille
938, // Hiragana
+ 947, // Caucasian Albanian
+ 966, // Bassa Vah
+ 976, // Duployan
+ 985, // Elbasan
+ 993, // Grantha
+ 1001, // Pahawh Hmong
+ 1014, // Khojki
+ 1021, // Linear A
+ 1030, // Mahajani
+ 1039, // Manichaean
+ 1050, // Mende Kikakui
+ 1064, // Modi
+ 1069, // Mro
+ 1073, // Old North Arabian
+ 1091, // Nabataean
+ 1101, // Palmyrene
+ 1111, // Pau Cin Hau
+ 1123, // Old Permic
+ 1134, // Psalter Pahlavi
+ 1150, // Siddham
+ 1158, // Khudawadi
+ 1168, // Tirhuta
+ 1176, // Varang Kshiti
};
static const char country_name_list[] =
@@ -7314,6 +7622,31 @@ static const unsigned char language_code_list[] =
"bss" // Akoose
"lkt" // Lakota
"zgh" // Standard Moroccan Tamazight
+"arn" // Mapuche
+"ckb" // Central Kurdish
+"dsb" // LowerSorbian
+"hsb" // UpperSorbian
+"ken" // Kenyang
+"moh" // Mohawk
+"nqo" // Nko
+"prg" // Prussian
+"quc" // Kiche
+"sma" // Southern Sami
+"smj" // Lule Sami
+"smn" // Inari Sami
+"sms" // Skolt Sami
+"wbp" // Warlpiri
+"xmn" // Manichaean Middle Persian
+"men" // Mende
+"xna" // Ancient North Arabian
+"lab" // Linear A
+"hnj" // Hmong Njua
+"hoc" // Ho
+"lez" // Lezghian
+"bsq" // Bassa
+"mru" // Mono
+"ctd" // Tedim Chin
+"mai" // Maithili
;
static const unsigned char script_code_list[] =
@@ -7422,6 +7755,29 @@ static const unsigned char script_code_list[] =
"Ugar" // Ugaritic
"Brai" // Braille
"Hira" // Hiragana
+"Aghb" // Caucasian Albanian
+"Bass" // Bassa Vah
+"Dupl" // Duployan
+"Elba" // Elbasan
+"Gran" // Grantha
+"Hmng" // Pahawh Hmong
+"Khoj" // Khojki
+"Lina" // Linear A
+"Mahj" // Mahajani
+"Mani" // Manichaean
+"Mend" // Mende Kikakui
+"Modi" // Modi
+"Mroo" // Mro
+"Narb" // Old North Arabian
+"Nbat" // Nabataean
+"Palm" // Palmyrene
+"Pauc" // Pau Cin Hau
+"Perm" // Old Permic
+"Phlp" // Psalter Pahlavi
+"Sidd" // Siddham
+"Sind" // Khudawadi
+"Tirh" // Tirhuta
+"Wara" // Varang Kshiti
;
static const unsigned char country_code_list[] =
"ZZ\0" // AnyCountry
diff --git a/src/corelib/tools/qlocale_tools.cpp b/src/corelib/tools/qlocale_tools.cpp
index 56ac8fb58d..03b911c4b3 100644
--- a/src/corelib/tools/qlocale_tools.cpp
+++ b/src/corelib/tools/qlocale_tools.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
+** Copyright (C) 2014 Intel Corporation
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -36,6 +37,7 @@
#include "qstring.h"
#include <ctype.h>
+#include <errno.h>
#include <float.h>
#include <limits.h>
#include <math.h>
@@ -63,6 +65,55 @@
QT_BEGIN_NAMESPACE
+#include "../../3rdparty/freebsd/strtoull.c"
+#include "../../3rdparty/freebsd/strtoll.c"
+
+unsigned long long
+qstrtoull(const char * nptr, const char **endptr, int base, bool *ok)
+{
+ // strtoull accepts negative numbers. We don't.
+ // Use a different variable so we pass the original nptr to strtoul
+ // (we need that so endptr may be nptr in case of failure)
+ const char *begin = nptr;
+ while (ascii_isspace(*begin))
+ ++begin;
+ if (*begin == '-') {
+ *ok = false;
+ return 0;
+ }
+
+ *ok = true;
+ errno = 0;
+ char *endptr2 = 0;
+ unsigned long long result = qt_strtoull(nptr, &endptr2, base);
+ if (endptr)
+ *endptr = endptr2;
+ if ((result == 0 || result == std::numeric_limits<unsigned long long>::max())
+ && (errno || endptr2 == nptr)) {
+ *ok = false;
+ return 0;
+ }
+ return result;
+}
+
+long long
+qstrtoll(const char * nptr, const char **endptr, int base, bool *ok)
+{
+ *ok = true;
+ errno = 0;
+ char *endptr2 = 0;
+ long long result = qt_strtoll(nptr, &endptr2, base);
+ if (endptr)
+ *endptr = endptr2;
+ if ((result == 0 || result == std::numeric_limits<long long>::min()
+ || result == std::numeric_limits<long long>::max())
+ && (errno || nptr == endptr2)) {
+ *ok = false;
+ return 0;
+ }
+ return result;
+}
+
static char *_qdtoa( NEEDS_VOLATILE double d, int mode, int ndigits, int *decpt,
int *sign, char **rve, char **digits_str);
@@ -174,220 +225,6 @@ QString &exponentForm(QChar zero, QChar decimal, QChar exponential,
return digits;
}
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-// static char sccsid[] = "@(#)strtouq.c 8.1 (Berkeley) 6/4/93";
-// "$FreeBSD: src/lib/libc/stdlib/strtoull.c,v 1.5.2.1 2001/03/02 09:45:20 obrien Exp $";
-
-/*
- * Convert a string to an unsigned long long integer.
- *
- * Ignores `locale' stuff. Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-qulonglong qstrtoull(const char *nptr, const char **endptr, int base, bool *ok)
-{
- const char *s = nptr;
- qulonglong acc;
- unsigned char c;
- qulonglong qbase, cutoff;
- int any, cutlim;
-
- if (ok != 0)
- *ok = true;
-
- /*
- * See strtoq for comments as to the logic used.
- */
- s = nptr;
- do {
- c = *s++;
- } while (ascii_isspace(c));
- if (c == '-') {
- if (ok != 0)
- *ok = false;
- if (endptr != 0)
- *endptr = s - 1;
- return 0;
- } else {
- if (c == '+')
- c = *s++;
- }
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X')) {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
- qbase = unsigned(base);
- cutoff = qulonglong(ULLONG_MAX) / qbase;
- cutlim = qulonglong(ULLONG_MAX) % qbase;
- for (acc = 0, any = 0;; c = *s++) {
- if (!isascii(c))
- break;
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if (c >= base)
- break;
- if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
- any = -1;
- else {
- any = 1;
- acc *= qbase;
- acc += c;
- }
- }
- if (any == 0) {
- if (ok != 0)
- *ok = false;
- } else if (any < 0) {
- acc = ULLONG_MAX;
- if (ok != 0)
- *ok = false;
- }
- if (endptr != 0)
- *endptr = (any ? s - 1 : nptr);
- return acc;
-}
-
-
-// "$FreeBSD: src/lib/libc/stdlib/strtoll.c,v 1.5.2.1 2001/03/02 09:45:20 obrien Exp $";
-
-
-/*
- * Convert a string to a long long integer.
- *
- * Ignores `locale' stuff. Assumes that the upper and lower case
- * alphabets and digits are each contiguous.
- */
-qlonglong qstrtoll(const char *nptr, const char **endptr, int base, bool *ok)
-{
- const char *s;
- qulonglong acc;
- unsigned char c;
- qulonglong qbase, cutoff;
- int neg, any, cutlim;
-
- /*
- * Skip white space and pick up leading +/- sign if any.
- * If base is 0, allow 0x for hex and 0 for octal, else
- * assume decimal; if base is already 16, allow 0x.
- */
- s = nptr;
- do {
- c = *s++;
- } while (ascii_isspace(c));
- if (c == '-') {
- neg = 1;
- c = *s++;
- } else {
- neg = 0;
- if (c == '+')
- c = *s++;
- }
- if ((base == 0 || base == 16) &&
- c == '0' && (*s == 'x' || *s == 'X')) {
- c = s[1];
- s += 2;
- base = 16;
- }
- if (base == 0)
- base = c == '0' ? 8 : 10;
-
- /*
- * Compute the cutoff value between legal numbers and illegal
- * numbers. That is the largest legal value, divided by the
- * base. An input number that is greater than this value, if
- * followed by a legal input character, is too big. One that
- * is equal to this value may be valid or not; the limit
- * between valid and invalid numbers is then based on the last
- * digit. For instance, if the range for quads is
- * [-9223372036854775808..9223372036854775807] and the input base
- * is 10, cutoff will be set to 922337203685477580 and cutlim to
- * either 7 (neg==0) or 8 (neg==1), meaning that if we have
- * accumulated a value > 922337203685477580, or equal but the
- * next digit is > 7 (or 8), the number is too big, and we will
- * return a range error.
- *
- * Set any if any `digits' consumed; make it negative to indicate
- * overflow.
- */
- qbase = unsigned(base);
- cutoff = neg ? qulonglong(0-(LLONG_MIN + LLONG_MAX)) + LLONG_MAX : LLONG_MAX;
- cutlim = cutoff % qbase;
- cutoff /= qbase;
- for (acc = 0, any = 0;; c = *s++) {
- if (!isascii(c))
- break;
- if (isdigit(c))
- c -= '0';
- else if (isalpha(c))
- c -= isupper(c) ? 'A' - 10 : 'a' - 10;
- else
- break;
- if (c >= base)
- break;
- if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
- any = -1;
- else {
- any = 1;
- acc *= qbase;
- acc += c;
- }
- }
- if (any < 0) {
- acc = neg ? LLONG_MIN : LLONG_MAX;
- if (ok != 0)
- *ok = false;
- } else if (neg) {
- acc = (~acc) + 1;
- }
- if (endptr != 0)
- *endptr = (any >= 0 ? s - 1 : nptr);
-
- if (ok != 0)
- *ok = any > 0;
-
- return acc;
-}
-
/* From: NetBSD: strtod.c,v 1.26 1998/02/03 18:44:21 perry Exp */
/* $FreeBSD: src/lib/libc/stdlib/netbsd_strtod.c,v 1.2.2.2 2001/03/02 17:14:15 tegge Exp $ */
diff --git a/src/corelib/tools/qmargins.cpp b/src/corelib/tools/qmargins.cpp
index a9413d6b5c..92c977a73b 100644
--- a/src/corelib/tools/qmargins.cpp
+++ b/src/corelib/tools/qmargins.cpp
@@ -33,7 +33,8 @@
#include "qmargins.h"
#include "qdatastream.h"
-#include "qdebug.h"
+
+#include <private/qdebug_p.h>
QT_BEGIN_NAMESPACE
@@ -431,10 +432,13 @@ QDataStream &operator>>(QDataStream &s, QMargins &m)
#endif // QT_NO_DATASTREAM
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QMargins &m) {
+QDebug operator<<(QDebug dbg, const QMargins &m)
+{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QMargins(" << m.left() << ", "
- << m.top() << ", " << m.right() << ", " << m.bottom() << ')';
+ dbg.nospace();
+ dbg << "QMargins" << '(';
+ QtDebugUtils::formatQMargins(dbg, m);
+ dbg << ')';
return dbg;
}
#endif
@@ -764,10 +768,13 @@ QDataStream &operator>>(QDataStream &s, QMarginsF &m)
#endif // QT_NO_DATASTREAM
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QMarginsF &m) {
+QDebug operator<<(QDebug dbg, const QMarginsF &m)
+{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QMarginsF(" << m.left() << ", "
- << m.top() << ", " << m.right() << ", " << m.bottom() << ')';
+ dbg.nospace();
+ dbg << "QMarginsF" << '(';
+ QtDebugUtils::formatQMargins(dbg, m);
+ dbg << ')';
return dbg;
}
#endif
diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp
index ebce6c9422..dc2a2d9739 100644
--- a/src/corelib/tools/qpoint.cpp
+++ b/src/corelib/tools/qpoint.cpp
@@ -33,7 +33,8 @@
#include "qpoint.h"
#include "qdatastream.h"
-#include "qdebug.h"
+
+#include <private/qdebug_p.h>
QT_BEGIN_NAMESPACE
@@ -447,14 +448,20 @@ QDataStream &operator>>(QDataStream &s, QPoint &p)
QDebug operator<<(QDebug dbg, const QPoint &p)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QPoint(" << p.x() << ',' << p.y() << ')';
+ dbg.nospace();
+ dbg << "QPoint" << '(';
+ QtDebugUtils::formatQPoint(dbg, p);
+ dbg << ')';
return dbg;
}
QDebug operator<<(QDebug dbg, const QPointF &p)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QPointF(" << p.x() << ',' << p.y() << ')';
+ dbg.nospace();
+ dbg << "QPointF" << '(';
+ QtDebugUtils::formatQPoint(dbg, p);
+ dbg << ')';
return dbg;
}
#endif
diff --git a/src/corelib/tools/qqueue.h b/src/corelib/tools/qqueue.h
index ae07c7d026..9d5bda1210 100644
--- a/src/corelib/tools/qqueue.h
+++ b/src/corelib/tools/qqueue.h
@@ -46,6 +46,11 @@ public:
inline QQueue() {}
inline ~QQueue() {}
inline void swap(QQueue<T> &other) { QList<T>::swap(other); } // prevent QList<->QQueue swaps
+#ifndef Q_QDOC
+ // bring in QList::swap(int, int). We cannot say using QList<T>::swap,
+ // because we don't want to make swap(QList&) available.
+ inline void swap(int i, int j) { QList<T>::swap(i, j); }
+#endif
inline void enqueue(const T &t) { QList<T>::append(t); }
inline T dequeue() { return QList<T>::takeFirst(); }
inline T &head() { return QList<T>::first(); }
diff --git a/src/corelib/tools/qrect.cpp b/src/corelib/tools/qrect.cpp
index 35cf2d5e5b..b2174745e4 100644
--- a/src/corelib/tools/qrect.cpp
+++ b/src/corelib/tools/qrect.cpp
@@ -33,9 +33,10 @@
#include "qrect.h"
#include "qdatastream.h"
-#include "qdebug.h"
#include "qmath.h"
+#include <private/qdebug_p.h>
+
QT_BEGIN_NAMESPACE
/*!
@@ -1279,8 +1280,10 @@ QDataStream &operator>>(QDataStream &s, QRect &r)
QDebug operator<<(QDebug dbg, const QRect &r)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QRect(" << r.x() << ',' << r.y() << ' '
- << r.width() << 'x' << r.height() << ')';
+ dbg.nospace();
+ dbg << "QRect" << '(';
+ QtDebugUtils::formatQRect(dbg, r);
+ dbg << ')';
return dbg;
}
#endif
@@ -2488,8 +2491,10 @@ QDataStream &operator>>(QDataStream &s, QRectF &r)
QDebug operator<<(QDebug dbg, const QRectF &r)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QRectF(" << r.x() << ',' << r.y() << ' '
- << r.width() << 'x' << r.height() << ')';
+ dbg.nospace();
+ dbg << "QRectF" << '(';
+ QtDebugUtils::formatQRect(dbg, r);
+ dbg << ')';
return dbg;
}
#endif
diff --git a/src/corelib/tools/qringbuffer_p.h b/src/corelib/tools/qringbuffer_p.h
index 6f4ebcf420..9ca14d2987 100644
--- a/src/corelib/tools/qringbuffer_p.h
+++ b/src/corelib/tools/qringbuffer_p.h
@@ -293,6 +293,30 @@ public:
return qba;
}
+ // peek the bytes from a specified position
+ inline qint64 peek(char *data, qint64 maxLength, qint64 pos = 0) const
+ {
+ qint64 readSoFar = 0;
+
+ if (pos >= 0) {
+ pos += head;
+ for (int i = 0; readSoFar < maxLength && i < buffers.size(); ++i) {
+ qint64 blockLength = (i == tailBuffer ? tail : buffers[i].size());
+
+ if (pos < blockLength) {
+ blockLength = qMin(blockLength - pos, maxLength - readSoFar);
+ memcpy(data + readSoFar, buffers[i].constData() + pos, blockLength);
+ readSoFar += blockLength;
+ pos = 0;
+ } else {
+ pos -= blockLength;
+ }
+ }
+ }
+
+ return readSoFar;
+ }
+
// append a new buffer to the end
inline void append(const QByteArray &qba) {
if (tail == 0) {
diff --git a/src/corelib/tools/qsize.cpp b/src/corelib/tools/qsize.cpp
index d91dd0d130..19227432f2 100644
--- a/src/corelib/tools/qsize.cpp
+++ b/src/corelib/tools/qsize.cpp
@@ -33,7 +33,8 @@
#include "qsize.h"
#include "qdatastream.h"
-#include "qdebug.h"
+
+#include <private/qdebug_p.h>
QT_BEGIN_NAMESPACE
@@ -440,7 +441,10 @@ QDataStream &operator>>(QDataStream &s, QSize &sz)
QDebug operator<<(QDebug dbg, const QSize &s)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QSize(" << s.width() << ", " << s.height() << ')';
+ dbg.nospace();
+ dbg << "QSize(";
+ QtDebugUtils::formatQSize(dbg, s);
+ dbg << ')';
return dbg;
}
#endif
@@ -867,7 +871,10 @@ QDataStream &operator>>(QDataStream &s, QSizeF &sz)
QDebug operator<<(QDebug dbg, const QSizeF &s)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "QSizeF(" << s.width() << ", " << s.height() << ')';
+ dbg.nospace();
+ dbg << "QSizeF(";
+ QtDebugUtils::formatQSize(dbg, s);
+ dbg << ')';
return dbg;
}
#endif
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 8998b22be8..6315c15818 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -1291,7 +1291,7 @@ const QString::Null QString::null = { };
\since 5.0
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary
- item after the last item in the list.
+ character after the last character in the list.
\sa cbegin(), end()
*/
@@ -1299,7 +1299,7 @@ const QString::Null QString::null = { };
/*! \fn QString::const_iterator QString::constEnd() const
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary
- item after the last item in the list.
+ character after the last character in the list.
\sa constBegin(), end()
*/
@@ -1828,6 +1828,51 @@ QString &QString::operator=(QChar ch)
/*!
+ \fn QString& QString::insert(int position, const QStringRef &str)
+ \since 5.5
+ \overload insert()
+
+ Inserts the string reference \a str at the given index \a position and
+ returns a reference to this string.
+
+ If the given \a position is greater than size(), the array is
+ first extended using resize().
+*/
+
+
+/*!
+ \fn QString& QString::insert(int position, const char *str)
+ \since 5.5
+ \overload insert()
+
+ Inserts the C string \a str at the given index \a position and
+ returns a reference to this string.
+
+ If the given \a position is greater than size(), the array is
+ first extended using resize().
+
+ This function is not available when QT_NO_CAST_FROM_ASCII is
+ defined.
+*/
+
+
+/*!
+ \fn QString& QString::insert(int position, const QByteArray &str)
+ \since 5.5
+ \overload insert()
+
+ Inserts the byte array \a str at the given index \a position and
+ returns a reference to this string.
+
+ If the given \a position is greater than size(), the array is
+ first extended using resize().
+
+ This function is not available when QT_NO_CAST_FROM_ASCII is
+ defined.
+*/
+
+
+/*!
\fn QString &QString::insert(int position, QLatin1String str)
\overload insert()
@@ -2027,6 +2072,22 @@ QString &QString::append(QChar ch)
Prepends the Latin-1 string \a str to this string.
*/
+/*! \fn QString &QString::prepend(const QChar *str, int len)
+ \since 5.5
+ \overload prepend()
+
+ Prepends \a len characters from the QChar array \a str to this string and
+ returns a reference to this string.
+*/
+
+/*! \fn QString &QString::prepend(const QStringRef &str)
+ \since 5.5
+ \overload prepend()
+
+ Prepends the string reference \a str to the beginning of this string and
+ returns a reference to this string.
+*/
+
/*! \fn QString &QString::prepend(const QByteArray &ba)
\overload prepend()
@@ -3936,10 +3997,9 @@ int QString::count(const QRegularExpression &re) const
QString QString::section(const QString &sep, int start, int end, SectionFlags flags) const
{
- QStringList sections = split(sep, KeepEmptyParts,
- (flags & SectionCaseInsensitiveSeps) ? Qt::CaseInsensitive : Qt::CaseSensitive);
+ const QVector<QStringRef> sections = splitRef(sep, KeepEmptyParts,
+ (flags & SectionCaseInsensitiveSeps) ? Qt::CaseInsensitive : Qt::CaseSensitive);
const int sectionsSize = sections.size();
-
if (!(flags & SectionSkipEmpty)) {
if (start < 0)
start += sectionsSize;
@@ -3959,11 +4019,10 @@ QString QString::section(const QString &sep, int start, int end, SectionFlags fl
if (start >= sectionsSize || end < 0 || start > end)
return QString();
- int x = 0;
QString ret;
int first_i = start, last_i = end;
- for (int i = 0; x <= end && i < sectionsSize; ++i) {
- QString section = sections.at(i);
+ for (int x = 0, i = 0; x <= end && i < sectionsSize; ++i) {
+ const QStringRef &section = sections.at(i);
const bool empty = section.isEmpty();
if (x >= start) {
if(x == start)
@@ -3988,9 +4047,9 @@ QString QString::section(const QString &sep, int start, int end, SectionFlags fl
class qt_section_chunk {
public:
qt_section_chunk() {}
- qt_section_chunk(int l, QString s) : length(l), string(qMove(s)) {}
+ qt_section_chunk(int l, QStringRef s) : length(l), string(qMove(s)) {}
int length;
- QString string;
+ QStringRef string;
};
Q_DECLARE_TYPEINFO(qt_section_chunk, Q_MOVABLE_TYPE);
@@ -4083,12 +4142,12 @@ QString QString::section(const QRegExp &reg, int start, int end, SectionFlags fl
QVector<qt_section_chunk> sections;
int n = length(), m = 0, last_m = 0, last_len = 0;
while ((m = sep.indexIn(*this, m)) != -1) {
- sections.append(qt_section_chunk(last_len, QString(uc + last_m, m - last_m)));
+ sections.append(qt_section_chunk(last_len, QStringRef(this, last_m, m - last_m)));
last_m = m;
last_len = sep.matchedLength();
m += qMax(sep.matchedLength(), 1);
}
- sections.append(qt_section_chunk(last_len, QString(uc + last_m, n - last_m)));
+ sections.append(qt_section_chunk(last_len, QStringRef(this, last_m, n - last_m)));
return extractSections(sections, start, end, flags);
}
@@ -4131,11 +4190,11 @@ QString QString::section(const QRegularExpression &re, int start, int end, Secti
while (iterator.hasNext()) {
QRegularExpressionMatch match = iterator.next();
m = match.capturedStart();
- sections.append(qt_section_chunk(last_len, QString(uc + last_m, m - last_m)));
+ sections.append(qt_section_chunk(last_len, QStringRef(this, last_m, m - last_m)));
last_m = m;
last_len = match.capturedLength();
}
- sections.append(qt_section_chunk(last_len, QString(uc + last_m, n - last_m)));
+ sections.append(qt_section_chunk(last_len, QStringRef(this, last_m, n - last_m)));
return extractSections(sections, start, end, flags);
}
@@ -8448,12 +8507,6 @@ QDataStream &operator<<(QDataStream &out, const QString &str)
QDataStream &operator>>(QDataStream &in, QString &str)
{
-#ifdef QT_QSTRING_UCS_4
-#if defined(Q_CC_GNU)
-#warning "operator>> not working properly"
-#endif
-#endif
-
if (in.version() == 1) {
QByteArray l;
in >> l;
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index bb918f36c8..532b294c28 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -84,7 +84,7 @@ class QLatin1String
public:
Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s) : m_size(s ? int(strlen(s)) : 0), m_data(s) {}
Q_DECL_CONSTEXPR inline explicit QLatin1String(const char *s, int sz) : m_size(sz), m_data(s) {}
- inline explicit QLatin1String(const QByteArray &s) : m_size(int(qstrnlen(s.constData(), s.size()))), m_data(s.constData()) {}
+ inline explicit QLatin1String(const QByteArray &s) : m_size(s.size()), m_data(s.constData()) {}
inline const char *latin1() const { return m_data; }
inline int size() const { return m_size; }
@@ -420,6 +420,7 @@ public:
QString &insert(int i, QChar c);
QString &insert(int i, const QChar *uc, int len);
inline QString &insert(int i, const QString &s) { return insert(i, s.constData(), s.length()); }
+ inline QString &insert(int i, const QStringRef &s);
QString &insert(int i, QLatin1String s);
QString &append(QChar c);
QString &append(const QChar *uc, int len);
@@ -427,7 +428,9 @@ public:
QString &append(const QStringRef &s);
QString &append(QLatin1String s);
inline QString &prepend(QChar c) { return insert(0, c); }
+ inline QString &prepend(const QChar *uc, int len) { return insert(0, uc, len); }
inline QString &prepend(const QString &s) { return insert(0, s); }
+ inline QString &prepend(const QStringRef &s) { return insert(0, s); }
inline QString &prepend(QLatin1String s) { return insert(0, s); }
inline QString &operator+=(QChar c) {
@@ -534,11 +537,11 @@ public:
return fromLocal8Bit_helper(str, (str && size == -1) ? int(strlen(str)) : size);
}
static inline QString fromLatin1(const QByteArray &str)
- { return fromLatin1(str.data(), qstrnlen(str.constData(), str.size())); }
+ { return str.isNull() ? QString() : fromLatin1(str.data(), str.size()); }
static inline QString fromUtf8(const QByteArray &str)
- { return fromUtf8(str.data(), qstrnlen(str.constData(), str.size())); }
+ { return str.isNull() ? QString() : fromUtf8(str.data(), str.size()); }
static inline QString fromLocal8Bit(const QByteArray &str)
- { return fromLocal8Bit(str.data(), qstrnlen(str.constData(), str.size())); }
+ { return str.isNull() ? QString() : fromLocal8Bit(str.data(), str.size()); }
static QString fromUtf16(const ushort *, int size = -1);
static QString fromUcs4(const uint *, int size = -1);
static QString fromRawData(const QChar *, int size);
@@ -650,7 +653,7 @@ public:
: d(fromAscii_helper(ch, ch ? int(strlen(ch)) : -1))
{}
inline QT_ASCII_CAST_WARN QString(const QByteArray &a)
- : d(fromAscii_helper(a.constData(), qstrnlen(a.constData(), a.size())))
+ : d(fromAscii_helper(a.constData(), a.size()))
{}
inline QT_ASCII_CAST_WARN QString &operator=(const char *ch)
{ return (*this = fromUtf8(ch)); }
@@ -668,6 +671,10 @@ public:
{ return append(QString::fromUtf8(s)); }
inline QT_ASCII_CAST_WARN QString &append(const QByteArray &s)
{ return append(QString::fromUtf8(s)); }
+ inline QT_ASCII_CAST_WARN QString &insert(int i, const char *s)
+ { return insert(i, QString::fromUtf8(s)); }
+ inline QT_ASCII_CAST_WARN QString &insert(int i, const QByteArray &s)
+ { return insert(i, QString::fromUtf8(s)); }
inline QT_ASCII_CAST_WARN QString &operator+=(const char *s)
{ return append(QString::fromUtf8(s)); }
inline QT_ASCII_CAST_WARN QString &operator+=(const QByteArray &s)
@@ -1211,30 +1218,30 @@ inline QT_ASCII_CAST_WARN bool QLatin1String::operator>=(const QByteArray &s) co
{ return QString::fromUtf8(s) <= *this; }
inline QT_ASCII_CAST_WARN bool QString::operator==(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) == 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) == 0; }
inline QT_ASCII_CAST_WARN bool QString::operator!=(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) != 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) != 0; }
inline QT_ASCII_CAST_WARN bool QString::operator<(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) < 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) < 0; }
inline QT_ASCII_CAST_WARN bool QString::operator>(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) > 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) > 0; }
inline QT_ASCII_CAST_WARN bool QString::operator<=(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) <= 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) <= 0; }
inline QT_ASCII_CAST_WARN bool QString::operator>=(const QByteArray &s) const
-{ return QString::compare_helper(constData(), size(), s.constData(), qstrnlen(s.constData(), s.size())) >= 0; }
+{ return QString::compare_helper(constData(), size(), s.constData(), s.size()) >= 0; }
inline bool QByteArray::operator==(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) == 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) == 0; }
inline bool QByteArray::operator!=(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) != 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) != 0; }
inline bool QByteArray::operator<(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) < 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) < 0; }
inline bool QByteArray::operator>(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) > 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) > 0; }
inline bool QByteArray::operator<=(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) <= 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) <= 0; }
inline bool QByteArray::operator>=(const QString &s) const
-{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) >= 0; }
+{ return QString::compare_helper(s.constData(), s.size(), constData(), size()) >= 0; }
#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
#ifndef QT_NO_CAST_TO_ASCII
@@ -1576,6 +1583,9 @@ inline bool QStringRef::contains(QChar c, Qt::CaseSensitivity cs) const
inline bool QStringRef::contains(const QStringRef &s, Qt::CaseSensitivity cs) const
{ return indexOf(s, 0, cs) != -1; }
+inline QString &QString::insert(int i, const QStringRef &s)
+{ return insert(i, s.constData(), s.length()); }
+
namespace Qt {
#if QT_DEPRECATED_SINCE(5, 0)
QT_DEPRECATED inline QString escape(const QString &plain) {
diff --git a/src/corelib/tools/qtimezoneprivate_data_p.h b/src/corelib/tools/qtimezoneprivate_data_p.h
index 2847cc20ce..e8c9a3ee81 100644
--- a/src/corelib/tools/qtimezoneprivate_data_p.h
+++ b/src/corelib/tools/qtimezoneprivate_data_p.h
@@ -106,9 +106,9 @@ struct QUtcData {
// GENERATED PART STARTS HERE
/*
- This part of the file was generated on 2014-01-12 from the
- Common Locale Data Repository supplemental/windowsZones.xml file
- $Revision: 9178 $ $Date: 2013-08-08 13:59:22 -0500 (Thu, 08 Aug 2013) $
+ This part of the file was generated on 2015-03-23 from the
+ Common Locale Data Repository v27 supplemental/windowsZones.xml file
+ $Revision: 11360 $ $Date: 2015-03-10 13:17:15 -0500 (Tue, 10 Mar 2015) $
http://www.unicode.org/cldr/
@@ -117,490 +117,504 @@ struct QUtcData {
// Windows ID Key, Country Enum, IANA ID Index
static const QZoneData zoneDataTable[] = {
- { 95, 157, 0 }, // W. Central Africa Standard Time / Nigeria
- { 36, 73, 13 }, // FLE Standard Time / Finland
- { 26, 97, 29 }, // China Standard Time / HongKong
- { 83, 112, 44 }, // Tonga Standard Time / Kiribati
- { 7, 24, 62 }, // Atlantic Standard Time / Bermuda
- { 82, 101, 79 }, // Tokyo Standard Time / Indonesia
- { 36, 68, 93 }, // FLE Standard Time / Estonia
- { 83, 213, 108 }, // Tonga Standard Time / Tokelau
- { 73, 93, 124 }, // SA Western Standard Time / Guyana
- { 73, 144, 139 }, // SA Western Standard Time / Montserrat
- { 80, 208, 158 }, // Taipei Standard Time / Taiwan
- { 96, 184, 170 }, // W. Europe Standard Time / SanMarino
- { 17, 13, 188 }, // Cen. Australia Standard Time / Australia
- { 72, 166, 229 }, // SA Pacific Standard Time / Panama
- { 72, 47, 244 }, // SA Pacific Standard Time / Colombia
- { 40, 132, 259 }, // Greenwich Standard Time / Mali
- { 61, 38, 273 }, // Newfoundland Standard Time / Canada
- { 18, 96, 290 }, // Central America Standard Time / Honduras
- { 28, 48, 310 }, // E. Africa Standard Time / Comoros
- { 85, 143, 324 }, // Ulaanbaatar Standard Time / Mongolia
- { 73, 180, 357 }, // SA Western Standard Time / SaintKittsAndNevis
- { 40, 236, 374 }, // Greenwich Standard Time / WesternSahara
- { 97, 110, 390 }, // West Asia Standard Time / Kazakhstan
- { 42, 77, 423 }, // Hawaiian Standard Time / FrenchPolynesia
- { 6, 10, 438 }, // Argentina Standard Time / Argentina
- { 20, 30, 711 }, // Central Brazilian Standard Time / Brazil
- { 47, 20, 747 }, // Kaliningrad Standard Time / Belarus
- { 32, 38, 760 }, // Eastern Standard Time / Canada
- { 48, 114, 865 }, // Korea Standard Time / SouthKorea
- { 87, 0, 876 }, // US Mountain Standard Time / AnyCountry
- { 100, 122, 886 }, // Libya Standard Time / Libya
- { 60, 8, 901 }, // New Zealand Standard Time / Antarctica
- { 90, 0, 942 }, // UTC / AnyCountry
- { 96, 133, 950 }, // W. Europe Standard Time / Malta
- { 73, 88, 963 }, // SA Western Standard Time / Guadeloupe
- { 56, 46, 982 }, // Myanmar Standard Time / CocosIslands
- { 91, 220, 995 }, // UTC+12 / Tuvalu
- { 1, 1, 1012 }, // Afghanistan Standard Time / Afghanistan
- { 41, 177, 1023 }, // GTB Standard Time / Romania
- { 73, 26, 1040 }, // SA Western Standard Time / Bolivia
- { 88, 30, 1055 }, // UTC-02 / Brazil
- { 96, 123, 1071 }, // W. Europe Standard Time / Liechtenstein
- { 25, 139, 1084 }, // Central Standard Time / Mexico
- { 40, 199, 1102 }, // Greenwich Standard Time / SaintHelena
- { 52, 227, 1121 }, // Montevideo Standard Time / Uruguay
- { 55, 139, 1140 }, // Mountain Standard Time / Mexico
- { 98, 8, 1156 }, // West Pacific Standard Time / Antarctica
- { 36, 248, 1182 }, // FLE Standard Time / AlandIslands
- { 25, 38, 1199 }, // Central Standard Time / Canada
- { 32, 219, 1274 }, // Eastern Standard Time / TurksAndCaicosIslands
- { 72, 63, 1293 }, // SA Pacific Standard Time / Ecuador
- { 26, 44, 1311 }, // China Standard Time / China
- { 31, 30, 1377 }, // E. South America Standard Time / Brazil
- { 95, 216, 1413 }, // W. Central Africa Standard Time / Tunisia
- { 97, 228, 1426 }, // West Asia Standard Time / Uzbekistan
- { 60, 154, 1455 }, // New Zealand Standard Time / NewZealand
- { 42, 0, 1472 }, // Hawaiian Standard Time / AnyCountry
- { 28, 8, 1483 }, // E. Africa Standard Time / Antarctica
- { 36, 33, 1500 }, // FLE Standard Time / Bulgaria
- { 18, 65, 1513 }, // Central America Standard Time / ElSalvador
- { 76, 130, 1533 }, // Singapore Standard Time / Malaysia
- { 73, 0, 1564 }, // SA Western Standard Time / AnyCountry
- { 70, 178, 1574 }, // Russian Standard Time / Russia
- { 89, 158, 1619 }, // UTC-11 / Niue
- { 77, 120, 1632 }, // South Africa Standard Time / Lesotho
- { 87, 139, 1646 }, // US Mountain Standard Time / Mexico
- { 28, 111, 1665 }, // E. Africa Standard Time / Kenya
- { 98, 160, 1680 }, // West Pacific Standard Time / NorthernMarianaIslands
- { 26, 126, 1695 }, // China Standard Time / Macau
- { 96, 151, 1706 }, // W. Europe Standard Time / Netherlands
- { 87, 225, 1723 }, // US Mountain Standard Time / UnitedStates
- { 38, 251, 1739 }, // GMT Standard Time / IsleOfMan
- { 91, 226, 1758 }, // UTC+12 / UnitedStatesMinorOutlyingIslands
- { 23, 153, 1771 }, // Central Pacific Standard Time / NewCaledonia
- { 73, 135, 1786 }, // SA Western Standard Time / Martinique
- { 19, 8, 1805 }, // Central Asia Standard Time / Antarctica
- { 18, 0, 1823 }, // Central America Standard Time / AnyCountry
- { 23, 229, 1833 }, // Central Pacific Standard Time / Vanuatu
- { 39, 86, 1847 }, // Greenland Standard Time / Greenland
- { 38, 71, 1863 }, // GMT Standard Time / FaroeIslands
- { 82, 108, 1879 }, // Tokyo Standard Time / Japan
- { 21, 192, 1890 }, // Central Europe Standard Time / Slovenia
- { 77, 35, 1907 }, // South Africa Standard Time / Burundi
- { 75, 232, 1924 }, // SE Asia Standard Time / Vietnam
- { 41, 85, 1936 }, // GTB Standard Time / Greece
- { 7, 38, 1950 }, // Atlantic Standard Time / Canada
- { 5, 103, 2018 }, // Arabic Standard Time / Iraq
- { 96, 205, 2031 }, // W. Europe Standard Time / Sweden
- { 73, 233, 2048 }, // SA Western Standard Time / BritishVirginIslands
- { 3, 186, 2064 }, // Arab Standard Time / SaudiArabia
- { 44, 102, 2076 }, // Iran Standard Time / Iran
- { 75, 0, 2088 }, // SE Asia Standard Time / AnyCountry
- { 82, 0, 2098 }, // Tokyo Standard Time / AnyCountry
- { 40, 136, 2108 }, // Greenwich Standard Time / Mauritania
- { 69, 21, 2126 }, // Romance Standard Time / Belgium
- { 42, 225, 2142 }, // Hawaiian Standard Time / UnitedStates
- { 95, 3, 2159 }, // W. Central Africa Standard Time / Algeria
- { 72, 38, 2174 }, // SA Pacific Standard Time / Canada
- { 87, 38, 2196 }, // US Mountain Standard Time / Canada
- { 95, 49, 2233 }, // W. Central Africa Standard Time / CongoKinshasa
- { 18, 52, 2249 }, // Central America Standard Time / CostaRica
- { 32, 55, 2268 }, // Eastern Standard Time / Cuba
- { 28, 254, 2283 }, // E. Africa Standard Time / SouthSudan
- { 95, 156, 2295 }, // W. Central Africa Standard Time / Niger
- { 40, 80, 2309 }, // Greenwich Standard Time / Gambia
- { 75, 36, 2323 }, // SE Asia Standard Time / Cambodia
- { 69, 197, 2339 }, // Romance Standard Time / Spain
- { 97, 218, 2366 }, // West Asia Standard Time / Turkmenistan
- { 37, 81, 2380 }, // Georgian Standard Time / Georgia
- { 75, 101, 2393 }, // SE Asia Standard Time / Indonesia
- { 18, 155, 2421 }, // Central America Standard Time / Nicaragua
- { 73, 9, 2437 }, // SA Western Standard Time / AntiguaAndBarbuda
- { 83, 214, 2453 }, // Tonga Standard Time / Tonga
- { 76, 101, 2471 }, // Singapore Standard Time / Indonesia
- { 98, 167, 2485 }, // West Pacific Standard Time / PapuaNewGuinea
- { 25, 0, 2506 }, // Central Standard Time / AnyCountry
- { 32, 16, 2514 }, // Eastern Standard Time / Bahamas
- { 73, 30, 2529 }, // SA Western Standard Time / Brazil
- { 38, 173, 2618 }, // GMT Standard Time / Portugal
- { 74, 183, 2649 }, // Samoa Standard Time / Samoa
- { 32, 94, 2662 }, // Eastern Standard Time / Haiti
- { 33, 64, 2685 }, // Egypt Standard Time / Egypt
- { 73, 19, 2698 }, // SA Western Standard Time / Barbados
- { 71, 8, 2715 }, // SA Eastern Standard Time / Antarctica
- { 97, 209, 2734 }, // West Asia Standard Time / Tajikistan
- { 77, 0, 2748 }, // South Africa Standard Time / AnyCountry
- { 42, 226, 2758 }, // Hawaiian Standard Time / UnitedStatesMinorOutlyingIslands
- { 28, 210, 2775 }, // E. Africa Standard Time / Tanzania
- { 95, 37, 2796 }, // W. Central Africa Standard Time / Cameroon
- { 58, 148, 2810 }, // Namibia Standard Time / Namibia
- { 34, 178, 2826 }, // Ekaterinburg Standard Time / Russia
- { 28, 221, 2845 }, // E. Africa Standard Time / Uganda
- { 28, 138, 2860 }, // E. Africa Standard Time / Mayotte
- { 40, 92, 2875 }, // Greenwich Standard Time / GuineaBissau
- { 97, 78, 2889 }, // West Asia Standard Time / FrenchSouthernTerritories
- { 77, 240, 2906 }, // South Africa Standard Time / Zimbabwe
- { 95, 79, 2920 }, // W. Central Africa Standard Time / Gabon
- { 91, 134, 2938 }, // UTC+12 / MarshallIslands
- { 76, 190, 2971 }, // Singapore Standard Time / Singapore
- { 15, 0, 2986 }, // Cape Verde Standard Time / AnyCountry
- { 89, 226, 2996 }, // UTC-11 / UnitedStatesMinorOutlyingIslands
- { 24, 139, 3011 }, // Central Standard Time (Mexico) / Mexico
- { 78, 198, 3102 }, // Sri Lanka Standard Time / SriLanka
- { 36, 222, 3115 }, // FLE Standard Time / Ukraine
- { 32, 225, 3179 }, // Eastern Standard Time / UnitedStates
- { 9, 13, 3336 }, // AUS Eastern Standard Time / Australia
- { 32, 0, 3373 }, // Eastern Standard Time / AnyCountry
- { 73, 244, 3381 }, // SA Western Standard Time / Saint Barthelemy
- { 3, 115, 3403 }, // Arab Standard Time / Kuwait
- { 95, 41, 3415 }, // W. Central Africa Standard Time / CentralAfricanRepublic
- { 95, 0, 3429 }, // W. Central Africa Standard Time / AnyCountry
- { 72, 107, 3439 }, // SA Pacific Standard Time / Jamaica
- { 68, 168, 3455 }, // Paraguay Standard Time / Paraguay
- { 73, 182, 3472 }, // SA Western Standard Time / SaintVincentAndTheGrenadines
- { 96, 82, 3491 }, // W. Europe Standard Time / Germany
- { 66, 225, 3521 }, // Pacific Standard Time / UnitedStates
- { 73, 61, 3541 }, // SA Western Standard Time / DominicanRepublic
- { 89, 0, 3563 }, // UTC-11 / AnyCountry
- { 19, 110, 3574 }, // Central Asia Standard Time / Kazakhstan
- { 29, 13, 3601 }, // E. Australia Standard Time / Australia
- { 91, 235, 3639 }, // UTC+12 / WallisAndFutunaIslands
- { 13, 25, 3654 }, // Bangladesh Standard Time / Bhutan
- { 54, 139, 3667 }, // Mountain Standard Time (Mexico) / Mexico
- { 94, 13, 3702 }, // W. Australia Standard Time / Australia
- { 73, 152, 3718 }, // SA Western Standard Time / CuraSao
- { 97, 8, 3734 }, // West Asia Standard Time / Antarctica
- { 59, 150, 3752 }, // Nepal Standard Time / Nepal
- { 73, 7, 3766 }, // SA Western Standard Time / Anguilla
- { 40, 121, 3783 }, // Greenwich Standard Time / Liberia
- { 18, 22, 3799 }, // Central America Standard Time / Belize
- { 21, 243, 3814 }, // Central Europe Standard Time / Serbia
- { 4, 162, 3830 }, // Arabian Standard Time / Oman
- { 41, 141, 3842 }, // GTB Standard Time / Moldova
- { 71, 76, 3858 }, // SA Eastern Standard Time / FrenchGuiana
- { 50, 176, 3874 }, // Mauritius Standard Time / Reunion
- { 28, 67, 3889 }, // E. Africa Standard Time / Eritrea
- { 40, 212, 3903 }, // Greenwich Standard Time / Togo
- { 10, 15, 3915 }, // Azerbaijan Standard Time / Azerbaijan
- { 8, 13, 3925 }, // AUS Central Standard Time / Australia
- { 28, 128, 3942 }, // E. Africa Standard Time / Madagascar
- { 55, 0, 3962 }, // Mountain Standard Time / AnyCountry
- { 36, 118, 3970 }, // FLE Standard Time / Latvia
- { 28, 59, 3982 }, // E. Africa Standard Time / Djibouti
- { 23, 193, 3998 }, // Central Pacific Standard Time / SolomonIslands
- { 18, 63, 4018 }, // Central America Standard Time / Ecuador
- { 76, 170, 4036 }, // Singapore Standard Time / Philippines
- { 86, 225, 4048 }, // US Eastern Standard Time / UnitedStates
- { 64, 8, 4115 }, // Pacific SA Standard Time / Antarctica
- { 4, 223, 4133 }, // Arabian Standard Time / UnitedArabEmirates
- { 75, 45, 4144 }, // SE Asia Standard Time / ChristmasIsland
- { 91, 0, 4161 }, // UTC+12 / AnyCountry
- { 40, 99, 4172 }, // Greenwich Standard Time / Iceland
- { 88, 0, 4191 }, // UTC-02 / AnyCountry
- { 66, 0, 4201 }, // Pacific Standard Time / AnyCountry
- { 38, 75, 4209 }, // GMT Standard Time / Guernsey
- { 96, 206, 4225 }, // W. Europe Standard Time / Switzerland
- { 71, 70, 4239 }, // SA Eastern Standard Time / FalklandIslands
- { 22, 54, 4256 }, // Central European Standard Time / Croatia
- { 66, 139, 4270 }, // Pacific Standard Time / Mexico
- { 82, 164, 4286 }, // Tokyo Standard Time / Palau
- { 2, 225, 4300 }, // Alaskan Standard Time / UnitedStates
- { 14, 38, 4376 }, // Canada Central Standard Time / Canada
- { 57, 178, 4413 }, // N. Central Asia Standard Time / Russia
- { 77, 146, 4458 }, // South Africa Standard Time / Mozambique
- { 15, 39, 4472 }, // Cape Verde Standard Time / CapeVerde
- { 71, 202, 4492 }, // SA Eastern Standard Time / Suriname
- { 38, 252, 4511 }, // GMT Standard Time / Jersey
- { 40, 189, 4525 }, // Greenwich Standard Time / SierraLeone
- { 92, 231, 4541 }, // Venezuela Standard Time / Venezuela
- { 73, 38, 4557 }, // SA Western Standard Time / Canada
- { 79, 207, 4578 }, // Syria Standard Time / Syria
- { 38, 197, 4592 }, // GMT Standard Time / Spain
- { 75, 117, 4608 }, // SE Asia Standard Time / Laos
- { 22, 172, 4623 }, // Central European Standard Time / Poland
- { 27, 0, 4637 }, // Dateline Standard Time / AnyCountry
- { 16, 11, 4648 }, // Caucasus Standard Time / Armenia
- { 95, 50, 4661 }, // W. Central Africa Standard Time / CongoBrazzaville
- { 76, 32, 4680 }, // Singapore Standard Time / Brunei
- { 81, 13, 4692 }, // Tasmania Standard Time / Australia
- { 96, 84, 4726 }, // W. Europe Standard Time / Gibraltar
- { 72, 0, 4743 }, // SA Pacific Standard Time / AnyCountry
- { 94, 8, 4753 }, // W. Australia Standard Time / Antarctica
- { 82, 62, 4770 }, // Tokyo Standard Time / EastTimor
- { 22, 27, 4780 }, // Central European Standard Time / BosniaAndHerzegowina
- { 63, 178, 4796 }, // North Asia Standard Time / Russia
- { 64, 43, 4813 }, // Pacific SA Standard Time / Chile
- { 66, 38, 4830 }, // Pacific Standard Time / Canada
- { 91, 112, 4882 }, // UTC+12 / Kiribati
- { 46, 109, 4897 }, // Jordan Standard Time / Jordan
- { 84, 217, 4908 }, // Turkey Standard Time / Turkey
- { 51, 119, 4924 }, // Middle East Standard Time / Lebanon
- { 36, 124, 4936 }, // FLE Standard Time / Lithuania
- { 21, 2, 4951 }, // Central Europe Standard Time / Albania
- { 95, 23, 4965 }, // W. Central Africa Standard Time / Benin
- { 55, 38, 4983 }, // Mountain Standard Time / Canada
- { 11, 173, 5057 }, // Azores Standard Time / Portugal
- { 28, 69, 5073 }, // E. Africa Standard Time / Ethiopia
- { 19, 31, 5092 }, // Central Asia Standard Time / BritishIndianOceanTerritory
- { 73, 256, 5106 }, // SA Western Standard Time / SintMaarten
- { 38, 104, 5128 }, // GMT Standard Time / Ireland
- { 89, 4, 5142 }, // UTC-11 / AmericanSamoa
- { 77, 239, 5160 }, // South Africa Standard Time / Zambia
- { 21, 98, 5174 }, // Central Europe Standard Time / Hungary
- { 11, 86, 5190 }, // Azores Standard Time / Greenland
- { 73, 215, 5211 }, // SA Western Standard Time / TrinidadAndTobago
- { 77, 195, 5233 }, // South Africa Standard Time / SouthAfrica
- { 13, 18, 5253 }, // Bangladesh Standard Time / Bangladesh
- { 12, 30, 5264 }, // Bahia Standard Time / Brazil
- { 47, 178, 5278 }, // Kaliningrad Standard Time / Russia
- { 28, 201, 5297 }, // E. Africa Standard Time / Sudan
- { 96, 125, 5313 }, // W. Europe Standard Time / Luxembourg
- { 75, 143, 5331 }, // SE Asia Standard Time / Mongolia
- { 98, 0, 5341 }, // West Pacific Standard Time / AnyCountry
- { 50, 188, 5352 }, // Mauritius Standard Time / Seychelles
- { 21, 57, 5364 }, // Central Europe Standard Time / CzechRepublic
- { 98, 140, 5378 }, // West Pacific Standard Time / Micronesia
- { 90, 86, 5391 }, // UTC / Greenland
- { 43, 100, 5412 }, // India Standard Time / India
- { 23, 140, 5426 }, // Central Pacific Standard Time / Micronesia
- { 96, 142, 5456 }, // W. Europe Standard Time / Monaco
- { 73, 181, 5470 }, // SA Western Standard Time / SaintLucia
- { 95, 6, 5487 }, // W. Central Africa Standard Time / Angola
- { 73, 60, 5501 }, // SA Western Standard Time / Dominica
- { 88, 196, 5518 }, // UTC-02 / SouthGeorgiaAndTheSouthSandwichIslands
- { 19, 0, 5541 }, // Central Asia Standard Time / AnyCountry
- { 77, 28, 5551 }, // South Africa Standard Time / Botswana
- { 21, 242, 5567 }, // Central Europe Standard Time / Montenegro
- { 98, 89, 5584 }, // West Pacific Standard Time / Guam
- { 55, 225, 5597 }, // Mountain Standard Time / UnitedStates
- { 53, 145, 5643 }, // Morocco Standard Time / Morocco
- { 77, 179, 5661 }, // South Africa Standard Time / Rwanda
- { 7, 86, 5675 }, // Atlantic Standard Time / Greenland
- { 30, 56, 5689 }, // E. Europe Standard Time / Cyprus
- { 49, 178, 5702 }, // Magadan Standard Time / Russia
- { 73, 234, 5742 }, // SA Western Standard Time / UnitedStatesVirginIslands
- { 77, 204, 5760 }, // South Africa Standard Time / Swaziland
- { 3, 17, 5775 }, // Arab Standard Time / Bahrain
- { 73, 174, 5788 }, // SA Western Standard Time / PuertoRico
- { 28, 194, 5808 }, // E. Africa Standard Time / Somalia
- { 75, 8, 5825 }, // SE Asia Standard Time / Antarctica
- { 91, 149, 5842 }, // UTC+12 / Nauru
- { 40, 83, 5856 }, // Greenwich Standard Time / Ghana
- { 75, 211, 5869 }, // SE Asia Standard Time / Thailand
- { 96, 230, 5882 }, // W. Europe Standard Time / VaticanCityState
- { 71, 30, 5897 }, // SA Eastern Standard Time / Brazil
- { 69, 58, 5976 }, // Romance Standard Time / Denmark
- { 25, 225, 5994 }, // Central Standard Time / UnitedStates
- { 73, 245, 6162 }, // SA Western Standard Time / Saint Martin
- { 45, 105, 6178 }, // Israel Standard Time / Israel
- { 73, 12, 6193 }, // SA Western Standard Time / Aruba
- { 67, 163, 6207 }, // Pakistan Standard Time / Pakistan
- { 40, 185, 6220 }, // Greenwich Standard Time / SaoTomeAndPrincipe
- { 48, 113, 6236 }, // Korea Standard Time / NorthKorea
- { 93, 178, 6251 }, // Vladivostok Standard Time / Russia
- { 40, 34, 6296 }, // Greenwich Standard Time / BurkinaFaso
- { 77, 129, 6315 }, // South Africa Standard Time / Malawi
- { 42, 51, 6331 }, // Hawaiian Standard Time / CookIslands
- { 28, 0, 6349 }, // E. Africa Standard Time / AnyCountry
- { 40, 53, 6359 }, // Greenwich Standard Time / IvoryCoast
- { 38, 224, 6374 }, // GMT Standard Time / UnitedKingdom
- { 18, 90, 6388 }, // Central America Standard Time / Guatemala
- { 35, 72, 6406 }, // Fiji Standard Time / Fiji
- { 72, 40, 6419 }, // SA Pacific Standard Time / CaymanIslands
- { 62, 178, 6434 }, // North Asia East Standard Time / Russia
- { 96, 106, 6447 }, // W. Europe Standard Time / Italy
- { 50, 137, 6459 }, // Mauritius Standard Time / Mauritius
- { 4, 0, 6476 }, // Arabian Standard Time / AnyCountry
- { 71, 0, 6486 }, // SA Eastern Standard Time / AnyCountry
- { 40, 91, 6496 }, // Greenwich Standard Time / Guinea
- { 65, 139, 6511 }, // Pacific Standard Time (Mexico) / Mexico
- { 40, 187, 6532 }, // Greenwich Standard Time / Senegal
- { 96, 5, 6545 }, // W. Europe Standard Time / Andorra
- { 96, 161, 6560 }, // W. Europe Standard Time / Norway
- { 3, 175, 6572 }, // Arab Standard Time / Qatar
- { 56, 147, 6583 }, // Myanmar Standard Time / Myanmar
- { 97, 131, 6596 }, // West Asia Standard Time / Maldives
- { 69, 74, 6612 }, // Romance Standard Time / France
- { 3, 237, 6625 }, // Arab Standard Time / Yemen
- { 96, 14, 6635 }, // W. Europe Standard Time / Austria
- { 76, 0, 6649 }, // Singapore Standard Time / AnyCountry
- { 83, 0, 6659 }, // Tonga Standard Time / AnyCountry
- { 96, 203, 6670 }, // W. Europe Standard Time / SvalbardAndJanMayenIslands
- { 73, 87, 6690 }, // SA Western Standard Time / Grenada
- { 72, 169, 6706 }, // SA Pacific Standard Time / Peru
- { 77, 49, 6719 }, // South Africa Standard Time / CongoKinshasa
- { 99, 178, 6737 }, // Yakutsk Standard Time / Russia
- { 21, 191, 6764 }, // Central Europe Standard Time / Slovakia
- { 23, 0, 6782 }, // Central Pacific Standard Time / AnyCountry
- { 95, 66, 6793 }, // W. Central Africa Standard Time / EquatorialGuinea
- { 73, 255, 6807 }, // SA Western Standard Time / Bonaire
- { 97, 0, 6826 }, // West Asia Standard Time / AnyCountry
- { 23, 13, 6836 }, // Central Pacific Standard Time / Australia
- { 22, 127, 6857 }, // Central European Standard Time / Macedonia
- { 95, 42, 6871 }, // W. Central Africa Standard Time / Chad
- { 19, 116, 6887 }, // Central Asia Standard Time / Kyrgyzstan
+ { 22, 57, 0 }, // Central Europe Standard Time / CzechRepublic
+ { 69, 139, 14 }, // Pacific Standard Time / Mexico
+ { 53, 188, 30 }, // Mauritius Standard Time / Seychelles
+ { 50, 122, 42 }, // Libya Standard Time / Libya
+ { 79, 38, 57 }, // SA Western Standard Time / Canada
+ { 83, 35, 78 }, // South Africa Standard Time / Burundi
+ { 102, 205, 95 }, // W. Europe Standard Time / Sweden
+ { 89, 213, 112 }, // Tonga Standard Time / Tokelau
+ { 77, 76, 128 }, // SA Eastern Standard Time / FrenchGuiana
+ { 79, 215, 144 }, // SA Western Standard Time / TrinidadAndTobago
+ { 69, 38, 166 }, // Pacific Standard Time / Canada
+ { 97, 0, 218 }, // UTC+12 / AnyCountry
+ { 19, 65, 229 }, // Central America Standard Time / ElSalvador
+ { 82, 101, 249 }, // Singapore Standard Time / Indonesia
+ { 37, 248, 263 }, // FLE Standard Time / AlandIslands
+ { 16, 0, 280 }, // Cape Verde Standard Time / AnyCountry
+ { 97, 220, 290 }, // UTC+12 / Tuvalu
+ { 79, 182, 307 }, // SA Western Standard Time / SaintVincentAndTheGrenadines
+ { 83, 179, 326 }, // South Africa Standard Time / Rwanda
+ { 102, 125, 340 }, // W. Europe Standard Time / Luxembourg
+ { 41, 34, 358 }, // Greenwich Standard Time / BurkinaFaso
+ { 20, 116, 377 }, // Central Asia Standard Time / Kyrgyzstan
+ { 101, 216, 390 }, // W. Central Africa Standard Time / Tunisia
+ { 101, 79, 403 }, // W. Central Africa Standard Time / Gabon
+ { 19, 96, 421 }, // Central America Standard Time / Honduras
+ { 81, 36, 441 }, // SE Asia Standard Time / Cambodia
+ { 82, 170, 457 }, // Singapore Standard Time / Philippines
+ { 101, 41, 469 }, // W. Central Africa Standard Time / CentralAfricanRepublic
+ { 5, 103, 483 }, // Arabic Standard Time / Iraq
+ { 72, 21, 496 }, // Romance Standard Time / Belgium
+ { 74, 178, 512 }, // Russia Time Zone 10 / Russia
+ { 20, 44, 531 }, // Central Asia Standard Time / China
+ { 3, 17, 543 }, // Arab Standard Time / Bahrain
+ { 88, 62, 556 }, // Tokyo Standard Time / EastTimor
+ { 37, 68, 566 }, // FLE Standard Time / Estonia
+ { 41, 136, 581 }, // Greenwich Standard Time / Mauritania
+ { 83, 49, 599 }, // South Africa Standard Time / CongoKinshasa
+ { 72, 74, 617 }, // Romance Standard Time / France
+ { 35, 178, 630 }, // Ekaterinburg Standard Time / Russia
+ { 32, 16, 649 }, // Eastern Standard Time / Bahamas
+ { 94, 30, 664 }, // UTC-02 / Brazil
+ { 12, 30, 680 }, // Bahia Standard Time / Brazil
+ { 82, 0, 694 }, // Singapore Standard Time / AnyCountry
+ { 29, 201, 704 }, // E. Africa Standard Time / Sudan
+ { 24, 229, 720 }, // Central Pacific Standard Time / Vanuatu
+ { 55, 227, 734 }, // Montevideo Standard Time / Uruguay
+ { 79, 233, 753 }, // SA Western Standard Time / BritishVirginIslands
+ { 29, 221, 769 }, // E. Africa Standard Time / Uganda
+ { 101, 6, 784 }, // W. Central Africa Standard Time / Angola
+ { 51, 112, 798 }, // Line Islands Standard Time / Kiribati
+ { 89, 0, 817 }, // Tonga Standard Time / AnyCountry
+ { 79, 61, 828 }, // SA Western Standard Time / DominicanRepublic
+ { 39, 75, 850 }, // GMT Standard Time / Guernsey
+ { 49, 113, 866 }, // Korea Standard Time / NorthKorea
+ { 37, 222, 881 }, // FLE Standard Time / Ukraine
+ { 83, 28, 927 }, // South Africa Standard Time / Botswana
+ { 82, 130, 943 }, // Singapore Standard Time / Malaysia
+ { 95, 4, 974 }, // UTC-11 / AmericanSamoa
+ { 41, 189, 992 }, // Greenwich Standard Time / SierraLeone
+ { 29, 194, 1008 }, // E. Africa Standard Time / Somalia
+ { 94, 196, 1025 }, // UTC-02 / SouthGeorgiaAndTheSouthSandwichIslands
+ { 96, 0, 1048 }, // UTC / AnyCountry
+ { 101, 37, 1056 }, // W. Central Africa Standard Time / Cameroon
+ { 13, 25, 1070 }, // Bangladesh Standard Time / Bhutan
+ { 102, 151, 1083 }, // W. Europe Standard Time / Netherlands
+ { 37, 118, 1100 }, // FLE Standard Time / Latvia
+ { 29, 48, 1112 }, // E. Africa Standard Time / Comoros
+ { 60, 178, 1126 }, // N. Central Asia Standard Time / Russia
+ { 81, 117, 1153 }, // SE Asia Standard Time / Laos
+ { 22, 242, 1168 }, // Central Europe Standard Time / Montenegro
+ { 37, 33, 1185 }, // FLE Standard Time / Bulgaria
+ { 11, 173, 1198 }, // Azores Standard Time / Portugal
+ { 97, 149, 1214 }, // UTC+12 / Nauru
+ { 83, 146, 1228 }, // South Africa Standard Time / Mozambique
+ { 102, 82, 1242 }, // W. Europe Standard Time / Germany
+ { 79, 255, 1272 }, // SA Western Standard Time / Bonaire
+ { 24, 153, 1291 }, // Central Pacific Standard Time / NewCaledonia
+ { 45, 102, 1306 }, // Iran Standard Time / Iran
+ { 13, 18, 1318 }, // Bangladesh Standard Time / Bangladesh
+ { 69, 225, 1329 }, // Pacific Standard Time / UnitedStates
+ { 102, 142, 1349 }, // W. Europe Standard Time / Monaco
+ { 29, 128, 1363 }, // E. Africa Standard Time / Madagascar
+ { 65, 178, 1383 }, // North Asia East Standard Time / Russia
+ { 20, 8, 1407 }, // Central Asia Standard Time / Antarctica
+ { 22, 2, 1425 }, // Central Europe Standard Time / Albania
+ { 79, 87, 1439 }, // SA Western Standard Time / Grenada
+ { 81, 0, 1455 }, // SE Asia Standard Time / AnyCountry
+ { 39, 173, 1465 }, // GMT Standard Time / Portugal
+ { 32, 55, 1496 }, // Eastern Standard Time / Cuba
+ { 103, 228, 1511 }, // West Asia Standard Time / Uzbekistan
+ { 58, 139, 1540 }, // Mountain Standard Time / Mexico
+ { 83, 129, 1556 }, // South Africa Standard Time / Malawi
+ { 78, 107, 1572 }, // SA Pacific Standard Time / Jamaica
+ { 41, 91, 1588 }, // Greenwich Standard Time / Guinea
+ { 101, 49, 1603 }, // W. Central Africa Standard Time / CongoKinshasa
+ { 43, 226, 1619 }, // Hawaiian Standard Time / UnitedStatesMinorOutlyingIslands
+ { 77, 8, 1636 }, // SA Eastern Standard Time / Antarctica
+ { 97, 235, 1655 }, // UTC+12 / WallisAndFutunaIslands
+ { 81, 232, 1670 }, // SE Asia Standard Time / Vietnam
+ { 34, 64, 1682 }, // Egypt Standard Time / Egypt
+ { 42, 141, 1695 }, // GTB Standard Time / Moldova
+ { 102, 106, 1711 }, // W. Europe Standard Time / Italy
+ { 79, 256, 1723 }, // SA Western Standard Time / SintMaarten
+ { 59, 147, 1745 }, // Myanmar Standard Time / Myanmar
+ { 78, 166, 1758 }, // SA Pacific Standard Time / Panama
+ { 56, 236, 1773 }, // Morocco Standard Time / WesternSahara
+ { 24, 193, 1789 }, // Central Pacific Standard Time / SolomonIslands
+ { 48, 178, 1809 }, // Kaliningrad Standard Time / Russia
+ { 47, 109, 1828 }, // Jordan Standard Time / Jordan
+ { 42, 177, 1839 }, // GTB Standard Time / Romania
+ { 41, 92, 1856 }, // Greenwich Standard Time / GuineaBissau
+ { 102, 184, 1870 }, // W. Europe Standard Time / SanMarino
+ { 103, 209, 1888 }, // West Asia Standard Time / Tajikistan
+ { 75, 178, 1902 }, // Russia Time Zone 11 / Russia
+ { 101, 157, 1929 }, // W. Central Africa Standard Time / Nigeria
+ { 79, 152, 1942 }, // SA Western Standard Time / CuraSao
+ { 57, 139, 1958 }, // Mountain Standard Time (Mexico) / Mexico
+ { 4, 162, 1993 }, // Arabian Standard Time / Oman
+ { 78, 169, 2005 }, // SA Pacific Standard Time / Peru
+ { 102, 206, 2018 }, // W. Europe Standard Time / Switzerland
+ { 41, 99, 2032 }, // Greenwich Standard Time / Iceland
+ { 33, 139, 2051 }, // Eastern Standard Time (Mexico) / Mexico
+ { 58, 225, 2066 }, // Mountain Standard Time / UnitedStates
+ { 100, 8, 2095 }, // W. Australia Standard Time / Antarctica
+ { 79, 30, 2112 }, // SA Western Standard Time / Brazil
+ { 101, 23, 2165 }, // W. Central Africa Standard Time / Benin
+ { 104, 0, 2183 }, // West Pacific Standard Time / AnyCountry
+ { 79, 181, 2194 }, // SA Western Standard Time / SaintLucia
+ { 27, 126, 2211 }, // China Standard Time / Macau
+ { 101, 66, 2222 }, // W. Central Africa Standard Time / EquatorialGuinea
+ { 43, 51, 2236 }, // Hawaiian Standard Time / CookIslands
+ { 41, 80, 2254 }, // Greenwich Standard Time / Gambia
+ { 51, 0, 2268 }, // Line Islands Standard Time / AnyCountry
+ { 52, 178, 2279 }, // Magadan Standard Time / Russia
+ { 22, 191, 2292 }, // Central Europe Standard Time / Slovakia
+ { 102, 5, 2310 }, // W. Europe Standard Time / Andorra
+ { 81, 211, 2325 }, // SE Asia Standard Time / Thailand
+ { 103, 0, 2338 }, // West Asia Standard Time / AnyCountry
+ { 24, 167, 2348 }, // Central Pacific Standard Time / PapuaNewGuinea
+ { 102, 230, 2369 }, // W. Europe Standard Time / VaticanCityState
+ { 58, 38, 2384 }, // Mountain Standard Time / Canada
+ { 77, 202, 2458 }, // SA Eastern Standard Time / Suriname
+ { 81, 143, 2477 }, // SE Asia Standard Time / Mongolia
+ { 9, 13, 2487 }, // AUS Eastern Standard Time / Australia
+ { 29, 210, 2524 }, // E. Africa Standard Time / Tanzania
+ { 58, 0, 2545 }, // Mountain Standard Time / AnyCountry
+ { 83, 120, 2553 }, // South Africa Standard Time / Lesotho
+ { 97, 134, 2567 }, // UTC+12 / MarshallIslands
+ { 29, 111, 2600 }, // E. Africa Standard Time / Kenya
+ { 103, 218, 2615 }, // West Asia Standard Time / Turkmenistan
+ { 27, 97, 2629 }, // China Standard Time / HongKong
+ { 29, 0, 2644 }, // E. Africa Standard Time / AnyCountry
+ { 19, 22, 2654 }, // Central America Standard Time / Belize
+ { 31, 30, 2669 }, // E. South America Standard Time / Brazil
+ { 72, 197, 2687 }, // Romance Standard Time / Spain
+ { 81, 101, 2714 }, // SE Asia Standard Time / Indonesia
+ { 88, 0, 2742 }, // Tokyo Standard Time / AnyCountry
+ { 2, 225, 2752 }, // Alaskan Standard Time / UnitedStates
+ { 72, 58, 2828 }, // Romance Standard Time / Denmark
+ { 63, 8, 2846 }, // New Zealand Standard Time / Antarctica
+ { 3, 175, 2865 }, // Arab Standard Time / Qatar
+ { 104, 160, 2876 }, // West Pacific Standard Time / NorthernMarianaIslands
+ { 79, 19, 2891 }, // SA Western Standard Time / Barbados
+ { 97, 226, 2908 }, // UTC+12 / UnitedStatesMinorOutlyingIslands
+ { 37, 73, 2921 }, // FLE Standard Time / Finland
+ { 29, 138, 2937 }, // E. Africa Standard Time / Mayotte
+ { 39, 71, 2952 }, // GMT Standard Time / FaroeIslands
+ { 78, 38, 2968 }, // SA Pacific Standard Time / Canada
+ { 43, 0, 2990 }, // Hawaiian Standard Time / AnyCountry
+ { 23, 27, 3001 }, // Central European Standard Time / BosniaAndHerzegowina
+ { 38, 81, 3017 }, // Georgian Standard Time / Georgia
+ { 95, 0, 3030 }, // UTC-11 / AnyCountry
+ { 24, 13, 3041 }, // Central Pacific Standard Time / Australia
+ { 104, 167, 3062 }, // West Pacific Standard Time / PapuaNewGuinea
+ { 71, 168, 3083 }, // Paraguay Standard Time / Paraguay
+ { 43, 77, 3100 }, // Hawaiian Standard Time / FrenchPolynesia
+ { 41, 212, 3115 }, // Greenwich Standard Time / Togo
+ { 39, 197, 3127 }, // GMT Standard Time / Spain
+ { 83, 195, 3143 }, // South Africa Standard Time / SouthAfrica
+ { 18, 13, 3163 }, // Cen. Australia Standard Time / Australia
+ { 79, 245, 3204 }, // SA Western Standard Time / Saint Martin
+ { 77, 70, 3220 }, // SA Eastern Standard Time / FalklandIslands
+ { 42, 56, 3237 }, // GTB Standard Time / Cyprus
+ { 4, 223, 3250 }, // Arabian Standard Time / UnitedArabEmirates
+ { 103, 78, 3261 }, // West Asia Standard Time / FrenchSouthernTerritories
+ { 101, 42, 3278 }, // W. Central Africa Standard Time / Chad
+ { 23, 127, 3294 }, // Central European Standard Time / Macedonia
+ { 3, 237, 3308 }, // Arab Standard Time / Yemen
+ { 80, 183, 3318 }, // Samoa Standard Time / Samoa
+ { 43, 225, 3331 }, // Hawaiian Standard Time / UnitedStates
+ { 28, 0, 3348 }, // Dateline Standard Time / AnyCountry
+ { 93, 139, 3359 }, // US Mountain Standard Time / Mexico
+ { 64, 38, 3378 }, // Newfoundland Standard Time / Canada
+ { 63, 154, 3395 }, // New Zealand Standard Time / NewZealand
+ { 76, 178, 3412 }, // Russian Standard Time / Russia
+ { 82, 190, 3461 }, // Singapore Standard Time / Singapore
+ { 1, 1, 3476 }, // Afghanistan Standard Time / Afghanistan
+ { 102, 133, 3487 }, // W. Europe Standard Time / Malta
+ { 79, 12, 3500 }, // SA Western Standard Time / Aruba
+ { 25, 139, 3514 }, // Central Standard Time (Mexico) / Mexico
+ { 39, 251, 3590 }, // GMT Standard Time / IsleOfMan
+ { 102, 123, 3609 }, // W. Europe Standard Time / Liechtenstein
+ { 77, 30, 3622 }, // SA Eastern Standard Time / Brazil
+ { 49, 114, 3719 }, // Korea Standard Time / SouthKorea
+ { 79, 88, 3730 }, // SA Western Standard Time / Guadeloupe
+ { 94, 0, 3749 }, // UTC-02 / AnyCountry
+ { 59, 46, 3759 }, // Myanmar Standard Time / CocosIslands
+ { 102, 203, 3772 }, // W. Europe Standard Time / SvalbardAndJanMayenIslands
+ { 29, 69, 3792 }, // E. Africa Standard Time / Ethiopia
+ { 73, 178, 3811 }, // Russia Time Zone 3 / Russia
+ { 83, 240, 3825 }, // South Africa Standard Time / Zimbabwe
+ { 100, 13, 3839 }, // W. Australia Standard Time / Australia
+ { 101, 0, 3855 }, // W. Central Africa Standard Time / AnyCountry
+ { 68, 139, 3865 }, // Pacific Standard Time (Mexico) / Mexico
+ { 56, 145, 3886 }, // Morocco Standard Time / Morocco
+ { 17, 11, 3904 }, // Caucasus Standard Time / Armenia
+ { 7, 24, 3917 }, // Atlantic Standard Time / Bermuda
+ { 86, 208, 3934 }, // Taipei Standard Time / Taiwan
+ { 20, 0, 3946 }, // Central Asia Standard Time / AnyCountry
+ { 40, 86, 3956 }, // Greenland Standard Time / Greenland
+ { 23, 172, 3972 }, // Central European Standard Time / Poland
+ { 89, 214, 3986 }, // Tonga Standard Time / Tonga
+ { 20, 110, 4004 }, // Central Asia Standard Time / Kazakhstan
+ { 81, 8, 4031 }, // SE Asia Standard Time / Antarctica
+ { 54, 119, 4048 }, // Middle East Standard Time / Lebanon
+ { 19, 90, 4060 }, // Central America Standard Time / Guatemala
+ { 70, 163, 4078 }, // Pakistan Standard Time / Pakistan
+ { 41, 83, 4091 }, // Greenwich Standard Time / Ghana
+ { 79, 174, 4104 }, // SA Western Standard Time / PuertoRico
+ { 79, 26, 4124 }, // SA Western Standard Time / Bolivia
+ { 32, 225, 4139 }, // Eastern Standard Time / UnitedStates
+ { 85, 207, 4296 }, // Syria Standard Time / Syria
+ { 97, 112, 4310 }, // UTC+12 / Kiribati
+ { 79, 0, 4325 }, // SA Western Standard Time / AnyCountry
+ { 78, 47, 4335 }, // SA Pacific Standard Time / Colombia
+ { 16, 39, 4350 }, // Cape Verde Standard Time / CapeVerde
+ { 8, 13, 4370 }, // AUS Central Standard Time / Australia
+ { 10, 15, 4387 }, // Azerbaijan Standard Time / Azerbaijan
+ { 102, 84, 4397 }, // W. Europe Standard Time / Gibraltar
+ { 46, 105, 4414 }, // Israel Standard Time / Israel
+ { 22, 192, 4429 }, // Central Europe Standard Time / Slovenia
+ { 82, 32, 4446 }, // Singapore Standard Time / Brunei
+ { 101, 50, 4458 }, // W. Central Africa Standard Time / CongoBrazzaville
+ { 62, 150, 4477 }, // Nepal Standard Time / Nepal
+ { 44, 100, 4491 }, // India Standard Time / India
+ { 79, 9, 4505 }, // SA Western Standard Time / AntiguaAndBarbuda
+ { 39, 252, 4521 }, // GMT Standard Time / Jersey
+ { 79, 144, 4535 }, // SA Western Standard Time / Montserrat
+ { 93, 0, 4554 }, // US Mountain Standard Time / AnyCountry
+ { 79, 93, 4564 }, // SA Western Standard Time / Guyana
+ { 41, 187, 4579 }, // Greenwich Standard Time / Senegal
+ { 102, 161, 4592 }, // W. Europe Standard Time / Norway
+ { 42, 85, 4604 }, // GTB Standard Time / Greece
+ { 3, 115, 4618 }, // Arab Standard Time / Kuwait
+ { 24, 140, 4630 }, // Central Pacific Standard Time / Micronesia
+ { 19, 52, 4660 }, // Central America Standard Time / CostaRica
+ { 79, 60, 4679 }, // SA Western Standard Time / Dominica
+ { 83, 204, 4696 }, // South Africa Standard Time / Swaziland
+ { 79, 135, 4711 }, // SA Western Standard Time / Martinique
+ { 53, 176, 4730 }, // Mauritius Standard Time / Reunion
+ { 19, 0, 4745 }, // Central America Standard Time / AnyCountry
+ { 90, 217, 4755 }, // Turkey Standard Time / Turkey
+ { 66, 178, 4771 }, // North Asia Standard Time / Russia
+ { 41, 53, 4806 }, // Greenwich Standard Time / IvoryCoast
+ { 78, 30, 4821 }, // SA Pacific Standard Time / Brazil
+ { 26, 0, 4857 }, // Central Standard Time / AnyCountry
+ { 93, 225, 4865 }, // US Mountain Standard Time / UnitedStates
+ { 15, 38, 4881 }, // Canada Central Standard Time / Canada
+ { 78, 0, 4918 }, // SA Pacific Standard Time / AnyCountry
+ { 103, 8, 4928 }, // West Asia Standard Time / Antarctica
+ { 103, 131, 4946 }, // West Asia Standard Time / Maldives
+ { 22, 243, 4962 }, // Central Europe Standard Time / Serbia
+ { 29, 67, 4978 }, // E. Africa Standard Time / Eritrea
+ { 93, 38, 4992 }, // US Mountain Standard Time / Canada
+ { 22, 98, 5029 }, // Central Europe Standard Time / Hungary
+ { 61, 148, 5045 }, // Namibia Standard Time / Namibia
+ { 88, 101, 5061 }, // Tokyo Standard Time / Indonesia
+ { 30, 13, 5075 }, // E. Australia Standard Time / Australia
+ { 4, 0, 5113 }, // Arabian Standard Time / AnyCountry
+ { 98, 231, 5123 }, // Venezuela Standard Time / Venezuela
+ { 29, 8, 5139 }, // E. Africa Standard Time / Antarctica
+ { 23, 54, 5156 }, // Central European Standard Time / Croatia
+ { 6, 10, 5170 }, // Argentina Standard Time / Argentina
+ { 67, 8, 5443 }, // Pacific SA Standard Time / Antarctica
+ { 32, 38, 5461 }, // Eastern Standard Time / Canada
+ { 41, 132, 5566 }, // Greenwich Standard Time / Mali
+ { 3, 186, 5580 }, // Arab Standard Time / SaudiArabia
+ { 104, 140, 5592 }, // West Pacific Standard Time / Micronesia
+ { 88, 108, 5605 }, // Tokyo Standard Time / Japan
+ { 89, 112, 5616 }, // Tonga Standard Time / Kiribati
+ { 39, 224, 5634 }, // GMT Standard Time / UnitedKingdom
+ { 92, 225, 5648 }, // US Eastern Standard Time / UnitedStates
+ { 84, 198, 5715 }, // Sri Lanka Standard Time / SriLanka
+ { 26, 38, 5728 }, // Central Standard Time / Canada
+ { 29, 59, 5803 }, // E. Africa Standard Time / Djibouti
+ { 7, 38, 5819 }, // Atlantic Standard Time / Canada
+ { 41, 185, 5887 }, // Greenwich Standard Time / SaoTomeAndPrincipe
+ { 79, 234, 5903 }, // SA Western Standard Time / UnitedStatesVirginIslands
+ { 83, 239, 5921 }, // South Africa Standard Time / Zambia
+ { 32, 94, 5935 }, // Eastern Standard Time / Haiti
+ { 101, 156, 5958 }, // W. Central Africa Standard Time / Niger
+ { 77, 0, 5972 }, // SA Eastern Standard Time / AnyCountry
+ { 101, 3, 5982 }, // W. Central Africa Standard Time / Algeria
+ { 78, 63, 5997 }, // SA Pacific Standard Time / Ecuador
+ { 20, 31, 6015 }, // Central Asia Standard Time / BritishIndianOceanTerritory
+ { 27, 44, 6029 }, // China Standard Time / China
+ { 21, 30, 6043 }, // Central Brazilian Standard Time / Brazil
+ { 95, 226, 6079 }, // UTC-11 / UnitedStatesMinorOutlyingIslands
+ { 32, 0, 6094 }, // Eastern Standard Time / AnyCountry
+ { 81, 45, 6102 }, // SE Asia Standard Time / ChristmasIsland
+ { 19, 63, 6119 }, // Central America Standard Time / Ecuador
+ { 79, 7, 6137 }, // SA Western Standard Time / Anguilla
+ { 78, 40, 6154 }, // SA Pacific Standard Time / CaymanIslands
+ { 79, 180, 6169 }, // SA Western Standard Time / SaintKittsAndNevis
+ { 67, 43, 6186 }, // Pacific SA Standard Time / Chile
+ { 88, 164, 6203 }, // Tokyo Standard Time / Palau
+ { 105, 178, 6217 }, // Yakutsk Standard Time / Russia
+ { 37, 124, 6244 }, // FLE Standard Time / Lithuania
+ { 41, 121, 6259 }, // Greenwich Standard Time / Liberia
+ { 104, 89, 6275 }, // West Pacific Standard Time / Guam
+ { 96, 86, 6288 }, // UTC / Greenland
+ { 36, 72, 6309 }, // Fiji Standard Time / Fiji
+ { 19, 155, 6322 }, // Central America Standard Time / Nicaragua
+ { 11, 86, 6338 }, // Azores Standard Time / Greenland
+ { 79, 244, 6359 }, // SA Western Standard Time / Saint Barthelemy
+ { 69, 0, 6381 }, // Pacific Standard Time / AnyCountry
+ { 79, 219, 6389 }, // SA Western Standard Time / TurksAndCaicosIslands
+ { 103, 110, 6408 }, // West Asia Standard Time / Kazakhstan
+ { 26, 225, 6441 }, // Central Standard Time / UnitedStates
+ { 26, 139, 6609 }, // Central Standard Time / Mexico
+ { 7, 86, 6627 }, // Atlantic Standard Time / Greenland
+ { 24, 0, 6641 }, // Central Pacific Standard Time / AnyCountry
+ { 41, 199, 6652 }, // Greenwich Standard Time / SaintHelena
+ { 95, 158, 6671 }, // UTC-11 / Niue
+ { 53, 137, 6684 }, // Mauritius Standard Time / Mauritius
+ { 91, 143, 6701 }, // Ulaanbaatar Standard Time / Mongolia
+ { 83, 0, 6734 }, // South Africa Standard Time / AnyCountry
+ { 14, 20, 6744 }, // Belarus Standard Time / Belarus
+ { 29, 254, 6757 }, // E. Africa Standard Time / SouthSudan
+ { 87, 13, 6769 }, // Tasmania Standard Time / Australia
+ { 99, 178, 6803 }, // Vladivostok Standard Time / Russia
+ { 104, 8, 6848 }, // West Pacific Standard Time / Antarctica
+ { 39, 104, 6874 }, // GMT Standard Time / Ireland
+ { 102, 14, 6888 }, // W. Europe Standard Time / Austria
{ 0, 0, 0 } // Trailing zeroes
};
// Windows ID Key, Windows ID Index, IANA ID Index, UTC Offset
static const QWindowsData windowsDataTable[] = {
- { 1, 0, 1012, 16200 }, // Afghanistan Standard Time
- { 2, 26, 6900,-32400 }, // Alaskan Standard Time
- { 3, 48, 2064, 10800 }, // Arab Standard Time
- { 4, 67, 4133, 14400 }, // Arabian Standard Time
- { 5, 89, 2018, 10800 }, // Arabic Standard Time
- { 6, 110, 6918, 10800 }, // Argentina Standard Time
- { 7, 134, 6939,-14400 }, // Atlantic Standard Time
- { 8, 157, 3925, 34200 }, // AUS Central Standard Time
- { 9, 183, 6955, 36000 }, // AUS Eastern Standard Time
- { 10, 209, 3915, 14400 }, // Azerbaijan Standard Time
- { 11, 234, 5057, -3600 }, // Azores Standard Time
- { 12, 255, 5264, 10800 }, // Bahia Standard Time
- { 13, 275, 5253, 21600 }, // Bangladesh Standard Time
- { 14, 300, 6972,-21600 }, // Canada Central Standard Time
- { 15, 329, 4472, -3600 }, // Cape Verde Standard Time
- { 16, 354, 4648, 14400 }, // Caucasus Standard Time
- { 17, 377, 6987, 34200 }, // Cen. Australia Standard Time
- { 18, 406, 6388,-21600 }, // Central America Standard Time
- { 19, 436, 7006, 21600 }, // Central Asia Standard Time
- { 20, 463, 7018,-14400 }, // Central Brazilian Standard Time
- { 21, 495, 5174, 3600 }, // Central Europe Standard Time
- { 22, 524, 4623, 3600 }, // Central European Standard Time
- { 23, 555, 3998, 39600 }, // Central Pacific Standard Time
- { 24, 585, 7033,-21600 }, // Central Standard Time (Mexico)
- { 25, 616, 7053,-21600 }, // Central Standard Time
- { 26, 638, 7069, 28800 }, // China Standard Time
- { 27, 658, 4637,-43200 }, // Dateline Standard Time
- { 28, 681, 1665, 10800 }, // E. Africa Standard Time
- { 29, 705, 7083, 36000 }, // E. Australia Standard Time
- { 30, 732, 5689, 7200 }, // E. Europe Standard Time
- { 31, 756, 7102,-10800 }, // E. South America Standard Time
- { 32, 787, 7120,-18000 }, // Eastern Standard Time
- { 33, 809, 2685, 7200 }, // Egypt Standard Time
- { 34, 829, 2826, 21600 }, // Ekaterinburg Standard Time
- { 35, 856, 6406, 43200 }, // Fiji Standard Time
- { 36, 875, 7137, 7200 }, // FLE Standard Time
- { 37, 893, 2380, 14400 }, // Georgian Standard Time
- { 38, 916, 6374, 0 }, // GMT Standard Time
- { 39, 934, 1847, 10800 }, // Greenland Standard Time
- { 40, 958, 4172, 0 }, // Greenwich Standard Time
- { 41, 982, 1023, 7200 }, // GTB Standard Time
- { 42, 1000, 2142,-36000 }, // Hawaiian Standard Time
- { 43, 1023, 5412, 19800 }, // India Standard Time
- { 44, 1043, 2076, 12600 }, // Iran Standard Time
- { 45, 1062, 6178, 7200 }, // Israel Standard Time
- { 46, 1083, 4897, 7200 }, // Jordan Standard Time
- { 47, 1104, 5278, 10800 }, // Kaliningrad Standard Time
- { 48, 1130, 865, 32400 }, // Korea Standard Time
- { 49, 1150, 7149, 43200 }, // Magadan Standard Time
- { 50, 1172, 6459, 14400 }, // Mauritius Standard Time
- { 51, 1196, 4924, 7200 }, // Middle East Standard Time
- { 52, 1222, 1121, 10800 }, // Montevideo Standard Time
- { 53, 1247, 5643, 0 }, // Morocco Standard Time
- { 54, 1269, 7162,-25200 }, // Mountain Standard Time (Mexico)
- { 55, 1301, 7180,-25200 }, // Mountain Standard Time
- { 56, 1324, 6583, 23400 }, // Myanmar Standard Time
- { 57, 1346, 7195, 23400 }, // N. Central Asia Standard Time
- { 58, 1376, 2810, 3600 }, // Namibia Standard Time
- { 59, 1398, 3752, 20700 }, // Nepal Standard Time
- { 60, 1418, 1455, 43200 }, // New Zealand Standard Time
- { 61, 1444, 273,-12600 }, // Newfoundland Standard Time
- { 62, 1471, 6434, 32400 }, // North Asia East Standard Time
- { 63, 1501, 4796, 28800 }, // North Asia Standard Time
- { 64, 1526, 4813,-14400 }, // Pacific SA Standard Time
- { 65, 1551, 6511,-28800 }, // Pacific Standard Time (Mexico)
- { 66, 1582, 3521,-28800 }, // Pacific Standard Time
- { 67, 1604, 6207, 18000 }, // Pakistan Standard Time
- { 68, 1627, 3455,-14400 }, // Paraguay Standard Time
- { 69, 1650, 6612, 3600 }, // Romance Standard Time
- { 70, 1672, 7212, 14400 }, // Russian Standard Time
- { 71, 1694, 3858, 10800 }, // SA Eastern Standard Time
- { 72, 1719, 244,-18000 }, // SA Pacific Standard Time
- { 73, 1744, 1040,-14400 }, // SA Western Standard Time
- { 74, 1769, 2649, 46800 }, // Samoa Standard Time
- { 75, 1789, 5869, 23400 }, // SE Asia Standard Time
- { 76, 1811, 2971, 28800 }, // Singapore Standard Time
- { 77, 1835, 5233, 7200 }, // South Africa Standard Time
- { 78, 1862, 3102, 19800 }, // Sri Lanka Standard Time
- { 79, 1886, 4578, 7200 }, // Syria Standard Time
- { 80, 1906, 158, 28800 }, // Taipei Standard Time
- { 81, 1927, 7226, 36000 }, // Tasmania Standard Time
- { 82, 1950, 1879, 32400 }, // Tokyo Standard Time
- { 83, 1970, 2453, 46800 }, // Tonga Standard Time
- { 84, 1990, 4908, 7200 }, // Turkey Standard Time
- { 85, 2011, 7243, 28800 }, // Ulaanbaatar Standard Time
- { 86, 2037, 7260,-18000 }, // US Eastern Standard Time
- { 87, 2062, 1723,-25200 }, // US Mountain Standard Time
- { 88, 2088, 4191, -7200 }, // UTC-02
- { 89, 2095, 3563,-39600 }, // UTC-11
- { 90, 2102, 942, 0 }, // UTC
- { 91, 2106, 4161, 43200 }, // UTC+12
- { 92, 2113, 4541,-16200 }, // Venezuela Standard Time
- { 93, 2137, 7281, 39600 }, // Vladivostok Standard Time
- { 94, 2163, 3702, 28800 }, // W. Australia Standard Time
- { 95, 2190, 0, 3600 }, // W. Central Africa Standard Time
- { 96, 2222, 7298, 3600 }, // W. Europe Standard Time
- { 97, 2246, 7312, 18000 }, // West Asia Standard Time
- { 98, 2270, 2485, 36000 }, // West Pacific Standard Time
- { 99, 2297, 7326, 36000 }, // Yakutsk Standard Time
- { 100, 2319, 886, 3600 }, // Libya Standard Time
+ { 1, 0, 3476, 16200 }, // Afghanistan Standard Time
+ { 2, 26, 6902,-32400 }, // Alaskan Standard Time
+ { 3, 48, 5580, 10800 }, // Arab Standard Time
+ { 4, 67, 3250, 14400 }, // Arabian Standard Time
+ { 5, 89, 483, 10800 }, // Arabic Standard Time
+ { 6, 110, 6920,-10800 }, // Argentina Standard Time
+ { 7, 134, 6941,-14400 }, // Atlantic Standard Time
+ { 8, 157, 4370, 34200 }, // AUS Central Standard Time
+ { 9, 183, 6957, 36000 }, // AUS Eastern Standard Time
+ { 10, 209, 4387, 14400 }, // Azerbaijan Standard Time
+ { 11, 234, 1198, -3600 }, // Azores Standard Time
+ { 12, 255, 680,-10800 }, // Bahia Standard Time
+ { 13, 275, 1318, 21600 }, // Bangladesh Standard Time
+ { 14, 300, 6744, 10800 }, // Belarus Standard Time
+ { 15, 322, 6974,-21600 }, // Canada Central Standard Time
+ { 16, 351, 4350, -3600 }, // Cape Verde Standard Time
+ { 17, 376, 3904, 14400 }, // Caucasus Standard Time
+ { 18, 399, 6989, 34200 }, // Cen. Australia Standard Time
+ { 19, 428, 4060,-21600 }, // Central America Standard Time
+ { 20, 458, 7008, 21600 }, // Central Asia Standard Time
+ { 21, 485, 7020,-14400 }, // Central Brazilian Standard Time
+ { 22, 517, 5029, 3600 }, // Central Europe Standard Time
+ { 23, 546, 3972, 3600 }, // Central European Standard Time
+ { 24, 577, 1789, 39600 }, // Central Pacific Standard Time
+ { 25, 607, 7035,-21600 }, // Central Standard Time (Mexico)
+ { 26, 638, 7055,-21600 }, // Central Standard Time
+ { 27, 660, 6029, 28800 }, // China Standard Time
+ { 28, 680, 3348,-43200 }, // Dateline Standard Time
+ { 29, 703, 2600, 10800 }, // E. Africa Standard Time
+ { 30, 727, 7071, 36000 }, // E. Australia Standard Time
+ { 31, 754, 2669,-10800 }, // E. South America Standard Time
+ { 32, 785, 7090,-18000 }, // Eastern Standard Time
+ { 33, 807, 2051,-18000 }, // Eastern Standard Time (Mexico)
+ { 34, 838, 1682, 7200 }, // Egypt Standard Time
+ { 35, 858, 630, 18000 }, // Ekaterinburg Standard Time
+ { 36, 885, 6309, 43200 }, // Fiji Standard Time
+ { 37, 904, 7107, 7200 }, // FLE Standard Time
+ { 38, 922, 3017, 14400 }, // Georgian Standard Time
+ { 39, 945, 5634, 0 }, // GMT Standard Time
+ { 40, 963, 3956,-10800 }, // Greenland Standard Time
+ { 41, 987, 2032, 0 }, // Greenwich Standard Time
+ { 42, 1011, 1839, 7200 }, // GTB Standard Time
+ { 43, 1029, 3331,-36000 }, // Hawaiian Standard Time
+ { 44, 1052, 4491, 19800 }, // India Standard Time
+ { 45, 1072, 1306, 12600 }, // Iran Standard Time
+ { 46, 1091, 4414, 7200 }, // Israel Standard Time
+ { 47, 1112, 1828, 7200 }, // Jordan Standard Time
+ { 48, 1133, 1809, 7200 }, // Kaliningrad Standard Time
+ { 49, 1159, 3719, 32400 }, // Korea Standard Time
+ { 50, 1179, 42, 7200 }, // Libya Standard Time
+ { 51, 1199, 798, 50400 }, // Line Islands Standard Time
+ { 52, 1226, 2279, 36000 }, // Magadan Standard Time
+ { 53, 1248, 6684, 14400 }, // Mauritius Standard Time
+ { 54, 1272, 4048, 7200 }, // Middle East Standard Time
+ { 55, 1298, 734,-10800 }, // Montevideo Standard Time
+ { 56, 1323, 3886, 0 }, // Morocco Standard Time
+ { 57, 1345, 7119,-25200 }, // Mountain Standard Time (Mexico)
+ { 58, 1377, 7137,-25200 }, // Mountain Standard Time
+ { 59, 1400, 1745, 23400 }, // Myanmar Standard Time
+ { 60, 1422, 7152, 21600 }, // N. Central Asia Standard Time
+ { 61, 1452, 5045, 3600 }, // Namibia Standard Time
+ { 62, 1474, 4477, 20700 }, // Nepal Standard Time
+ { 63, 1494, 3395, 43200 }, // New Zealand Standard Time
+ { 64, 1520, 3378,-12600 }, // Newfoundland Standard Time
+ { 65, 1547, 7169, 28800 }, // North Asia East Standard Time
+ { 66, 1577, 7182, 25200 }, // North Asia Standard Time
+ { 67, 1602, 6186,-10800 }, // Pacific SA Standard Time
+ { 68, 1627, 3865,-28800 }, // Pacific Standard Time (Mexico)
+ { 69, 1658, 1329,-28800 }, // Pacific Standard Time
+ { 70, 1680, 4078, 18000 }, // Pakistan Standard Time
+ { 71, 1703, 3083,-14400 }, // Paraguay Standard Time
+ { 72, 1726, 617, 3600 }, // Romance Standard Time
+ { 73, 1748, 3811, 14400 }, // Russia Time Zone 3
+ { 74, 1767, 512, 39600 }, // Russia Time Zone 10
+ { 75, 1787, 7199, 43200 }, // Russia Time Zone 11
+ { 76, 1807, 7214, 10800 }, // Russian Standard Time
+ { 77, 1829, 128,-10800 }, // SA Eastern Standard Time
+ { 78, 1854, 4335,-18000 }, // SA Pacific Standard Time
+ { 79, 1879, 4124,-14400 }, // SA Western Standard Time
+ { 80, 1904, 3318, 46800 }, // Samoa Standard Time
+ { 81, 1924, 2325, 25200 }, // SE Asia Standard Time
+ { 82, 1946, 3461, 28800 }, // Singapore Standard Time
+ { 83, 1970, 3143, 7200 }, // South Africa Standard Time
+ { 84, 1997, 5715, 19800 }, // Sri Lanka Standard Time
+ { 85, 2021, 4296, 7200 }, // Syria Standard Time
+ { 86, 2041, 3934, 28800 }, // Taipei Standard Time
+ { 87, 2062, 7228, 36000 }, // Tasmania Standard Time
+ { 88, 2085, 5605, 32400 }, // Tokyo Standard Time
+ { 89, 2105, 3986, 46800 }, // Tonga Standard Time
+ { 90, 2125, 4755, 7200 }, // Turkey Standard Time
+ { 91, 2146, 7245, 28800 }, // Ulaanbaatar Standard Time
+ { 92, 2172, 7262,-18000 }, // US Eastern Standard Time
+ { 93, 2197, 4865,-25200 }, // US Mountain Standard Time
+ { 94, 2223, 3749, -7200 }, // UTC-02
+ { 95, 2230, 3030,-39600 }, // UTC-11
+ { 96, 2237, 1048, 0 }, // UTC
+ { 97, 2241, 218, 43200 }, // UTC+12
+ { 98, 2248, 5123,-16200 }, // Venezuela Standard Time
+ { 99, 2272, 7283, 36000 }, // Vladivostok Standard Time
+ { 100, 2298, 3839, 28800 }, // W. Australia Standard Time
+ { 101, 2325, 1929, 3600 }, // W. Central Africa Standard Time
+ { 102, 2357, 7300, 3600 }, // W. Europe Standard Time
+ { 103, 2381, 7314, 18000 }, // West Asia Standard Time
+ { 104, 2405, 3062, 36000 }, // West Pacific Standard Time
+ { 105, 2432, 7328, 32400 }, // Yakutsk Standard Time
{ 0, 0, 0, 0 } // Trailing zeroes
};
// IANA ID Index, UTC Offset
static const QUtcData utcDataTable[] = {
- { 7339, 0 }, // UTC
- { 7343,-50400 }, // UTC-14:00
- { 7353,-46800 }, // UTC-13:00
- { 7363,-43200 }, // UTC-12:00
- { 7373,-39600 }, // UTC-11:00
- { 7383,-36000 }, // UTC-10:00
- { 7393,-32400 }, // UTC-09:00
- { 7403,-28800 }, // UTC-08:00
- { 7413,-25200 }, // UTC-07:00
- { 7423,-21600 }, // UTC-06:00
- { 7433,-18000 }, // UTC-05:00
- { 7443,-16200 }, // UTC-04:30
- { 7453,-14400 }, // UTC-04:00
- { 7463,-12600 }, // UTC-03:30
- { 7473,-10800 }, // UTC-03:00
- { 7483, -7200 }, // UTC-02:00
- { 7493, -3600 }, // UTC-01:00
- { 7503, 0 }, // UTC-00:00
- { 7513, 0 }, // UTC+00:00
- { 7523, 3600 }, // UTC+01:00
- { 7533, 7200 }, // UTC+02:00
- { 7543, 10800 }, // UTC+03:00
- { 7553, 12600 }, // UTC+03:30
- { 7563, 14400 }, // UTC+04:00
- { 7573, 16200 }, // UTC+04:30
- { 7583, 18000 }, // UTC+05:00
- { 7593, 19800 }, // UTC+05:30
- { 7603, 20700 }, // UTC+05:45
- { 7613, 21600 }, // UTC+06:00
- { 7623, 23400 }, // UTC+06:30
- { 7633, 25200 }, // UTC+07:00
- { 7643, 28800 }, // UTC+08:00
- { 7653, 32400 }, // UTC+09:00
- { 7663, 34200 }, // UTC+09:30
- { 7673, 36000 }, // UTC+10:00
- { 7683, 39600 }, // UTC+11:00
- { 7693, 43200 }, // UTC+12:00
- { 7703, 46800 }, // UTC+13:00
- { 7713, 50400 }, // UTC+14:00
+ { 7341, 0 }, // UTC
+ { 7345,-50400 }, // UTC-14:00
+ { 7355,-46800 }, // UTC-13:00
+ { 7365,-43200 }, // UTC-12:00
+ { 7375,-39600 }, // UTC-11:00
+ { 7385,-36000 }, // UTC-10:00
+ { 7395,-32400 }, // UTC-09:00
+ { 7405,-28800 }, // UTC-08:00
+ { 7415,-25200 }, // UTC-07:00
+ { 7425,-21600 }, // UTC-06:00
+ { 7435,-18000 }, // UTC-05:00
+ { 7445,-16200 }, // UTC-04:30
+ { 7455,-14400 }, // UTC-04:00
+ { 7465,-12600 }, // UTC-03:30
+ { 7475,-10800 }, // UTC-03:00
+ { 7485, -7200 }, // UTC-02:00
+ { 7495, -3600 }, // UTC-01:00
+ { 7505, 0 }, // UTC-00:00
+ { 7515, 0 }, // UTC+00:00
+ { 7525, 3600 }, // UTC+01:00
+ { 7535, 7200 }, // UTC+02:00
+ { 7545, 10800 }, // UTC+03:00
+ { 7555, 12600 }, // UTC+03:30
+ { 7565, 14400 }, // UTC+04:00
+ { 7575, 16200 }, // UTC+04:30
+ { 7585, 18000 }, // UTC+05:00
+ { 7595, 19800 }, // UTC+05:30
+ { 7605, 20700 }, // UTC+05:45
+ { 7615, 21600 }, // UTC+06:00
+ { 7625, 23400 }, // UTC+06:30
+ { 7635, 25200 }, // UTC+07:00
+ { 7645, 28800 }, // UTC+08:00
+ { 7655, 32400 }, // UTC+09:00
+ { 7665, 34200 }, // UTC+09:30
+ { 7675, 36000 }, // UTC+10:00
+ { 7685, 39600 }, // UTC+11:00
+ { 7695, 43200 }, // UTC+12:00
+ { 7705, 46800 }, // UTC+13:00
+ { 7715, 50400 }, // UTC+14:00
{ 0, 0 } // Trailing zeroes
};
@@ -620,270 +634,324 @@ static const char windowsIdData[] = {
0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x42, 0x61, 0x68, 0x69, 0x61,
0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x42, 0x61, 0x6e, 0x67, 0x6c,
0x61, 0x64, 0x65, 0x73, 0x68, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
-0x43, 0x61, 0x6e, 0x61, 0x64, 0x61, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x61, 0x70, 0x65, 0x20, 0x56, 0x65, 0x72, 0x64, 0x65, 0x20,
-0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x61, 0x75, 0x63, 0x61, 0x73,
-0x75, 0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e,
-0x2e, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74,
-0x72, 0x61, 0x6c, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
-0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x42, 0x72, 0x61, 0x7a, 0x69, 0x6c, 0x69, 0x61, 0x6e,
-0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72,
-0x61, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e,
-0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72,
-0x61, 0x6c, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
-0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
-0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x43, 0x65, 0x6e, 0x74,
-0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x68,
-0x69, 0x6e, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x44, 0x61,
-0x74, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
-0x0, 0x45, 0x2e, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
-0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x53, 0x74,
-0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70,
-0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x53,
-0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x42, 0x65, 0x6c, 0x61, 0x72, 0x75, 0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
+0x65, 0x0, 0x43, 0x61, 0x6e, 0x61, 0x64, 0x61, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61,
+0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x61, 0x70, 0x65, 0x20, 0x56, 0x65, 0x72, 0x64,
+0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x61, 0x75, 0x63,
+0x61, 0x73, 0x75, 0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43,
+0x65, 0x6e, 0x2e, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
+0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x6d, 0x65, 0x72,
+0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65,
+0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x42, 0x72, 0x61, 0x7a, 0x69, 0x6c, 0x69,
+0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e,
+0x74, 0x72, 0x61, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
+0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e,
+0x74, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
+0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x43, 0x65,
+0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
+0x43, 0x68, 0x69, 0x6e, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
+0x44, 0x61, 0x74, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
+0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20,
+0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x2e, 0x20, 0x53, 0x6f, 0x75,
+0x74, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x67, 0x79, 0x70, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x6b, 0x61, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x62, 0x75, 0x72,
-0x67, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x46, 0x69, 0x6a, 0x69,
-0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x46, 0x4c, 0x45, 0x20, 0x53,
-0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x69, 0x61,
-0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x4d, 0x54, 0x20,
-0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x6c,
-0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x72,
-0x65, 0x65, 0x6e, 0x77, 0x69, 0x63, 0x68, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x47, 0x54, 0x42, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
-0x48, 0x61, 0x77, 0x61, 0x69, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
-0x6d, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
-0x6d, 0x65, 0x0, 0x49, 0x72, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x49, 0x73, 0x72, 0x61, 0x65, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
-0x6d, 0x65, 0x0, 0x4a, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x4b, 0x61, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x72, 0x61, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4b, 0x6f, 0x72, 0x65, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x61, 0x67, 0x61, 0x64, 0x61, 0x6e, 0x20, 0x53, 0x74,
-0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75,
-0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x69, 0x64, 0x64,
-0x6c, 0x65, 0x20, 0x45, 0x61, 0x73, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
-0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x72, 0x6f, 0x63, 0x63, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74,
-0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29,
-0x0, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x4d, 0x79, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x2e, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x73, 0x69,
-0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x61, 0x6d, 0x69,
-0x62, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x65,
-0x70, 0x61, 0x6c, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x65,
-0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x4e, 0x65, 0x77, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61,
-0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x41, 0x73, 0x69,
-0x61, 0x20, 0x45, 0x61, 0x73, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
-0x0, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x41, 0x20, 0x53, 0x74, 0x61,
-0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53,
-0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f,
-0x29, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
-0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x50, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x6f, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x74,
-0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x6e, 0x20,
-0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20, 0x45, 0x61, 0x73,
-0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53,
-0x41, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
-0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
-0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x45, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61,
-0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65,
-0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x6f, 0x75, 0x74, 0x68,
-0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x53, 0x72, 0x69, 0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x79, 0x72, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x61, 0x69, 0x70, 0x65, 0x69, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
-0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x61, 0x73, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x75, 0x72, 0x6b, 0x65, 0x79, 0x20, 0x53, 0x74, 0x61,
-0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74,
-0x61, 0x72, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x53, 0x20,
-0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x55, 0x53, 0x20, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
-0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x32, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31,
-0x31, 0x0, 0x55, 0x54, 0x43, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x32, 0x0, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65,
-0x6c, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x56, 0x6c, 0x61,
-0x64, 0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
-0x6d, 0x65, 0x0, 0x57, 0x2e, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x2e, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c,
-0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
-0x65, 0x0, 0x57, 0x2e, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
-0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x65, 0x73, 0x74, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e,
-0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66,
-0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x59, 0x61, 0x6b,
-0x75, 0x74, 0x73, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4c,
-0x69, 0x62, 0x79, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0
+0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x45, 0x67,
+0x79, 0x70, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x45, 0x6b,
+0x61, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x62, 0x75, 0x72, 0x67, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x46, 0x69, 0x6a, 0x69, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
+0x69, 0x6d, 0x65, 0x0, 0x46, 0x4c, 0x45, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
+0x65, 0x0, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x4d, 0x54, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
+0x6d, 0x65, 0x0, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x77, 0x69, 0x63, 0x68, 0x20, 0x53, 0x74, 0x61,
+0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x47, 0x54, 0x42, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
+0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x48, 0x61, 0x77, 0x61, 0x69, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x49, 0x72, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61,
+0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x49, 0x73, 0x72, 0x61, 0x65, 0x6c, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4a, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x20, 0x53,
+0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4b, 0x61, 0x6c, 0x69, 0x6e, 0x69, 0x6e,
+0x67, 0x72, 0x61, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4b,
+0x6f, 0x72, 0x65, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4c,
+0x69, 0x62, 0x79, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4c,
+0x69, 0x6e, 0x65, 0x20, 0x49, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x61, 0x67, 0x61, 0x64, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
+0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75, 0x73, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x20, 0x45,
+0x61, 0x73, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f,
+0x6e, 0x74, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
+0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x72, 0x6f, 0x63, 0x63, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
+0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x4d, 0x6f, 0x75,
+0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
+0x4d, 0x79, 0x61, 0x6e, 0x6d, 0x61, 0x72, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
+0x65, 0x0, 0x4e, 0x2e, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x20,
+0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x65, 0x70, 0x61, 0x6c, 0x20,
+0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65,
+0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
+0x4e, 0x65, 0x77, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x45, 0x61,
+0x73, 0x74, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x4e, 0x6f, 0x72,
+0x74, 0x68, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
+0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x41, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72,
+0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
+0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x28, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x29, 0x0, 0x50, 0x61,
+0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0,
+0x50, 0x61, 0x6b, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
+0x6d, 0x65, 0x0, 0x50, 0x61, 0x72, 0x61, 0x67, 0x75, 0x61, 0x79, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x6f, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61,
+0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20,
+0x5a, 0x6f, 0x6e, 0x65, 0x20, 0x33, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a,
+0x6f, 0x6e, 0x65, 0x20, 0x31, 0x30, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x20, 0x5a,
+0x6f, 0x6e, 0x65, 0x20, 0x31, 0x31, 0x0, 0x52, 0x75, 0x73, 0x73, 0x69, 0x61, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64,
+0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20,
+0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x41, 0x20, 0x50, 0x61, 0x63,
+0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53,
+0x41, 0x20, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
+0x69, 0x6d, 0x65, 0x0, 0x53, 0x61, 0x6d, 0x6f, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54,
+0x69, 0x6d, 0x65, 0x0, 0x53, 0x45, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e,
+0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x53, 0x72, 0x69,
+0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
+0x0, 0x53, 0x79, 0x72, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
+0x0, 0x54, 0x61, 0x69, 0x70, 0x65, 0x69, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d,
+0x65, 0x0, 0x54, 0x61, 0x73, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x54, 0x75, 0x72, 0x6b, 0x65, 0x79, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,
+0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74, 0x61, 0x72, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x53, 0x20, 0x45, 0x61, 0x73, 0x74, 0x65,
+0x72, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x55, 0x53, 0x20,
+0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69,
+0x6d, 0x65, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x32, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x31, 0x0, 0x55, 0x54, 0x43,
+0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x32, 0x0, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, 0x61, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x56, 0x6c, 0x61, 0x64, 0x69, 0x76, 0x6f, 0x73,
+0x74, 0x6f, 0x6b, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x2e,
+0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x2e, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x2e, 0x20,
+0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65,
+0x0, 0x57, 0x65, 0x73, 0x74, 0x20, 0x41, 0x73, 0x69, 0x61, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20,
+0x54, 0x69, 0x6d, 0x65, 0x0, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x53, 0x74,
+0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0, 0x59, 0x61, 0x6b, 0x75, 0x74, 0x73, 0x6b, 0x20,
+0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x0
};
static const char ianaIdData[] = {
-0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x61, 0x67, 0x6f, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
-0x48, 0x65, 0x6c, 0x73, 0x69, 0x6e, 0x6b, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x48, 0x6f, 0x6e, 0x67, 0x5f, 0x4b,
-0x6f, 0x6e, 0x67, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x45, 0x6e, 0x64, 0x65, 0x72, 0x62, 0x75, 0x72,
-0x79, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x0, 0x41,
-0x73, 0x69, 0x61, 0x2f, 0x4a, 0x61, 0x79, 0x61, 0x70, 0x75, 0x72, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
-0x54, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x6e, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x61, 0x6b, 0x61,
-0x6f, 0x66, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x72, 0x61, 0x74, 0x0, 0x41, 0x73,
-0x69, 0x61, 0x2f, 0x54, 0x61, 0x69, 0x70, 0x65, 0x69, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x6e,
-0x5f, 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x6f, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x41, 0x64,
-0x65, 0x6c, 0x61, 0x69, 0x64, 0x65, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x6f,
-0x6b, 0x65, 0x6e, 0x5f, 0x48, 0x69, 0x6c, 0x6c, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6e,
-0x61, 0x6d, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x67, 0x6f, 0x74, 0x61, 0x0, 0x41,
-0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x6d, 0x61, 0x6b, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x53, 0x74, 0x5f, 0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x65,
-0x67, 0x75, 0x63, 0x69, 0x67, 0x61, 0x6c, 0x70, 0x61, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43, 0x6f, 0x6d,
-0x6f, 0x72, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74, 0x61, 0x72,
-0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x43, 0x68, 0x6f, 0x69, 0x62, 0x61, 0x6c, 0x73, 0x61, 0x6e, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x4b, 0x69, 0x74, 0x74, 0x73, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x45, 0x6c, 0x5f, 0x41, 0x61, 0x69, 0x75, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4f, 0x72, 0x61, 0x6c, 0x20,
-0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x71, 0x74, 0x61, 0x75, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x71, 0x74, 0x6f,
-0x62, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61, 0x68, 0x69, 0x74, 0x69, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75, 0x65, 0x6e, 0x6f, 0x73, 0x5f, 0x41, 0x69, 0x72, 0x65, 0x73, 0x20, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x4c, 0x61, 0x5f,
-0x52, 0x69, 0x6f, 0x6a, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74,
-0x69, 0x6e, 0x61, 0x2f, 0x52, 0x69, 0x6f, 0x5f, 0x47, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x6f, 0x73, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53, 0x61, 0x6c, 0x74, 0x61,
-0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53,
-0x61, 0x6e, 0x5f, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65,
-0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x5f, 0x4c, 0x75, 0x69, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x54, 0x75, 0x63, 0x75, 0x6d, 0x61, 0x6e,
-0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x55,
-0x73, 0x68, 0x75, 0x61, 0x69, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x74, 0x61, 0x6d,
-0x61, 0x72, 0x63, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x62, 0x61,
-0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x75, 0x6a, 0x75, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x4d, 0x65, 0x6e, 0x64, 0x6f, 0x7a, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
-0x75, 0x69, 0x61, 0x62, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x70, 0x6f, 0x5f,
-0x47, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x69, 0x6e, 0x73, 0x6b, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x49, 0x71, 0x61, 0x6c, 0x75, 0x69, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x4d, 0x6f, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x69, 0x70,
-0x69, 0x67, 0x6f, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6e, 0x67, 0x6e, 0x69, 0x72,
-0x74, 0x75, 0x6e, 0x67, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72,
-0x5f, 0x42, 0x61, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x65, 0x6f, 0x75, 0x6c, 0x0, 0x45, 0x74, 0x63, 0x2f,
-0x47, 0x4d, 0x54, 0x2b, 0x37, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x72, 0x69, 0x70, 0x6f, 0x6c, 0x69,
-0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x50, 0x6f,
-0x6c, 0x65, 0x20, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x63, 0x4d, 0x75, 0x72, 0x64,
-0x6f, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x6c,
-0x74, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x61, 0x64, 0x65, 0x6c, 0x6f, 0x75, 0x70,
-0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43, 0x6f, 0x63, 0x6f, 0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
-0x69, 0x63, 0x2f, 0x46, 0x75, 0x6e, 0x61, 0x66, 0x75, 0x74, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x62,
-0x75, 0x6c, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x75, 0x63, 0x68, 0x61, 0x72, 0x65, 0x73, 0x74, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x61, 0x5f, 0x50, 0x61, 0x7a, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x6f, 0x6e, 0x68, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x61,
-0x64, 0x75, 0x7a, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x74, 0x61, 0x6d, 0x6f, 0x72, 0x6f,
-0x73, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x74, 0x5f, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4f, 0x6a, 0x69, 0x6e, 0x61, 0x67, 0x61, 0x0, 0x41, 0x6e, 0x74, 0x61,
-0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x75, 0x6d, 0x6f, 0x6e, 0x74, 0x44, 0x55, 0x72, 0x76, 0x69, 0x6c, 0x6c,
-0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x72, 0x69, 0x65, 0x68, 0x61, 0x6d, 0x6e, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x70, 0x65, 0x67, 0x20, 0x41, 0x6d, 0x65, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x69, 0x6e, 0x79, 0x5f, 0x52, 0x69, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x5f, 0x49, 0x6e, 0x6c, 0x65, 0x74, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6b, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x47, 0x75, 0x61, 0x79, 0x61, 0x71, 0x75, 0x69, 0x6c, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x68, 0x61, 0x6e,
-0x67, 0x68, 0x61, 0x69, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x43, 0x68, 0x6f, 0x6e, 0x67, 0x71, 0x69, 0x6e, 0x67, 0x20,
-0x41, 0x73, 0x69, 0x61, 0x2f, 0x48, 0x61, 0x72, 0x62, 0x69, 0x6e, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x73,
-0x68, 0x67, 0x61, 0x72, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x72, 0x75, 0x6d, 0x71, 0x69, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6f, 0x5f, 0x50, 0x61, 0x75, 0x6c, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x41, 0x72, 0x61, 0x67, 0x75, 0x61, 0x69, 0x6e, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x54, 0x75, 0x6e, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x61, 0x73, 0x68, 0x6b, 0x65, 0x6e, 0x74, 0x20,
-0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x6e, 0x64, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
-0x69, 0x63, 0x2f, 0x41, 0x75, 0x63, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b,
-0x31, 0x30, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x79, 0x6f, 0x77, 0x61, 0x0,
-0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x6f, 0x66, 0x69, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x45, 0x6c, 0x5f, 0x53, 0x61, 0x6c, 0x76, 0x61, 0x64, 0x6f, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x75,
-0x61, 0x6c, 0x61, 0x5f, 0x4c, 0x75, 0x6d, 0x70, 0x75, 0x72, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x75, 0x63, 0x68,
-0x69, 0x6e, 0x67, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x34, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
-0x2f, 0x4d, 0x6f, 0x73, 0x63, 0x6f, 0x77, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x6d, 0x61, 0x72,
-0x61, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x6f, 0x6c, 0x67, 0x6f, 0x67, 0x72, 0x61, 0x64, 0x0, 0x50,
-0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x69, 0x75, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d,
-0x61, 0x73, 0x65, 0x72, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x65, 0x72, 0x6d, 0x6f, 0x73,
-0x69, 0x6c, 0x6c, 0x6f, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x61, 0x69, 0x72, 0x6f, 0x62, 0x69, 0x0,
-0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x53, 0x61, 0x69, 0x70, 0x61, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
-0x4d, 0x61, 0x63, 0x61, 0x75, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64,
-0x61, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78, 0x0, 0x45,
-0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x49, 0x73, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x4d, 0x61, 0x6e, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6b, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e,
-0x6f, 0x75, 0x6d, 0x65, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x6e,
-0x69, 0x71, 0x75, 0x65, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x56, 0x6f, 0x73, 0x74,
-0x6f, 0x6b, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x36, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
-0x2f, 0x45, 0x66, 0x61, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x6f, 0x64, 0x74, 0x68,
-0x61, 0x62, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x46, 0x61, 0x65, 0x72, 0x6f, 0x65, 0x0, 0x41,
-0x73, 0x69, 0x61, 0x2f, 0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4c, 0x6a, 0x75,
-0x62, 0x6c, 0x6a, 0x61, 0x6e, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75, 0x6a, 0x75, 0x6d, 0x62,
-0x75, 0x72, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x69, 0x67, 0x6f, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f,
-0x70, 0x65, 0x2f, 0x41, 0x74, 0x68, 0x65, 0x6e, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61,
-0x6c, 0x69, 0x66, 0x61, 0x78, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x6c, 0x61, 0x63, 0x65, 0x5f,
-0x42, 0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x6f, 0x6f, 0x73, 0x65, 0x5f, 0x42, 0x61,
-0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x63, 0x74, 0x6f, 0x6e, 0x0, 0x41, 0x73,
-0x69, 0x61, 0x2f, 0x42, 0x61, 0x67, 0x68, 0x64, 0x61, 0x64, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x74,
-0x6f, 0x63, 0x6b, 0x68, 0x6f, 0x6c, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x6f, 0x72, 0x74,
-0x6f, 0x6c, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x52, 0x69, 0x79, 0x61, 0x64, 0x68, 0x0, 0x41, 0x73, 0x69, 0x61,
-0x2f, 0x54, 0x65, 0x68, 0x72, 0x61, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x37, 0x0, 0x45, 0x74,
-0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x39, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x75, 0x61, 0x6b,
-0x63, 0x68, 0x6f, 0x74, 0x74, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x72, 0x75, 0x73, 0x73, 0x65, 0x6c,
-0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x48, 0x6f, 0x6e, 0x6f, 0x6c, 0x75, 0x6c, 0x75, 0x0, 0x41,
-0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6c, 0x67, 0x69, 0x65, 0x72, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x43, 0x6f, 0x72, 0x61, 0x6c, 0x5f, 0x48, 0x61, 0x72, 0x62, 0x6f, 0x75, 0x72, 0x0, 0x41, 0x6d, 0x65, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x77, 0x73, 0x6f, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x65, 0x6b, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x4b, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x73, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x73,
-0x74, 0x61, 0x5f, 0x52, 0x69, 0x63, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x76, 0x61,
-0x6e, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x75, 0x62, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x4e, 0x69, 0x61, 0x6d, 0x65, 0x79, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x6e, 0x6a,
-0x75, 0x6c, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x50, 0x68, 0x6e, 0x6f, 0x6d, 0x5f, 0x50, 0x65, 0x6e, 0x68, 0x0, 0x45,
-0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x64, 0x72, 0x69, 0x64, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x43, 0x65, 0x75, 0x74, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x73, 0x68, 0x67, 0x61, 0x62, 0x61, 0x74, 0x0,
-0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x62, 0x69, 0x6c, 0x69, 0x73, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4a, 0x61,
-0x6b, 0x61, 0x72, 0x74, 0x61, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x50, 0x6f, 0x6e, 0x74, 0x69, 0x61, 0x6e, 0x61, 0x6b,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x75, 0x61, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
-0x2f, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x74, 0x61, 0x70, 0x75, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x6b, 0x61,
-0x73, 0x73, 0x61, 0x72, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x5f, 0x4d, 0x6f,
-0x72, 0x65, 0x73, 0x62, 0x79, 0x0, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x4e, 0x61, 0x73, 0x73, 0x61, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x6e,
-0x61, 0x75, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x61, 0x5f, 0x56, 0x69, 0x73, 0x74,
-0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x69, 0x72, 0x75, 0x6e, 0x65, 0x70, 0x65, 0x20, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x6f, 0x5f, 0x56, 0x65, 0x6c, 0x68, 0x6f, 0x20, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x69, 0x6f, 0x5f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x0, 0x45, 0x75,
-0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4c, 0x69, 0x73, 0x62, 0x6f, 0x6e, 0x20, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
-0x2f, 0x4d, 0x61, 0x64, 0x65, 0x69, 0x72, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x41, 0x70, 0x69,
-0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x2d, 0x61, 0x75, 0x2d, 0x50, 0x72,
-0x69, 0x6e, 0x63, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x69, 0x72, 0x6f, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x72, 0x62, 0x61, 0x64, 0x6f, 0x73, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72,
-0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44,
-0x75, 0x73, 0x68, 0x61, 0x6e, 0x62, 0x65, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x32, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x74, 0x6f, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x44, 0x61, 0x72, 0x5f, 0x65, 0x73, 0x5f, 0x53, 0x61, 0x6c, 0x61, 0x61, 0x6d, 0x0, 0x41, 0x66, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x44, 0x6f, 0x75, 0x61, 0x6c, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e,
-0x64, 0x68, 0x6f, 0x65, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x65, 0x6b, 0x61, 0x74, 0x65, 0x72, 0x69, 0x6e,
-0x62, 0x75, 0x72, 0x67, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x70, 0x61, 0x6c, 0x61, 0x0,
-0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x79, 0x6f, 0x74, 0x74, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x42, 0x69, 0x73, 0x73, 0x61, 0x75, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4b, 0x65, 0x72, 0x67,
-0x75, 0x65, 0x6c, 0x65, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x72, 0x61, 0x72, 0x65, 0x0,
-0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x69, 0x62, 0x72, 0x65, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x61, 0x6a, 0x75, 0x72, 0x6f, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63,
-0x2f, 0x4b, 0x77, 0x61, 0x6a, 0x61, 0x6c, 0x65, 0x69, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x69, 0x6e, 0x67,
-0x61, 0x70, 0x6f, 0x72, 0x65, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x0, 0x50, 0x61, 0x63, 0x69,
-0x66, 0x69, 0x63, 0x2f, 0x4d, 0x69, 0x64, 0x77, 0x61, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d,
-0x65, 0x78, 0x69, 0x63, 0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42,
-0x61, 0x68, 0x69, 0x61, 0x5f, 0x42, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x43, 0x61, 0x6e, 0x63, 0x75, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x72,
-0x69, 0x64, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x65,
-0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x43, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
-0x65, 0x2f, 0x4b, 0x69, 0x65, 0x76, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x69, 0x6d, 0x66, 0x65, 0x72,
-0x6f, 0x70, 0x6f, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x55, 0x7a, 0x68, 0x67, 0x6f, 0x72, 0x6f, 0x64,
-0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x5a, 0x61, 0x70, 0x6f, 0x72, 0x6f, 0x7a, 0x68, 0x79, 0x65, 0x0, 0x41,
+0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50, 0x72, 0x61, 0x67, 0x75, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x54, 0x69, 0x6a, 0x75, 0x61, 0x6e, 0x61, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x68,
+0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x72, 0x69, 0x70, 0x6f, 0x6c, 0x69, 0x0, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6c, 0x61, 0x6e, 0x63, 0x2d, 0x53, 0x61, 0x62, 0x6c, 0x6f, 0x6e, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75, 0x6a, 0x75, 0x6d, 0x62, 0x75, 0x72, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
+0x65, 0x2f, 0x53, 0x74, 0x6f, 0x63, 0x6b, 0x68, 0x6f, 0x6c, 0x6d, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
+0x46, 0x61, 0x6b, 0x61, 0x6f, 0x66, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x79, 0x65,
+0x6e, 0x6e, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x5f,
+0x53, 0x70, 0x61, 0x69, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x56, 0x61, 0x6e, 0x63, 0x6f, 0x75,
+0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x77, 0x73, 0x6f, 0x6e, 0x20, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x0, 0x45, 0x74,
+0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x32, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x6c, 0x5f,
+0x53, 0x61, 0x6c, 0x76, 0x61, 0x64, 0x6f, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x6b, 0x61, 0x73, 0x73,
+0x61, 0x72, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x72, 0x69, 0x65, 0x68, 0x61, 0x6d, 0x6e, 0x0,
+0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x75,
+0x6e, 0x61, 0x66, 0x75, 0x74, 0x69, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x56, 0x69,
+0x6e, 0x63, 0x65, 0x6e, 0x74, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x69, 0x67, 0x61, 0x6c, 0x69, 0x0,
+0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4c, 0x75, 0x78, 0x65, 0x6d, 0x62, 0x6f, 0x75, 0x72, 0x67, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x4f, 0x75, 0x61, 0x67, 0x61, 0x64, 0x6f, 0x75, 0x67, 0x6f, 0x75, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x42, 0x69, 0x73, 0x68, 0x6b, 0x65, 0x6b, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x75, 0x6e,
+0x69, 0x73, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x69, 0x62, 0x72, 0x65, 0x76, 0x69, 0x6c, 0x6c, 0x65,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x65, 0x67, 0x75, 0x63, 0x69, 0x67, 0x61, 0x6c, 0x70, 0x61,
+0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x50, 0x68, 0x6e, 0x6f, 0x6d, 0x5f, 0x50, 0x65, 0x6e, 0x68, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x4d, 0x61, 0x6e, 0x69, 0x6c, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x6e, 0x67,
+0x75, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x61, 0x67, 0x68, 0x64, 0x61, 0x64, 0x0, 0x45, 0x75, 0x72, 0x6f,
+0x70, 0x65, 0x2f, 0x42, 0x72, 0x75, 0x73, 0x73, 0x65, 0x6c, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x72, 0x65,
+0x64, 0x6e, 0x65, 0x6b, 0x6f, 0x6c, 0x79, 0x6d, 0x73, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x72, 0x75, 0x6d,
+0x71, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x61, 0x68, 0x72, 0x61, 0x69, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61,
+0x2f, 0x44, 0x69, 0x6c, 0x69, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x54, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x6e,
+0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x75, 0x61, 0x6b, 0x63, 0x68, 0x6f, 0x74, 0x74, 0x0, 0x41,
+0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x62, 0x75, 0x6d, 0x62, 0x61, 0x73, 0x68, 0x69, 0x0, 0x45, 0x75, 0x72,
+0x6f, 0x70, 0x65, 0x2f, 0x50, 0x61, 0x72, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x65, 0x6b, 0x61, 0x74,
+0x65, 0x72, 0x69, 0x6e, 0x62, 0x75, 0x72, 0x67, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x61, 0x73,
+0x73, 0x61, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x6f, 0x6e, 0x68, 0x61, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x68, 0x69, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d,
+0x54, 0x2d, 0x38, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x68, 0x61, 0x72, 0x74, 0x6f, 0x75, 0x6d, 0x0,
+0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x45, 0x66, 0x61, 0x74, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x54, 0x6f, 0x72, 0x74, 0x6f, 0x6c, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x70,
+0x61, 0x6c, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x61, 0x6e, 0x64, 0x61, 0x0, 0x50, 0x61,
+0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x69, 0x72, 0x69, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x0, 0x45, 0x74, 0x63,
+0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x33, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74,
+0x6f, 0x5f, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x47, 0x75, 0x65,
+0x72, 0x6e, 0x73, 0x65, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x50, 0x79, 0x6f, 0x6e, 0x67, 0x79, 0x61, 0x6e, 0x67,
+0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x69, 0x65, 0x76, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
+0x55, 0x7a, 0x68, 0x67, 0x6f, 0x72, 0x6f, 0x64, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x5a, 0x61, 0x70, 0x6f,
+0x72, 0x6f, 0x7a, 0x68, 0x79, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x61, 0x62, 0x6f, 0x72, 0x6f,
+0x6e, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x75, 0x61, 0x6c, 0x61, 0x5f, 0x4c, 0x75, 0x6d, 0x70, 0x75, 0x72,
+0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x75, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69,
+0x63, 0x2f, 0x50, 0x61, 0x67, 0x6f, 0x5f, 0x50, 0x61, 0x67, 0x6f, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x46,
+0x72, 0x65, 0x65, 0x74, 0x6f, 0x77, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x67, 0x61, 0x64,
+0x69, 0x73, 0x68, 0x75, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x5f,
+0x47, 0x65, 0x6f, 0x72, 0x67, 0x69, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x0, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x44, 0x6f, 0x75, 0x61, 0x6c, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x68, 0x69, 0x6d, 0x70,
+0x68, 0x75, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64, 0x61, 0x6d, 0x0,
+0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x52, 0x69, 0x67, 0x61, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43,
+0x6f, 0x6d, 0x6f, 0x72, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f, 0x76, 0x6f, 0x73, 0x69, 0x62, 0x69, 0x72,
+0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4f, 0x6d, 0x73, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x69,
+0x65, 0x6e, 0x74, 0x69, 0x61, 0x6e, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50, 0x6f, 0x64, 0x67, 0x6f,
+0x72, 0x69, 0x63, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x6f, 0x66, 0x69, 0x61, 0x0, 0x41, 0x74,
+0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x41, 0x7a, 0x6f, 0x72, 0x65, 0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69,
+0x63, 0x2f, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x70, 0x75, 0x74,
+0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x20, 0x45, 0x75, 0x72, 0x6f,
+0x70, 0x65, 0x2f, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4b, 0x72, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x69, 0x6a, 0x6b, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e,
+0x6f, 0x75, 0x6d, 0x65, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x65, 0x68, 0x72, 0x61, 0x6e, 0x0, 0x41, 0x73,
+0x69, 0x61, 0x2f, 0x44, 0x68, 0x61, 0x6b, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x73,
+0x5f, 0x41, 0x6e, 0x67, 0x65, 0x6c, 0x65, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x6f, 0x6e, 0x61,
+0x63, 0x6f, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x41, 0x6e, 0x74, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x72, 0x69,
+0x76, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x49, 0x72, 0x6b, 0x75, 0x74, 0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61,
+0x2f, 0x43, 0x68, 0x69, 0x74, 0x61, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x56, 0x6f,
+0x73, 0x74, 0x6f, 0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x54, 0x69, 0x72, 0x61, 0x6e, 0x65, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x72, 0x65, 0x6e, 0x61, 0x64, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47,
+0x4d, 0x54, 0x2d, 0x37, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4c, 0x69, 0x73, 0x62, 0x6f, 0x6e, 0x20, 0x41,
+0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x4d, 0x61, 0x64, 0x65, 0x69, 0x72, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72,
+0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x76, 0x61, 0x6e, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x61, 0x73, 0x68,
+0x6b, 0x65, 0x6e, 0x74, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x6d, 0x61, 0x72, 0x6b, 0x61, 0x6e, 0x64, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4f, 0x6a, 0x69, 0x6e, 0x61, 0x67, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x42, 0x6c, 0x61, 0x6e, 0x74, 0x79, 0x72, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x6e, 0x61, 0x6b,
+0x72, 0x79, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x69, 0x6e, 0x73, 0x68, 0x61, 0x73, 0x61, 0x0, 0x50,
+0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x74, 0x6f, 0x6e, 0x0, 0x41, 0x6e, 0x74, 0x61,
+0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
+0x69, 0x63, 0x2f, 0x57, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x69, 0x67, 0x6f,
+0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x69, 0x72, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
+0x65, 0x2f, 0x43, 0x68, 0x69, 0x73, 0x69, 0x6e, 0x61, 0x75, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x52, 0x6f,
+0x6d, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x50, 0x72, 0x69,
+0x6e, 0x63, 0x65, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x67, 0x6f, 0x6f, 0x6e, 0x0, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6e, 0x61, 0x6d, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x45, 0x6c, 0x5f, 0x41, 0x61, 0x69, 0x75, 0x6e, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x75, 0x61,
+0x64, 0x61, 0x6c, 0x63, 0x61, 0x6e, 0x61, 0x6c, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x61, 0x6c, 0x69,
+0x6e, 0x69, 0x6e, 0x67, 0x72, 0x61, 0x64, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x6d, 0x6d, 0x61, 0x6e, 0x0, 0x45,
+0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x75, 0x63, 0x68, 0x61, 0x72, 0x65, 0x73, 0x74, 0x0, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x42, 0x69, 0x73, 0x73, 0x61, 0x75, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x6e,
+0x5f, 0x4d, 0x61, 0x72, 0x69, 0x6e, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44, 0x75, 0x73, 0x68, 0x61, 0x6e, 0x62,
+0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x63, 0x68, 0x61, 0x74, 0x6b, 0x61, 0x20, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x41, 0x6e, 0x61, 0x64, 0x79, 0x72, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x61, 0x67, 0x6f,
+0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x63, 0x61, 0x6f, 0x0, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72,
+0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x7a, 0x61, 0x74, 0x6c, 0x61, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x75,
+0x73, 0x63, 0x61, 0x74, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x69, 0x6d, 0x61, 0x0, 0x45, 0x75,
+0x72, 0x6f, 0x70, 0x65, 0x2f, 0x5a, 0x75, 0x72, 0x69, 0x63, 0x68, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
+0x2f, 0x52, 0x65, 0x79, 0x6b, 0x6a, 0x61, 0x76, 0x69, 0x6b, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43,
+0x61, 0x6e, 0x63, 0x75, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72,
+0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x69, 0x73, 0x65, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72,
+0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x73, 0x65, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4d, 0x61, 0x6e, 0x61, 0x75, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6f, 0x61, 0x5f, 0x56,
+0x69, 0x73, 0x74, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x6f, 0x5f, 0x56,
+0x65, 0x6c, 0x68, 0x6f, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x6f, 0x2d, 0x4e, 0x6f,
+0x76, 0x6f, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x30, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x53, 0x74, 0x5f, 0x4c, 0x75, 0x63, 0x69, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x63, 0x61,
+0x75, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x6c, 0x61, 0x62, 0x6f, 0x0, 0x50, 0x61, 0x63, 0x69,
+0x66, 0x69, 0x63, 0x2f, 0x52, 0x61, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x67, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x42, 0x61, 0x6e, 0x6a, 0x75, 0x6c, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x34, 0x0, 0x41,
+0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x67, 0x61, 0x64, 0x61, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42,
+0x72, 0x61, 0x74, 0x69, 0x73, 0x6c, 0x61, 0x76, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x41, 0x6e, 0x64,
+0x6f, 0x72, 0x72, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x61, 0x6e, 0x67, 0x6b, 0x6f, 0x6b, 0x0, 0x45, 0x74,
+0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x35, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x42, 0x6f, 0x75, 0x67,
+0x61, 0x69, 0x6e, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x61, 0x74, 0x69,
+0x63, 0x61, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x64, 0x6d, 0x6f, 0x6e, 0x74, 0x6f, 0x6e,
+0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x42,
+0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x75, 0x76, 0x69, 0x6b, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x0, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x72, 0x69, 0x62, 0x6f, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x48, 0x6f, 0x76, 0x64, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x53, 0x79, 0x64,
+0x6e, 0x65, 0x79, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x4d, 0x65, 0x6c, 0x62, 0x6f, 0x75,
+0x72, 0x6e, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x72, 0x5f, 0x65, 0x73, 0x5f, 0x53, 0x61,
+0x6c, 0x61, 0x61, 0x6d, 0x0, 0x4d, 0x53, 0x54, 0x37, 0x4d, 0x44, 0x54, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4d, 0x61, 0x73, 0x65, 0x72, 0x75, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x61, 0x6a, 0x75, 0x72,
+0x6f, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x77, 0x61, 0x6a, 0x61, 0x6c, 0x65, 0x69, 0x6e, 0x0,
+0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x61, 0x69, 0x72, 0x6f, 0x62, 0x69, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
+0x41, 0x73, 0x68, 0x67, 0x61, 0x62, 0x61, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x48, 0x6f, 0x6e, 0x67, 0x5f, 0x4b,
+0x6f, 0x6e, 0x67, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x33, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6f,
+0x5f, 0x50, 0x61, 0x75, 0x6c, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x64, 0x72, 0x69, 0x64,
+0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x65, 0x75, 0x74, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4a,
+0x61, 0x6b, 0x61, 0x72, 0x74, 0x61, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x50, 0x6f, 0x6e, 0x74, 0x69, 0x61, 0x6e, 0x61,
+0x6b, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x39, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x75,
+0x6e, 0x65, 0x61, 0x75, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x6d, 0x65, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x69, 0x74, 0x6b, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x59, 0x61, 0x6b, 0x75, 0x74, 0x61, 0x74, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x43, 0x6f, 0x70, 0x65, 0x6e,
+0x68, 0x61, 0x67, 0x65, 0x6e, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x63, 0x4d,
+0x75, 0x72, 0x64, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x51, 0x61, 0x74, 0x61, 0x72, 0x0, 0x50, 0x61, 0x63, 0x69,
+0x66, 0x69, 0x63, 0x2f, 0x53, 0x61, 0x69, 0x70, 0x61, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42,
+0x61, 0x72, 0x62, 0x61, 0x64, 0x6f, 0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6b, 0x65,
+0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x48, 0x65, 0x6c, 0x73, 0x69, 0x6e, 0x6b, 0x69, 0x0, 0x49, 0x6e, 0x64,
+0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x79, 0x6f, 0x74, 0x74, 0x65, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
+0x2f, 0x46, 0x61, 0x65, 0x72, 0x6f, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x72, 0x61,
+0x6c, 0x5f, 0x48, 0x61, 0x72, 0x62, 0x6f, 0x75, 0x72, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x30,
+0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x72, 0x61, 0x6a, 0x65, 0x76, 0x6f, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x54, 0x62, 0x69, 0x6c, 0x69, 0x73, 0x69, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x31,
+0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69,
+0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x5f, 0x4d, 0x6f, 0x72, 0x65, 0x73,
+0x62, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x73, 0x75, 0x6e, 0x63, 0x69, 0x6f, 0x6e, 0x0,
+0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61, 0x68, 0x69, 0x74, 0x69, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x4c, 0x6f, 0x6d, 0x65, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x43, 0x61, 0x6e, 0x61,
+0x72, 0x79, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x6f, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x73, 0x62, 0x75,
+0x72, 0x67, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x41, 0x64, 0x65, 0x6c, 0x61, 0x69, 0x64,
+0x65, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x48,
+0x69, 0x6c, 0x6c, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x72, 0x69, 0x67, 0x6f, 0x74, 0x0,
+0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x74, 0x61, 0x6e, 0x6c, 0x65, 0x79, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x4e, 0x69, 0x63, 0x6f, 0x73, 0x69, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44, 0x75, 0x62, 0x61, 0x69,
+0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4b, 0x65, 0x72, 0x67, 0x75, 0x65, 0x6c, 0x65, 0x6e, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x64, 0x6a, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
+0x2f, 0x53, 0x6b, 0x6f, 0x70, 0x6a, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x64, 0x65, 0x6e, 0x0, 0x50, 0x61,
+0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x41, 0x70, 0x69, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x48,
+0x6f, 0x6e, 0x6f, 0x6c, 0x75, 0x6c, 0x75, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x32, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x65, 0x72, 0x6d, 0x6f, 0x73, 0x69, 0x6c, 0x6c, 0x6f, 0x0, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x4a, 0x6f, 0x68, 0x6e, 0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
+0x69, 0x63, 0x2f, 0x41, 0x75, 0x63, 0x6b, 0x6c, 0x61, 0x6e, 0x64, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d,
+0x6f, 0x73, 0x63, 0x6f, 0x77, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x69, 0x6d, 0x66, 0x65, 0x72, 0x6f,
+0x70, 0x6f, 0x6c, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x6f, 0x6c, 0x67, 0x6f, 0x67, 0x72, 0x61, 0x64,
+0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61,
+0x2f, 0x4b, 0x61, 0x62, 0x75, 0x6c, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x61, 0x6c, 0x74, 0x61, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x75, 0x62, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x42, 0x61, 0x68, 0x69, 0x61, 0x5f, 0x42, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x73, 0x20, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x72, 0x69, 0x64, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4d, 0x6f, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x65, 0x79, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x49, 0x73, 0x6c,
+0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x4d, 0x61, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x61, 0x64, 0x75,
+0x7a, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x46, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x65, 0x7a, 0x61, 0x20,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x61, 0x67, 0x75, 0x61, 0x69, 0x6e, 0x61, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x65, 0x6c, 0x65, 0x6d, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x4d, 0x61, 0x63, 0x65, 0x69, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x63, 0x69, 0x66,
+0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x6d, 0x0, 0x41,
+0x73, 0x69, 0x61, 0x2f, 0x53, 0x65, 0x6f, 0x75, 0x6c, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75,
+0x61, 0x64, 0x65, 0x6c, 0x6f, 0x75, 0x70, 0x65, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x32, 0x0, 0x49,
+0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43, 0x6f, 0x63, 0x6f, 0x73, 0x0, 0x41, 0x72, 0x63, 0x74, 0x69, 0x63, 0x2f, 0x4c,
+0x6f, 0x6e, 0x67, 0x79, 0x65, 0x61, 0x72, 0x62, 0x79, 0x65, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41,
+0x64, 0x64, 0x69, 0x73, 0x5f, 0x41, 0x62, 0x61, 0x62, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61,
+0x6d, 0x61, 0x72, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x72, 0x61, 0x72, 0x65, 0x0, 0x41,
+0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x50, 0x65, 0x72, 0x74, 0x68, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47,
+0x4d, 0x54, 0x2d, 0x31, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74, 0x61, 0x5f, 0x49,
+0x73, 0x61, 0x62, 0x65, 0x6c, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x73, 0x61, 0x62, 0x6c, 0x61,
+0x6e, 0x63, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x65, 0x72, 0x65, 0x76, 0x61, 0x6e, 0x0, 0x41, 0x74, 0x6c,
+0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x42, 0x65, 0x72, 0x6d, 0x75, 0x64, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54,
+0x61, 0x69, 0x70, 0x65, 0x69, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x36, 0x0, 0x41, 0x6d, 0x65, 0x72,
+0x69, 0x63, 0x61, 0x2f, 0x47, 0x6f, 0x64, 0x74, 0x68, 0x61, 0x62, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x57,
+0x61, 0x72, 0x73, 0x61, 0x77, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x6f, 0x6e, 0x67, 0x61, 0x74,
+0x61, 0x70, 0x75, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x6c, 0x6d, 0x61, 0x74, 0x79, 0x20, 0x41, 0x73, 0x69, 0x61,
+0x2f, 0x51, 0x79, 0x7a, 0x79, 0x6c, 0x6f, 0x72, 0x64, 0x61, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63,
+0x61, 0x2f, 0x44, 0x61, 0x76, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x65, 0x69, 0x72, 0x75, 0x74, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x61, 0x74, 0x65, 0x6d, 0x61, 0x6c, 0x61, 0x0, 0x41, 0x73,
+0x69, 0x61, 0x2f, 0x4b, 0x61, 0x72, 0x61, 0x63, 0x68, 0x69, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x63,
+0x63, 0x72, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x75, 0x65, 0x72, 0x74, 0x6f, 0x5f, 0x52,
+0x69, 0x63, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x61, 0x5f, 0x50, 0x61, 0x7a, 0x0, 0x41,
0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x59, 0x6f, 0x72, 0x6b, 0x20, 0x41, 0x6d, 0x65, 0x72,
0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x74, 0x72, 0x6f, 0x69, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x50, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x20, 0x41,
@@ -891,227 +959,179 @@ static const char ianaIdData[] = {
0x6e, 0x6e, 0x65, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61,
0x2f, 0x57, 0x69, 0x6e, 0x61, 0x6d, 0x61, 0x63, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x65, 0x6e,
0x74, 0x75, 0x63, 0x6b, 0x79, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x69, 0x63, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x75, 0x69, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x41, 0x75, 0x73, 0x74,
-0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c,
-0x69, 0x61, 0x2f, 0x4d, 0x65, 0x6c, 0x62, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x0, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x42, 0x61, 0x72, 0x74, 0x68, 0x65, 0x6c, 0x65,
-0x6d, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x75, 0x77, 0x61, 0x69, 0x74, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x42, 0x61, 0x6e, 0x67, 0x75, 0x69, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x41, 0x73, 0x75, 0x6e, 0x63, 0x69, 0x6f, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x53, 0x74, 0x5f, 0x56, 0x69, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x65,
-0x72, 0x6c, 0x69, 0x6e, 0x20, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x6e,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x73, 0x5f, 0x41, 0x6e, 0x67, 0x65, 0x6c, 0x65, 0x73,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74, 0x6f, 0x5f, 0x44, 0x6f, 0x6d, 0x69, 0x6e,
-0x67, 0x6f, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x31, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41,
-0x6c, 0x6d, 0x61, 0x74, 0x79, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x51, 0x79, 0x7a, 0x79, 0x6c, 0x6f, 0x72, 0x64, 0x61,
-0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x65, 0x20,
-0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x4c, 0x69, 0x6e, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x0, 0x50,
-0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x57, 0x61, 0x6c, 0x6c, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54,
-0x68, 0x69, 0x6d, 0x70, 0x68, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75,
-0x61, 0x68, 0x75, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x7a, 0x61, 0x74, 0x6c, 0x61,
-0x6e, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x50, 0x65, 0x72, 0x74, 0x68, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x72, 0x61, 0x63, 0x61, 0x6f, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63,
-0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x77, 0x73, 0x6f, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x74,
-0x6d, 0x61, 0x6e, 0x64, 0x75, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x67, 0x75, 0x69, 0x6c,
-0x6c, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x72, 0x6f, 0x76, 0x69, 0x61, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
-0x2f, 0x42, 0x65, 0x6c, 0x67, 0x72, 0x61, 0x64, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x75, 0x73, 0x63, 0x61,
-0x74, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x43, 0x68, 0x69, 0x73, 0x69, 0x6e, 0x61, 0x75, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x79, 0x65, 0x6e, 0x6e, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e,
-0x2f, 0x52, 0x65, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x73, 0x6d, 0x65,
-0x72, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x6d, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
-0x42, 0x61, 0x6b, 0x75, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x44, 0x61, 0x72, 0x77, 0x69,
-0x6e, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x41, 0x6e, 0x74, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x72, 0x69, 0x76,
-0x6f, 0x0, 0x4d, 0x53, 0x54, 0x37, 0x4d, 0x44, 0x54, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x52, 0x69, 0x67,
-0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x6a, 0x69, 0x62, 0x6f, 0x75, 0x74, 0x69, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x75, 0x61, 0x64, 0x61, 0x6c, 0x63, 0x61, 0x6e, 0x61, 0x6c, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x61, 0x6c, 0x61, 0x70, 0x61, 0x67, 0x6f, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61,
-0x2f, 0x4d, 0x61, 0x6e, 0x69, 0x6c, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x75, 0x69, 0x73, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61,
+0x2f, 0x44, 0x61, 0x6d, 0x61, 0x73, 0x63, 0x75, 0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61,
+0x72, 0x61, 0x77, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x34, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x42, 0x6f, 0x67, 0x6f, 0x74, 0x61, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x43,
+0x61, 0x70, 0x65, 0x5f, 0x56, 0x65, 0x72, 0x64, 0x65, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f,
+0x44, 0x61, 0x72, 0x77, 0x69, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x61, 0x6b, 0x75, 0x0, 0x45, 0x75, 0x72,
+0x6f, 0x70, 0x65, 0x2f, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74, 0x61, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4a,
+0x65, 0x72, 0x75, 0x73, 0x61, 0x6c, 0x65, 0x6d, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4c, 0x6a, 0x75, 0x62,
+0x6c, 0x6a, 0x61, 0x6e, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x72, 0x61, 0x7a, 0x7a, 0x61, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x41, 0x73, 0x69,
+0x61, 0x2f, 0x4b, 0x61, 0x74, 0x6d, 0x61, 0x6e, 0x64, 0x75, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x43, 0x61, 0x6c, 0x63,
+0x75, 0x74, 0x74, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x61,
+0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4a, 0x65, 0x72, 0x73, 0x65, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x72, 0x61, 0x74, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d,
+0x54, 0x2b, 0x37, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x0, 0x41,
+0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x6b, 0x61, 0x72, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4f,
+0x73, 0x6c, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x41, 0x74, 0x68, 0x65, 0x6e, 0x73, 0x0, 0x41, 0x73,
+0x69, 0x61, 0x2f, 0x4b, 0x75, 0x77, 0x61, 0x69, 0x74, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x6f,
+0x6e, 0x61, 0x70, 0x65, 0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x6f, 0x73, 0x72, 0x61, 0x65, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x73, 0x74, 0x61, 0x5f, 0x52, 0x69, 0x63, 0x61, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x4d, 0x62, 0x61, 0x62, 0x61, 0x6e, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d,
+0x61, 0x72, 0x74, 0x69, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x52, 0x65, 0x75,
+0x6e, 0x69, 0x6f, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x36, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
+0x65, 0x2f, 0x49, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x72, 0x61, 0x73,
+0x6e, 0x6f, 0x79, 0x61, 0x72, 0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f, 0x76, 0x6f, 0x6b, 0x75, 0x7a,
+0x6e, 0x65, 0x74, 0x73, 0x6b, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x62, 0x69, 0x64, 0x6a, 0x61, 0x6e,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x69, 0x6f, 0x5f, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x6f, 0x20,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x69, 0x72, 0x75, 0x6e, 0x65, 0x70, 0x65, 0x0, 0x43, 0x53, 0x54,
+0x36, 0x43, 0x44, 0x54, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x68, 0x6f, 0x65, 0x6e, 0x69, 0x78,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x6e, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72,
+0x69, 0x63, 0x61, 0x2f, 0x53, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x0, 0x45, 0x74,
+0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x35, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d,
+0x61, 0x77, 0x73, 0x6f, 0x6e, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x6c, 0x64, 0x69, 0x76, 0x65,
+0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x65, 0x6c, 0x67, 0x72, 0x61, 0x64, 0x65, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x73, 0x6d, 0x65, 0x72, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
+0x44, 0x61, 0x77, 0x73, 0x6f, 0x6e, 0x5f, 0x43, 0x72, 0x65, 0x65, 0x6b, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x43, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x75, 0x64, 0x61,
+0x70, 0x65, 0x73, 0x74, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e, 0x64, 0x68, 0x6f, 0x65, 0x6b,
+0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4a, 0x61, 0x79, 0x61, 0x70, 0x75, 0x72, 0x61, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72,
+0x61, 0x6c, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x65, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61,
+0x6c, 0x69, 0x61, 0x2f, 0x4c, 0x69, 0x6e, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54,
+0x2d, 0x34, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x72, 0x61, 0x63, 0x61, 0x73, 0x0, 0x41,
+0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x79, 0x6f, 0x77, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f,
+0x70, 0x65, 0x2f, 0x5a, 0x61, 0x67, 0x72, 0x65, 0x62, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75,
+0x65, 0x6e, 0x6f, 0x73, 0x5f, 0x41, 0x69, 0x72, 0x65, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41,
+0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x4c, 0x61, 0x5f, 0x52, 0x69, 0x6f, 0x6a, 0x61, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x52, 0x69, 0x6f, 0x5f,
+0x47, 0x61, 0x6c, 0x6c, 0x65, 0x67, 0x6f, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67,
+0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53, 0x61, 0x6c, 0x74, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x5f, 0x4a, 0x75, 0x61, 0x6e, 0x20,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x53, 0x61,
+0x6e, 0x5f, 0x4c, 0x75, 0x69, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e,
+0x74, 0x69, 0x6e, 0x61, 0x2f, 0x54, 0x75, 0x63, 0x75, 0x6d, 0x61, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x41, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61, 0x2f, 0x55, 0x73, 0x68, 0x75, 0x61, 0x69, 0x61, 0x20, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x74, 0x61, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x20, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x6f, 0x72, 0x64, 0x6f, 0x62, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x4a, 0x75, 0x6a, 0x75, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x6e, 0x64, 0x6f,
+0x7a, 0x61, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6c, 0x6d, 0x65, 0x72,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x6f, 0x72, 0x6f, 0x6e, 0x74, 0x6f, 0x20, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x71, 0x61, 0x6c, 0x75, 0x69, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x4d, 0x6f, 0x6e, 0x74, 0x72, 0x65, 0x61, 0x6c, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x69,
+0x70, 0x69, 0x67, 0x6f, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6e, 0x67, 0x6e, 0x69,
+0x72, 0x74, 0x75, 0x6e, 0x67, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x68, 0x75, 0x6e, 0x64, 0x65,
+0x72, 0x5f, 0x42, 0x61, 0x79, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x6d, 0x61, 0x6b, 0x6f, 0x0,
+0x41, 0x73, 0x69, 0x61, 0x2f, 0x52, 0x69, 0x79, 0x61, 0x64, 0x68, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f,
+0x54, 0x72, 0x75, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x6f, 0x6b, 0x79, 0x6f, 0x0, 0x50, 0x61, 0x63, 0x69,
+0x66, 0x69, 0x63, 0x2f, 0x45, 0x6e, 0x64, 0x65, 0x72, 0x62, 0x75, 0x72, 0x79, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
+0x2f, 0x4c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69,
0x61, 0x6e, 0x61, 0x70, 0x6f, 0x6c, 0x69, 0x73, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64,
0x69, 0x61, 0x6e, 0x61, 0x2f, 0x4d, 0x61, 0x72, 0x65, 0x6e, 0x67, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x56, 0x65, 0x76, 0x61, 0x79, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72,
-0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x61, 0x6c, 0x6d, 0x65, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44, 0x75,
-0x62, 0x61, 0x69, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73,
-0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x32, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
-0x2f, 0x52, 0x65, 0x79, 0x6b, 0x6a, 0x61, 0x76, 0x69, 0x6b, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x32,
-0x0, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x47, 0x75, 0x65, 0x72,
-0x6e, 0x73, 0x65, 0x79, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x5a, 0x75, 0x72, 0x69, 0x63, 0x68, 0x0, 0x41,
-0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x74, 0x61, 0x6e, 0x6c, 0x65, 0x79, 0x0, 0x45, 0x75, 0x72, 0x6f,
-0x70, 0x65, 0x2f, 0x5a, 0x61, 0x67, 0x72, 0x65, 0x62, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x69,
-0x6a, 0x75, 0x61, 0x6e, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x61, 0x6c, 0x61, 0x75, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4a, 0x75, 0x6e, 0x65, 0x61, 0x75, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x4e, 0x6f, 0x6d, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x69, 0x74, 0x6b, 0x61, 0x20,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x59, 0x61, 0x6b, 0x75, 0x74, 0x61, 0x74, 0x0, 0x41, 0x6d, 0x65, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x6e, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53,
-0x77, 0x69, 0x66, 0x74, 0x5f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f,
-0x76, 0x6f, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f, 0x76, 0x6f, 0x6b,
-0x75, 0x7a, 0x6e, 0x65, 0x74, 0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4f, 0x6d, 0x73, 0x6b, 0x0, 0x41, 0x66,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x70, 0x75, 0x74, 0x6f, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
-0x2f, 0x43, 0x61, 0x70, 0x65, 0x5f, 0x56, 0x65, 0x72, 0x64, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x50, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x72, 0x69, 0x62, 0x6f, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4a, 0x65,
-0x72, 0x73, 0x65, 0x79, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x46, 0x72, 0x65, 0x65, 0x74, 0x6f, 0x77, 0x6e,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x72, 0x61, 0x63, 0x61, 0x73, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x6c, 0x61, 0x6e, 0x63, 0x2d, 0x53, 0x61, 0x62, 0x6c, 0x6f, 0x6e, 0x0, 0x41, 0x73,
-0x69, 0x61, 0x2f, 0x44, 0x61, 0x6d, 0x61, 0x73, 0x63, 0x75, 0x73, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
-0x2f, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x61,
-0x6e, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x57, 0x61, 0x72, 0x73, 0x61, 0x77, 0x0, 0x45, 0x74, 0x63,
-0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x31, 0x32, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x65, 0x72, 0x65, 0x76, 0x61, 0x6e,
-0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x72, 0x61, 0x7a, 0x7a, 0x61, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0,
-0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x75, 0x6e, 0x65, 0x69, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69,
-0x61, 0x2f, 0x48, 0x6f, 0x62, 0x61, 0x72, 0x74, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x43,
-0x75, 0x72, 0x72, 0x69, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x47, 0x69, 0x62, 0x72, 0x61, 0x6c, 0x74,
-0x61, 0x72, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x35, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74,
-0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x73, 0x65, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44, 0x69, 0x6c, 0x69, 0x0,
-0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x53, 0x61, 0x72, 0x61, 0x6a, 0x65, 0x76, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61,
-0x2f, 0x4b, 0x72, 0x61, 0x73, 0x6e, 0x6f, 0x79, 0x61, 0x72, 0x73, 0x6b, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x53, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x67, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x56, 0x61,
-0x6e, 0x63, 0x6f, 0x75, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x77, 0x73,
-0x6f, 0x6e, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x68, 0x6f, 0x72, 0x73,
-0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x61, 0x72, 0x61, 0x77, 0x61, 0x0, 0x41, 0x73, 0x69,
-0x61, 0x2f, 0x41, 0x6d, 0x6d, 0x61, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x49, 0x73, 0x74, 0x61, 0x6e,
-0x62, 0x75, 0x6c, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x65, 0x69, 0x72, 0x75, 0x74, 0x0, 0x45, 0x75, 0x72, 0x6f,
-0x70, 0x65, 0x2f, 0x56, 0x69, 0x6c, 0x6e, 0x69, 0x75, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x54, 0x69,
-0x72, 0x61, 0x6e, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x6f, 0x2d, 0x4e, 0x6f,
-0x76, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x45, 0x64, 0x6d, 0x6f, 0x6e, 0x74, 0x6f, 0x6e, 0x20,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x42, 0x61,
-0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x75, 0x76, 0x69, 0x6b, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x59, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x0, 0x41, 0x74, 0x6c,
-0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x41, 0x7a, 0x6f, 0x72, 0x65, 0x73, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x41, 0x64, 0x64, 0x69, 0x73, 0x5f, 0x41, 0x62, 0x61, 0x62, 0x61, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43,
-0x68, 0x61, 0x67, 0x6f, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x5f,
-0x50, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x44, 0x75, 0x62, 0x6c, 0x69,
-0x6e, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x61, 0x67, 0x6f, 0x5f, 0x50, 0x61, 0x67, 0x6f, 0x0,
-0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x73, 0x61, 0x6b, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
-0x2f, 0x42, 0x75, 0x64, 0x61, 0x70, 0x65, 0x73, 0x74, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x63,
-0x6f, 0x72, 0x65, 0x73, 0x62, 0x79, 0x73, 0x75, 0x6e, 0x64, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50,
-0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x53, 0x70, 0x61, 0x69, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x4a, 0x6f, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x73, 0x62, 0x75, 0x72, 0x67, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x44, 0x68,
-0x61, 0x6b, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x61, 0x68, 0x69, 0x61, 0x0, 0x45, 0x75,
-0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x61, 0x6c, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x72, 0x61, 0x64, 0x0, 0x41, 0x66, 0x72,
-0x69, 0x63, 0x61, 0x2f, 0x4b, 0x68, 0x61, 0x72, 0x74, 0x6f, 0x75, 0x6d, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f,
-0x4c, 0x75, 0x78, 0x65, 0x6d, 0x62, 0x6f, 0x75, 0x72, 0x67, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x48, 0x6f, 0x76, 0x64,
-0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x30, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d,
-0x61, 0x68, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50, 0x72, 0x61, 0x67, 0x75, 0x65, 0x0, 0x50, 0x61,
-0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x54, 0x72, 0x75, 0x6b, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44,
-0x61, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x68, 0x61, 0x76, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x43, 0x61, 0x6c,
-0x63, 0x75, 0x74, 0x74, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x6f, 0x6e, 0x61, 0x70, 0x65,
-0x20, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4b, 0x6f, 0x73, 0x72, 0x61, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f,
-0x70, 0x65, 0x2f, 0x4d, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74,
-0x5f, 0x4c, 0x75, 0x63, 0x69, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x61, 0x6e, 0x64, 0x61,
-0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x63, 0x61, 0x0, 0x41, 0x74,
-0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x2f, 0x53, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x47, 0x65, 0x6f, 0x72, 0x67, 0x69, 0x61,
-0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x36, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x61,
-0x62, 0x6f, 0x72, 0x6f, 0x6e, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50, 0x6f, 0x64, 0x67, 0x6f, 0x72,
-0x69, 0x63, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x75, 0x61, 0x6d, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x42, 0x6f, 0x69, 0x73, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x68, 0x69, 0x70, 0x72, 0x6f,
-0x63, 0x6b, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x73, 0x61, 0x62, 0x6c, 0x61, 0x6e, 0x63, 0x61,
-0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x69, 0x67, 0x61, 0x6c, 0x69, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x54, 0x68, 0x75, 0x6c, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x69, 0x63, 0x6f, 0x73, 0x69,
-0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x67, 0x61, 0x64, 0x61, 0x6e, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f,
-0x41, 0x6e, 0x61, 0x64, 0x79, 0x72, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x63, 0x68, 0x61, 0x74, 0x6b,
-0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73, 0x0,
-0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x62, 0x61, 0x62, 0x61, 0x6e, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
-0x42, 0x61, 0x68, 0x72, 0x61, 0x69, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x50, 0x75, 0x65, 0x72,
-0x74, 0x6f, 0x5f, 0x52, 0x69, 0x63, 0x6f, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x67, 0x61, 0x64,
-0x69, 0x73, 0x68, 0x75, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x76, 0x69,
-0x73, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e, 0x61, 0x75, 0x72, 0x75, 0x0, 0x41, 0x66, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x41, 0x63, 0x63, 0x72, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x61, 0x6e, 0x67, 0x6b, 0x6f,
-0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6e, 0x0, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x46, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x65, 0x7a, 0x61, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x42, 0x65, 0x6c, 0x65, 0x6d, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x63,
-0x65, 0x69, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x63, 0x69, 0x66, 0x65, 0x20, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x6d, 0x0, 0x45, 0x75, 0x72, 0x6f,
-0x70, 0x65, 0x2f, 0x43, 0x6f, 0x70, 0x65, 0x6e, 0x68, 0x61, 0x67, 0x65, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e,
-0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x4b, 0x6e, 0x6f, 0x78, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49,
-0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x54, 0x65, 0x6c, 0x6c, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65,
-0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x65, 0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x42, 0x65, 0x75, 0x6c,
-0x61, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b,
-0x6f, 0x74, 0x61, 0x2f, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e,
-0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x53, 0x61, 0x6c, 0x65,
-0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x72, 0x69, 0x67, 0x6f, 0x74, 0x0, 0x41, 0x73,
-0x69, 0x61, 0x2f, 0x4a, 0x65, 0x72, 0x75, 0x73, 0x61, 0x6c, 0x65, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x41, 0x72, 0x75, 0x62, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x72, 0x61, 0x63, 0x68, 0x69, 0x0,
-0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6f, 0x5f, 0x54, 0x6f, 0x6d, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61,
-0x2f, 0x50, 0x79, 0x6f, 0x6e, 0x67, 0x79, 0x61, 0x6e, 0x67, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x6c, 0x61, 0x64,
-0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x6b, 0x68, 0x61, 0x6c, 0x69,
-0x6e, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x73, 0x74, 0x2d, 0x4e, 0x65, 0x72, 0x61, 0x0, 0x41, 0x66, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x4f, 0x75, 0x61, 0x67, 0x61, 0x64, 0x6f, 0x75, 0x67, 0x6f, 0x75, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63,
-0x61, 0x2f, 0x42, 0x6c, 0x61, 0x6e, 0x74, 0x79, 0x72, 0x65, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x52,
-0x61, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x67, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x33, 0x0, 0x41,
-0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x62, 0x69, 0x64, 0x6a, 0x61, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
-0x2f, 0x4c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x61, 0x74,
-0x65, 0x6d, 0x61, 0x6c, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x69, 0x6a, 0x69, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x49,
-0x72, 0x6b, 0x75, 0x74, 0x73, 0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x52, 0x6f, 0x6d, 0x65, 0x0, 0x49,
-0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75, 0x73, 0x0, 0x45, 0x74, 0x63, 0x2f,
-0x47, 0x4d, 0x54, 0x2d, 0x34, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b, 0x33, 0x0, 0x41, 0x66, 0x72, 0x69,
-0x63, 0x61, 0x2f, 0x43, 0x6f, 0x6e, 0x61, 0x6b, 0x72, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53,
-0x61, 0x6e, 0x74, 0x61, 0x5f, 0x49, 0x73, 0x61, 0x62, 0x65, 0x6c, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44,
-0x61, 0x6b, 0x61, 0x72, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x41, 0x6e, 0x64, 0x6f, 0x72, 0x72, 0x61, 0x0,
-0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4f, 0x73, 0x6c, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x51, 0x61, 0x74,
-0x61, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x67, 0x6f, 0x6f, 0x6e, 0x0, 0x49, 0x6e, 0x64, 0x69,
-0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x6c, 0x64, 0x69, 0x76, 0x65, 0x73, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x50,
-0x61, 0x72, 0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x64, 0x65, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70,
-0x65, 0x2f, 0x56, 0x69, 0x65, 0x6e, 0x6e, 0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x38, 0x0, 0x45,
-0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x33, 0x0, 0x41, 0x72, 0x63, 0x74, 0x69, 0x63, 0x2f, 0x4c, 0x6f, 0x6e,
-0x67, 0x79, 0x65, 0x61, 0x72, 0x62, 0x79, 0x65, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x72,
-0x65, 0x6e, 0x61, 0x64, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x69, 0x6d, 0x61, 0x0, 0x41,
-0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x62, 0x75, 0x6d, 0x62, 0x61, 0x73, 0x68, 0x69, 0x0, 0x41, 0x73, 0x69,
+0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x56, 0x65, 0x76, 0x61, 0x79, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
+0x43, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x57, 0x69, 0x6e, 0x6e,
+0x69, 0x70, 0x65, 0x67, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x69, 0x6e, 0x79, 0x5f, 0x52,
+0x69, 0x76, 0x65, 0x72, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x5f,
+0x49, 0x6e, 0x6c, 0x65, 0x74, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75,
+0x74, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x6a, 0x69, 0x62, 0x6f, 0x75, 0x74, 0x69, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x6c, 0x69, 0x66, 0x61, 0x78, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x47, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x42, 0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
+0x2f, 0x47, 0x6f, 0x6f, 0x73, 0x65, 0x5f, 0x42, 0x61, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d,
+0x6f, 0x6e, 0x63, 0x74, 0x6f, 0x6e, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6f, 0x5f, 0x54, 0x6f,
+0x6d, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x54, 0x68, 0x6f, 0x6d, 0x61, 0x73,
+0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4c, 0x75, 0x73, 0x61, 0x6b, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x50, 0x6f, 0x72, 0x74, 0x2d, 0x61, 0x75, 0x2d, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x0, 0x41, 0x66,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x69, 0x61, 0x6d, 0x65, 0x79, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2b,
+0x33, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6c, 0x67, 0x69, 0x65, 0x72, 0x73, 0x0, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x75, 0x61, 0x79, 0x61, 0x71, 0x75, 0x69, 0x6c, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61,
+0x6e, 0x2f, 0x43, 0x68, 0x61, 0x67, 0x6f, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x68, 0x61, 0x6e, 0x67, 0x68,
+0x61, 0x69, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x69, 0x61, 0x62, 0x61, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x61, 0x6d, 0x70, 0x6f, 0x5f, 0x47, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x0, 0x50,
+0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4d, 0x69, 0x64, 0x77, 0x61, 0x79, 0x0, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44,
+0x54, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x0, 0x50,
+0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x47, 0x61, 0x6c, 0x61, 0x70, 0x61, 0x67, 0x6f, 0x73, 0x0, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x67, 0x75, 0x69, 0x6c, 0x6c, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x43, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f,
+0x4b, 0x69, 0x74, 0x74, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6e, 0x74, 0x69, 0x61,
+0x67, 0x6f, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x50, 0x61, 0x6c, 0x61, 0x75, 0x0, 0x41, 0x73, 0x69,
0x61, 0x2f, 0x59, 0x61, 0x6b, 0x75, 0x74, 0x73, 0x6b, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x68, 0x61, 0x6e, 0x64,
-0x79, 0x67, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x72, 0x61, 0x74, 0x69, 0x73, 0x6c, 0x61, 0x76,
-0x61, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x31, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x4d, 0x61, 0x6c, 0x61, 0x62, 0x6f, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4b, 0x72, 0x61, 0x6c, 0x65,
-0x6e, 0x64, 0x69, 0x6a, 0x6b, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x35, 0x0, 0x41, 0x6e, 0x74, 0x61,
-0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65, 0x0, 0x45, 0x75, 0x72,
-0x6f, 0x70, 0x65, 0x2f, 0x53, 0x6b, 0x6f, 0x70, 0x6a, 0x65, 0x0, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x64,
-0x6a, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x42, 0x69, 0x73, 0x68, 0x6b, 0x65, 0x6b, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75, 0x65, 0x6e, 0x6f, 0x73, 0x5f, 0x41, 0x69, 0x72, 0x65, 0x73, 0x0, 0x41,
-0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x6c, 0x69, 0x66, 0x61, 0x78, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72,
-0x61, 0x6c, 0x69, 0x61, 0x2f, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f,
-0x52, 0x65, 0x67, 0x69, 0x6e, 0x61, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x41, 0x64, 0x65,
-0x6c, 0x61, 0x69, 0x64, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x6c, 0x6d, 0x61, 0x74, 0x79, 0x0, 0x41, 0x6d,
-0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x69, 0x61, 0x62, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61,
-0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x68, 0x61, 0x6e, 0x67, 0x68,
-0x61, 0x69, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x42, 0x72, 0x69, 0x73, 0x62, 0x61, 0x6e,
-0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x61, 0x6f, 0x5f, 0x50, 0x61, 0x75, 0x6c, 0x6f, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x65, 0x77, 0x5f, 0x59, 0x6f, 0x72, 0x6b, 0x0, 0x45, 0x75, 0x72,
-0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x69, 0x65, 0x76, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4d, 0x61, 0x67, 0x61, 0x64, 0x61,
-0x6e, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f,
-0x4e, 0x6f, 0x76, 0x6f, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d,
-0x6f, 0x73, 0x63, 0x6f, 0x77, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x48, 0x6f, 0x62, 0x61,
-0x72, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74, 0x61, 0x72, 0x0,
-0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x6f, 0x6c, 0x69, 0x73,
-0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x6c, 0x61, 0x64, 0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x0, 0x45, 0x75,
-0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54, 0x61, 0x73,
-0x68, 0x6b, 0x65, 0x6e, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x61, 0x6b, 0x75, 0x74, 0x73, 0x6b, 0x0, 0x55,
-0x54, 0x43, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x34, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x33, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x31, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x39, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x38, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x37, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x36, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x35, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x34, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x34, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x33, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x33, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x31, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x30, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x32, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x33, 0x3a,
-0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x34, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x34, 0x3a,
-0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x35, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x35, 0x3a,
-0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x35, 0x3a, 0x34, 0x35, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x36, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x36, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x37, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x38, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x39, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x39, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x30, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x32, 0x3a,
-0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x34, 0x3a,
-0x30, 0x30, 0x0
+0x79, 0x67, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x69, 0x6c, 0x6e, 0x69, 0x75, 0x73, 0x0, 0x41,
+0x66, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x6f, 0x6e, 0x72, 0x6f, 0x76, 0x69, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66,
+0x69, 0x63, 0x2f, 0x47, 0x75, 0x61, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x61, 0x6e, 0x6d,
+0x61, 0x72, 0x6b, 0x73, 0x68, 0x61, 0x76, 0x6e, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x46, 0x69, 0x6a,
+0x69, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x75, 0x61, 0x0, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x62, 0x79, 0x73, 0x75, 0x6e, 0x64, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x53, 0x74, 0x5f, 0x42, 0x61, 0x72, 0x74, 0x68, 0x65, 0x6c, 0x65, 0x6d, 0x79,
+0x0, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x47, 0x72, 0x61,
+0x6e, 0x64, 0x5f, 0x54, 0x75, 0x72, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4f, 0x72, 0x61, 0x6c, 0x20, 0x41, 0x73,
+0x69, 0x61, 0x2f, 0x41, 0x71, 0x74, 0x61, 0x75, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x71, 0x74, 0x6f, 0x62, 0x65,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x20, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x4b, 0x6e, 0x6f, 0x78, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x2f, 0x54, 0x65, 0x6c, 0x6c, 0x5f, 0x43,
+0x69, 0x74, 0x79, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x65,
+0x65, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f,
+0x74, 0x61, 0x2f, 0x42, 0x65, 0x75, 0x6c, 0x61, 0x68, 0x20, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f,
+0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x41, 0x6d,
+0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x44, 0x61, 0x6b, 0x6f, 0x74, 0x61, 0x2f, 0x4e,
+0x65, 0x77, 0x5f, 0x53, 0x61, 0x6c, 0x65, 0x6d, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4d, 0x61, 0x74,
+0x61, 0x6d, 0x6f, 0x72, 0x6f, 0x73, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x54, 0x68, 0x75, 0x6c, 0x65,
+0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0x2d, 0x31, 0x31, 0x0, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x63,
+0x2f, 0x53, 0x74, 0x5f, 0x48, 0x65, 0x6c, 0x65, 0x6e, 0x61, 0x0, 0x50, 0x61, 0x63, 0x69, 0x66, 0x69, 0x63, 0x2f, 0x4e,
+0x69, 0x75, 0x65, 0x0, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x2f, 0x4d, 0x61, 0x75, 0x72, 0x69, 0x74, 0x69, 0x75, 0x73,
+0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74, 0x61, 0x72, 0x20, 0x41, 0x73,
+0x69, 0x61, 0x2f, 0x43, 0x68, 0x6f, 0x69, 0x62, 0x61, 0x6c, 0x73, 0x61, 0x6e, 0x0, 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d,
+0x54, 0x2d, 0x32, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4d, 0x69, 0x6e, 0x73, 0x6b, 0x0, 0x41, 0x66, 0x72,
+0x69, 0x63, 0x61, 0x2f, 0x4a, 0x75, 0x62, 0x61, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x48,
+0x6f, 0x62, 0x61, 0x72, 0x74, 0x20, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x43, 0x75, 0x72, 0x72,
+0x69, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x6c, 0x61, 0x64, 0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x20,
+0x41, 0x73, 0x69, 0x61, 0x2f, 0x53, 0x61, 0x6b, 0x68, 0x61, 0x6c, 0x69, 0x6e, 0x20, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55,
+0x73, 0x74, 0x2d, 0x4e, 0x65, 0x72, 0x61, 0x0, 0x41, 0x6e, 0x74, 0x61, 0x72, 0x63, 0x74, 0x69, 0x63, 0x61, 0x2f, 0x44,
+0x75, 0x6d, 0x6f, 0x6e, 0x74, 0x44, 0x55, 0x72, 0x76, 0x69, 0x6c, 0x6c, 0x65, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
+0x2f, 0x44, 0x75, 0x62, 0x6c, 0x69, 0x6e, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x56, 0x69, 0x65, 0x6e, 0x6e,
+0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x42, 0x75, 0x65, 0x6e, 0x6f, 0x73, 0x5f, 0x41, 0x69, 0x72, 0x65, 0x73,
+0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x48, 0x61, 0x6c, 0x69, 0x66, 0x61, 0x78, 0x0, 0x41, 0x75, 0x73,
+0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x53, 0x79, 0x64, 0x6e, 0x65, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63,
+0x61, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x6e, 0x61, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x41,
+0x64, 0x65, 0x6c, 0x61, 0x69, 0x64, 0x65, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x41, 0x6c, 0x6d, 0x61, 0x74, 0x79, 0x0,
+0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x75, 0x69, 0x61, 0x62, 0x61, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x4d, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x5f, 0x43, 0x69, 0x74, 0x79, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69,
+0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x63, 0x61, 0x67, 0x6f, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61,
+0x2f, 0x42, 0x72, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x65, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x4e, 0x65,
+0x77, 0x5f, 0x59, 0x6f, 0x72, 0x6b, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x4b, 0x69, 0x65, 0x76, 0x0, 0x41,
+0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x0, 0x41, 0x6d, 0x65,
+0x72, 0x69, 0x63, 0x61, 0x2f, 0x44, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4e, 0x6f, 0x76,
+0x6f, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x49, 0x72, 0x6b, 0x75, 0x74, 0x73,
+0x6b, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x4b, 0x72, 0x61, 0x73, 0x6e, 0x6f, 0x79, 0x61, 0x72, 0x73, 0x6b, 0x0, 0x41,
+0x73, 0x69, 0x61, 0x2f, 0x4b, 0x61, 0x6d, 0x63, 0x68, 0x61, 0x74, 0x6b, 0x61, 0x0, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x65,
+0x2f, 0x4d, 0x6f, 0x73, 0x63, 0x6f, 0x77, 0x0, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x2f, 0x48, 0x6f,
+0x62, 0x61, 0x72, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x55, 0x6c, 0x61, 0x61, 0x6e, 0x62, 0x61, 0x61, 0x74, 0x61,
+0x72, 0x0, 0x41, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x2f, 0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x6f, 0x6c,
+0x69, 0x73, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x56, 0x6c, 0x61, 0x64, 0x69, 0x76, 0x6f, 0x73, 0x74, 0x6f, 0x6b, 0x0,
+0x45, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x2f, 0x42, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x54,
+0x61, 0x73, 0x68, 0x6b, 0x65, 0x6e, 0x74, 0x0, 0x41, 0x73, 0x69, 0x61, 0x2f, 0x59, 0x61, 0x6b, 0x75, 0x74, 0x73, 0x6b,
+0x0, 0x55, 0x54, 0x43, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x34, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31,
+0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31,
+0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x31, 0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x39, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x38, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x37, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x36, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x35, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x34, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x34, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x33, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30,
+0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2d, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x33, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x34, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x34, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x35, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x35, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x35, 0x3a, 0x34, 0x35, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x36, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x36, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x37, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x38, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30,
+0x39, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x30, 0x39, 0x3a, 0x33, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31,
+0x30, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x31, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31,
+0x32, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31, 0x33, 0x3a, 0x30, 0x30, 0x0, 0x55, 0x54, 0x43, 0x2b, 0x31,
+0x34, 0x3a, 0x30, 0x30, 0x0
};
// GENERATED PART ENDS HERE
diff --git a/src/corelib/tools/qunicodetables.cpp b/src/corelib/tools/qunicodetables.cpp
index 5f7eee947f..73dce81d4a 100644
--- a/src/corelib/tools/qunicodetables.cpp
+++ b/src/corelib/tools/qunicodetables.cpp
@@ -31,7 +31,7 @@
**
****************************************************************************/
-/* This file is autogenerated from the Unicode 6.3 database. Do not edit */
+/* This file is autogenerated from the Unicode 7.0 database. Do not edit */
#include "qunicodetables_p.h"
@@ -87,778 +87,778 @@ static const unsigned short uc_property_trie[] = {
15248, 15248, 15248, 15248, 15248, 15248, 15248, 15248,
15280, 15280, 15280, 15280, 15312, 15344, 15376, 15408,
15440, 15472, 15280, 15504, 15536, 15568, 15600, 15632,
- 15664, 15696, 15728, 9904, 9904, 9904, 9904, 9904,
- 15760, 15792, 15824, 15856, 15888, 15888, 15888, 15920,
- 15952, 15984, 16016, 16048, 16080, 16112, 16112, 16144,
- 16176, 16208, 9904, 9904, 16240, 16272, 16272, 16304,
- 16336, 16336, 16336, 16336, 16336, 16336, 16368, 16400,
-
- 16432, 16464, 16496, 16528, 16560, 16592, 16624, 16656,
- 16688, 16720, 16752, 16752, 16784, 16816, 16848, 16880,
- 16912, 16944, 16976, 17008, 16944, 17040, 17072, 17104,
- 17136, 17136, 17168, 17200, 17232, 17232, 17264, 17296,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
-
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17328, 17328, 17328,
- 17328, 17328, 17328, 17328, 17328, 17360, 17392, 17392,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
-
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
-
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
-
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
-
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
-
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17424, 17424, 17424,
- 17424, 17424, 17424, 17424, 17424, 17456, 17488, 17520,
-
- 17552, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 15664, 15696, 15728, 15760, 15792, 15824, 15856, 9904,
+ 15888, 15920, 15952, 15984, 16016, 16016, 16016, 16048,
+ 16080, 16112, 16144, 16176, 16208, 16240, 16240, 16272,
+ 16304, 16336, 16368, 9904, 16400, 16432, 16432, 16464,
+ 16496, 16496, 16496, 16496, 16496, 16496, 16528, 16560,
+
+ 16592, 16624, 16656, 16688, 16720, 16752, 16784, 16816,
+ 16848, 16880, 16912, 16912, 16944, 16976, 17008, 17040,
+ 17072, 17104, 17136, 17168, 17104, 17200, 17232, 17264,
+ 17296, 17296, 17328, 17360, 17392, 17392, 17424, 17456,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17488, 17488, 17488,
+ 17488, 17488, 17488, 17488, 17488, 17520, 17552, 17552,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
- 17584, 17584, 17584, 17584, 17616, 17648, 17680, 17712,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17584, 17584, 17584,
+ 17584, 17584, 17584, 17584, 17584, 17616, 17648, 17680,
+
+ 17712, 17744, 17744, 17744, 17744, 17744, 17744, 17744,
+ 17744, 17744, 17744, 17744, 17744, 17744, 17744, 17744,
+ 17744, 17744, 17744, 17744, 17744, 17744, 17744, 17744,
17744, 17744, 17744, 17744, 17744, 17744, 17744, 17744,
- 17776, 17808, 17840, 17872, 17904, 17936, 17936, 17968,
- 18000, 18032, 18064, 18096, 18128, 18160, 9904, 18192,
- 18224, 18256, 18288, 18320, 18352, 18384, 18416, 18448,
- 18480, 18512, 18544, 18576, 18608, 18640, 18672, 9904,
- 18704, 18736, 18768, 18800, 18832, 18864, 18896, 18928,
- 18960, 18992, 9904, 9904, 9904, 9904, 19024, 19056,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
-
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
-
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
-
- 19120, 19152, 19184, 19216, 19248, 19280, 19088, 19120,
- 19152, 19184, 19216, 19248, 19280, 19088, 19120, 19152,
- 19184, 19216, 19248, 19280, 19088, 19120, 19152, 19184,
- 19216, 19248, 19280, 19088, 19120, 19152, 19184, 19216,
- 19248, 19280, 19088, 19120, 19152, 19184, 19216, 19248,
- 19280, 19088, 19120, 19152, 19184, 19216, 19248, 19280,
- 19088, 19120, 19152, 19184, 19216, 19248, 19280, 19088,
- 19120, 19152, 19184, 19216, 19248, 19312, 19344, 19376,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
- 19408, 19408, 19408, 19408, 19408, 19408, 19408, 19408,
-
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
-
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19440, 19440, 19440, 19440, 19440, 19440, 19440, 19440,
- 19472, 19472, 19472, 19472, 19472, 19472, 19472, 19472,
- 19504, 19536, 19568, 19600, 19632, 19632, 19664, 17520,
- 19696, 19728, 19760, 19792, 19792, 19824, 19856, 19792,
- 19792, 19792, 19792, 19792, 19792, 19792, 19792, 19792,
- 19792, 19888, 19920, 19792, 19952, 19792, 19984, 20016,
- 20048, 20080, 20112, 20144, 19792, 19792, 19792, 20176,
- 20208, 20240, 20272, 20304, 20336, 20368, 20400, 20432,
-
- 20464, 20496, 20528, 9904, 20560, 20560, 20560, 20592,
- 20624, 20656, 20688, 20720, 20752, 9904, 20784, 20816,
- 9904, 9904, 9904, 9904, 20848, 20880, 20912, 9904,
- 20944, 20976, 21008, 9904, 21040, 21072, 21104, 9904,
- 21136, 21168, 21200, 21232, 21264, 21296, 9904, 9904,
- 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904,
- 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904,
- 9904, 9904, 9904, 9904, 9904, 9904, 9904, 9904,
- 21328, 21360, 21392, 8400, 8400, 8400, 8400, 8400,
- 21424, 21456, 8400, 8400, 21488, 21520, 8400, 8400,
- 21552, 21584, 21616, 21648, 8400, 8400, 8400, 8400,
- 21680, 21712, 21744, 21776, 8400, 8400, 8400, 8400,
- 21808, 21808, 21840, 8400, 8400, 8400, 8400, 8400,
+ 17744, 17744, 17744, 17744, 17776, 17808, 17840, 17872,
+ 17904, 17904, 17904, 17904, 17904, 17904, 17904, 17904,
+ 17936, 17968, 18000, 18032, 18064, 18096, 18096, 18128,
+ 18160, 18192, 18224, 18256, 18288, 18320, 9904, 18352,
+ 18384, 18416, 18448, 18480, 18512, 18544, 18576, 18608,
+ 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18864,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 19120,
+ 19152, 19184, 19216, 19248, 9904, 9904, 19280, 19312,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+
+ 19376, 19408, 19440, 19472, 19504, 19536, 19344, 19376,
+ 19408, 19440, 19472, 19504, 19536, 19344, 19376, 19408,
+ 19440, 19472, 19504, 19536, 19344, 19376, 19408, 19440,
+ 19472, 19504, 19536, 19344, 19376, 19408, 19440, 19472,
+ 19504, 19536, 19344, 19376, 19408, 19440, 19472, 19504,
+ 19536, 19344, 19376, 19408, 19440, 19472, 19504, 19536,
+ 19344, 19376, 19408, 19440, 19472, 19504, 19536, 19344,
+ 19376, 19408, 19440, 19472, 19504, 19568, 19600, 19632,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+ 19664, 19664, 19664, 19664, 19664, 19664, 19664, 19664,
+
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19696, 19696, 19696, 19696, 19696, 19696, 19696, 19696,
+ 19728, 19728, 19728, 19728, 19728, 19728, 19728, 19728,
+ 19760, 19792, 19824, 19856, 19888, 19888, 19920, 17680,
+ 19952, 19984, 20016, 20048, 20048, 20080, 20112, 20048,
+ 20048, 20048, 20048, 20048, 20048, 20048, 20048, 20048,
+ 20048, 20144, 20176, 20048, 20208, 20048, 20240, 20272,
+ 20304, 20336, 20368, 20400, 20048, 20048, 20048, 20432,
+ 20464, 20496, 20528, 20560, 20592, 20624, 20656, 20688,
+
+ 20720, 20752, 20784, 9904, 20816, 20816, 20816, 20848,
+ 20880, 20912, 20944, 20976, 21008, 21040, 21072, 21104,
+ 9904, 9904, 9904, 9904, 21136, 21168, 21200, 21232,
+ 21264, 21296, 21328, 21360, 21392, 21424, 21456, 9904,
+ 21488, 21520, 21552, 21584, 21616, 21648, 9904, 9904,
+ 21680, 21712, 21744, 21776, 9904, 9904, 9904, 9904,
+ 21808, 21808, 21808, 21808, 21808, 21808, 21808, 21808,
+ 21808, 21840, 21872, 21904, 9904, 9904, 9904, 9904,
+ 21936, 21968, 22000, 22032, 22064, 22096, 8400, 8400,
+ 22128, 22160, 8400, 8400, 22192, 22224, 8400, 8400,
+ 22256, 22288, 22320, 22352, 22384, 8400, 22416, 22448,
+ 22480, 22512, 22544, 22576, 22608, 22640, 8400, 8400,
+ 22672, 22672, 22704, 8400, 8400, 8400, 8400, 8400,
8400, 8400, 8400, 8400, 8400, 8400, 8400, 8400,
- 8400, 8400, 8400, 21872, 8400, 8400, 8400, 8400,
+ 8400, 8400, 8400, 22736, 8400, 8400, 8400, 8400,
8400, 8400, 8400, 8400, 8400, 8400, 8400, 8400,
// 0x11000 - 0x110000
- 21904, 22160, 22416, 22416, 22416, 22416, 22672, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22928, 22928, 22928, 23184, 23440, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 23696, 23696, 23952, 24208, 24464, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 24720, 24720, 24976, 22416, 22416, 22416, 22416, 25232,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 25488, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 25744, 26000, 26256, 26512, 26768, 27024, 27280, 27536,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 27792, 27792, 27792, 27792, 27792, 27792, 28048, 27792,
- 28304, 28560, 28816, 29072, 29328, 29584, 29840, 30096,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
-
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30608, 30608,
- 30608, 30608, 30608, 30608, 30608, 30608, 30864, 31120,
- 31120, 31120, 31120, 31120, 31120, 31120, 31120, 31120,
- 31120, 31120, 31120, 31120, 31120, 31120, 31120, 31376,
- 31632, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 32144, 32144, 32400, 31888, 31888, 31888, 31888, 32656,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
-
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 31888,
- 31888, 31888, 31888, 31888, 31888, 31888, 31888, 32656,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 32912, 33168, 33424, 33424, 33424, 33424, 33424, 33424,
- 33424, 33424, 33424, 33424, 33424, 33424, 33424, 33424,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
-
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 22416,
- 22416, 22416, 22416, 22416, 22416, 22416, 22416, 30352,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
-
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33936,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
-
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33680,
- 33680, 33680, 33680, 33680, 33680, 33680, 33680, 33936,
+ 22768, 23024, 23280, 23536, 23792, 24048, 24304, 24560,
+ 24816, 24560, 25072, 24560, 24560, 24560, 24560, 24560,
+ 25328, 25328, 25328, 25584, 25840, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 26096, 26096, 26352, 26608, 26864, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 27120, 27120, 27376, 27632, 24560, 24560, 24560, 27888,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 28144, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 28400, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 28656, 28912, 29168, 29424, 29680, 29936, 30192, 30448,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 30704, 30960, 30960, 30960, 30960, 30960, 31216, 30960,
+ 31472, 31728, 31984, 32240, 32496, 32752, 33008, 33264,
+ 33520, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34032, 34032,
+ 34032, 34032, 34032, 34032, 34032, 34032, 34288, 34544,
+ 34544, 34544, 34544, 34544, 34544, 34544, 34544, 34544,
+ 34544, 34544, 34544, 34544, 34544, 34544, 34544, 34800,
+ 35056, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35568, 35568, 35824, 35312, 35312, 35312, 35312, 36080,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 35312,
+ 35312, 35312, 35312, 35312, 35312, 35312, 35312, 36080,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 36336, 36592, 36848, 36848, 36848, 36848, 36848, 36848,
+ 36848, 36848, 36848, 36848, 36848, 36848, 36848, 36848,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 24560,
+ 24560, 24560, 24560, 24560, 24560, 24560, 24560, 33776,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37360,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37104,
+ 37104, 37104, 37104, 37104, 37104, 37104, 37104, 37360,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -951,779 +951,594 @@ static const unsigned short uc_property_trie[] = {
109, 110, 109, 110, 114, 114, 114, 115,
115, 115, 116, 117, 118, 119, 120, 121,
- 121, 117, 122, 123, 124, 125, 126, 122,
- 126, 122, 126, 122, 126, 122, 126, 122,
- 127, 128, 129, 130, 131, 78, 132, 132,
- 78, 133, 78, 134, 78, 78, 78, 78,
+ 122, 117, 123, 124, 125, 126, 127, 123,
+ 127, 123, 127, 123, 127, 123, 127, 123,
+ 128, 129, 130, 131, 132, 78, 133, 133,
+ 78, 134, 78, 135, 136, 78, 78, 78,
- 132, 78, 78, 135, 78, 136, 137, 78,
- 138, 139, 78, 140, 78, 78, 78, 139,
- 78, 141, 142, 78, 78, 143, 78, 78,
- 78, 78, 78, 78, 78, 144, 78, 78,
+ 133, 137, 78, 138, 78, 139, 140, 78,
+ 141, 142, 78, 143, 144, 78, 78, 142,
+ 78, 145, 146, 78, 78, 147, 78, 78,
+ 78, 78, 78, 78, 78, 148, 78, 78,
- 145, 78, 78, 145, 78, 78, 78, 78,
- 145, 146, 147, 147, 148, 78, 78, 78,
- 78, 78, 149, 78, 100, 78, 78, 78,
- 78, 78, 78, 78, 78, 78, 78, 78,
+ 149, 78, 78, 149, 78, 78, 78, 150,
+ 149, 151, 152, 152, 153, 78, 78, 78,
+ 78, 78, 154, 78, 100, 78, 78, 78,
+ 78, 78, 78, 78, 78, 78, 155, 78,
78, 78, 78, 78, 78, 78, 78, 78,
- 78, 150, 150, 150, 150, 150, 114, 114,
- 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 152, 152, 153, 153, 153, 153, 153,
-
- 154, 154, 42, 42, 42, 42, 152, 152,
- 155, 152, 152, 152, 155, 152, 152, 152,
- 153, 153, 42, 42, 42, 42, 42, 156,
- 52, 52, 52, 52, 52, 52, 42, 157,
-
- 151, 151, 151, 151, 151, 42, 42, 42,
- 42, 42, 158, 158, 159, 160, 161, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162,
-
- 163, 163, 163, 163, 163, 164, 163, 163,
- 163, 163, 163, 163, 163, 164, 164, 163,
- 164, 163, 164, 163, 163, 165, 166, 166,
- 166, 166, 165, 167, 166, 166, 166, 166,
-
- 166, 168, 168, 169, 169, 169, 169, 170,
- 170, 166, 166, 166, 166, 169, 169, 166,
- 169, 169, 166, 166, 171, 171, 171, 171,
- 172, 166, 166, 166, 166, 164, 164, 164,
-
- 173, 173, 163, 173, 173, 174, 175, 176,
- 176, 176, 175, 175, 175, 176, 176, 177,
- 178, 178, 178, 179, 179, 179, 179, 178,
- 180, 181, 181, 182, 183, 184, 184, 185,
-
- 186, 186, 187, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 188, 188,
- 189, 190, 189, 190, 191, 192, 189, 190,
- 193, 193, 194, 195, 195, 195, 196, 193,
-
- 193, 193, 193, 193, 197, 198, 199, 200,
- 201, 201, 201, 193, 202, 193, 203, 203,
- 204, 205, 205, 205, 205, 205, 205, 205,
- 205, 205, 205, 205, 205, 205, 205, 205,
-
- 205, 205, 193, 205, 205, 205, 205, 205,
- 205, 205, 206, 206, 207, 208, 208, 208,
- 209, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210,
-
- 210, 210, 211, 210, 210, 210, 210, 210,
- 210, 210, 212, 212, 213, 214, 214, 215,
- 216, 217, 218, 219, 219, 220, 221, 222,
- 223, 224, 225, 226, 225, 226, 225, 226,
-
- 225, 226, 227, 228, 227, 228, 227, 228,
- 227, 228, 227, 228, 227, 228, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 236, 237, 239, 240, 240, 240,
-
- 241, 242, 243, 242, 243, 243, 243, 242,
- 243, 243, 243, 243, 242, 241, 242, 243,
- 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 245, 244, 244, 244, 244, 244, 244,
-
- 244, 244, 244, 244, 244, 244, 244, 244,
- 244, 244, 244, 244, 244, 244, 244, 244,
- 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 247, 246, 246, 246, 246, 246, 246,
-
- 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246,
+ 78, 156, 156, 156, 156, 156, 114, 114,
+ 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 158, 158, 159, 159, 159, 159, 159,
+
+ 160, 160, 42, 42, 42, 42, 158, 158,
+ 161, 158, 158, 158, 161, 158, 158, 158,
+ 159, 159, 42, 42, 42, 42, 42, 162,
+ 52, 52, 52, 52, 52, 52, 42, 163,
+
+ 157, 157, 157, 157, 157, 42, 42, 42,
+ 42, 42, 164, 164, 165, 166, 167, 168,
+ 168, 168, 168, 168, 168, 168, 168, 168,
+ 168, 168, 168, 168, 168, 168, 168, 168,
+
+ 169, 169, 169, 169, 169, 170, 169, 169,
+ 169, 169, 169, 169, 169, 170, 170, 169,
+ 170, 169, 170, 169, 169, 171, 172, 172,
+ 172, 172, 171, 173, 172, 172, 172, 172,
+
+ 172, 174, 174, 175, 175, 175, 175, 176,
+ 176, 172, 172, 172, 172, 175, 175, 172,
+ 175, 175, 172, 172, 177, 177, 177, 177,
+ 178, 172, 172, 172, 172, 170, 170, 170,
+
+ 179, 179, 169, 179, 179, 180, 181, 182,
+ 182, 182, 181, 181, 181, 182, 182, 183,
+ 184, 184, 184, 185, 185, 185, 185, 184,
+ 186, 187, 187, 188, 189, 190, 190, 191,
+
+ 192, 192, 193, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 195, 196, 195, 196, 197, 198, 195, 196,
+ 199, 199, 200, 201, 201, 201, 202, 203,
+
+ 199, 199, 199, 199, 204, 205, 206, 207,
+ 208, 208, 208, 199, 209, 199, 210, 210,
+ 211, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212,
+
+ 212, 212, 199, 212, 212, 212, 212, 212,
+ 212, 212, 213, 213, 214, 215, 215, 215,
+ 216, 217, 217, 217, 217, 217, 217, 217,
+ 217, 217, 217, 217, 217, 217, 217, 217,
+
+ 217, 217, 218, 217, 217, 217, 217, 217,
+ 217, 217, 219, 219, 220, 221, 221, 222,
+ 223, 224, 225, 226, 226, 227, 228, 229,
+ 230, 231, 232, 233, 232, 233, 232, 233,
+
+ 232, 233, 234, 235, 234, 235, 234, 235,
+ 234, 235, 234, 235, 234, 235, 234, 235,
+ 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 243, 244, 246, 247, 247, 247,
+
248, 249, 250, 249, 250, 250, 250, 249,
250, 250, 250, 250, 249, 248, 249, 250,
-
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 253, 254,
- 251, 252, 251, 252, 251, 252, 251, 252,
-
- 251, 252, 255, 256, 256, 164, 164, 257,
- 258, 258, 259, 260, 261, 262, 261, 262,
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 251, 252,
-
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 251, 252,
- 251, 252, 251, 252, 251, 252, 251, 252,
-
- 263, 253, 254, 251, 252, 259, 260, 251,
- 252, 259, 260, 251, 252, 259, 260, 264,
- 253, 254, 253, 254, 251, 252, 253, 254,
- 251, 252, 253, 254, 253, 254, 253, 254,
-
- 251, 252, 253, 254, 253, 254, 253, 254,
- 251, 252, 253, 254, 265, 266, 253, 254,
- 253, 254, 253, 254, 253, 254, 267, 268,
- 253, 254, 269, 270, 269, 270, 269, 270,
-
- 259, 260, 259, 260, 259, 260, 259, 260,
- 259, 260, 259, 260, 259, 260, 259, 260,
- 269, 270, 269, 270, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
-
- 271, 272, 271, 272, 273, 274, 275, 276,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 277, 277,
-
- 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 277, 277,
- 277, 277, 277, 277, 277, 277, 277, 193,
- 193, 278, 279, 279, 280, 281, 280, 279,
-
- 193, 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, 283,
- 193, 284, 285, 193, 193, 193, 193, 286,
- 287, 288, 289, 289, 289, 289, 288, 289,
- 289, 289, 290, 288, 289, 289, 289, 289,
-
- 289, 289, 291, 288, 288, 288, 288, 288,
- 289, 289, 288, 289, 289, 290, 292, 289,
- 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308,
-
- 309, 310, 311, 309, 289, 291, 312, 313,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 314, 314, 314, 314, 314, 314, 314, 314,
- 314, 314, 314, 314, 314, 314, 314, 314,
-
- 314, 314, 314, 314, 314, 314, 314, 314,
- 314, 314, 314, 287, 287, 287, 287, 287,
- 314, 314, 314, 315, 316, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
-
- 317, 317, 317, 317, 318, 319, 320, 320,
- 321, 322, 322, 323, 19, 324, 325, 325,
- 326, 326, 326, 326, 326, 326, 327, 327,
- 328, 329, 330, 331, 332, 319, 333, 334,
-
- 335, 336, 337, 337, 337, 337, 338, 339,
- 340, 339, 340, 340, 340, 340, 340, 339,
- 339, 339, 339, 340, 340, 340, 340, 340,
- 340, 340, 340, 341, 341, 341, 341, 341,
-
- 342, 340, 340, 340, 340, 340, 340, 340,
- 339, 340, 340, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 351, 352, 353, 326,
- 326, 354, 354, 354, 355, 354, 354, 356,
-
- 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 371,
- 372, 339, 339, 339, 336, 373, 373, 373,
- 374, 340, 340, 340, 340, 340, 340, 340,
-
- 340, 340, 340, 340, 340, 340, 340, 340,
- 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 339, 339, 339, 339,
- 339, 339, 340, 340, 340, 340, 340, 340,
-
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340,
- 375, 375, 340, 340, 340, 340, 340, 375,
-
- 337, 340, 338, 339, 339, 339, 339, 339,
- 339, 339, 339, 339, 340, 339, 340, 376,
- 340, 340, 339, 337, 377, 339, 378, 378,
- 378, 378, 378, 378, 378, 379, 380, 378,
-
- 378, 378, 378, 381, 378, 382, 382, 378,
- 378, 380, 381, 378, 378, 381, 383, 383,
- 384, 385, 386, 387, 388, 389, 390, 391,
- 392, 393, 375, 375, 375, 394, 394, 395,
-
- 396, 396, 396, 397, 397, 397, 397, 397,
- 397, 397, 397, 397, 397, 397, 319, 398,
- 399, 400, 401, 401, 401, 399, 399, 399,
- 399, 399, 401, 401, 401, 401, 399, 401,
-
- 401, 401, 401, 401, 401, 401, 401, 401,
- 399, 401, 399, 401, 399, 402, 402, 403,
- 404, 405, 404, 404, 405, 404, 404, 405,
- 405, 405, 404, 405, 405, 404, 405, 404,
-
- 404, 404, 405, 404, 405, 404, 405, 404,
- 405, 404, 404, 319, 319, 403, 402, 402,
- 406, 406, 406, 406, 406, 406, 406, 406,
- 406, 407, 407, 407, 406, 406, 406, 406,
-
- 406, 406, 406, 406, 406, 406, 406, 406,
- 406, 406, 406, 407, 407, 406, 341, 341,
- 341, 408, 341, 408, 408, 341, 341, 341,
- 408, 408, 341, 341, 341, 341, 341, 341,
-
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
-
- 409, 409, 409, 409, 409, 409, 410, 410,
- 410, 410, 410, 410, 410, 410, 410, 410,
- 410, 411, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
-
- 412, 413, 414, 415, 416, 417, 418, 419,
- 420, 421, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422,
-
- 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 423, 423, 423, 423, 423,
- 423, 423, 424, 423, 425, 425, 426, 427,
- 428, 429, 430, 287, 287, 287, 287, 287,
-
- 431, 431, 431, 431, 431, 431, 431, 431,
- 431, 431, 431, 431, 431, 431, 431, 431,
- 431, 431, 431, 431, 431, 431, 432, 432,
- 432, 432, 433, 432, 432, 432, 432, 432,
-
- 432, 432, 432, 432, 433, 432, 432, 432,
- 433, 432, 432, 432, 432, 432, 287, 287,
- 434, 434, 434, 434, 434, 434, 434, 434,
- 434, 434, 434, 434, 434, 434, 434, 287,
-
- 435, 436, 436, 436, 436, 436, 435, 436,
- 436, 435, 436, 436, 436, 436, 436, 435,
- 436, 436, 436, 436, 435, 436, 437, 437,
- 437, 438, 438, 438, 287, 287, 439, 287,
-
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
-
- 440, 319, 440, 440, 440, 440, 440, 440,
- 440, 440, 441, 441, 441, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
-
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
-
- 319, 319, 319, 319, 442, 442, 443, 442,
- 442, 443, 442, 442, 442, 443, 443, 443,
- 444, 445, 446, 442, 442, 442, 443, 442,
- 442, 443, 443, 442, 442, 442, 442, 319,
-
- 447, 448, 448, 449, 450, 451, 451, 451,
- 451, 451, 451, 451, 451, 451, 451, 451,
- 451, 451, 451, 451, 451, 451, 451, 451,
- 451, 451, 451, 451, 451, 451, 451, 451,
-
- 451, 451, 451, 451, 451, 451, 451, 451,
- 451, 452, 451, 451, 451, 451, 451, 451,
- 451, 452, 451, 451, 452, 451, 451, 451,
- 451, 451, 453, 454, 455, 451, 449, 449,
-
- 449, 448, 448, 448, 448, 448, 448, 448,
- 448, 449, 449, 449, 449, 456, 457, 454,
- 451, 164, 166, 458, 458, 447, 453, 453,
- 459, 459, 459, 459, 459, 459, 459, 459,
-
- 451, 451, 448, 448, 460, 460, 461, 462,
- 463, 464, 465, 466, 467, 468, 469, 470,
- 471, 472, 473, 474, 474, 474, 474, 474,
- 193, 475, 475, 476, 476, 477, 476, 476,
-
- 193, 478, 479, 479, 193, 480, 480, 480,
- 480, 480, 480, 480, 480, 193, 193, 480,
- 480, 193, 193, 480, 480, 480, 480, 480,
- 480, 480, 480, 480, 480, 480, 480, 480,
-
- 480, 480, 480, 480, 480, 480, 480, 480,
- 480, 193, 480, 480, 480, 480, 480, 480,
- 480, 193, 480, 193, 193, 193, 480, 480,
- 480, 480, 193, 193, 481, 482, 483, 479,
-
- 479, 478, 478, 478, 478, 193, 193, 479,
- 479, 193, 193, 484, 484, 485, 486, 193,
- 193, 193, 193, 193, 193, 193, 193, 483,
- 193, 193, 193, 193, 487, 487, 193, 487,
-
- 480, 480, 478, 478, 193, 193, 488, 489,
- 490, 491, 492, 493, 494, 495, 496, 497,
- 480, 480, 498, 498, 499, 499, 499, 499,
- 499, 500, 501, 502, 193, 193, 193, 193,
-
- 193, 503, 504, 505, 193, 506, 506, 506,
- 506, 506, 506, 193, 193, 193, 193, 506,
- 506, 193, 193, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506,
-
- 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 193, 506, 506, 506, 506, 506, 506,
- 506, 193, 506, 507, 193, 506, 507, 193,
- 506, 506, 193, 193, 508, 193, 509, 509,
-
- 509, 504, 504, 193, 193, 193, 193, 504,
- 504, 193, 193, 504, 504, 510, 193, 193,
- 193, 511, 193, 193, 193, 193, 193, 193,
- 193, 507, 507, 507, 506, 193, 507, 193,
-
- 193, 193, 193, 193, 193, 193, 512, 513,
- 514, 515, 516, 517, 518, 519, 520, 521,
- 504, 504, 506, 506, 506, 511, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 522, 522, 523, 193, 524, 524, 524,
- 524, 524, 524, 524, 525, 524, 193, 524,
- 524, 524, 193, 524, 524, 524, 524, 524,
- 524, 524, 524, 524, 524, 524, 524, 524,
-
- 524, 524, 524, 524, 524, 524, 524, 524,
- 524, 193, 524, 524, 524, 524, 524, 524,
- 524, 193, 524, 524, 193, 524, 524, 524,
- 524, 524, 193, 193, 526, 524, 523, 523,
-
- 523, 522, 522, 522, 522, 522, 193, 522,
- 522, 523, 193, 523, 523, 527, 193, 193,
- 524, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 524, 525, 528, 528, 193, 193, 529, 530,
- 531, 532, 533, 534, 535, 536, 537, 538,
- 539, 540, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 541, 542, 542, 193, 543, 543, 543,
- 543, 543, 543, 543, 543, 193, 193, 543,
- 543, 193, 193, 543, 543, 543, 543, 543,
- 543, 543, 543, 543, 543, 543, 543, 543,
-
- 543, 543, 543, 543, 543, 543, 543, 543,
- 543, 193, 543, 543, 543, 543, 543, 543,
- 543, 193, 543, 543, 193, 544, 543, 543,
- 543, 543, 193, 193, 545, 543, 546, 541,
-
- 542, 541, 541, 541, 547, 193, 193, 542,
- 548, 193, 193, 548, 548, 549, 193, 193,
- 193, 193, 193, 193, 193, 193, 550, 546,
- 193, 193, 193, 193, 551, 551, 193, 543,
-
- 543, 543, 547, 547, 193, 193, 552, 553,
- 554, 555, 556, 557, 558, 559, 560, 561,
- 562, 544, 563, 563, 563, 563, 563, 563,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 564, 565, 193, 565, 565, 565,
- 565, 565, 565, 193, 193, 193, 565, 565,
- 565, 193, 565, 565, 566, 565, 193, 193,
- 193, 565, 565, 193, 565, 193, 565, 565,
-
- 193, 193, 193, 565, 565, 193, 193, 193,
- 565, 565, 565, 193, 193, 193, 565, 565,
- 565, 565, 565, 565, 565, 565, 567, 565,
- 565, 565, 193, 193, 193, 193, 568, 569,
-
- 564, 569, 569, 193, 193, 193, 569, 569,
- 569, 193, 570, 570, 570, 571, 193, 193,
- 572, 193, 193, 193, 193, 193, 193, 568,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 573, 574,
- 575, 576, 577, 578, 579, 580, 581, 582,
- 583, 583, 583, 584, 584, 584, 584, 584,
- 584, 585, 584, 193, 193, 193, 193, 193,
-
- 193, 586, 586, 586, 193, 587, 587, 587,
- 587, 587, 587, 587, 587, 193, 587, 587,
- 587, 193, 587, 587, 587, 587, 587, 587,
- 587, 587, 587, 587, 587, 587, 587, 587,
-
- 587, 587, 587, 587, 587, 587, 587, 587,
- 587, 193, 587, 587, 587, 587, 587, 587,
- 587, 587, 587, 587, 193, 587, 587, 587,
- 587, 587, 193, 193, 193, 588, 589, 589,
-
- 589, 586, 586, 586, 586, 193, 589, 589,
- 590, 193, 589, 589, 589, 591, 193, 193,
- 193, 193, 193, 193, 193, 592, 593, 193,
- 588, 588, 193, 193, 193, 193, 193, 193,
-
- 587, 587, 594, 594, 193, 193, 595, 596,
- 597, 598, 599, 600, 601, 602, 603, 604,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 605, 605, 605, 605, 605, 605, 605, 606,
-
- 193, 193, 607, 607, 193, 608, 608, 608,
- 608, 608, 608, 608, 608, 193, 608, 608,
- 608, 193, 608, 608, 608, 608, 608, 608,
- 608, 608, 608, 608, 608, 608, 608, 608,
-
- 608, 608, 608, 608, 608, 608, 608, 608,
- 608, 193, 608, 608, 608, 608, 608, 608,
- 608, 608, 608, 608, 193, 608, 608, 608,
- 608, 608, 193, 193, 609, 610, 607, 611,
-
- 612, 607, 613, 607, 607, 193, 611, 612,
- 612, 193, 612, 612, 614, 615, 193, 193,
- 193, 193, 193, 193, 193, 613, 613, 193,
- 193, 193, 193, 193, 193, 193, 608, 193,
-
- 608, 608, 616, 616, 193, 193, 617, 618,
- 619, 620, 621, 622, 623, 624, 625, 626,
- 193, 627, 627, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 628, 628, 193, 629, 629, 629,
- 629, 629, 629, 629, 629, 193, 629, 629,
- 629, 193, 629, 629, 629, 629, 629, 629,
- 629, 629, 629, 629, 629, 629, 629, 629,
-
- 629, 629, 629, 629, 629, 629, 629, 629,
- 629, 630, 629, 629, 629, 629, 629, 629,
- 629, 629, 629, 629, 629, 629, 629, 629,
- 629, 629, 630, 193, 193, 631, 632, 628,
-
- 628, 633, 633, 633, 634, 193, 628, 628,
- 628, 193, 635, 635, 635, 636, 630, 193,
- 193, 193, 193, 193, 193, 193, 193, 632,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 629, 629, 634, 634, 193, 193, 637, 638,
- 639, 640, 641, 642, 643, 644, 645, 646,
- 647, 647, 647, 647, 647, 647, 193, 193,
- 193, 648, 631, 631, 631, 631, 631, 631,
-
- 193, 193, 649, 649, 193, 650, 650, 650,
- 650, 650, 650, 650, 650, 650, 650, 650,
- 650, 650, 650, 650, 650, 650, 650, 193,
- 193, 193, 650, 650, 650, 650, 650, 650,
-
- 650, 650, 650, 650, 650, 650, 650, 650,
- 650, 650, 650, 650, 650, 650, 650, 650,
- 650, 650, 193, 650, 650, 650, 650, 650,
- 650, 650, 650, 650, 193, 650, 193, 193,
-
- 650, 650, 650, 650, 650, 650, 650, 193,
- 193, 193, 651, 193, 193, 193, 193, 652,
- 649, 649, 653, 653, 653, 193, 653, 193,
- 649, 649, 654, 649, 654, 654, 654, 652,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 649, 649, 655, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 656, 656, 656, 656, 656, 656, 656,
- 656, 656, 656, 656, 656, 656, 656, 656,
- 656, 656, 656, 656, 656, 656, 656, 656,
- 656, 656, 656, 656, 656, 656, 656, 656,
-
- 656, 656, 656, 656, 656, 656, 656, 656,
- 656, 656, 656, 656, 656, 656, 656, 656,
- 656, 657, 656, 658, 657, 657, 657, 657,
- 659, 659, 660, 193, 193, 193, 193, 12,
-
- 656, 656, 656, 656, 656, 656, 661, 657,
- 662, 662, 662, 662, 657, 657, 657, 663,
- 664, 665, 666, 667, 668, 669, 670, 671,
- 672, 673, 674, 674, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 675, 675, 193, 675, 193, 193, 675,
- 675, 193, 675, 193, 193, 675, 193, 193,
- 193, 193, 193, 193, 675, 675, 675, 675,
- 193, 675, 675, 675, 675, 675, 675, 675,
-
- 193, 675, 675, 675, 193, 675, 193, 675,
- 193, 193, 675, 675, 193, 675, 675, 675,
- 675, 676, 675, 677, 676, 676, 676, 676,
- 678, 678, 193, 676, 676, 675, 193, 193,
-
- 675, 675, 675, 675, 675, 193, 679, 193,
- 680, 680, 680, 680, 676, 676, 193, 193,
- 681, 682, 683, 684, 685, 686, 687, 688,
- 689, 690, 193, 193, 691, 691, 692, 692,
-
- 693, 694, 694, 694, 695, 696, 695, 695,
- 697, 695, 695, 698, 699, 700, 700, 700,
- 700, 700, 697, 701, 700, 701, 701, 701,
- 702, 702, 701, 701, 701, 701, 701, 701,
-
- 703, 704, 705, 706, 707, 708, 709, 710,
- 711, 712, 713, 713, 713, 713, 713, 713,
- 713, 713, 713, 713, 714, 702, 701, 702,
- 701, 715, 716, 717, 716, 717, 718, 718,
-
- 693, 693, 693, 719, 693, 693, 693, 693,
- 193, 693, 693, 693, 693, 719, 693, 693,
- 693, 693, 719, 693, 693, 693, 693, 719,
- 693, 693, 693, 693, 719, 693, 693, 693,
-
- 693, 693, 693, 693, 693, 693, 693, 693,
- 693, 719, 720, 721, 721, 193, 193, 193,
- 193, 722, 723, 724, 725, 724, 724, 726,
- 724, 726, 723, 723, 723, 723, 727, 728,
-
- 723, 724, 729, 729, 730, 698, 729, 729,
- 693, 693, 693, 693, 731, 732, 732, 732,
- 727, 727, 727, 724, 727, 727, 733, 727,
- 193, 727, 727, 727, 727, 724, 727, 727,
-
- 727, 727, 724, 727, 727, 727, 727, 724,
- 727, 727, 727, 727, 724, 727, 733, 733,
- 733, 727, 727, 727, 727, 727, 727, 727,
- 733, 724, 733, 733, 733, 193, 734, 734,
-
- 735, 735, 735, 735, 735, 735, 736, 735,
- 735, 735, 735, 735, 735, 193, 737, 735,
- 738, 738, 739, 740, 741, 742, 742, 742,
- 742, 743, 743, 193, 193, 193, 193, 193,
-
- 744, 744, 744, 744, 744, 744, 744, 744,
- 744, 744, 744, 744, 744, 744, 744, 744,
- 744, 744, 744, 744, 744, 744, 744, 744,
- 744, 744, 744, 744, 744, 744, 744, 744,
-
- 744, 744, 745, 744, 744, 744, 746, 744,
- 745, 744, 744, 747, 748, 749, 750, 749,
- 749, 751, 749, 752, 752, 752, 749, 753,
- 748, 754, 755, 756, 756, 752, 752, 745,
-
- 757, 758, 759, 760, 761, 762, 763, 764,
- 765, 766, 767, 767, 768, 768, 768, 768,
- 744, 744, 744, 744, 744, 744, 751, 751,
- 749, 749, 745, 745, 745, 745, 752, 752,
-
- 752, 745, 747, 747, 747, 745, 745, 747,
- 747, 747, 747, 747, 747, 747, 745, 745,
- 745, 752, 752, 752, 752, 745, 745, 745,
- 745, 745, 745, 745, 745, 745, 745, 745,
-
- 745, 745, 752, 747, 756, 752, 752, 747,
- 747, 747, 747, 747, 747, 769, 745, 747,
- 770, 771, 772, 773, 774, 775, 776, 777,
- 778, 779, 780, 780, 780, 781, 782, 782,
-
- 783, 783, 783, 783, 783, 783, 783, 783,
- 783, 783, 783, 783, 783, 783, 783, 783,
- 783, 783, 783, 783, 783, 783, 783, 783,
- 783, 783, 783, 783, 783, 783, 783, 783,
-
- 783, 783, 783, 783, 783, 783, 193, 784,
- 193, 193, 193, 193, 193, 784, 193, 193,
- 785, 785, 785, 785, 785, 785, 785, 785,
- 785, 785, 785, 785, 785, 785, 785, 785,
-
- 785, 785, 785, 785, 785, 785, 785, 785,
- 785, 785, 785, 785, 785, 785, 785, 785,
- 785, 785, 785, 785, 785, 785, 785, 786,
- 786, 787, 787, 788, 789, 790, 790, 790,
-
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791,
-
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 791, 791, 791, 791, 791, 791,
- 791, 791, 792, 792, 792, 792, 792, 791,
-
- 793, 794, 794, 794, 794, 794, 794, 794,
- 794, 794, 794, 794, 794, 794, 794, 794,
- 794, 794, 794, 794, 794, 794, 793, 793,
- 793, 793, 793, 793, 793, 793, 793, 793,
-
- 793, 793, 793, 793, 793, 793, 793, 793,
- 793, 793, 793, 793, 793, 793, 793, 793,
- 793, 793, 793, 793, 793, 793, 793, 793,
- 793, 793, 793, 793, 793, 793, 793, 793,
-
- 793, 793, 793, 795, 795, 795, 795, 795,
- 796, 796, 796, 796, 796, 796, 796, 796,
- 796, 796, 796, 796, 796, 796, 796, 796,
- 796, 796, 796, 796, 796, 796, 796, 796,
-
- 796, 796, 796, 797, 797, 797, 797, 797,
- 797, 797, 797, 797, 797, 797, 797, 797,
- 797, 797, 797, 797, 797, 797, 797, 797,
- 797, 797, 797, 797, 797, 797, 797, 797,
-
- 797, 797, 797, 797, 797, 797, 797, 797,
- 797, 797, 797, 797, 797, 797, 797, 797,
- 797, 797, 797, 797, 797, 797, 797, 797,
- 797, 797, 798, 798, 798, 798, 798, 798,
-
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
-
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
-
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 193, 799, 799, 799, 799, 193, 193,
- 799, 799, 799, 799, 799, 799, 799, 193,
- 799, 193, 799, 799, 799, 799, 193, 193,
-
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 193, 799, 799, 799, 799, 193, 193,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
-
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 193, 799, 799, 799, 799, 193, 193,
- 799, 799, 799, 799, 799, 799, 799, 193,
-
- 799, 193, 799, 799, 799, 799, 193, 193,
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 799, 799, 799, 799, 799, 799, 193,
- 799, 799, 799, 799, 799, 799, 799, 799,
-
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
-
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 193, 799, 799, 799, 799, 193, 193,
- 799, 799, 799, 799, 799, 799, 799, 800,
-
- 799, 799, 799, 799, 799, 799, 799, 800,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 799, 799, 799, 799, 799,
- 799, 799, 799, 193, 193, 801, 801, 802,
-
- 803, 804, 805, 806, 806, 806, 806, 805,
- 805, 807, 808, 809, 810, 811, 812, 813,
- 814, 815, 816, 816, 816, 816, 816, 816,
- 816, 816, 816, 816, 816, 193, 193, 193,
-
- 800, 800, 800, 800, 800, 800, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 800,
- 817, 817, 817, 817, 817, 817, 817, 817,
- 817, 817, 193, 193, 193, 193, 193, 193,
-
- 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, 818, 818, 818, 818, 818, 818, 818,
- 818, 818, 818, 818, 818, 818, 818, 818,
- 818, 818, 818, 818, 818, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 819, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
-
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 820, 820, 820,
-
- 820, 820, 820, 820, 820, 820, 820, 820,
- 820, 820, 820, 820, 820, 821, 822, 820,
- 820, 820, 820, 820, 820, 820, 820, 823,
- 823, 823, 823, 823, 823, 823, 823, 823,
-
- 824, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 826, 827, 193, 193, 193,
-
- 828, 828, 828, 828, 828, 828, 828, 828,
- 828, 828, 828, 828, 828, 828, 828, 828,
- 828, 828, 828, 828, 828, 828, 828, 828,
- 828, 828, 828, 828, 828, 828, 828, 828,
-
- 828, 828, 828, 828, 828, 828, 828, 828,
- 828, 828, 828, 829, 829, 829, 830, 830,
- 830, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 831, 831, 831, 831, 831, 831, 831, 831,
- 831, 831, 831, 831, 831, 193, 831, 831,
- 831, 831, 832, 832, 833, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 834, 834, 834, 834, 834, 834, 834, 834,
- 834, 834, 834, 834, 834, 834, 834, 834,
- 834, 834, 835, 835, 836, 837, 837, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 839, 839, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 840, 840, 840, 840, 840, 840, 840, 840,
- 840, 840, 840, 840, 840, 193, 840, 840,
- 840, 193, 841, 841, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 842, 842, 842, 842, 842, 842,
-
- 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 842, 842, 842, 842, 842, 842,
- 842, 842, 842, 842, 843, 843, 844, 843,
- 843, 843, 843, 843, 843, 843, 844, 844,
-
- 844, 844, 844, 844, 844, 844, 843, 844,
- 844, 843, 843, 843, 843, 843, 843, 843,
- 843, 843, 845, 843, 846, 846, 847, 848,
- 846, 849, 846, 850, 842, 851, 193, 193,
-
- 852, 853, 854, 855, 856, 857, 858, 859,
- 860, 861, 193, 193, 193, 193, 193, 193,
- 862, 862, 862, 862, 862, 862, 862, 862,
- 862, 862, 193, 193, 193, 193, 193, 193,
-
- 863, 863, 864, 865, 866, 867, 868, 869,
- 870, 871, 872, 873, 873, 873, 874, 193,
- 875, 876, 877, 878, 879, 880, 881, 882,
- 883, 884, 193, 193, 193, 193, 193, 193,
-
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
-
- 885, 885, 885, 886, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
-
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 887, 887, 887, 887, 887, 887, 887, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 885, 885, 885, 885, 885, 885, 885,
-
- 885, 885, 885, 885, 885, 885, 885, 885,
- 885, 888, 889, 193, 193, 193, 193, 193,
- 823, 823, 823, 823, 823, 823, 823, 823,
+ 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 252, 251, 251, 251, 251, 251, 251,
+
+ 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 251,
+ 253, 253, 253, 253, 253, 253, 253, 253,
+ 253, 254, 253, 253, 253, 253, 253, 253,
+
+ 253, 253, 253, 253, 253, 253, 253, 253,
+ 253, 253, 253, 253, 253, 253, 253, 253,
+ 255, 256, 257, 256, 257, 257, 257, 256,
+ 257, 257, 257, 257, 256, 255, 256, 257,
+
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 260, 261,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+
+ 258, 259, 262, 263, 263, 170, 170, 264,
+ 265, 265, 266, 267, 268, 269, 268, 269,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+ 258, 259, 258, 259, 258, 259, 258, 259,
+
+ 270, 260, 261, 258, 259, 266, 267, 258,
+ 259, 266, 267, 258, 259, 266, 267, 271,
+ 260, 261, 260, 261, 258, 259, 260, 261,
+ 258, 259, 260, 261, 260, 261, 260, 261,
+
+ 258, 259, 260, 261, 260, 261, 260, 261,
+ 258, 259, 260, 261, 272, 273, 260, 261,
+ 260, 261, 260, 261, 260, 261, 274, 275,
+ 260, 261, 276, 277, 276, 277, 276, 277,
+
+ 266, 267, 266, 267, 266, 267, 266, 267,
+ 266, 267, 266, 267, 266, 267, 266, 267,
+ 276, 277, 276, 277, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+
+ 278, 279, 278, 279, 280, 281, 282, 283,
+ 284, 285, 284, 285, 284, 285, 284, 285,
+ 199, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 286, 286, 286, 286, 199,
+ 199, 287, 288, 288, 288, 289, 288, 288,
+
+ 199, 290, 290, 290, 290, 290, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290,
+
+ 290, 290, 290, 290, 290, 290, 290, 291,
+ 199, 292, 293, 199, 199, 294, 294, 295,
+ 296, 297, 298, 298, 298, 298, 297, 298,
+ 298, 298, 299, 297, 298, 298, 298, 298,
+
+ 298, 298, 300, 297, 297, 297, 297, 297,
+ 298, 298, 297, 298, 298, 299, 301, 298,
+ 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, 317,
+
+ 318, 319, 320, 318, 298, 300, 321, 322,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 323, 323, 323, 323,
+
+ 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 296, 296, 296, 296, 296,
+ 323, 323, 323, 324, 325, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 326, 326, 326, 326, 327, 328, 329, 329,
+ 330, 331, 331, 332, 19, 333, 334, 334,
+ 335, 335, 335, 335, 335, 335, 336, 336,
+ 337, 338, 339, 340, 341, 342, 343, 344,
+
+ 345, 346, 347, 347, 347, 347, 348, 349,
+ 350, 349, 350, 350, 350, 350, 350, 349,
+ 349, 349, 349, 350, 350, 350, 350, 350,
+ 350, 350, 350, 351, 351, 351, 351, 351,
+
+ 352, 350, 350, 350, 350, 350, 350, 350,
+ 349, 350, 350, 353, 354, 355, 356, 357,
+ 358, 359, 360, 361, 361, 362, 363, 335,
+ 335, 364, 364, 364, 365, 364, 364, 366,
+
+ 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 381,
+ 382, 349, 349, 349, 346, 383, 383, 383,
+ 384, 350, 350, 350, 350, 350, 350, 350,
+
+ 350, 350, 350, 350, 350, 350, 350, 350,
+ 349, 349, 349, 349, 349, 349, 349, 349,
+ 349, 349, 349, 349, 349, 349, 349, 349,
+ 349, 349, 350, 350, 350, 350, 350, 350,
+
+ 350, 350, 350, 350, 350, 350, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 350,
+ 385, 385, 350, 350, 350, 350, 350, 385,
+
+ 347, 350, 348, 349, 349, 349, 349, 349,
+ 349, 349, 349, 349, 350, 349, 350, 386,
+ 350, 350, 349, 347, 387, 349, 388, 388,
+ 388, 388, 388, 388, 388, 389, 390, 388,
+
+ 388, 388, 388, 391, 388, 392, 392, 388,
+ 388, 390, 391, 388, 388, 391, 393, 393,
+ 394, 395, 396, 397, 398, 399, 400, 401,
+ 402, 403, 385, 385, 385, 404, 404, 405,
+
+ 406, 406, 406, 407, 407, 407, 407, 407,
+ 407, 407, 407, 407, 407, 407, 342, 408,
+ 409, 410, 411, 411, 411, 409, 409, 409,
+ 409, 409, 411, 411, 411, 411, 409, 411,
+
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 409, 411, 409, 411, 409, 412, 412, 413,
+ 414, 415, 414, 414, 415, 414, 414, 415,
+ 415, 415, 414, 415, 415, 414, 415, 414,
+
+ 414, 414, 415, 414, 415, 414, 415, 414,
+ 415, 414, 414, 342, 342, 413, 412, 412,
+ 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 417, 417, 417, 416, 416, 416, 416,
+
+ 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 416, 416, 417, 417, 416, 351, 351,
+ 351, 418, 351, 418, 418, 351, 351, 351,
+ 418, 418, 351, 351, 351, 351, 351, 351,
+
+ 419, 419, 419, 419, 419, 419, 419, 419,
+ 419, 419, 419, 419, 419, 419, 419, 419,
+ 419, 419, 419, 419, 419, 419, 419, 419,
+ 419, 419, 419, 419, 419, 419, 419, 419,
+
+ 419, 419, 419, 419, 419, 419, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 421, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+
+ 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 432, 432, 432, 432, 432,
+ 432, 432, 432, 432, 432, 432, 432, 432,
+ 432, 432, 432, 432, 432, 432, 432, 432,
+
+ 432, 432, 432, 432, 432, 432, 432, 432,
+ 432, 432, 432, 433, 433, 433, 433, 433,
+ 433, 433, 434, 433, 435, 435, 436, 437,
+ 438, 439, 440, 296, 296, 296, 296, 296,
+
+ 441, 441, 441, 441, 441, 441, 441, 441,
+ 441, 441, 441, 441, 441, 441, 441, 441,
+ 441, 441, 441, 441, 441, 441, 442, 442,
+ 442, 442, 443, 442, 442, 442, 442, 442,
+
+ 442, 442, 442, 442, 443, 442, 442, 442,
+ 443, 442, 442, 442, 442, 442, 296, 296,
+ 444, 444, 444, 444, 444, 444, 444, 444,
+ 444, 444, 444, 444, 444, 444, 444, 296,
+
+ 445, 446, 446, 446, 446, 446, 445, 446,
+ 446, 445, 446, 446, 446, 446, 446, 445,
+ 446, 446, 446, 446, 445, 446, 447, 447,
+ 447, 448, 448, 448, 296, 296, 449, 296,
+
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 450, 451, 450, 450, 450, 450, 450, 450,
+ 450, 450, 452, 452, 452, 453, 454, 451,
+ 451, 454, 454, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+
+ 342, 342, 342, 342, 455, 455, 456, 455,
+ 455, 456, 455, 455, 455, 456, 456, 456,
+ 457, 458, 459, 455, 455, 455, 456, 455,
+ 455, 456, 456, 455, 455, 455, 455, 460,
+
+ 461, 462, 462, 463, 464, 465, 465, 465,
+ 465, 465, 465, 465, 465, 465, 465, 465,
+ 465, 465, 465, 465, 465, 465, 465, 465,
+ 465, 465, 465, 465, 465, 465, 465, 465,
+
+ 465, 465, 465, 465, 465, 465, 465, 465,
+ 465, 466, 465, 465, 465, 465, 465, 465,
+ 465, 466, 465, 465, 466, 465, 465, 465,
+ 465, 465, 467, 468, 469, 465, 463, 463,
+
+ 463, 462, 462, 462, 462, 462, 462, 462,
+ 462, 463, 463, 463, 463, 470, 471, 468,
+ 465, 170, 172, 472, 472, 461, 467, 467,
+ 473, 473, 473, 473, 473, 473, 473, 473,
+
+ 465, 465, 462, 462, 474, 474, 475, 476,
+ 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 488, 488, 488, 488,
+ 489, 490, 490, 491, 491, 492, 491, 491,
+
+ 493, 494, 495, 495, 199, 496, 496, 496,
+ 496, 496, 496, 496, 496, 199, 199, 496,
+ 496, 199, 199, 496, 496, 496, 496, 496,
+ 496, 496, 496, 496, 496, 496, 496, 496,
+
+ 496, 496, 496, 496, 496, 496, 496, 496,
+ 496, 199, 496, 496, 496, 496, 496, 496,
+ 496, 199, 496, 199, 199, 199, 496, 496,
+ 496, 496, 199, 199, 497, 498, 499, 495,
+
+ 495, 494, 494, 494, 494, 199, 199, 495,
+ 495, 199, 199, 500, 500, 501, 502, 199,
+ 199, 199, 199, 199, 199, 199, 199, 499,
+ 199, 199, 199, 199, 503, 503, 199, 503,
+
+ 496, 496, 494, 494, 199, 199, 504, 505,
+ 506, 507, 508, 509, 510, 511, 512, 513,
+ 496, 496, 514, 514, 515, 515, 515, 515,
+ 515, 516, 517, 518, 199, 199, 199, 199,
+
+ 199, 519, 520, 521, 199, 522, 522, 522,
+ 522, 522, 522, 199, 199, 199, 199, 522,
+ 522, 199, 199, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522,
+
+ 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 199, 522, 522, 522, 522, 522, 522,
+ 522, 199, 522, 523, 199, 522, 523, 199,
+ 522, 522, 199, 199, 524, 199, 525, 525,
+
+ 525, 520, 520, 199, 199, 199, 199, 520,
+ 520, 199, 199, 520, 520, 526, 199, 199,
+ 199, 527, 199, 199, 199, 199, 199, 199,
+ 199, 523, 523, 523, 522, 199, 523, 199,
+
+ 199, 199, 199, 199, 199, 199, 528, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537,
+ 520, 520, 522, 522, 522, 527, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 538, 538, 539, 199, 540, 540, 540,
+ 540, 540, 540, 540, 541, 540, 199, 540,
+ 540, 540, 199, 540, 540, 540, 540, 540,
+ 540, 540, 540, 540, 540, 540, 540, 540,
+
+ 540, 540, 540, 540, 540, 540, 540, 540,
+ 540, 199, 540, 540, 540, 540, 540, 540,
+ 540, 199, 540, 540, 199, 540, 540, 540,
+ 540, 540, 199, 199, 542, 540, 539, 539,
+
+ 539, 538, 538, 538, 538, 538, 199, 538,
+ 538, 539, 199, 539, 539, 543, 199, 199,
+ 540, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 540, 541, 544, 544, 199, 199, 545, 546,
+ 547, 548, 549, 550, 551, 552, 553, 554,
+ 555, 556, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 557, 558, 558, 199, 559, 559, 559,
+ 559, 559, 559, 559, 559, 199, 199, 559,
+ 559, 199, 199, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559,
+
+ 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 199, 559, 559, 559, 559, 559, 559,
+ 559, 199, 559, 559, 199, 560, 559, 559,
+ 559, 559, 199, 199, 561, 559, 562, 557,
+
+ 558, 557, 557, 557, 563, 199, 199, 558,
+ 564, 199, 199, 564, 564, 565, 199, 199,
+ 199, 199, 199, 199, 199, 199, 566, 562,
+ 199, 199, 199, 199, 567, 567, 199, 559,
+
+ 559, 559, 563, 563, 199, 199, 568, 569,
+ 570, 571, 572, 573, 574, 575, 576, 577,
+ 578, 560, 579, 579, 579, 579, 579, 579,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 580, 581, 199, 581, 581, 581,
+ 581, 581, 581, 199, 199, 199, 581, 581,
+ 581, 199, 581, 581, 582, 581, 199, 199,
+ 199, 581, 581, 199, 581, 199, 581, 581,
+
+ 199, 199, 199, 581, 581, 199, 199, 199,
+ 581, 581, 581, 199, 199, 199, 581, 581,
+ 581, 581, 581, 581, 581, 581, 583, 581,
+ 581, 581, 199, 199, 199, 199, 584, 585,
+
+ 580, 585, 585, 199, 199, 199, 585, 585,
+ 585, 199, 586, 586, 586, 587, 199, 199,
+ 588, 199, 199, 199, 199, 199, 199, 584,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 589, 590,
+ 591, 592, 593, 594, 595, 596, 597, 598,
+ 599, 599, 599, 600, 600, 600, 600, 600,
+ 600, 601, 600, 199, 199, 199, 199, 199,
+
+ 602, 603, 603, 603, 199, 604, 604, 604,
+ 604, 604, 604, 604, 604, 199, 604, 604,
+ 604, 199, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 604, 604,
+
+ 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 199, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 605, 604, 604, 604,
+ 604, 604, 199, 199, 199, 606, 607, 607,
+
+ 607, 603, 603, 603, 603, 199, 607, 607,
+ 608, 199, 607, 607, 607, 609, 199, 199,
+ 199, 199, 199, 199, 199, 610, 611, 199,
+ 606, 606, 199, 199, 199, 199, 199, 199,
+
+ 604, 604, 612, 612, 199, 199, 613, 614,
+ 615, 616, 617, 618, 619, 620, 621, 622,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 623, 623, 623, 623, 623, 623, 623, 624,
+
+ 199, 625, 626, 626, 199, 627, 627, 627,
+ 627, 627, 627, 627, 627, 199, 627, 627,
+ 627, 199, 627, 627, 627, 627, 627, 627,
+ 627, 627, 627, 627, 627, 627, 627, 627,
+
+ 627, 627, 627, 627, 627, 627, 627, 627,
+ 627, 199, 627, 627, 627, 627, 627, 627,
+ 627, 627, 627, 627, 199, 627, 627, 627,
+ 627, 627, 199, 199, 628, 629, 626, 630,
+
+ 631, 626, 632, 626, 626, 199, 630, 631,
+ 631, 199, 631, 631, 633, 634, 199, 199,
+ 199, 199, 199, 199, 199, 632, 632, 199,
+ 199, 199, 199, 199, 199, 199, 627, 199,
+
+ 627, 627, 635, 635, 199, 199, 636, 637,
+ 638, 639, 640, 641, 642, 643, 644, 645,
+ 199, 646, 646, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 647, 648, 648, 199, 649, 649, 649,
+ 649, 649, 649, 649, 649, 199, 649, 649,
+ 649, 199, 649, 649, 649, 649, 649, 649,
+ 649, 649, 649, 649, 649, 649, 649, 649,
+
+ 649, 649, 649, 649, 649, 649, 649, 649,
+ 649, 650, 649, 649, 649, 649, 649, 649,
+ 649, 649, 649, 649, 649, 649, 649, 649,
+ 649, 649, 650, 199, 199, 651, 652, 648,
+
+ 648, 653, 653, 653, 654, 199, 648, 648,
+ 648, 199, 655, 655, 655, 656, 650, 199,
+ 199, 199, 199, 199, 199, 199, 199, 652,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 649, 649, 654, 654, 199, 199, 657, 658,
+ 659, 660, 661, 662, 663, 664, 665, 666,
+ 667, 667, 667, 667, 667, 667, 199, 199,
+ 199, 668, 651, 651, 651, 651, 651, 651,
+
+ 199, 199, 669, 669, 199, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 199,
+ 199, 199, 670, 670, 670, 670, 670, 670,
+
+ 670, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 199, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 199, 670, 199, 199,
+
+ 670, 670, 670, 670, 670, 670, 670, 199,
+ 199, 199, 671, 199, 199, 199, 199, 672,
+ 669, 669, 673, 673, 673, 199, 673, 199,
+ 669, 669, 674, 669, 674, 674, 674, 672,
+
+ 199, 199, 199, 199, 199, 199, 675, 676,
+ 677, 678, 679, 680, 681, 682, 683, 684,
+ 199, 199, 669, 669, 685, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 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, 686, 686, 686, 686, 686, 686, 686,
+ 686, 686, 686, 686, 686, 686, 686, 686,
+ 686, 687, 686, 688, 687, 687, 687, 687,
+ 689, 689, 690, 199, 199, 199, 199, 12,
+
+ 686, 686, 686, 686, 686, 686, 691, 687,
+ 692, 692, 692, 692, 687, 687, 687, 693,
+ 694, 695, 696, 697, 698, 699, 700, 701,
+ 702, 703, 704, 704, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 705, 705, 199, 705, 199, 199, 705,
+ 705, 199, 705, 199, 199, 705, 199, 199,
+ 199, 199, 199, 199, 705, 705, 705, 705,
+ 199, 705, 705, 705, 705, 705, 705, 705,
+
+ 199, 705, 705, 705, 199, 705, 199, 705,
+ 199, 199, 705, 705, 199, 705, 705, 705,
+ 705, 706, 705, 707, 706, 706, 706, 706,
+ 708, 708, 199, 706, 706, 705, 199, 199,
+
+ 705, 705, 705, 705, 705, 199, 709, 199,
+ 710, 710, 710, 710, 706, 706, 199, 199,
+ 711, 712, 713, 714, 715, 716, 717, 718,
+ 719, 720, 199, 199, 721, 721, 722, 722,
+
+ 723, 724, 724, 724, 725, 726, 725, 725,
+ 727, 725, 725, 728, 729, 730, 730, 730,
+ 730, 730, 727, 731, 730, 731, 731, 731,
+ 732, 732, 731, 731, 731, 731, 731, 731,
+
+ 733, 734, 735, 736, 737, 738, 739, 740,
+ 741, 742, 743, 743, 743, 743, 743, 743,
+ 743, 743, 743, 743, 744, 732, 731, 732,
+ 731, 745, 746, 747, 746, 747, 748, 748,
+
+ 723, 723, 723, 749, 723, 723, 723, 723,
+ 199, 723, 723, 723, 723, 749, 723, 723,
+ 723, 723, 749, 723, 723, 723, 723, 749,
+ 723, 723, 723, 723, 749, 723, 723, 723,
+
+ 723, 723, 723, 723, 723, 723, 723, 723,
+ 723, 749, 750, 751, 751, 199, 199, 199,
+ 199, 752, 753, 754, 755, 754, 754, 756,
+ 754, 756, 753, 753, 753, 753, 757, 758,
+
+ 753, 754, 759, 759, 760, 728, 759, 759,
+ 723, 723, 723, 723, 761, 762, 762, 762,
+ 757, 757, 757, 754, 757, 757, 763, 757,
+ 199, 757, 757, 757, 757, 754, 757, 757,
+
+ 757, 757, 754, 757, 757, 757, 757, 754,
+ 757, 757, 757, 757, 754, 757, 763, 763,
+ 763, 757, 757, 757, 757, 757, 757, 757,
+ 763, 754, 763, 763, 763, 199, 764, 764,
+
+ 765, 765, 765, 765, 765, 765, 766, 765,
+ 765, 765, 765, 765, 765, 199, 767, 765,
+ 768, 768, 769, 770, 771, 772, 772, 772,
+ 772, 773, 773, 199, 199, 199, 199, 199,
+
+ 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774,
+ 774, 774, 774, 774, 774, 774, 774, 774,
+
+ 774, 774, 775, 774, 774, 774, 776, 774,
+ 775, 774, 774, 777, 778, 779, 780, 779,
+ 779, 781, 779, 782, 782, 782, 779, 783,
+ 778, 784, 785, 786, 786, 782, 782, 775,
+
+ 787, 788, 789, 790, 791, 792, 793, 794,
+ 795, 796, 797, 797, 798, 798, 798, 798,
+ 774, 774, 774, 774, 774, 774, 781, 781,
+ 779, 779, 775, 775, 775, 775, 782, 782,
+
+ 782, 775, 777, 777, 777, 775, 775, 777,
+ 777, 777, 777, 777, 777, 777, 775, 775,
+ 775, 782, 782, 782, 782, 775, 775, 775,
+ 775, 775, 775, 775, 775, 775, 775, 775,
+
+ 775, 775, 782, 777, 786, 782, 782, 777,
+ 777, 777, 777, 777, 777, 799, 775, 777,
+ 800, 801, 802, 803, 804, 805, 806, 807,
+ 808, 809, 810, 810, 810, 811, 812, 812,
+
+ 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813,
+
+ 813, 813, 813, 813, 813, 813, 199, 814,
+ 199, 199, 199, 199, 199, 814, 199, 199,
+ 815, 815, 815, 815, 815, 815, 815, 815,
+ 815, 815, 815, 815, 815, 815, 815, 815,
+
+ 815, 815, 815, 815, 815, 815, 815, 815,
+ 815, 815, 815, 815, 815, 815, 815, 815,
+ 815, 815, 815, 815, 815, 815, 815, 816,
+ 816, 817, 817, 818, 819, 820, 820, 820,
+
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821,
+
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 822, 822, 822, 822, 822, 821,
+
+ 823, 824, 824, 824, 824, 824, 824, 824,
+ 824, 824, 824, 824, 824, 824, 824, 824,
+ 824, 824, 824, 824, 824, 824, 823, 823,
823, 823, 823, 823, 823, 823, 823, 823,
823, 823, 823, 823, 823, 823, 823, 823,
@@ -1731,190 +1546,375 @@ static const unsigned short uc_property_trie[] = {
823, 823, 823, 823, 823, 823, 823, 823,
823, 823, 823, 823, 823, 823, 823, 823,
- 823, 823, 823, 823, 823, 823, 823, 823,
- 823, 823, 823, 823, 823, 823, 823, 823,
- 823, 823, 823, 823, 823, 823, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 890, 890, 890, 890, 890, 890, 890, 890,
- 890, 890, 890, 890, 890, 890, 890, 890,
- 890, 890, 890, 890, 890, 890, 890, 890,
- 890, 890, 890, 890, 890, 193, 193, 193,
-
- 891, 891, 891, 892, 892, 892, 892, 891,
- 891, 892, 892, 892, 193, 193, 193, 193,
- 892, 892, 891, 892, 892, 892, 892, 892,
- 892, 893, 894, 895, 193, 193, 193, 193,
-
- 896, 193, 193, 193, 897, 897, 898, 899,
- 900, 901, 902, 903, 904, 905, 906, 907,
- 908, 908, 908, 908, 908, 908, 908, 908,
- 908, 908, 908, 908, 908, 908, 908, 908,
-
- 908, 908, 908, 908, 908, 908, 908, 908,
- 908, 908, 908, 908, 908, 908, 193, 193,
- 908, 908, 908, 908, 908, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 909, 909, 909, 909, 909, 909, 909, 909,
- 909, 909, 909, 909, 909, 909, 909, 909,
- 909, 909, 909, 909, 909, 909, 909, 909,
- 909, 909, 909, 909, 909, 909, 909, 909,
-
- 909, 909, 909, 909, 909, 909, 909, 909,
- 909, 909, 910, 910, 193, 193, 193, 193,
- 911, 911, 911, 911, 911, 912, 912, 912,
- 911, 911, 912, 911, 911, 911, 911, 911,
-
- 911, 909, 909, 909, 909, 909, 909, 909,
- 911, 911, 193, 193, 193, 193, 193, 193,
- 913, 914, 915, 916, 917, 918, 919, 920,
- 921, 922, 923, 193, 193, 193, 924, 924,
-
- 925, 925, 925, 925, 925, 925, 925, 925,
- 925, 925, 925, 925, 925, 925, 925, 925,
- 925, 925, 925, 925, 925, 925, 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, 926, 926, 926, 926, 927,
- 928, 929, 929, 930, 193, 193, 931, 931,
-
- 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, 932, 932,
-
- 932, 932, 932, 932, 932, 932, 932, 932,
- 932, 932, 932, 932, 932, 932, 932, 932,
- 932, 932, 932, 932, 932, 933, 934, 933,
- 934, 934, 934, 934, 934, 934, 934, 193,
-
- 935, 936, 934, 936, 936, 934, 934, 934,
- 934, 934, 934, 934, 934, 933, 933, 933,
- 933, 933, 933, 934, 934, 937, 937, 937,
- 937, 937, 937, 937, 937, 193, 193, 938,
-
- 939, 940, 941, 942, 943, 944, 945, 946,
- 947, 948, 193, 193, 193, 193, 193, 193,
- 939, 940, 941, 942, 943, 944, 945, 946,
- 947, 948, 193, 193, 193, 193, 193, 193,
-
- 949, 949, 949, 949, 949, 949, 949, 950,
- 951, 951, 951, 951, 949, 949, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 952, 952, 952, 952, 953, 954, 955, 954,
- 955, 954, 955, 954, 955, 954, 955, 954,
- 954, 954, 955, 954, 954, 954, 954, 954,
- 954, 954, 954, 954, 954, 954, 954, 954,
-
- 954, 954, 954, 954, 954, 954, 954, 954,
- 954, 954, 954, 954, 954, 954, 954, 954,
- 954, 954, 954, 954, 956, 957, 952, 952,
- 952, 952, 952, 958, 952, 958, 953, 953,
-
- 958, 958, 952, 958, 959, 954, 954, 954,
- 954, 954, 954, 954, 193, 193, 193, 193,
- 960, 961, 962, 963, 964, 965, 966, 967,
- 968, 969, 970, 970, 971, 972, 970, 970,
-
- 972, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 974, 975, 974, 974, 974,
- 974, 974, 974, 974, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 193, 193, 193,
-
- 976, 976, 977, 978, 978, 978, 978, 978,
- 978, 978, 978, 978, 978, 978, 978, 978,
- 978, 978, 978, 978, 978, 978, 978, 978,
- 978, 978, 978, 978, 978, 978, 978, 978,
-
- 978, 977, 976, 976, 976, 976, 977, 977,
- 976, 976, 979, 980, 981, 981, 978, 978,
- 982, 983, 984, 985, 986, 987, 988, 989,
- 990, 991, 992, 992, 992, 992, 992, 992,
-
- 993, 993, 993, 993, 993, 993, 993, 993,
- 993, 993, 993, 993, 993, 993, 993, 993,
- 993, 993, 993, 993, 993, 993, 993, 993,
- 993, 993, 993, 993, 993, 993, 993, 993,
-
- 993, 993, 993, 993, 993, 993, 994, 995,
- 996, 996, 995, 995, 995, 996, 995, 996,
- 996, 996, 997, 997, 193, 193, 193, 193,
- 193, 193, 193, 193, 998, 998, 998, 998,
-
- 999, 999, 999, 999, 999, 999, 999, 999,
- 999, 999, 999, 999, 999, 999, 999, 999,
- 999, 999, 999, 999, 999, 999, 999, 999,
- 999, 999, 999, 999, 999, 999, 999, 999,
-
- 999, 999, 999, 999, 1000, 1000, 1000, 1000,
- 1000, 1000, 1000, 1000, 1001, 1001, 1001, 1001,
- 1001, 1001, 1001, 1001, 1000, 1000, 1001, 1002,
- 193, 193, 193, 1003, 1003, 1004, 1004, 1004,
-
- 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
- 1013, 1014, 193, 193, 193, 999, 999, 999,
- 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 1023, 1024, 1025, 1025, 1025, 1025, 1025, 1025,
-
- 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
- 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
- 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
- 1026, 1026, 1026, 1026, 1026, 1026, 1027, 1027,
+ 823, 823, 823, 825, 825, 825, 825, 825,
+ 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, 827, 827, 827, 827, 827,
+ 827, 827, 827, 827, 827, 827, 827, 827,
+ 827, 827, 827, 827, 827, 827, 827, 827,
+ 827, 827, 827, 827, 827, 827, 827, 827,
+
+ 827, 827, 827, 827, 827, 827, 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, 828,
+
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 199, 829, 829, 829, 829, 199, 199,
+ 829, 829, 829, 829, 829, 829, 829, 199,
+ 829, 199, 829, 829, 829, 829, 199, 199,
+
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 199, 829, 829, 829, 829, 199, 199,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 199, 829, 829, 829, 829, 199, 199,
+ 829, 829, 829, 829, 829, 829, 829, 199,
+
+ 829, 199, 829, 829, 829, 829, 199, 199,
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 829, 829, 829, 829, 829, 829, 199,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 199, 829, 829, 829, 829, 199, 199,
+ 829, 829, 829, 829, 829, 829, 829, 830,
+
+ 829, 829, 829, 829, 829, 829, 829, 830,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 829, 829, 829, 829, 829,
+ 829, 829, 829, 199, 199, 831, 831, 832,
+
+ 833, 834, 835, 836, 836, 836, 836, 835,
+ 835, 837, 838, 839, 840, 841, 842, 843,
+ 844, 845, 846, 846, 846, 846, 846, 846,
+ 846, 846, 846, 846, 846, 199, 199, 199,
+
+ 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830,
+ 847, 847, 847, 847, 847, 847, 847, 847,
+ 847, 847, 199, 199, 199, 199, 199, 199,
+
+ 848, 848, 848, 848, 848, 848, 848, 848,
+ 848, 848, 848, 848, 848, 848, 848, 848,
+ 848, 848, 848, 848, 848, 848, 848, 848,
+ 848, 848, 848, 848, 848, 848, 848, 848,
+
+ 848, 848, 848, 848, 848, 848, 848, 848,
+ 848, 848, 848, 848, 848, 848, 848, 848,
+ 848, 848, 848, 848, 848, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 849, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 850, 850, 850,
+
+ 850, 850, 850, 850, 850, 850, 850, 850,
+ 850, 850, 850, 850, 850, 851, 852, 850,
+ 850, 850, 850, 850, 850, 850, 850, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+
+ 854, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 856, 857, 199, 199, 199,
+
+ 858, 858, 858, 858, 858, 858, 858, 858,
+ 858, 858, 858, 858, 858, 858, 858, 858,
+ 858, 858, 858, 858, 858, 858, 858, 858,
+ 858, 858, 858, 858, 858, 858, 858, 858,
+
+ 858, 858, 858, 858, 858, 858, 858, 858,
+ 858, 858, 858, 859, 859, 859, 860, 860,
+ 860, 861, 861, 861, 861, 861, 861, 861,
+ 861, 199, 199, 199, 199, 199, 199, 199,
+ 862, 862, 862, 862, 862, 862, 862, 862,
+ 862, 862, 862, 862, 862, 199, 862, 862,
+ 862, 862, 863, 863, 864, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 865, 865, 865, 865, 865, 865, 865, 865,
+ 865, 865, 865, 865, 865, 865, 865, 865,
+ 865, 865, 866, 866, 867, 868, 868, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 869, 869, 869, 869, 869, 869, 869, 869,
+ 869, 869, 869, 869, 869, 869, 869, 869,
+ 869, 869, 870, 870, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 199, 871, 871,
+ 871, 199, 872, 872, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873,
+
+ 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 873, 873, 873, 873,
+ 873, 873, 873, 873, 874, 874, 875, 874,
+ 874, 874, 874, 874, 874, 874, 875, 875,
+
+ 875, 875, 875, 875, 875, 875, 874, 875,
+ 875, 874, 874, 874, 874, 874, 874, 874,
+ 874, 874, 876, 874, 877, 877, 878, 879,
+ 877, 880, 877, 881, 873, 882, 199, 199,
+
+ 883, 884, 885, 886, 887, 888, 889, 890,
+ 891, 892, 199, 199, 199, 199, 199, 199,
+ 893, 893, 893, 893, 893, 893, 893, 893,
+ 893, 893, 199, 199, 199, 199, 199, 199,
+
+ 894, 894, 895, 896, 897, 898, 899, 900,
+ 901, 902, 903, 904, 904, 904, 905, 199,
+ 906, 907, 908, 909, 910, 911, 912, 913,
+ 914, 915, 199, 199, 199, 199, 199, 199,
+
+ 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,
+
+ 916, 916, 916, 917, 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, 916, 916, 916, 916,
+ 916, 916, 916, 916, 916, 916, 916, 916,
+ 916, 916, 916, 916, 916, 916, 916, 916,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 918, 918, 918, 918, 918, 918, 918, 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, 916,
+ 916, 919, 920, 199, 199, 199, 199, 199,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 921, 921, 921, 921, 921, 921, 921, 921,
+ 921, 921, 921, 921, 921, 921, 921, 921,
+ 921, 921, 921, 921, 921, 921, 921, 921,
+ 921, 921, 921, 921, 921, 922, 922, 199,
+
+ 923, 923, 923, 924, 924, 924, 924, 923,
+ 923, 924, 924, 924, 199, 199, 199, 199,
+ 924, 924, 923, 924, 924, 924, 924, 924,
+ 924, 925, 926, 927, 199, 199, 199, 199,
+
+ 928, 199, 199, 199, 929, 929, 930, 931,
+ 932, 933, 934, 935, 936, 937, 938, 939,
+ 940, 940, 940, 940, 940, 940, 940, 940,
+ 940, 940, 940, 940, 940, 940, 940, 940,
+
+ 940, 940, 940, 940, 940, 940, 940, 940,
+ 940, 940, 940, 940, 940, 940, 199, 199,
+ 940, 940, 940, 940, 940, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 941, 941, 941, 941, 941, 941, 941, 941,
+ 941, 941, 941, 941, 941, 941, 941, 941,
+ 941, 941, 941, 941, 941, 941, 941, 941,
+ 941, 941, 941, 941, 941, 941, 941, 941,
+
+ 941, 941, 941, 941, 941, 941, 941, 941,
+ 941, 941, 942, 942, 199, 199, 199, 199,
+ 943, 943, 943, 943, 943, 944, 944, 944,
+ 943, 943, 944, 943, 943, 943, 943, 943,
+
+ 943, 941, 941, 941, 941, 941, 941, 941,
+ 943, 943, 199, 199, 199, 199, 199, 199,
+ 945, 946, 947, 948, 949, 950, 951, 952,
+ 953, 954, 955, 199, 199, 199, 956, 956,
+
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957,
+
+ 958, 958, 958, 958, 958, 958, 958, 958,
+ 958, 958, 958, 958, 958, 958, 958, 958,
+ 958, 958, 958, 958, 958, 958, 958, 959,
+ 960, 961, 961, 962, 199, 199, 963, 963,
+
+ 964, 964, 964, 964, 964, 964, 964, 964,
+ 964, 964, 964, 964, 964, 964, 964, 964,
+ 964, 964, 964, 964, 964, 964, 964, 964,
+ 964, 964, 964, 964, 964, 964, 964, 964,
+
+ 964, 964, 964, 964, 964, 964, 964, 964,
+ 964, 964, 964, 964, 964, 964, 964, 964,
+ 964, 964, 964, 964, 964, 965, 966, 965,
+ 966, 966, 966, 966, 966, 966, 966, 199,
+
+ 967, 968, 966, 968, 968, 966, 966, 966,
+ 966, 966, 966, 966, 966, 965, 965, 965,
+ 965, 965, 965, 966, 966, 969, 969, 969,
+ 969, 969, 969, 969, 969, 199, 199, 970,
+
+ 971, 972, 973, 974, 975, 976, 977, 978,
+ 979, 980, 199, 199, 199, 199, 199, 199,
+ 971, 972, 973, 974, 975, 976, 977, 978,
+ 979, 980, 199, 199, 199, 199, 199, 199,
+
+ 981, 981, 981, 981, 981, 981, 981, 982,
+ 983, 983, 983, 983, 981, 981, 199, 199,
+ 984, 984, 984, 984, 984, 985, 985, 985,
+ 985, 985, 985, 984, 984, 985, 986, 199,
+
+ 987, 987, 987, 987, 988, 989, 990, 989,
+ 990, 989, 990, 989, 990, 989, 990, 989,
+ 989, 989, 990, 989, 989, 989, 989, 989,
+ 989, 989, 989, 989, 989, 989, 989, 989,
+
+ 989, 989, 989, 989, 989, 989, 989, 989,
+ 989, 989, 989, 989, 989, 989, 989, 989,
+ 989, 989, 989, 989, 991, 992, 987, 987,
+ 987, 987, 987, 993, 987, 993, 988, 988,
+
+ 993, 993, 987, 993, 994, 989, 989, 989,
+ 989, 989, 989, 989, 199, 199, 199, 199,
+ 995, 996, 997, 998, 999, 1000, 1001, 1002,
+ 1003, 1004, 1005, 1005, 1006, 1007, 1005, 1005,
+
+ 1007, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1009, 1010, 1009, 1009, 1009,
+ 1009, 1009, 1009, 1009, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 199, 199, 199,
+
+ 1011, 1011, 1012, 1013, 1013, 1013, 1013, 1013,
+ 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
+ 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
+ 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
+
+ 1013, 1012, 1011, 1011, 1011, 1011, 1012, 1012,
+ 1011, 1011, 1014, 1015, 1016, 1016, 1013, 1013,
+ 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
+ 1025, 1026, 1027, 1027, 1027, 1027, 1027, 1027,
+
+ 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
+ 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
+ 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1029, 1029, 1029, 1030, 1031, 1032, 1032, 1032,
- 1032, 1032, 1029, 1029, 1032, 1032, 1032, 1032,
- 1029, 1033, 1031, 1031, 1031, 1031, 1031, 1031,
- 1031, 1034, 1034, 1034, 1034, 1032, 1034, 1034,
- 1034, 1034, 1033, 1035, 1036, 1037, 1037, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1030,
+ 1031, 1031, 1030, 1030, 1030, 1031, 1030, 1031,
+ 1031, 1031, 1032, 1032, 199, 199, 199, 199,
+ 199, 199, 199, 199, 1033, 1033, 1033, 1033,
+
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+
+ 1034, 1034, 1034, 1034, 1035, 1035, 1035, 1035,
+ 1035, 1035, 1035, 1035, 1036, 1036, 1036, 1036,
+ 1036, 1036, 1036, 1036, 1035, 1035, 1036, 1037,
+ 199, 199, 199, 1038, 1038, 1039, 1039, 1039,
+
+ 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
+ 1048, 1049, 199, 199, 199, 1034, 1034, 1034,
+ 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
+ 1058, 1059, 1060, 1060, 1060, 1060, 1060, 1060,
+
+ 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
+ 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
+ 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1062, 1062,
+
+ 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1064, 1064, 1064, 1065, 1066, 1067, 1067, 1067,
+ 1067, 1067, 1064, 1064, 1067, 1067, 1067, 1067,
+
+ 1064, 1068, 1066, 1066, 1066, 1066, 1066, 1066,
+ 1066, 1069, 1069, 1069, 1069, 1067, 1069, 1069,
+ 1069, 1069, 1068, 1070, 1071, 1072, 1072, 199,
+ 984, 984, 199, 199, 199, 199, 199, 199,
114, 114, 114, 114, 114, 114, 114, 114,
114, 114, 114, 114, 114, 114, 114, 114,
114, 114, 114, 114, 114, 114, 114, 114,
114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 1038, 1038,
- 1038, 1038, 1038, 1039, 1040, 1040, 1040, 1041,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1041, 1040, 1040, 1040, 1040,
+ 114, 114, 114, 114, 114, 114, 1073, 1073,
+ 1073, 1073, 1073, 1074, 1075, 1075, 1075, 1076,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 1075, 1075, 1075, 1076, 1075, 1075, 1075, 1075,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1040,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1040, 1042, 1042, 1042,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1076, 1075,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 1075, 1075, 1075, 1075, 1075, 1077, 1077, 1077,
- 1042, 1042, 1040, 1040, 1040, 1040, 1042, 1042,
- 1042, 1042, 1042, 114, 115, 115, 115, 115,
+ 1077, 1077, 1075, 1075, 1075, 1075, 1077, 1077,
+ 1077, 1077, 1077, 114, 115, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115,
- 1043, 1044, 115, 115, 115, 1045, 115, 115,
+ 1078, 1079, 115, 115, 115, 1080, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 1046, 1046, 1046, 1046, 1046,
+ 115, 115, 115, 1081, 1081, 1081, 1081, 1081,
- 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
- 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
- 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
- 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1047,
+ 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
+ 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
+ 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
+ 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1082,
- 182, 182, 181, 182, 1048, 1048, 1048, 1048,
- 1048, 1048, 1049, 1050, 1050, 1051, 1052, 1053,
- 1054, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
+ 188, 188, 187, 188, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1084, 1085, 1085, 1086, 1087, 1088,
+ 1089, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 1055, 1032, 1048, 1049,
+ 1085, 1085, 1085, 1085, 1085, 1085, 1085, 984,
+ 984, 984, 984, 984, 984, 984, 984, 984,
+ 984, 984, 984, 984, 984, 984, 199, 199,
+ 199, 199, 199, 199, 1090, 1067, 1083, 1084,
70, 71, 70, 71, 70, 71, 70, 71,
70, 71, 70, 71, 70, 71, 70, 71,
@@ -1923,258 +1923,258 @@ static const unsigned short uc_property_trie[] = {
70, 71, 70, 71, 70, 71, 70, 71,
70, 71, 70, 71, 70, 71, 70, 71,
- 70, 71, 70, 71, 70, 71, 1056, 1057,
- 1058, 1059, 1060, 1061, 1062, 1062, 1063, 1062,
+ 70, 71, 70, 71, 70, 71, 1091, 1092,
+ 1093, 1094, 1095, 1096, 1097, 1097, 1098, 1097,
70, 71, 70, 71, 70, 71, 70, 71,
70, 71, 70, 71, 70, 71, 70, 71,
70, 71, 70, 71, 70, 71, 70, 71,
- 70, 71, 1064, 1065, 1064, 1065, 1064, 1065,
-
- 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066,
- 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
- 1066, 1066, 1066, 1066, 1066, 1066, 193, 193,
- 1067, 1067, 1067, 1067, 1067, 1067, 193, 193,
-
- 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066,
- 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
- 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066,
- 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
-
- 1066, 1066, 1066, 1066, 1066, 1066, 193, 193,
- 1067, 1067, 1067, 1067, 1067, 1067, 193, 193,
- 1068, 1066, 1069, 1066, 1070, 1066, 1071, 1066,
- 193, 1067, 193, 1067, 193, 1067, 193, 1067,
-
- 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066,
- 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
- 1072, 1073, 1074, 1075, 1074, 1075, 1076, 1077,
- 1078, 1079, 1080, 1081, 1082, 1083, 193, 193,
-
- 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
- 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
- 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
- 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
-
- 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
- 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
- 1066, 1066, 1132, 1133, 1134, 193, 1135, 1136,
- 1067, 1067, 1137, 1138, 1139, 197, 1140, 197,
-
- 197, 1141, 1142, 1143, 1144, 193, 1145, 1146,
- 1147, 1148, 1147, 1148, 1149, 1141, 1141, 1141,
- 1066, 1066, 1150, 1151, 193, 193, 1152, 1153,
- 1067, 1067, 1154, 1155, 193, 1141, 1141, 1141,
-
- 1066, 1066, 1156, 1157, 1158, 1159, 1160, 1161,
- 1067, 1067, 1162, 1163, 1164, 1141, 1165, 1165,
- 193, 193, 1166, 1167, 1168, 193, 1169, 1170,
- 1171, 1172, 1173, 1174, 1175, 1176, 197, 193,
-
- 1177, 1177, 1178, 1178, 1178, 1178, 1178, 1179,
- 1178, 1178, 1178, 1180, 1181, 1182, 1183, 1184,
- 1185, 1186, 1185, 1187, 1188, 1189, 14, 1190,
- 1191, 1192, 1193, 1194, 1194, 1195, 1193, 1194,
-
- 14, 14, 14, 14, 1196, 1197, 1197, 1198,
- 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
- 13, 13, 13, 1207, 1207, 1208, 1209, 1209,
- 14, 1210, 1211, 14, 1212, 1213, 1190, 43,
-
- 43, 14, 14, 14, 1214, 16, 1215, 1216,
- 1217, 1217, 1218, 1218, 1218, 1218, 1219, 1219,
- 1219, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
- 1224, 1224, 1224, 1224, 1223, 1224, 1224, 1226,
-
- 1227, 1228, 1228, 1228, 1229, 1230, 1231, 1232,
- 1233, 1234, 1235, 1235, 1235, 1235, 1235, 1235,
- 1236, 1237, 193, 193, 1238, 1239, 1240, 1241,
- 1242, 1243, 1244, 1244, 1245, 1246, 1247, 151,
-
- 1236, 63, 58, 59, 1238, 1239, 1240, 1241,
- 1242, 1243, 1244, 1244, 1245, 1246, 1247, 193,
- 1046, 1046, 1046, 1046, 1046, 1248, 1248, 1248,
- 1248, 1248, 1248, 1248, 1248, 193, 193, 193,
+ 70, 71, 1099, 1100, 1099, 1100, 1099, 1100,
+
+ 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+ 1101, 1101, 1101, 1101, 1101, 1101, 199, 199,
+ 1102, 1102, 1102, 1102, 1102, 1102, 199, 199,
+
+ 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+ 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+
+ 1101, 1101, 1101, 1101, 1101, 1101, 199, 199,
+ 1102, 1102, 1102, 1102, 1102, 1102, 199, 199,
+ 1103, 1101, 1104, 1101, 1105, 1101, 1106, 1101,
+ 199, 1102, 199, 1102, 199, 1102, 199, 1102,
+
+ 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+ 1107, 1108, 1109, 1110, 1109, 1110, 1111, 1112,
+ 1113, 1114, 1115, 1116, 1117, 1118, 199, 199,
+
+ 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
+ 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
+ 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
+ 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
+
+ 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158,
+ 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
+ 1101, 1101, 1167, 1168, 1169, 199, 1170, 1171,
+ 1102, 1102, 1172, 1173, 1174, 204, 1175, 204,
+
+ 204, 1176, 1177, 1178, 1179, 199, 1180, 1181,
+ 1182, 1183, 1182, 1183, 1184, 1176, 1176, 1176,
+ 1101, 1101, 1185, 1186, 199, 199, 1187, 1188,
+ 1102, 1102, 1189, 1190, 199, 1176, 1176, 1176,
+
+ 1101, 1101, 1191, 1192, 1193, 1194, 1195, 1196,
+ 1102, 1102, 1197, 1198, 1199, 1176, 1200, 1200,
+ 199, 199, 1201, 1202, 1203, 199, 1204, 1205,
+ 1206, 1207, 1208, 1209, 1210, 1211, 204, 199,
+
+ 1212, 1212, 1213, 1213, 1213, 1213, 1213, 1214,
+ 1213, 1213, 1213, 1215, 1216, 1217, 1218, 1219,
+ 1220, 1221, 1220, 1222, 1223, 1224, 14, 1225,
+ 1226, 1227, 1228, 1229, 1229, 1230, 1228, 1229,
+
+ 14, 14, 14, 14, 1231, 1232, 1232, 1233,
+ 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241,
+ 13, 13, 13, 1242, 1242, 1243, 1244, 1244,
+ 14, 1245, 1246, 14, 1247, 1248, 1225, 43,
+
+ 43, 14, 14, 14, 1249, 16, 1250, 1251,
+ 1252, 1252, 1253, 1253, 1253, 1253, 1254, 1254,
+ 1254, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
+ 1259, 1259, 1259, 1259, 1258, 1259, 1259, 1261,
+
+ 1262, 1263, 1263, 1263, 1264, 1265, 1266, 1267,
+ 1268, 1269, 1270, 1270, 1270, 1270, 1270, 1270,
+ 1271, 1272, 199, 199, 1273, 1274, 1275, 1276,
+ 1277, 1278, 1279, 1279, 1280, 1281, 1282, 157,
+
+ 1271, 63, 58, 59, 1273, 1274, 1275, 1276,
+ 1277, 1278, 1279, 1279, 1280, 1281, 1282, 199,
+ 1081, 1081, 1081, 1081, 1081, 1283, 1283, 1283,
+ 1283, 1283, 1283, 1283, 1283, 199, 199, 199,
12, 12, 12, 12, 12, 12, 12, 50,
- 1249, 12, 12, 1250, 1251, 1252, 1252, 1252,
- 1253, 1253, 1254, 1254, 1254, 1254, 1255, 1256,
- 1256, 1257, 1258, 1259, 1259, 1259, 1259, 1259,
-
- 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
- 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
- 164, 164, 171, 171, 164, 164, 164, 164,
- 171, 171, 171, 164, 164, 1260, 1260, 1260,
-
- 1260, 164, 1261, 1261, 1262, 1263, 1263, 188,
- 1264, 188, 1263, 1265, 1049, 1049, 1049, 1049,
- 1050, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1266, 1266, 1267, 1268, 51, 1266, 1266, 1267,
- 51, 1268, 1269, 1267, 1267, 1267, 1269, 1269,
- 1267, 1267, 1267, 1269, 51, 1267, 1270, 51,
- 36, 1267, 1267, 1267, 1267, 1267, 51, 51,
-
- 1266, 1266, 1266, 51, 1267, 51, 1271, 51,
- 1267, 51, 1272, 1273, 1267, 1267, 1274, 1269,
- 1267, 1267, 1275, 1267, 1269, 1276, 1276, 1276,
- 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1282,
-
- 1283, 1220, 1220, 1220, 1220, 1282, 1281, 1281,
- 1281, 1281, 1284, 1220, 1285, 1286, 1287, 1288,
- 1289, 1289, 1289, 65, 65, 65, 65, 65,
+ 1284, 12, 12, 1285, 1286, 1287, 1287, 1287,
+ 1288, 1288, 1289, 1289, 1289, 1289, 1290, 1291,
+ 1291, 1292, 1293, 1294, 1295, 1295, 1296, 1296,
+
+ 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296,
+ 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296,
+ 170, 170, 177, 177, 170, 170, 170, 170,
+ 177, 177, 177, 170, 170, 1297, 1297, 1297,
+
+ 1297, 170, 1298, 1298, 1299, 1300, 1300, 194,
+ 1301, 194, 1300, 1302, 1084, 1084, 1084, 1084,
+ 1085, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1303, 1303, 1304, 1305, 51, 1303, 1303, 1304,
+ 51, 1305, 1306, 1304, 1304, 1304, 1306, 1306,
+ 1304, 1304, 1304, 1306, 51, 1304, 1307, 51,
+ 36, 1304, 1304, 1304, 1304, 1304, 51, 51,
+
+ 1303, 1303, 1303, 51, 1304, 51, 1308, 51,
+ 1304, 51, 1309, 1310, 1304, 1304, 1311, 1306,
+ 1304, 1304, 1312, 1304, 1306, 1313, 1313, 1313,
+ 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1319,
+
+ 1320, 1255, 1255, 1255, 1255, 1319, 1318, 1318,
+ 1318, 1318, 1321, 1255, 1322, 1323, 1324, 1325,
+ 1326, 1326, 1326, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65,
- 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290,
- 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327,
+ 1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328,
+ 1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328,
- 1292, 1292, 1292, 111, 122, 1293, 1293, 1293,
- 1293, 1289, 193, 193, 193, 193, 193, 193,
+ 1329, 1329, 1329, 111, 123, 1330, 1330, 1330,
+ 1330, 1326, 199, 199, 199, 199, 199, 199,
36, 36, 36, 36, 36, 51, 51, 51,
- 51, 51, 1294, 1294, 51, 51, 51, 51,
+ 51, 51, 1331, 1331, 51, 51, 51, 51,
36, 51, 51, 36, 51, 51, 36, 51,
- 51, 51, 51, 51, 51, 51, 1294, 51,
+ 51, 51, 51, 51, 51, 51, 1331, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 1295, 1294, 1294,
+ 51, 51, 51, 51, 51, 1332, 1331, 1331,
51, 51, 36, 51, 36, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 1278, 1278, 1278, 1278, 1278,
- 1278, 1278, 1278, 1278, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 51, 51, 51, 1315, 1315, 1315, 1315, 1315,
+ 1315, 1315, 1315, 1315, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
- 36, 36, 36, 36, 1294, 36, 36, 36,
- 1296, 1297, 1296, 1298, 1299, 1298, 36, 36,
- 36, 36, 18, 57, 36, 1300, 36, 36,
+ 36, 36, 36, 36, 1331, 36, 36, 36,
+ 1333, 1334, 1333, 1335, 1336, 1335, 36, 36,
+ 36, 36, 18, 57, 36, 1337, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 1294, 36, 1294, 36,
- 36, 36, 36, 36, 1245, 1245, 36, 1245,
- 1245, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 1301, 1302, 36, 36,
+ 36, 36, 36, 36, 1331, 36, 1331, 36,
+ 36, 36, 36, 36, 1280, 1280, 36, 1280,
+ 1280, 36, 36, 36, 36, 36, 36, 36,
+ 36, 36, 36, 36, 1338, 1339, 36, 36,
- 36, 1294, 36, 1303, 1294, 36, 36, 1294,
- 36, 1294, 36, 36, 36, 36, 36, 36,
- 36, 36, 1301, 1302, 1301, 1302, 36, 36,
+ 36, 1331, 36, 1340, 1331, 36, 36, 1331,
+ 36, 1331, 36, 36, 36, 36, 36, 36,
+ 36, 36, 1338, 1339, 1338, 1339, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 1294, 36, 1294, 36, 1301, 1302, 1301, 1302,
- 1301, 1302, 1301, 1302, 36, 1294, 1304, 1305,
- 1304, 1305, 1301, 1302, 1304, 1305, 1301, 1302,
- 1304, 1305, 1301, 1302, 1301, 1302, 1301, 1302,
+ 1331, 36, 1331, 36, 1338, 1339, 1338, 1339,
+ 1338, 1339, 1338, 1339, 36, 1331, 1341, 1342,
+ 1341, 1342, 1338, 1339, 1341, 1342, 1338, 1339,
+ 1341, 1342, 1338, 1339, 1338, 1339, 1338, 1339,
- 1304, 1305, 1301, 1302, 1304, 1305, 1301, 1302,
- 1304, 1305, 1301, 1302, 36, 36, 36, 1301,
- 1302, 1301, 1302, 36, 36, 36, 36, 36,
- 1306, 36, 36, 36, 36, 36, 36, 36,
+ 1341, 1342, 1338, 1339, 1341, 1342, 1338, 1339,
+ 1341, 1342, 1338, 1339, 36, 36, 36, 1338,
+ 1339, 1338, 1339, 36, 36, 36, 36, 36,
+ 1343, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 1301, 1302, 36, 36, 1307, 36,
- 1308, 1309, 36, 1309, 1294, 1294, 1294, 1294,
- 1301, 1302, 1301, 1302, 1301, 1302, 1301, 1302,
+ 36, 36, 1338, 1339, 36, 36, 1344, 36,
+ 1345, 1346, 36, 1346, 1331, 1331, 1331, 1331,
+ 1338, 1339, 1338, 1339, 1338, 1339, 1338, 1339,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 1301, 1302, 1301, 1302, 1310, 36, 36,
- 1301, 1302, 36, 36, 36, 36, 1301, 1302,
- 1301, 1302, 1301, 1302, 1301, 1302, 1301, 1302,
+ 36, 1338, 1339, 1338, 1339, 1347, 36, 36,
+ 1338, 1339, 36, 36, 36, 36, 1338, 1339,
+ 1338, 1339, 1338, 1339, 1338, 1339, 1338, 1339,
- 1304, 1305, 1304, 1305, 1301, 1302, 1301, 1302,
- 1301, 1302, 1304, 1305, 1304, 1305, 36, 36,
- 1301, 1302, 1311, 1311, 1311, 1220, 1312, 1312,
- 1220, 1220, 1313, 1313, 1313, 1314, 1314, 1220,
+ 1341, 1342, 1341, 1342, 1338, 1339, 1338, 1339,
+ 1338, 1339, 1341, 1342, 1341, 1342, 36, 36,
+ 1338, 1339, 1348, 1348, 1348, 1255, 1349, 1349,
+ 1255, 1255, 1350, 1350, 1350, 1351, 1351, 1255,
- 51, 1278, 51, 51, 51, 51, 51, 51,
- 1315, 1316, 1315, 1316, 51, 51, 51, 51,
+ 51, 1315, 51, 51, 51, 51, 51, 51,
+ 16, 1250, 16, 1250, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 1317, 1317, 51, 51, 51, 51,
+ 51, 51, 1352, 1352, 51, 51, 51, 51,
36, 36, 51, 51, 51, 51, 51, 51,
- 51, 1318, 1319, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
-
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
-
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
- 1320, 1320, 1320, 1278, 1220, 1278, 1278, 1278,
-
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1278, 1278, 1278, 1278, 1278, 1321, 1278, 1278,
- 1278, 1278, 1278, 1220, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1284, 1284, 1284, 1284,
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284,
-
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284,
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1322,
- 1322, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1323, 1323, 1323, 1323,
-
- 1323, 1323, 1286, 1286, 1286, 1286, 1286, 1286,
- 1324, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1326, 1326, 1326, 1326, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 51, 1353, 1354, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
+ 1355, 1355, 1355, 1315, 1255, 1315, 1315, 1315,
+
+ 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
+ 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
+ 1315, 1315, 1315, 1315, 1315, 1356, 1315, 1315,
+ 1315, 1315, 1315, 1255, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1357,
+ 1357, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
+ 1322, 1322, 1322, 1322, 1358, 1358, 1358, 1358,
+
+ 1358, 1358, 1323, 1323, 1323, 1323, 1323, 1323,
+ 1359, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1361, 1361, 1361, 1361, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 199, 199, 199, 199, 199,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 1278, 1278, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 51, 51, 51, 51, 51, 1315, 1315, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 51, 51, 51, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
- 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
- 1335, 65, 65, 65, 65, 65, 65, 65,
- 65, 65, 65, 65, 1327, 1328, 1329, 1330,
- 1331, 1332, 1333, 1334, 1335, 65, 65, 65,
+ 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
+ 1371, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 1363, 1364, 1365, 1366,
+ 1367, 1368, 1369, 1370, 1371, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65,
- 63, 58, 59, 1238, 1239, 1240, 1241, 1242,
- 1243, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
- 1336, 1336, 1336, 1336, 1337, 1337, 1337, 1337,
+ 63, 58, 59, 1273, 1274, 1275, 1276, 1277,
+ 1278, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1373, 1373, 1373, 1373,
- 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
- 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
- 1337, 1337, 1337, 1337, 1337, 1337, 1338, 1338,
- 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
- 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338,
- 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338,
- 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
- 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
+ 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
- 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
- 1339, 1339, 1340, 1341, 1341, 1341, 1341, 1341,
- 1341, 1341, 1341, 1341, 1341, 1342, 1343, 1344,
- 1345, 1346, 1347, 1348, 1349, 1350, 1341, 1351,
+ 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
+ 1375, 1375, 1376, 1377, 1377, 1377, 1377, 1377,
+ 1377, 1377, 1377, 1377, 1377, 1378, 1379, 1380,
+ 1381, 1382, 1383, 1384, 1385, 1386, 1377, 1387,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 1284, 1284,
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284,
+ 51, 51, 51, 51, 51, 51, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
@@ -2188,2707 +2188,3172 @@ static const unsigned short uc_property_trie[] = {
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
- 1317, 1317, 1317, 1317, 51, 51, 51, 51,
+ 1352, 1352, 1352, 1352, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 1352, 1352, 1284, 1284,
- 1353, 1278, 1317, 1317, 1317, 1317, 1317, 1317,
+ 51, 51, 51, 51, 1388, 1388, 1321, 1321,
+ 1389, 1315, 1352, 1352, 1352, 1352, 1352, 1352,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 1317, 1317, 1317, 51, 51, 51, 51,
+ 51, 1352, 1352, 1352, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1317, 51, 51, 51, 51, 51, 51, 36,
- 1278, 1278, 1284, 1284, 1284, 1284, 1284, 1284,
- 1284, 1284, 1284, 1284, 1284, 1284, 1285, 1353,
-
- 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284,
- 1284, 1284, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1354, 1324, 1324,
-
- 1322, 1322, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1355, 1285, 1285, 1285,
- 1285, 1285, 1286, 1354, 1354, 1354, 1354, 1354,
- 1354, 1354, 1354, 1354, 1354, 1356, 1356, 1356,
-
- 1357, 1357, 1357, 1357, 1356, 1356, 1356, 1356,
- 1356, 1324, 1324, 1324, 1324, 1356, 1325, 1356,
- 1356, 1356, 1324, 1356, 1356, 1324, 1324, 1324,
- 1356, 1356, 1324, 1324, 1356, 1324, 1324, 1356,
-
- 1356, 1356, 1325, 1324, 1325, 1325, 1325, 1325,
- 1324, 1324, 1356, 1324, 1324, 1324, 1324, 1324,
- 1324, 1356, 1356, 1356, 1356, 1356, 1324, 1356,
- 1356, 1356, 1356, 1324, 1324, 1356, 1356, 1356,
-
- 193, 1317, 1317, 1317, 1317, 1325, 51, 51,
- 1317, 1317, 1326, 1326, 1317, 1317, 51, 51,
+ 1352, 51, 51, 51, 51, 51, 51, 36,
+ 1315, 1315, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1322, 1389,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1357, 1357, 1357, 1357, 1357, 1357,
+ 1357, 1357, 1322, 1322, 1322, 1322, 1322, 1322,
+ 1322, 1322, 1322, 1322, 1322, 1390, 1359, 1359,
+
+ 1357, 1357, 1322, 1322, 1322, 1322, 1322, 1322,
+ 1322, 1322, 1322, 1322, 1391, 1322, 1322, 1322,
+ 1322, 1322, 1323, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1392, 1392, 1392,
+
+ 1393, 1393, 1393, 1393, 1392, 1392, 1392, 1392,
+ 1392, 1359, 1359, 1359, 1359, 1392, 1360, 1392,
+ 1392, 1392, 1359, 1392, 1392, 1359, 1359, 1359,
+ 1392, 1392, 1359, 1359, 1392, 1359, 1359, 1392,
+
+ 1392, 1392, 1360, 1359, 1360, 1360, 1360, 1360,
+ 1359, 1359, 1392, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1392, 1392, 1392, 1392, 1392, 1359, 1392,
+ 1392, 1392, 1392, 1359, 1359, 1392, 1392, 1392,
+
+ 1394, 1352, 1352, 1352, 1352, 1360, 51, 51,
+ 1352, 1352, 1361, 1361, 1352, 1352, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1325, 51, 51, 51, 51, 51, 51, 51,
+ 1360, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 1325, 51, 1325, 51,
- 51, 51, 51, 1325, 1325, 1325, 51, 1324,
- 51, 51, 51, 1358, 1358, 1358, 1358, 1325,
-
- 1325, 51, 1359, 1359, 51, 51, 51, 51,
- 1360, 1361, 1360, 1361, 1360, 1361, 1360, 1361,
- 1360, 1361, 1360, 1361, 1360, 1361, 1362, 1363,
- 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
-
- 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
- 1370, 1371, 1362, 1363, 1364, 1365, 1366, 1367,
- 1368, 1369, 1370, 1371, 51, 1325, 1325, 1325,
+ 51, 51, 51, 51, 1360, 51, 1360, 51,
+ 51, 51, 51, 1360, 1360, 1360, 51, 1359,
+ 51, 51, 51, 1395, 1395, 1395, 1395, 1396,
+
+ 1396, 51, 1397, 1397, 51, 51, 51, 51,
+ 1398, 1399, 1398, 1399, 1398, 1399, 1398, 1399,
+ 1398, 1399, 1398, 1399, 1398, 1399, 1400, 1401,
+ 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409,
+
+ 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407,
+ 1408, 1409, 1400, 1401, 1402, 1403, 1404, 1405,
+ 1406, 1407, 1408, 1409, 51, 1360, 1360, 1360,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1325, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 1325,
-
- 1372, 1372, 1372, 1373, 1374, 1375, 1376, 1323,
- 1377, 1378, 1323, 1379, 1380, 1381, 1382, 1382,
- 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1220,
- 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1220,
-
- 1220, 1220, 1383, 1384, 1383, 1384, 1360, 1361,
- 1360, 1361, 1360, 1361, 1385, 1386, 1385, 1386,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
- 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
- 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
- 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1360, 1361, 1360, 1361, 1360,
- 1361, 1360, 1361, 1360, 1361, 1388, 1389, 1390,
- 1391, 1360, 1361, 1360, 1361, 1360, 1361, 1360,
- 1361, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1392, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1383, 1384, 1220, 1220, 1383, 1384, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1383,
- 1384, 1383, 1384, 1220, 1383, 1384, 1220, 1220,
- 1360, 1361, 1360, 1361, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1393, 1220, 1220,
- 1383, 1384, 1220, 1220, 1360, 1361, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1283, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1383, 1384, 1383, 1384, 1220,
- 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220,
- 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220,
-
- 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
- 1220, 1220, 1220, 1220, 1283, 1283, 1283, 1220,
- 1220, 1383, 1384, 1220, 1220, 1383, 1384, 1383,
-
- 1384, 1383, 1384, 1383, 1384, 1220, 1220, 1220,
- 1220, 1220, 1220, 1383, 1384, 1220, 1220, 1220,
- 1220, 1383, 1384, 1383, 1384, 1383, 1384, 1383,
- 1384, 1383, 1384, 1383, 1384, 1220, 1220, 1220,
-
- 1220, 1383, 1384, 1220, 1220, 1220, 1383, 1384,
- 1383, 1384, 1383, 1384, 1383, 1384, 1220, 1383,
- 1384, 1220, 1220, 1383, 1384, 1220, 1220, 1220,
- 1220, 1220, 1220, 1383, 1384, 1383, 1384, 1383,
-
- 1384, 1383, 1384, 1383, 1384, 1383, 1384, 1220,
- 1220, 1220, 1220, 1220, 1220, 1383, 1384, 1383,
- 1384, 1383, 1384, 1383, 1384, 1383, 1384, 1220,
- 1220, 1220, 1220, 1220, 1394, 1220, 1395, 1220,
-
- 1220, 1220, 1220, 1396, 1397, 1396, 1220, 1220,
- 1220, 1220, 1220, 1220, 1383, 1384, 1220, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1383,
- 1384, 1383, 1384, 1220, 1220, 1220, 1220, 1220,
-
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1285, 1285,
- 1285, 1285, 1285, 1285, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1354, 1354, 1354, 1354, 1354,
-
- 1286, 1286, 1286, 1286, 1354, 1354, 1354, 1354,
- 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
- 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
- 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
-
- 1380, 1380, 1380, 1380, 1380, 1354, 1354, 1380,
- 1380, 1380, 1380, 1380, 1380, 193, 193, 193,
- 1354, 1354, 1354, 1354, 1354, 1324, 1324, 1324,
- 1324, 1324, 193, 193, 193, 193, 193, 193,
-
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
-
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
- 1398, 1398, 1398, 1398, 1398, 1398, 1398, 193,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
-
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
- 1399, 1399, 1399, 1399, 1399, 1399, 1399, 193,
-
- 126, 122, 1400, 1401, 1402, 1403, 1404, 126,
- 122, 126, 122, 126, 122, 1405, 1406, 1407,
- 1408, 1062, 1064, 1065, 1409, 126, 122, 1409,
- 1062, 1062, 1062, 1062, 1410, 1410, 1411, 1411,
-
- 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413,
- 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413,
- 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413,
- 1412, 1413, 1412, 1413, 1412, 1413, 1412, 1413,
-
- 1412, 1413, 1412, 1413, 1414, 1415, 1415, 1415,
- 1415, 1415, 1415, 1416, 1417, 1416, 1417, 1418,
- 1418, 1418, 1419, 1420, 193, 193, 193, 193,
- 193, 1421, 1422, 1422, 1422, 1423, 1421, 1422,
-
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
-
- 1424, 1424, 1424, 1424, 1424, 1424, 193, 1425,
- 193, 193, 193, 193, 193, 1425, 193, 193,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
-
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
- 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
-
- 1426, 1426, 1426, 1426, 1426, 1426, 1427, 1427,
- 193, 193, 193, 193, 193, 193, 193, 1428,
- 1429, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 1430,
-
- 800, 800, 800, 800, 800, 800, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 800,
- 800, 800, 800, 800, 800, 800, 800, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 800, 800, 800, 800, 800, 800, 800, 193,
- 800, 800, 800, 800, 800, 800, 800, 193,
- 800, 800, 800, 800, 800, 800, 800, 193,
- 800, 800, 800, 800, 800, 800, 800, 193,
-
- 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 257, 257, 257, 257, 257, 257, 257,
-
- 1431, 1431, 1432, 1433, 1432, 1433, 1431, 1431,
- 1431, 1432, 1433, 1431, 1432, 1433, 1224, 1224,
- 1224, 1224, 1224, 1224, 1224, 1224, 1223, 1434,
- 1435, 1436, 1437, 1438, 1432, 1433, 1438, 1438,
-
- 1439, 1440, 1385, 1386, 1385, 1386, 1385, 1386,
- 1385, 1386, 1436, 1436, 1436, 1436, 1441, 1442,
- 1436, 1443, 1444, 1445, 1445, 1444, 1444, 1444,
- 1444, 1444, 1446, 1446, 193, 193, 193, 193,
-
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 193, 1447, 1447, 1447, 1447, 1448,
-
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
-
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
- 1447, 1447, 1447, 1448, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
-
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
- 1448, 1448, 1448, 1448, 1448, 1448, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
- 1449, 1449, 1449, 1449, 193, 193, 193, 193,
-
- 1178, 1450, 1451, 1452, 1317, 1453, 1454, 1455,
- 16, 1215, 16, 1215, 16, 1215, 16, 1215,
- 16, 1215, 1317, 1317, 16, 1215, 16, 1215,
- 16, 1215, 16, 1215, 1456, 1193, 1457, 1457,
-
- 1317, 1455, 1455, 1455, 1455, 1455, 1455, 1455,
- 1455, 1455, 1458, 1459, 165, 1460, 1461, 1461,
- 1462, 1463, 1463, 1463, 1463, 1464, 1465, 1317,
- 1466, 1466, 1466, 1467, 1468, 1469, 1449, 1317,
-
- 193, 1470, 1471, 1470, 1471, 1470, 1471, 1470,
- 1471, 1470, 1471, 1471, 1472, 1471, 1472, 1471,
- 1472, 1471, 1472, 1471, 1472, 1471, 1472, 1471,
- 1472, 1471, 1472, 1471, 1472, 1471, 1472, 1471,
-
- 1472, 1471, 1472, 1470, 1471, 1472, 1471, 1472,
- 1471, 1472, 1471, 1471, 1471, 1471, 1471, 1471,
- 1472, 1472, 1471, 1472, 1472, 1471, 1472, 1472,
- 1471, 1472, 1472, 1471, 1472, 1472, 1471, 1471,
-
- 1471, 1471, 1471, 1470, 1471, 1470, 1471, 1470,
- 1471, 1471, 1471, 1471, 1471, 1471, 1470, 1471,
- 1471, 1471, 1471, 1471, 1472, 1473, 1473, 193,
- 193, 1474, 1474, 1475, 1475, 1476, 1477, 1478,
-
- 1479, 1480, 1481, 1480, 1481, 1480, 1481, 1480,
- 1481, 1480, 1481, 1481, 1482, 1481, 1482, 1481,
- 1482, 1481, 1482, 1481, 1482, 1481, 1482, 1481,
- 1482, 1481, 1482, 1481, 1482, 1481, 1482, 1481,
-
- 1482, 1481, 1482, 1480, 1481, 1482, 1481, 1482,
- 1481, 1482, 1481, 1481, 1481, 1481, 1481, 1481,
- 1482, 1482, 1481, 1482, 1482, 1481, 1482, 1482,
- 1481, 1482, 1482, 1481, 1482, 1482, 1481, 1481,
-
- 1481, 1481, 1481, 1480, 1481, 1480, 1481, 1480,
- 1481, 1481, 1481, 1481, 1481, 1481, 1480, 1481,
- 1481, 1481, 1481, 1481, 1482, 1480, 1480, 1482,
- 1482, 1482, 1482, 1483, 1484, 1485, 1486, 1487,
-
- 193, 193, 193, 193, 193, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
-
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1489, 193, 193,
- 193, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
-
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
-
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
- 1490, 1490, 1490, 1490, 1490, 1490, 1490, 193,
- 1491, 1491, 1492, 1492, 1492, 1492, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
-
- 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,
- 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,
- 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,
- 1495, 1495, 1495, 193, 193, 193, 193, 193,
+ 1360, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 1360,
+
+ 1410, 1410, 1410, 1411, 1412, 1413, 1414, 1358,
+ 1415, 1416, 1358, 1417, 1418, 1419, 1420, 1420,
+ 1255, 1255, 1255, 1255, 1255, 1421, 1422, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1421, 1422, 1255,
+
+ 1255, 1255, 1421, 1422, 1421, 1422, 1398, 1399,
+ 1398, 1399, 1398, 1399, 1423, 1424, 1423, 1424,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1398, 1399, 1398, 1399, 1398,
+ 1399, 1398, 1399, 1398, 1399, 1426, 1427, 1428,
+ 1429, 1398, 1399, 1398, 1399, 1398, 1399, 1398,
+ 1399, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1430, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1421, 1422, 1255, 1255, 1421, 1422, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1421,
+ 1422, 1421, 1422, 1255, 1421, 1422, 1255, 1255,
+ 1398, 1399, 1398, 1399, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1431, 1255, 1255,
+ 1421, 1422, 1255, 1255, 1398, 1399, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1320, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1421, 1422, 1421, 1422, 1255,
+ 1255, 1255, 1255, 1255, 1421, 1422, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1421, 1422, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1421, 1422, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1320, 1320, 1320, 1255,
+ 1255, 1421, 1422, 1255, 1255, 1421, 1422, 1421,
+
+ 1422, 1421, 1422, 1421, 1422, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1421, 1422, 1255, 1255, 1255,
+ 1255, 1421, 1422, 1421, 1422, 1421, 1422, 1421,
+ 1422, 1421, 1422, 1421, 1422, 1255, 1255, 1255,
+
+ 1255, 1421, 1422, 1255, 1255, 1255, 1421, 1422,
+ 1421, 1422, 1421, 1422, 1421, 1422, 1255, 1421,
+ 1422, 1255, 1255, 1421, 1422, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1421, 1422, 1421, 1422, 1421,
+
+ 1422, 1421, 1422, 1421, 1422, 1421, 1422, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1421, 1422, 1421,
+ 1422, 1421, 1422, 1421, 1422, 1421, 1422, 1255,
+ 1255, 1255, 1255, 1255, 1432, 1255, 1433, 1255,
+
+ 1255, 1255, 1255, 1434, 1435, 1434, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1421, 1422, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1421,
+ 1422, 1421, 1422, 1255, 1255, 1255, 1255, 1255,
- 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353,
- 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
-
- 1357, 1357, 1357, 1357, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
- 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1322, 1322,
+ 1322, 1322, 1322, 1322, 1323, 1323, 1323, 1323,
+ 1323, 1323, 1323, 1390, 1390, 1390, 1390, 1390,
+
+ 1323, 1323, 1323, 1323, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418,
+
+ 1418, 1418, 1418, 1418, 1418, 1390, 1390, 1418,
+ 1418, 1418, 1418, 1418, 1418, 1362, 1362, 1362,
+ 1390, 1390, 1390, 1390, 1390, 1359, 1359, 1359,
+ 1359, 1359, 1362, 1362, 1362, 1362, 1362, 1362,
+
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 199, 199, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 199, 199, 199, 1362, 1362, 1362,
+
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 199, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 199,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 199,
+
+ 127, 123, 1438, 1439, 1440, 1441, 1442, 127,
+ 123, 127, 123, 127, 123, 1443, 1444, 1445,
+ 1446, 1097, 1099, 1100, 1447, 127, 123, 1447,
+ 1097, 1097, 1097, 1097, 1448, 1448, 1449, 1450,
+
+ 1451, 1452, 1451, 1452, 1451, 1452, 1451, 1452,
+ 1451, 1452, 1451, 1452, 1451, 1452, 1451, 1452,
+ 1451, 1452, 1451, 1452, 1451, 1452, 1451, 1452,
+ 1451, 1452, 1451, 1452, 1451, 1452, 1451, 1452,
+
+ 1451, 1452, 1451, 1452, 1453, 1454, 1454, 1454,
+ 1454, 1454, 1454, 1455, 1456, 1455, 1456, 1457,
+ 1457, 1457, 1458, 1459, 199, 199, 199, 199,
+ 199, 1460, 1461, 1461, 1461, 1462, 1460, 1461,
+
+ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+
+ 1463, 1463, 1463, 1463, 1463, 1463, 199, 1464,
+ 199, 199, 199, 199, 199, 1464, 199, 199,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465,
+
+ 1465, 1465, 1465, 1465, 1465, 1465, 1466, 1466,
+ 199, 199, 199, 199, 199, 199, 199, 1467,
+ 1468, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 1469,
+
+ 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 830, 830, 830, 830, 830, 830, 830, 199,
+ 830, 830, 830, 830, 830, 830, 830, 199,
+ 830, 830, 830, 830, 830, 830, 830, 199,
+ 830, 830, 830, 830, 830, 830, 830, 199,
+
+ 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264,
+ 264, 264, 264, 264, 264, 264, 264, 264,
+
+ 1470, 1470, 1471, 1472, 1471, 1472, 1470, 1470,
+ 1470, 1471, 1472, 1470, 1471, 1472, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1258, 1473,
+ 1474, 1475, 1476, 1477, 1471, 1472, 1477, 1477,
+
+ 1478, 1479, 1423, 1424, 1423, 1424, 1423, 1424,
+ 1423, 1424, 1475, 1475, 1475, 1475, 1480, 1481,
+ 1475, 1482, 1483, 1484, 1484, 1483, 1483, 1483,
+ 1483, 1483, 1485, 1485, 1486, 1487, 1487, 1488,
+
+ 1489, 1487, 1490, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 199, 1491, 1491, 1491, 1491, 1492,
+
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
+ 1491, 1491, 1491, 1492, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1497, 1498, 1498, 193,
+ 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
+ 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
+ 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
+ 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
- 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
+ 1492, 1492, 1492, 1492, 1492, 1492, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1493, 1493, 1493, 1493, 199, 199, 199, 199,
+
+ 1213, 1494, 1495, 1496, 1352, 1497, 1498, 1499,
+ 16, 1250, 16, 1250, 16, 1250, 16, 1250,
+ 16, 1250, 1352, 1352, 16, 1250, 16, 1250,
+ 16, 1250, 16, 1250, 1500, 1228, 1501, 1501,
+
+ 1352, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
+ 1499, 1499, 1502, 1503, 171, 1504, 1505, 1505,
+ 1506, 1507, 1507, 1507, 1507, 1508, 1509, 1352,
+ 1510, 1510, 1510, 1511, 1512, 1513, 1493, 1352,
+
+ 199, 1514, 1515, 1514, 1515, 1514, 1515, 1514,
+ 1515, 1514, 1515, 1515, 1516, 1515, 1516, 1515,
+ 1516, 1515, 1516, 1515, 1516, 1515, 1516, 1515,
+ 1516, 1515, 1516, 1515, 1516, 1515, 1516, 1515,
+
+ 1516, 1515, 1516, 1514, 1515, 1516, 1515, 1516,
+ 1515, 1516, 1515, 1515, 1515, 1515, 1515, 1515,
+ 1516, 1516, 1515, 1516, 1516, 1515, 1516, 1516,
+ 1515, 1516, 1516, 1515, 1516, 1516, 1515, 1515,
+
+ 1515, 1515, 1515, 1514, 1515, 1514, 1515, 1514,
+ 1515, 1515, 1515, 1515, 1515, 1515, 1514, 1515,
+ 1515, 1515, 1515, 1515, 1516, 1517, 1517, 199,
+ 199, 1518, 1518, 1519, 1519, 1520, 1521, 1522,
+
+ 1523, 1524, 1525, 1524, 1525, 1524, 1525, 1524,
+ 1525, 1524, 1525, 1525, 1526, 1525, 1526, 1525,
+ 1526, 1525, 1526, 1525, 1526, 1525, 1526, 1525,
+ 1526, 1525, 1526, 1525, 1526, 1525, 1526, 1525,
+
+ 1526, 1525, 1526, 1524, 1525, 1526, 1525, 1526,
+ 1525, 1526, 1525, 1525, 1525, 1525, 1525, 1525,
+ 1526, 1526, 1525, 1526, 1526, 1525, 1526, 1526,
+ 1525, 1526, 1526, 1525, 1526, 1526, 1525, 1525,
+
+ 1525, 1525, 1525, 1524, 1525, 1524, 1525, 1524,
+ 1525, 1525, 1525, 1525, 1525, 1525, 1524, 1525,
+ 1525, 1525, 1525, 1525, 1526, 1524, 1524, 1526,
+ 1526, 1526, 1526, 1527, 1528, 1529, 1530, 1531,
+
+ 199, 199, 199, 199, 199, 1532, 1532, 1532,
+ 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
+ 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
+ 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
+
+ 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
+ 1532, 1532, 1532, 1532, 1532, 1533, 199, 199,
+ 199, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
+ 1534, 1534, 1534, 1534, 1534, 1534, 1534, 199,
+ 1535, 1535, 1536, 1536, 1536, 1536, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1539, 1539, 1539, 199, 199, 199, 199, 199,
+
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+
+ 1393, 1393, 1393, 1393, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
+ 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
- 1493, 1493, 1493, 1493, 1499, 1499, 1499, 1499,
- 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500,
- 1501, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
- 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1542, 1542, 199,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
- 1497, 1497, 1497, 1497, 1498, 1498, 1503, 1491,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
- 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
+ 1537, 1537, 1537, 1537, 1543, 1543, 1543, 1543,
+ 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544,
+ 1545, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
+ 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1501, 1501, 1501, 1501,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
-
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 193,
-
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
-
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1542, 1542, 1547, 1535,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1501,
- 1501, 1501, 1501, 1493, 1493, 1493, 1493, 1493,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
+ 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1545, 1545, 1545, 1545,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1501, 1501,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 199,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
- 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1501,
-
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
-
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
-
- 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
- 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
- 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
- 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
-
- 1507, 1507, 1507, 1507, 1507, 1507, 1508, 1508,
- 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
- 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
- 1508, 1508, 1508, 1508, 1509, 1509, 1509, 1509,
-
- 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1511, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1513, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
-
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
-
- 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
- 1512, 1512, 1512, 1512, 1512, 193, 193, 193,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
-
- 1514, 1514, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1515, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
-
- 1514, 1515, 1514, 1514, 1514, 1515, 1514, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
-
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
- 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,
- 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1519,
-
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
-
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1521, 1522, 1523, 1524,
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
- 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
-
- 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
- 1533, 1534, 1520, 1520, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 271, 272, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
-
- 275, 276, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 1535, 257,
- 1536, 1536, 1536, 1537, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 257, 257, 1537, 1539,
-
- 271, 272, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
- 271, 272, 271, 272, 271, 272, 271, 272,
- 193, 193, 193, 193, 193, 193, 193, 1538,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
- 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
- 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
- 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1545,
+ 1545, 1545, 1545, 1537, 1537, 1537, 1537, 1537,
+
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1545, 1545,
+
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1545,
+
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
+ 1549, 1549, 1549, 1549, 1549, 1549, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
- 1540, 1540, 1540, 1540, 1540, 1540, 1541, 1541,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- 1542, 1542, 1543, 1544, 1545, 1545, 1545, 1544,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
- 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546,
- 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547,
- 1547, 1547, 1547, 1442, 1442, 1442, 1442, 1442,
-
- 1548, 1548, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1062, 1062, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
-
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
-
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1410, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
- 1062, 1064, 1065, 1064, 1065, 1549, 1064, 1065,
-
- 1064, 1065, 1064, 1065, 1064, 1065, 1064, 1065,
- 1442, 1550, 1550, 1064, 1065, 1551, 1552, 193,
- 1553, 1554, 1555, 1556, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1553, 1554, 1553, 1554, 1553, 1554, 1553, 1554,
- 1553, 1554, 1557, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1558, 1558, 1552, 1559, 1559, 1559, 1559, 1559,
-
- 1560, 1560, 1561, 1560, 1560, 1560, 1562, 1560,
- 1560, 1560, 1560, 1561, 1560, 1560, 1560, 1560,
+ 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
+ 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
+ 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
+ 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
+
+ 1551, 1551, 1551, 1551, 1551, 1551, 1552, 1552,
+ 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
+ 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
+ 1552, 1552, 1552, 1552, 1553, 1553, 1553, 1553,
+
+ 1553, 1553, 1553, 1553, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1555, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1557, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+
+ 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
+ 1556, 1556, 1556, 1556, 1556, 199, 199, 199,
+ 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
+ 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
+
+ 1558, 1558, 1559, 1559, 1558, 1558, 1558, 1558,
+ 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
+ 1558, 1558, 1558, 1558, 1559, 1558, 1558, 1558,
+ 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
+
+ 1558, 1559, 1558, 1558, 1558, 1559, 1558, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
- 1560, 1560, 1560, 1563, 1563, 1561, 1561, 1563,
- 1564, 1564, 1564, 1564, 193, 193, 193, 193,
- 1500, 1500, 1500, 1500, 1500, 1500, 742, 742,
- 1255, 1565, 193, 193, 193, 193, 193, 193,
+ 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
+ 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
+ 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
+ 1561, 1561, 1561, 1561, 1561, 1561, 1562, 1563,
+
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1565, 1566, 1567, 1568,
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+ 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
+
+ 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
+ 1577, 1578, 1564, 1564, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+
+ 282, 283, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 1579, 264,
+ 1580, 1580, 1580, 1581, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 1582, 264, 264, 1581, 1583,
+
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 278, 279, 278, 279, 278, 279, 278, 279,
+ 284, 285, 284, 285, 1584, 1584, 199, 1582,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,
- 1566, 1566, 1567, 1568, 1569, 1569, 1570, 1570,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1585, 1585, 1585, 1585, 1585, 1585, 1586, 1586,
+ 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586,
+ 1587, 1587, 1588, 1589, 1590, 1590, 1590, 1589,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
+ 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
+ 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1592,
+ 1592, 1592, 1592, 1481, 1481, 1481, 1481, 1481,
+
+ 1593, 1593, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1097, 1097, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1448, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
+ 1097, 1099, 1100, 1099, 1100, 1594, 1099, 1100,
+
+ 1099, 1100, 1099, 1100, 1099, 1100, 1099, 1100,
+ 1481, 1595, 1595, 1099, 1100, 1596, 1597, 199,
+ 1598, 1599, 1600, 1601, 1602, 1602, 1603, 1604,
+ 1603, 1604, 1603, 1604, 1603, 1604, 1603, 1604,
+
+ 1598, 1599, 1598, 1599, 1598, 1599, 1598, 1599,
+ 1598, 1599, 1605, 1606, 1607, 1608, 199, 199,
+ 1609, 1610, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 1611,
+ 1612, 1612, 1597, 1613, 1613, 1613, 1613, 1613,
+
+ 1614, 1614, 1615, 1614, 1614, 1614, 1616, 1614,
+ 1614, 1614, 1614, 1615, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+
+ 1614, 1614, 1614, 1617, 1617, 1615, 1615, 1617,
+ 1618, 1618, 1618, 1618, 199, 199, 199, 199,
+ 1544, 1544, 1544, 1544, 1544, 1544, 772, 772,
+ 1290, 1619, 199, 199, 199, 199, 199, 199,
+
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
+ 1620, 1620, 1621, 1622, 1623, 1623, 1624, 1624,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1625, 1625, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1625, 1625, 1625, 1625,
+ 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
- 1572, 1572, 1572, 1572, 1571, 1571, 1571, 1571,
- 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571,
+ 1625, 1625, 1625, 1625, 1627, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 1628, 1628,
+ 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
+ 1637, 1638, 199, 199, 199, 199, 199, 199,
- 1571, 1571, 1571, 1571, 1573, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 1574, 1574,
- 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
- 1583, 1584, 193, 193, 193, 193, 193, 193,
+ 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
+ 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
+ 1639, 1639, 490, 490, 490, 490, 490, 490,
+ 1640, 1640, 1640, 490, 199, 199, 199, 199,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585,
- 1585, 1585, 475, 475, 475, 475, 475, 475,
- 1586, 1586, 1586, 475, 193, 193, 193, 193,
+ 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
+ 1649, 1650, 1651, 1651, 1651, 1651, 1651, 1651,
+ 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
+ 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
- 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594,
- 1595, 1596, 1597, 1597, 1597, 1597, 1597, 1597,
- 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
- 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597,
+ 1651, 1651, 1651, 1651, 1651, 1651, 1652, 1652,
+ 1652, 1652, 1652, 1653, 1653, 1653, 1654, 1655,
+ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
+ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
- 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1598,
- 1598, 1598, 1598, 1599, 1599, 1599, 1600, 1601,
+ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
+ 1657, 1657, 1658, 1659, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 1660,
+
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 199, 199, 199,
+
+ 1661, 1661, 1661, 1662, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+
+ 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
+ 1663, 1663, 1663, 1664, 1662, 1662, 1661, 1661,
+ 1661, 1661, 1662, 1662, 1661, 1662, 1662, 1662,
+
+ 1665, 1666, 1666, 1666, 1666, 1666, 1666, 1667,
+ 1668, 1668, 1666, 1666, 1666, 1666, 199, 1669,
+ 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
+ 1678, 1679, 199, 199, 199, 199, 1666, 1666,
+
+ 1680, 1680, 1680, 1680, 1680, 1681, 1682, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
+ 1691, 1692, 1680, 1680, 1680, 1680, 1680, 199,
+
+ 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+ 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+ 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+ 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+
+ 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
+ 1693, 1694, 1694, 1694, 1694, 1694, 1694, 1695,
+ 1695, 1694, 1694, 1695, 1695, 1694, 1694, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1693, 1693, 1693, 1694, 1693, 1693, 1693, 1693,
+ 1693, 1693, 1693, 1693, 1694, 1695, 199, 199,
+ 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703,
+ 1704, 1705, 199, 199, 1706, 1707, 1707, 1707,
+
+ 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
+ 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
+ 1709, 1708, 1708, 1708, 1708, 1708, 1708, 1710,
+ 1710, 1710, 1708, 810, 1681, 1711, 1680, 1680,
+
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
+ 1713, 1712, 1713, 1713, 1714, 1712, 1712, 1713,
+ 1713, 1712, 1712, 1712, 1712, 1712, 1713, 1713,
+
+ 1712, 1713, 1712, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 1712, 1712, 1715, 1716, 1716,
+
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
+ 1717, 1717, 1717, 1718, 1719, 1719, 1718, 1718,
+ 1720, 1720, 1717, 1721, 1721, 1718, 1722, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 1723, 1723, 1723, 1723, 1723, 1723, 199,
+ 199, 1723, 1723, 1723, 1723, 1723, 1723, 199,
+ 199, 1723, 1723, 1723, 1723, 1723, 1723, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1723, 1723, 1723, 1723, 1723, 1723, 1723, 199,
+ 1723, 1723, 1723, 1723, 1723, 1723, 1723, 199,
1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
- 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1603,
- 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
- 1603, 1603, 1604, 1605, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 1606,
+ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1602, 1724, 1725, 1725, 1725, 1725,
+
+ 199, 199, 199, 199, 1602, 1726, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
+ 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
+ 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
+ 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
+
+ 1727, 1727, 1727, 1728, 1728, 1729, 1728, 1728,
+ 1729, 1728, 1728, 1730, 1728, 1731, 199, 199,
+ 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
+ 1740, 1741, 199, 199, 199, 199, 199, 199,
+
+ 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1742, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1742, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1742, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 1742, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+ 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
+
+ 1743, 1743, 1743, 1743, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 825, 825, 825, 825, 825, 825, 825, 825,
+ 825, 825, 825, 825, 825, 825, 825, 825,
- 792, 792, 792, 792, 792, 792, 792, 792,
- 792, 792, 792, 792, 792, 792, 792, 792,
- 792, 792, 792, 792, 792, 792, 792, 792,
- 792, 792, 792, 792, 792, 193, 193, 193,
+ 825, 825, 825, 825, 825, 825, 825, 199,
+ 199, 199, 199, 828, 828, 828, 828, 828,
+ 828, 828, 828, 828, 828, 828, 828, 828,
+ 828, 828, 828, 828, 828, 828, 828, 828,
- 1607, 1607, 1607, 1608, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
+ 828, 828, 828, 828, 828, 828, 828, 828,
+ 828, 828, 828, 828, 828, 828, 828, 828,
+ 828, 828, 828, 828, 828, 828, 828, 828,
+ 828, 828, 828, 828, 199, 199, 199, 199,
- 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
- 1609, 1609, 1609, 1610, 1608, 1608, 1607, 1607,
- 1607, 1607, 1608, 1608, 1607, 1608, 1608, 1608,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
- 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1613,
- 1614, 1614, 1612, 1612, 1612, 1612, 193, 1615,
- 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623,
- 1624, 1625, 193, 193, 193, 193, 1612, 1612,
+ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
+ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
+ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
+ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
+
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1551, 1551,
+ 1746, 1551, 1746, 1551, 1551, 1746, 1746, 1746,
+ 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1551,
+
+ 1746, 1551, 1746, 1551, 1551, 1746, 1746, 1551,
+ 1551, 1551, 1746, 1746, 1746, 1746, 1747, 1747,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+
+ 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
+ 1748, 1748, 1748, 1749, 1749, 1749, 1550, 1550,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1751, 1752, 1753, 1754, 1755, 1756, 1756, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 1757, 1758, 1759, 1760, 1761,
+ 199, 199, 199, 199, 199, 1762, 1763, 1764,
+
+ 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
+ 1765, 1766, 1764, 1764, 1764, 1764, 1764, 1764,
+ 1764, 1764, 1764, 1764, 1764, 1764, 1764, 296,
+ 1764, 1764, 1764, 1764, 1764, 296, 1764, 296,
+
+ 1764, 1764, 296, 1764, 1764, 296, 1764, 1764,
+ 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1765,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
- 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
- 1626, 1627, 1627, 1627, 1627, 1627, 1627, 1628,
- 1628, 1627, 1627, 1628, 1628, 1627, 1627, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
- 1626, 1626, 1626, 1627, 1626, 1626, 1626, 1626,
- 1626, 1626, 1626, 1626, 1627, 1628, 193, 193,
- 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
- 1637, 1638, 193, 193, 1639, 1640, 1640, 1640,
-
- 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
- 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
- 1642, 1641, 1641, 1641, 1641, 1641, 1641, 1643,
- 1643, 1643, 1641, 780, 193, 193, 193, 193,
-
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
-
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
- 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
- 1645, 1644, 1645, 1645, 1646, 1644, 1644, 1645,
- 1645, 1644, 1644, 1644, 1644, 1644, 1645, 1645,
-
- 1644, 1645, 1644, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 1644, 1644, 1647, 1648, 1648,
-
- 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649,
- 1649, 1649, 1649, 1650, 1651, 1651, 1650, 1650,
- 1652, 1652, 1649, 1653, 1653, 1650, 1654, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 1655, 1655, 1655, 1655, 1655, 1655, 193,
- 193, 1655, 1655, 1655, 1655, 1655, 1655, 193,
- 193, 1655, 1655, 1655, 1655, 1655, 1655, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1655, 1655, 1655, 1655, 1655, 1655, 1655, 193,
- 1655, 1655, 1655, 1655, 1655, 1655, 1655, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1768, 1768, 1768, 1768, 1768, 1768,
+ 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
- 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
- 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
- 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
- 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,
+ 1768, 1768, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
- 1656, 1656, 1656, 1657, 1657, 1658, 1657, 1657,
- 1658, 1657, 1657, 1659, 1657, 1660, 193, 193,
- 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
- 1669, 1670, 193, 193, 193, 193, 193, 193,
-
- 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 1671, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
- 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
-
- 1672, 1672, 1672, 1672, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 795, 795, 795, 795, 795, 795, 795, 795,
- 795, 795, 795, 795, 795, 795, 795, 795,
-
- 795, 795, 795, 795, 795, 795, 795, 193,
- 193, 193, 193, 798, 798, 798, 798, 798,
- 798, 798, 798, 798, 798, 798, 798, 798,
- 798, 798, 798, 798, 798, 798, 798, 798,
-
- 798, 798, 798, 798, 798, 798, 798, 798,
- 798, 798, 798, 798, 798, 798, 798, 798,
- 798, 798, 798, 798, 798, 798, 798, 798,
- 798, 798, 798, 798, 193, 193, 193, 193,
-
- 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
- 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
- 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
- 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
-
- 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
- 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
- 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
- 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
-
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
-
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1507, 1507,
- 1675, 1507, 1675, 1507, 1507, 1675, 1675, 1675,
- 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1507,
-
- 1675, 1507, 1675, 1507, 1507, 1675, 1675, 1507,
- 1507, 1507, 1675, 1675, 1675, 1675, 1676, 1676,
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
-
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
-
- 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
- 1677, 1677, 1677, 1678, 1678, 1678, 1506, 1506,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
-
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
-
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
- 1679, 1679, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1680, 1681, 1682, 1683, 1684, 1685, 1685, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 1686, 1687, 1688, 1689, 1690,
- 193, 193, 193, 193, 193, 1691, 1692, 1693,
-
- 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694,
- 1694, 1695, 1693, 1693, 1693, 1693, 1693, 1693,
- 1693, 1693, 1693, 1693, 1693, 1693, 1693, 287,
- 1693, 1693, 1693, 1693, 1693, 287, 1693, 287,
-
- 1693, 1693, 287, 1693, 1693, 287, 1693, 1693,
- 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1694,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1697, 1697, 1697, 1697, 1697, 1697,
- 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697,
-
- 1697, 1697, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1193, 1457,
-
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 319, 319, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
- 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
-
- 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
- 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1699, 1322, 319, 319,
-
- 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
- 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
- 1701, 1702, 1703, 1704, 1705, 1706, 1706, 1707,
- 1708, 1709, 193, 193, 193, 193, 193, 193,
-
- 164, 164, 164, 164, 1050, 1050, 1050, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1710, 1711, 1711, 1712, 1712, 1713, 1714, 1713,
- 1714, 1713, 1714, 1713, 1714, 1713, 1714, 1713,
-
- 1714, 1713, 1714, 1713, 1714, 1469, 1469, 1715,
- 1716, 1710, 1710, 1710, 1710, 1712, 1712, 1712,
- 1717, 1718, 1719, 193, 1720, 1721, 1722, 1722,
- 1711, 1246, 1247, 1246, 1247, 1246, 1247, 1723,
-
- 1710, 1710, 1724, 1725, 1726, 1727, 1728, 193,
- 1710, 1249, 1207, 1710, 193, 193, 193, 193,
- 1696, 1696, 1696, 1729, 1696, 319, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
-
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696,
- 1696, 1696, 1696, 1696, 1696, 319, 319, 1730,
-
- 193, 1722, 1710, 1723, 1249, 1207, 1710, 1731,
- 1246, 1247, 1710, 1724, 1717, 1725, 1719, 1732,
- 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
- 1741, 1742, 1721, 1720, 1743, 1728, 1744, 1722,
-
- 1710, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
- 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
- 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
- 1745, 1745, 1745, 1746, 1710, 1747, 1748, 1712,
-
- 1748, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
- 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
- 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
- 1749, 1749, 1749, 1746, 1728, 1747, 1728, 1750,
-
- 1751, 1752, 1246, 1247, 1753, 1754, 1755, 1756,
- 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
- 1757, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
- 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
-
- 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
- 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
- 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
- 1755, 1755, 1755, 1755, 1755, 1755, 1758, 1758,
-
- 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
- 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
- 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
- 1759, 1759, 1759, 1759, 1759, 1759, 1759, 193,
-
- 193, 193, 1759, 1759, 1759, 1759, 1759, 1759,
- 193, 193, 1759, 1759, 1759, 1759, 1759, 1759,
- 193, 193, 1759, 1759, 1759, 1759, 1759, 1759,
- 193, 193, 1759, 1759, 1759, 193, 193, 193,
-
- 1760, 1249, 1728, 1748, 1465, 1249, 1249, 193,
- 1266, 1245, 1245, 1245, 1245, 1266, 1266, 193,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
- 1230, 1761, 1761, 1761, 1762, 51, 1763, 1763,
-
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 193, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
-
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 193,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 193, 1764, 1764, 193, 1764,
-
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 193, 193,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 193, 193,
-
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
-
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764,
- 1764, 1764, 1764, 193, 193, 193, 193, 193,
-
- 1765, 1766, 1765, 193, 193, 193, 193, 1767,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1501, 1228,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
- 1767, 1767, 1767, 1767, 193, 193, 193, 1768,
- 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
- 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
- 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 342, 342, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 342, 342, 342, 342, 342, 342, 342, 342,
1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
- 1769, 1769, 1769, 1769, 1769, 1770, 1770, 1770,
- 1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1770, 334, 342, 342,
1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1770, 193, 193, 193, 193, 193,
- 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
- 1354, 1354, 1354, 1354, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
-
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1053, 193, 193,
-
- 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
- 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
- 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
- 1772, 1772, 1772, 1772, 1772, 193, 193, 193,
-
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
-
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
- 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
- 1773, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
- 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
- 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
- 1774, 1774, 1774, 1774, 1774, 1774, 1774, 193,
-
- 1775, 1775, 1775, 1775, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
- 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
-
- 1776, 1777, 1776, 1776, 1776, 1776, 1776, 1776,
- 1776, 1776, 1777, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
- 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
- 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
- 1778, 1778, 1778, 1778, 1778, 1778, 193, 1779,
-
- 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
- 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
- 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
- 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
-
- 1780, 1780, 1780, 1780, 193, 193, 193, 193,
- 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
- 1781, 1782, 1782, 1782, 1782, 1782, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
- 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
- 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
- 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
-
- 1783, 1783, 1783, 1783, 1783, 1783, 1784, 1784,
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
-
- 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
- 1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786,
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
-
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
- 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
-
- 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
- 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
- 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
- 1788, 1788, 1788, 1788, 1788, 1788, 193, 193,
-
- 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796,
- 1797, 1798, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1799, 1799, 1799, 1799, 1799, 1799, 287, 287,
- 1799, 287, 1799, 1799, 1799, 1799, 1799, 1799,
- 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
- 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
-
- 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
- 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
- 1799, 1799, 1799, 1799, 1799, 1799, 287, 1799,
- 1799, 287, 287, 287, 1799, 287, 287, 1799,
-
- 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
- 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
- 1800, 1800, 1800, 1800, 1800, 1800, 287, 1801,
- 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802,
-
- 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
- 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
- 1803, 1803, 1803, 1803, 1803, 1803, 1804, 1804,
- 1804, 1804, 1805, 1805, 287, 287, 287, 1806,
-
- 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
- 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
- 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
- 1807, 1807, 287, 287, 287, 287, 287, 1808,
-
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
- 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
-
- 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
- 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
- 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
- 287, 287, 287, 287, 287, 287, 1810, 1810,
-
- 1811, 1812, 1812, 1812, 287, 1812, 1812, 287,
- 287, 287, 287, 287, 1812, 1813, 1812, 1814,
- 1811, 1811, 1811, 1811, 287, 1811, 1811, 1811,
- 287, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
-
- 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
- 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
- 1811, 1811, 1811, 1811, 287, 287, 287, 287,
- 1814, 1815, 1813, 287, 287, 287, 287, 1816,
-
- 1817, 1818, 1819, 1820, 1821, 1821, 1821, 1821,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 1822, 1822, 1822, 1822, 1822, 1822, 1823, 1823,
- 1824, 287, 287, 287, 287, 287, 287, 287,
-
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
- 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825,
- 1825, 1825, 1825, 1825, 1825, 1826, 1826, 1827,
-
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
-
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
- 1828, 1828, 1828, 1828, 1828, 1828, 287, 287,
- 287, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
+ 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
+ 1772, 1773, 1774, 1775, 1776, 1777, 1777, 1778,
+ 1779, 1780, 199, 199, 199, 199, 199, 199,
+
+ 170, 170, 170, 170, 1085, 1085, 1085, 985,
+ 985, 985, 985, 985, 985, 985, 199, 199,
+ 1781, 1782, 1782, 1783, 1783, 1784, 1785, 1784,
+ 1785, 1784, 1785, 1784, 1785, 1784, 1785, 1784,
+
+ 1785, 1784, 1785, 1784, 1785, 1513, 1513, 1786,
+ 1787, 1781, 1781, 1781, 1781, 1783, 1783, 1783,
+ 1788, 1789, 1790, 199, 1791, 1792, 1793, 1793,
+ 1782, 1281, 1282, 1281, 1282, 1281, 1282, 1794,
+
+ 1781, 1781, 1795, 1796, 1797, 1798, 1799, 199,
+ 1781, 1284, 1242, 1781, 199, 199, 199, 199,
+ 1767, 1767, 1767, 1800, 1767, 342, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 342, 342, 1801,
+
+ 199, 1793, 1781, 1794, 1284, 1242, 1781, 1802,
+ 1281, 1282, 1781, 1795, 1788, 1796, 1790, 1803,
+ 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811,
+ 1812, 1813, 1792, 1791, 1814, 1799, 1815, 1793,
+
+ 1781, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
+ 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
+ 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
+ 1816, 1816, 1816, 1817, 1781, 1818, 1819, 1783,
+
+ 1819, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1817, 1799, 1818, 1799, 1821,
+
+ 1822, 1823, 1281, 1282, 1824, 1825, 1826, 1827,
+ 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
+ 1828, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
+ 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
+
+ 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
+ 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
+ 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
+ 1826, 1826, 1826, 1826, 1826, 1826, 1829, 1829,
1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
- 1830, 1830, 1830, 1830, 1830, 1830, 287, 287,
- 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831,
-
- 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
- 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
- 1832, 1832, 1832, 287, 287, 287, 287, 287,
- 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833,
-
- 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
- 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
- 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
- 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
-
- 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
- 1834, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
-
- 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842,
- 1843, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
- 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
- 1844, 1844, 1844, 1844, 1844, 1844, 1844, 287,
-
- 1845, 1846, 1845, 1847, 1847, 1847, 1847, 1847,
- 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
- 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
- 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
- 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 199,
+
+ 199, 199, 1830, 1830, 1830, 1830, 1830, 1830,
+ 199, 199, 1830, 1830, 1830, 1830, 1830, 1830,
+ 199, 199, 1830, 1830, 1830, 1830, 1830, 1830,
+ 199, 199, 1830, 1830, 1830, 199, 199, 199,
+
+ 1831, 1284, 1799, 1819, 1509, 1284, 1284, 199,
+ 1303, 1280, 1280, 1280, 1280, 1303, 1303, 199,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1832, 1832, 1832, 1833, 51, 1834, 1834,
+
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 199, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 199,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 199, 1835, 1835, 199, 1835,
+
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 199, 199,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 199, 199,
+
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 1835, 1835, 1835, 1835, 1835,
+ 1835, 1835, 1835, 199, 199, 199, 199, 199,
+
+ 1836, 1837, 1836, 199, 199, 199, 199, 1838,
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
+
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
+ 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
+ 1838, 1838, 1838, 1838, 199, 199, 199, 1839,
+ 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839,
+
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
+ 1840, 1840, 1840, 1840, 1840, 1841, 1841, 1841,
+ 1841, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1841, 1843, 1844, 199, 199, 199,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 199, 199, 199, 199,
+
+ 1844, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
+ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
+
+ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
+ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
+ 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
+ 1325, 1325, 1325, 1325, 1325, 1088, 199, 199,
+
+ 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
+ 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
+ 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
+ 1845, 1845, 1845, 1845, 1845, 199, 199, 199,
+
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 985, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847,
- 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
- 1846, 1846, 1846, 1846, 1846, 1846, 1848, 1849,
- 1849, 1850, 1850, 1850, 1850, 1850, 193, 193,
- 193, 193, 1851, 1852, 1853, 1854, 1855, 1856,
- 1857, 1858, 1859, 1860, 1860, 1860, 1860, 1860,
- 1860, 1860, 1860, 1860, 1860, 1860, 1861, 1862,
- 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1871, 1871, 1872, 1873, 1873, 1873, 1873, 1873,
- 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873,
- 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873,
- 1873, 1873, 1874, 1873, 1874, 1873, 1873, 1873,
- 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873,
- 1873, 1873, 1873, 1874, 1873, 1873, 1873, 1873,
- 1872, 1872, 1872, 1871, 1871, 1871, 1871, 1872,
- 1872, 1875, 1876, 1877, 1877, 1878, 1879, 1879,
- 1879, 1879, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1847, 1847, 1847, 1847, 199, 199, 199, 199,
+
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1849,
+
+ 1850, 1850, 1850, 1850, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
+ 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851,
+
+ 1851, 1852, 1851, 1851, 1851, 1851, 1851, 1851,
+ 1851, 1851, 1852, 199, 199, 199, 199, 199,
+ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853,
+ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853,
+
+ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853,
+ 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853,
+ 1853, 1853, 1853, 1853, 1853, 1853, 1854, 1854,
+ 1854, 1854, 1854, 199, 199, 199, 199, 199,
+
+ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
+ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
+ 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855,
+ 1855, 1855, 1855, 1855, 1855, 1855, 199, 1856,
+
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+
+ 1857, 1857, 1857, 1857, 199, 199, 199, 199,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1858, 1859, 1859, 1859, 1859, 1859, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
+ 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
+ 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
+ 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
+
+ 1860, 1860, 1860, 1860, 1860, 1860, 1861, 1861,
+ 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
+ 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
+ 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
+
+ 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
+ 1862, 1862, 1862, 1862, 1862, 1862, 1863, 1863,
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+ 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864,
+
+ 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
+ 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
+ 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
+ 1865, 1865, 1865, 1865, 1865, 1865, 199, 199,
+
+ 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
+ 1874, 1875, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
+ 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
+ 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
+ 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
+
+ 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+ 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877,
+
+ 1877, 1877, 1877, 1877, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 1878,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 1879, 1879, 1879, 1879, 1879, 1879, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1880, 1880, 1880, 1880, 1880, 1880, 296, 296,
+ 1880, 296, 1880, 1880, 1880, 1880, 1880, 1880,
1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+
1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
- 1880, 193, 193, 193, 193, 193, 193, 193,
- 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888,
- 1889, 1890, 193, 193, 193, 193, 193, 193,
-
- 1891, 1891, 1891, 1892, 1892, 1892, 1892, 1892,
- 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892,
- 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892,
- 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892,
- 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1893,
- 1894, 1894, 1894, 1894, 1895, 1894, 1896, 1896,
- 1894, 1894, 1894, 1897, 1897, 193, 1898, 1899,
- 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
- 1908, 1909, 1909, 1909, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1910, 1910, 1911, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912,
- 1912, 1912, 1912, 1911, 1911, 1911, 1910, 1910,
- 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1911,
- 1913, 1912, 1912, 1912, 1912, 1914, 1914, 1915,
- 1916, 193, 193, 193, 193, 193, 193, 193,
- 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924,
- 1925, 1926, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
+ 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 1880, 1880, 1880, 1880, 1880, 1880, 296, 1880,
+ 1880, 296, 296, 296, 1880, 296, 296, 1880,
+
+ 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881,
+ 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881,
+ 1881, 1881, 1881, 1881, 1881, 1881, 296, 1882,
+ 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883,
+
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1885,
+ 1885, 1886, 1886, 1886, 1886, 1886, 1886, 1886,
+
+ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
+ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
+ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
+ 1887, 1887, 1887, 1887, 1887, 1887, 1887, 296,
+
+ 296, 296, 296, 296, 296, 296, 296, 1888,
+ 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889,
+ 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889,
+ 1889, 1889, 1889, 1889, 1889, 1889, 1890, 1890,
+ 1890, 1890, 1891, 1891, 296, 296, 296, 1892,
+
+ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893,
+ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893,
+ 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893,
+ 1893, 1893, 296, 296, 296, 296, 296, 1894,
+
+ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
+ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
+ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
+ 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895,
+
+ 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896,
+ 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896,
+ 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896,
+ 296, 296, 296, 296, 296, 296, 1896, 1896,
+
+ 1897, 1898, 1898, 1898, 296, 1898, 1898, 296,
+ 296, 296, 296, 296, 1898, 1899, 1898, 1900,
+ 1897, 1897, 1897, 1897, 296, 1897, 1897, 1897,
+ 296, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
+
+ 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
+ 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
+ 1897, 1897, 1897, 1897, 296, 296, 296, 296,
+ 1900, 1901, 1899, 296, 296, 296, 296, 1902,
+
+ 1903, 1904, 1905, 1906, 1907, 1907, 1907, 1907,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 1908, 1908, 1908, 1908, 1908, 1908, 1909, 1909,
+ 1910, 296, 296, 296, 296, 296, 296, 296,
+
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1911, 1912, 1912, 1913,
+
+ 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914,
+ 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914,
+ 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914,
+ 1914, 1914, 1914, 1914, 1914, 1915, 1915, 1915,
+
+ 1916, 1916, 1916, 1916, 1916, 1917, 1918, 1917,
+ 1919, 1917, 1917, 1918, 1918, 1920, 1917, 1917,
+ 1917, 1917, 1917, 1916, 1916, 1916, 1916, 1920,
+ 1916, 1916, 1916, 1916, 1916, 1917, 1916, 1916,
+
+ 1916, 1917, 1918, 1918, 1917, 1921, 1922, 296,
+ 296, 296, 296, 1923, 1923, 1923, 1923, 1924,
+ 1925, 1925, 1925, 1925, 1925, 1925, 1926, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
- 1927, 1927, 1927, 1928, 1929, 1928, 1929, 1929,
- 1928, 1928, 1928, 1928, 1928, 1928, 1930, 1931,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939,
- 1940, 1941, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
-
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
- 1942, 1942, 1942, 1942, 1942, 1942, 1942, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
- 1943, 1943, 1943, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1944, 1944, 1944, 1944, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
-
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1946, 1946, 1946, 1947, 1947, 1947, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1947, 1945, 1945, 1945, 1946, 1947,
- 1946, 1947, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
-
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1946, 1947, 1947, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
-
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
- 1945, 1945, 1945, 1945, 1945, 1945, 1945, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
-
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948,
- 1948, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
+ 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
+ 1927, 1927, 1927, 1927, 1927, 1927, 296, 296,
+ 296, 1928, 1928, 1928, 1928, 1928, 1928, 1928,
+
+ 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+ 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+ 1929, 1929, 1929, 1929, 1929, 1929, 296, 296,
+ 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
+
+ 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931,
+ 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931,
+ 1931, 1931, 1931, 296, 296, 296, 296, 296,
+ 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932,
+
+ 1933, 1934, 1933, 1934, 1934, 1934, 1933, 1933,
+ 1933, 1934, 1933, 1933, 1934, 1933, 1934, 1934,
+ 1933, 1934, 296, 296, 296, 296, 296, 296,
+ 296, 1935, 1935, 1935, 1935, 296, 296, 296,
+
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 1936, 1936, 1936, 1936, 1937, 1937, 1938,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
+ 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
+ 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
+ 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
+
+ 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939,
+ 1939, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
+ 1948, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
- 1949, 1949, 1949, 1949, 1949, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1949, 1950, 1950, 1950, 1950, 1950, 1950, 1950,
- 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950,
- 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950,
- 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950,
- 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950,
- 1950, 1950, 1950, 1950, 1950, 1950, 1950, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 1951,
- 1951, 1951, 1951, 1952, 1952, 1952, 1952, 1952,
- 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1953, 1954, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 193,
- 193, 1288, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1956, 1956,
- 1956, 1956, 1956, 1956, 1956, 1957, 1958, 1959,
- 1959, 1959, 1955, 1955, 1955, 1960, 1957, 1957,
- 1957, 1957, 1957, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1962, 1962, 1962, 1962, 1962,
- 1962, 1962, 1962, 1955, 1955, 1963, 1963, 1963,
- 1963, 1963, 1962, 1962, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1963, 1963, 1963, 1963, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1956, 1956, 1956, 1956, 1956,
- 1956, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
- 1955, 1955, 1955, 1955, 1955, 1955, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
+ 1949, 1949, 1949, 1949, 1949, 1949, 1949, 296,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
- 1771, 1771, 1964, 1964, 1964, 1771, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
- 1322, 1322, 1322, 1322, 1322, 1322, 1322, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
- 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
- 1965, 1965, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 193, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 193, 1966, 1966,
- 193, 193, 1966, 193, 193, 1966, 1966, 193,
- 193, 1966, 1966, 1966, 1966, 193, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
- 1967, 1967, 193, 1967, 193, 1967, 1967, 1967,
- 1967, 1968, 1967, 1967, 193, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
-
- 1967, 1967, 1967, 1967, 1966, 1966, 193, 1966,
- 1966, 1966, 1966, 193, 193, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 193, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 193, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 193, 1966, 1966, 1966, 1966, 193,
- 1966, 1966, 1966, 1966, 1966, 193, 1966, 193,
- 193, 193, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 193, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
-
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1280, 1280, 193, 193,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1969, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1970, 1967, 1967, 1967, 1967,
- 1967, 1967, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1969, 1967, 1967, 1967, 1967,
-
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1970, 1967, 1967,
- 1967, 1967, 1967, 1967, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1969, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1970,
- 1967, 1967, 1967, 1967, 1967, 1967, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1969,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1970, 1967, 1967, 1967, 1967, 1967, 1967,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
- 1966, 1969, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
- 1967, 1967, 1967, 1970, 1967, 1967, 1967, 1967,
- 1967, 1967, 1971, 1972, 193, 193, 1973, 1974,
- 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
- 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
- 1981, 1982, 1973, 1974, 1975, 1976, 1977, 1978,
- 1979, 1980, 1981, 1982, 1973, 1974, 1975, 1976,
- 1977, 1978, 1979, 1980, 1981, 1982, 1973, 1974,
- 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
-
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 287, 287, 287, 287, 287, 287,
-
- 1983, 1983, 1983, 1983, 319, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 319, 1983, 1983, 319, 1983, 319, 319, 1983,
- 319, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983,
- 319, 1983, 319, 1983, 319, 319, 319, 319,
- 319, 319, 1983, 319, 319, 319, 319, 1983,
- 319, 1983, 319, 1983, 319, 1983, 1983, 1983,
- 319, 1983, 1983, 319, 1983, 319, 319, 1983,
- 319, 1983, 319, 1983, 319, 1983, 319, 1983,
- 319, 1983, 1983, 319, 1983, 319, 319, 1983,
- 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 319, 1983, 1983, 1983, 1983,
- 319, 1983, 1983, 1983, 1983, 319, 1983, 319,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 319, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 319, 319, 319, 319,
- 319, 1983, 1983, 1983, 319, 1983, 1983, 1983,
- 1983, 1983, 319, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
- 1983, 1983, 1983, 1983, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
- 1984, 1984, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319,
+ 1950, 1951, 1950, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951,
+ 1951, 1951, 1951, 1951, 1951, 1951, 1953, 1954,
+ 1954, 1955, 1955, 1955, 1955, 1955, 199, 199,
+ 199, 199, 1956, 1957, 1958, 1959, 1960, 1961,
+ 1962, 1963, 1964, 1965, 1965, 1965, 1965, 1965,
+ 1965, 1965, 1965, 1965, 1965, 1965, 1966, 1967,
+ 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 1976,
+ 1977, 1977, 1978, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 1980, 1979, 1980, 1979, 1979, 1979,
+ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 1979, 1980, 1979, 1979, 1979, 1979,
+ 1978, 1978, 1978, 1977, 1977, 1977, 1977, 1978,
+ 1978, 1981, 1982, 1983, 1983, 1984, 1985, 1985,
+ 1985, 1985, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
+ 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
+ 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
+ 1986, 199, 199, 199, 199, 199, 199, 199,
+ 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+ 1995, 1996, 199, 199, 199, 199, 199, 199,
+
+ 1997, 1997, 1997, 1998, 1998, 1998, 1998, 1998,
+ 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
+ 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
+ 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
+ 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1999,
+ 2000, 2000, 2000, 2000, 2001, 2000, 2002, 2002,
+ 2000, 2000, 2000, 2003, 2003, 199, 2004, 2005,
+ 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
+ 2014, 2015, 2015, 2015, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016,
+ 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016,
+ 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016,
+ 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016,
+ 2016, 2016, 2016, 2017, 2018, 2019, 2016, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2020, 2020, 2021, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
+ 2022, 2022, 2022, 2021, 2021, 2021, 2020, 2020,
+ 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2021,
+ 2023, 2022, 2022, 2022, 2022, 2024, 2024, 2025,
+ 2026, 199, 199, 199, 199, 2027, 199, 199,
+ 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035,
+ 2036, 2037, 2038, 199, 199, 199, 199, 199,
+ 199, 2039, 2039, 2039, 2039, 2039, 2039, 2039,
+ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039,
+ 2039, 2039, 2039, 2039, 2039, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 199, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2042,
+ 2042, 2042, 2041, 2041, 2042, 2043, 2044, 2042,
+ 2045, 2045, 2046, 2045, 2045, 2046, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
+ 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048,
+ 2049, 2049, 2049, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2050, 2051, 199, 199, 199, 199, 199,
+ 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059,
+ 2060, 2061, 199, 199, 199, 199, 199, 199,
+
+ 199, 2062, 2063, 2063, 199, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 199, 199, 2064,
+ 2064, 199, 199, 2064, 2064, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 199, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 199, 2064, 2064, 199, 2064, 2064, 2064,
+ 2064, 2064, 199, 199, 2065, 2064, 2066, 2063,
+ 2062, 2063, 2063, 2063, 2063, 199, 199, 2063,
+ 2063, 199, 199, 2067, 2067, 2068, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 2066,
+ 199, 199, 199, 199, 199, 2064, 2064, 2064,
+ 2064, 2064, 2063, 2063, 199, 199, 2069, 2069,
+ 2069, 2069, 2069, 2069, 2069, 199, 199, 199,
+ 2069, 2069, 2069, 2069, 2069, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,
+ 2071, 2072, 2072, 2073, 2073, 2073, 2073, 2073,
+ 2073, 2072, 2074, 2075, 2075, 2071, 2075, 2073,
+ 2073, 2072, 2076, 2077, 2070, 2070, 2078, 2070,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086,
+ 2087, 2088, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
+ 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2090,
+ 2091, 2091, 2092, 2092, 2092, 2092, 199, 199,
+ 2091, 2091, 2093, 2093, 2092, 2092, 2091, 2094,
+ 2095, 2096, 2097, 2097, 2098, 2098, 2099, 2099,
+ 2099, 2097, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100,
+ 2101, 2101, 2101, 2102, 2102, 2102, 2102, 2102,
+ 2102, 2102, 2102, 2101, 2101, 2102, 2101, 2103,
+ 2102, 2104, 2104, 2105, 2100, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
+ 2114, 2115, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2117, 2118, 2117, 2118, 2118,
+ 2117, 2117, 2117, 2117, 2117, 2117, 2119, 2120,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128,
+ 2129, 2130, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2131, 2131, 2131, 2131, 2131, 2131, 2131, 2131,
+ 2131, 2131, 2131, 2131, 2131, 2131, 2131, 2131,
+ 2131, 2131, 2131, 2131, 2131, 2131, 2131, 2131,
+ 2131, 2131, 2131, 2131, 2131, 2131, 2131, 2131,
+ 2132, 2132, 2132, 2132, 2132, 2132, 2132, 2132,
+ 2132, 2132, 2132, 2132, 2132, 2132, 2132, 2132,
+ 2132, 2132, 2132, 2132, 2132, 2132, 2132, 2132,
+ 2132, 2132, 2132, 2132, 2132, 2132, 2132, 2132,
+ 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140,
+ 2141, 2142, 2143, 2143, 2143, 2143, 2143, 2143,
+ 2143, 2143, 2143, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 2144,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 2145, 2145, 2145, 2145, 2145, 2145, 2145,
+ 2145, 199, 199, 199, 199, 199, 199, 199,
+
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2146,
+ 2146, 2146, 2146, 2146, 2146, 2146, 2146, 2147,
+ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
+ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
+ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
+ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
+ 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
+ 2147, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2148, 2148, 2148, 2148, 2148,
+ 2148, 2148, 2148, 2149, 2149, 2149, 2149, 2149,
+ 2149, 2149, 2149, 2149, 2149, 2149, 2149, 199,
+ 2150, 2150, 2150, 2150, 2151, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2153, 2153, 2153, 2154, 2154, 2154, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2154, 2152, 2152, 2152, 2153, 2154,
+ 2153, 2154, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2153, 2154, 2154, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 2155, 2155, 2155, 2155, 2155, 2155, 2155,
+ 2155, 199, 199, 199, 199, 199, 199, 199,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 199,
+ 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164,
+ 2165, 2166, 199, 199, 199, 199, 2167, 2167,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 199, 199,
+ 2169, 2169, 2169, 2169, 2169, 2170, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2173,
+ 2173, 2174, 2175, 2175, 2176, 2176, 2176, 2176,
+ 2177, 2177, 2177, 2177, 2173, 2176, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185,
+ 2186, 2187, 199, 2188, 2188, 2188, 2188, 2188,
+ 2188, 2188, 199, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 199, 199, 199, 199, 199, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 2189, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2189, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
+ 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
+ 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
+ 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
+ 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190,
+ 2190, 2190, 2190, 2190, 2190, 2190, 2190, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 2191,
+ 2191, 2191, 2191, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2193, 2194, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 199, 199, 199, 199, 199,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 2195, 2195, 2195, 199, 199, 199,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 199, 199, 199, 199, 199, 199, 199,
+ 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
+ 2195, 2195, 199, 199, 2196, 2197, 2198, 2199,
+ 2200, 2200, 2200, 2200, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 199,
+ 199, 1325, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2202, 2202,
+ 2202, 2202, 2202, 2202, 2202, 2203, 2204, 2205,
+ 2205, 2205, 2201, 2201, 2201, 2206, 2203, 2203,
+ 2203, 2203, 2203, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2208, 2208, 2208, 2208, 2208,
+ 2208, 2208, 2208, 2201, 2201, 2209, 2209, 2209,
+ 2209, 2209, 2208, 2208, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2209, 2209, 2209, 2209, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2202, 2202, 2202, 2202, 2202,
+ 2202, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
+ 2201, 2201, 2201, 2201, 2201, 2201, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 2210, 2210, 2210, 1842, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 193, 193, 193, 193,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
- 1357, 1357, 1357, 1357, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193,
- 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193,
- 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 193, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1985, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
- 1992, 1993, 1994, 193, 193, 193, 193, 193,
- 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
- 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
- 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
- 1995, 1995, 1995, 1995, 1995, 1995, 1995, 193,
- 1996, 1995, 1996, 1996, 1996, 1996, 1996, 1996,
- 1996, 1996, 1996, 1996, 1996, 1995, 1996, 1995,
- 1996, 1996, 1995, 1996, 1996, 1996, 1995, 1996,
- 1996, 1996, 1995, 1995, 1995, 1995, 1995, 1996,
- 1997, 1997, 1997, 1997, 1997, 1997, 1997, 742,
- 1997, 1997, 1997, 1997, 1997, 1997, 1997, 742,
- 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997,
- 1997, 1997, 1998, 1998, 193, 193, 193, 193,
- 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997,
- 1997, 742, 1997, 742, 742, 1997, 1997, 742,
- 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997,
- 1997, 1997, 742, 742, 742, 742, 1997, 1997,
- 1995, 1997, 1997, 1997, 1997, 1997, 1997, 1997,
- 1997, 1997, 1997, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 1999, 1999,
- 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
- 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
- 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
-
- 2000, 2001, 2001, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 2001, 2001, 2001, 2001, 2001, 2001,
- 2001, 2001, 2001, 193, 193, 193, 193, 193,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 193, 193, 193, 193, 193, 193, 193,
- 2001, 2001, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 193, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1325, 1325, 1326,
- 1326, 1326, 1326, 1326, 1325, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 193, 1326, 1326,
- 1326, 1326, 1326, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 193,
- 1326, 193, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1325, 1326, 1325, 1326, 1325, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1325,
- 1326, 1325, 1325, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 193, 1326, 1326, 1326, 1326, 193, 193, 193,
-
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 193, 193,
- 2002, 2002, 2002, 2002, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 1326, 1326, 1326, 1326, 1326,
-
- 2003, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 2003, 1326, 1326, 1326, 2003, 1326, 2003,
- 1326, 2003, 1326, 2003, 1326, 1326, 1326, 2003,
- 1326, 1326, 1326, 1326, 1326, 1326, 2003, 2003,
- 1326, 1326, 1326, 1326, 2003, 1326, 2003, 2003,
- 1326, 1326, 1326, 1326, 2003, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 193, 193, 193, 193, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
- 1326, 1326, 1326, 1326, 1326, 1326, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
- 1325, 1325, 1325, 1325, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 2004, 2004,
-
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
-
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,
- 2005, 2005, 2005, 2005, 2005, 2005, 2005, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
-
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1510, 1510, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
-
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
- 2006, 2006, 2006, 2006, 2006, 2006, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
-
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
- 2007, 2007, 2007, 2007, 2007, 2007, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
-
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
- 1506, 1506, 1506, 1506, 1506, 1506, 2004, 2004,
-
- 1230, 1961, 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,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961,
- 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, 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, 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,
-
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
- 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, 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, 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, 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, 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, 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, 1230, 1230, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
-
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
-
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009,
- 2009, 2009, 2009, 2009, 2009, 2009, 2004, 2004,
+ 1357, 1357, 1357, 1357, 1357, 1357, 1357, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211,
+ 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211,
+ 2211, 2211, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 199, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 199, 2212, 2212,
+ 199, 199, 2212, 199, 199, 2212, 2212, 199,
+ 199, 2212, 2212, 2212, 2212, 199, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213,
+ 2213, 2213, 199, 2213, 199, 2213, 2213, 2213,
+ 2213, 2214, 2213, 2213, 199, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+
+ 2213, 2213, 2213, 2213, 2212, 2212, 199, 2212,
+ 2212, 2212, 2212, 199, 199, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 199, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 199, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 199, 2212, 2212, 2212, 2212, 199,
+ 2212, 2212, 2212, 2212, 2212, 199, 2212, 199,
+ 199, 199, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 199, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 1317, 1317, 199, 199,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2215, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2216, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2215, 2213, 2213, 2213, 2213,
+
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2216, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2215, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2216,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2215,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2216, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
+ 2212, 2215, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2213, 2216, 2213, 2213, 2213, 2213,
+ 2213, 2213, 2217, 2218, 199, 199, 2219, 2220,
+ 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228,
+ 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
+ 2227, 2228, 2219, 2220, 2221, 2222, 2223, 2224,
+ 2225, 2226, 2227, 2228, 2219, 2220, 2221, 2222,
+ 2223, 2224, 2225, 2226, 2227, 2228, 2219, 2220,
+ 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228,
+
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
+ 2229, 2229, 2229, 2229, 2229, 296, 296, 2230,
+ 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230,
+ 2231, 2231, 2231, 2231, 2231, 2231, 2231, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 2232, 2232, 2232, 2232, 342, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 342, 2232, 2232, 342, 2232, 342, 342, 2232,
+ 342, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 342, 2232, 2232, 2232, 2232,
+ 342, 2232, 342, 2232, 342, 342, 342, 342,
+ 342, 342, 2232, 342, 342, 342, 342, 2232,
+ 342, 2232, 342, 2232, 342, 2232, 2232, 2232,
+ 342, 2232, 2232, 342, 2232, 342, 342, 2232,
+ 342, 2232, 342, 2232, 342, 2232, 342, 2232,
+ 342, 2232, 2232, 342, 2232, 342, 342, 2232,
+ 2232, 2232, 2232, 342, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 342, 2232, 2232, 2232, 2232,
+ 342, 2232, 2232, 2232, 2232, 342, 2232, 342,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 342, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 342, 342, 342, 342,
+ 342, 2232, 2232, 2232, 342, 2232, 2232, 2232,
+ 2232, 2232, 342, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
+ 2232, 2232, 2232, 2232, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+ 2233, 2233, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342,
+
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 199, 199, 199, 199,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 199,
+ 199, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394,
+ 199, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 199, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 2234, 2234, 2235, 2236, 2237, 2238, 2239, 2240,
+ 2241, 2242, 2243, 2244, 2244, 199, 199, 199,
+ 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
+ 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
+ 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245,
+ 2245, 2245, 2245, 2245, 2245, 2245, 2245, 199,
+ 2246, 2247, 2246, 2246, 2246, 2246, 2246, 2246,
+ 2246, 2246, 2246, 2246, 2246, 2247, 2246, 2247,
+ 2246, 2246, 2247, 2246, 2246, 2246, 2247, 2246,
+ 2246, 2246, 2245, 2245, 2245, 2245, 2245, 2248,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2250,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2250,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
+ 2249, 2249, 2251, 2251, 199, 199, 199, 199,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
+ 2249, 2250, 2249, 2250, 2250, 2249, 2249, 2250,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
+ 2249, 2249, 772, 772, 772, 772, 2252, 2252,
+ 2245, 2252, 2252, 2252, 2252, 2252, 2252, 2252,
+ 2252, 2252, 2252, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 2253, 2253,
+ 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253,
+ 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253,
+ 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253,
+
+ 2254, 2255, 2255, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+ 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+ 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+ 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+ 1543, 1543, 2255, 2255, 2255, 2255, 2255, 2255,
+ 2255, 2255, 2255, 199, 199, 199, 199, 199,
+ 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
+ 1543, 199, 199, 199, 199, 199, 199, 199,
+ 2255, 2255, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 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, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 199, 199, 199,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1394, 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, 1394, 199, 199,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1362, 1362, 1394, 1394,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1360, 1360, 1361,
+ 1361, 1361, 1361, 1361, 1360, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1394, 1361, 1361,
+ 1361, 1361, 1361, 1394, 1394, 1394, 1394, 199,
+ 199, 199, 199, 199, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 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, 1394,
+ 1361, 1394, 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,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1360, 1361, 1360, 1361, 1360, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1360,
+ 1361, 1360, 1360, 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,
+ 1394, 1361, 1361, 1361, 1361, 1394, 1394, 199,
+
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1362, 1362,
+ 2256, 2256, 2256, 2256, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1394, 199, 199, 199, 199, 199,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 199, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 199, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1394, 1361, 1361, 1361, 1361, 1361,
+
+ 2257, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 2257, 1361, 1361, 1361, 2257, 1361, 2257,
+ 1361, 2257, 1361, 2257, 1361, 1361, 1361, 2257,
+ 1361, 1361, 1361, 1361, 1361, 1361, 2257, 2257,
+ 1361, 1361, 1361, 1361, 2257, 1361, 2257, 2257,
+ 1361, 1361, 1361, 1361, 2257, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1394, 1394, 199, 199, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 2258, 2258,
+ 2258, 2259, 2259, 2259, 1362, 1362, 1362, 1362,
+ 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, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 199, 199, 199,
+ 1394, 1394, 1394, 1394, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1360, 1360, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 199, 199, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 199, 199, 199, 199, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362,
+ 1362, 1362, 1362, 1362, 1362, 1362, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 2260, 2260,
+
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
+ 2261, 2261, 2261, 2261, 2261, 2261, 2261, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
+ 2262, 2262, 2262, 2262, 2262, 2262, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
+ 1550, 1550, 1550, 1550, 1550, 1550, 2260, 2260,
+
+ 1265, 2207, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+ 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
+
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
+ 2265, 2265, 2265, 2265, 2265, 2265, 2260, 2260,
};
#define GET_PROP_INDEX(ucs4) \
@@ -4938,13 +5403,13 @@ static const Properties uc_properties[] = {
{ 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 0, 0, 8, 7, 12, 3 },
{ 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 0, 2 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 2 },
{ 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 2, 2 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 },
{ 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 15, 0, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 2 },
{ 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 1, 2 },
{ 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 35, 2 },
@@ -4961,95 +5426,101 @@ static const Properties uc_properties[] = {
{ 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 18, 2 },
- { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 743, 0, 743, 0, 775, 1, 80, 0, 8, 6, 12, 2 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 12, 2 },
{ 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 17, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 80, 1, 77, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 121, 0, 121, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 17, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 83, 0, 0, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -232, 0, -232, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 80, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 162, 1, 162, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -121, 0, 0, 0, 0, 0, -121, 1, 17, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -300, 0, -300, 0, -268, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 195, 0, 195, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 210, 0, 0, 0, 0, 0, 210, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 206, 0, 0, 0, 0, 0, 206, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 205, 0, 0, 0, 0, 0, 205, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 79, 0, 0, 0, 0, 0, 79, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 202, 0, 0, 0, 0, 0, 202, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 203, 0, 0, 0, 0, 0, 203, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 207, 0, 0, 0, 0, 0, 207, 1, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 97, 0, 97, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 211, 0, 0, 0, 0, 0, 211, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 209, 0, 0, 0, 0, 0, 209, 1, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 163, 0, 163, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 213, 0, 0, 0, 0, 0, 213, 1, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 130, 0, 130, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 214, 0, 0, 0, 0, 0, 214, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 218, 0, 0, 0, 0, 0, 218, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 217, 0, 0, 0, 0, 0, 217, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 219, 0, 0, 0, 0, 0, 219, 1, 0, 0, 8, 7, 12, 3 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 },
- { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 56, 0, 56, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0, 1, 0, 2, 1, 80, 0, 8, 7, 12, 3 },
+ { 16, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, 1, 1, 80, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -2, 0, -1, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -79, 0, -79, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 173, 1, 173, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -97, 0, 0, 0, 0, 0, -97, 4, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -56, 0, 0, 0, 0, 0, -56, 4, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 17, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 4, 17, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 4, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -130, 0, 0, 0, 0, 0, -130, 6, 0, 0, 8, 7, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 8, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 8, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -163, 0, 0, 0, 0, 0, -163, 8, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 3, 0, 0, 0, 0, 1, 3, 8, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 5, 1, 5, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 7, 1, 7, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -195, 0, 0, 0, 0, 0, -195, 9, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 69, 0, 0, 0, 0, 0, 69, 9, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 71, 0, 0, 0, 0, 0, 71, 9, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 9, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 9, 1, 9, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 11, 1, 11, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 13, 1, 13, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -210, 0, -210, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -206, 0, -206, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -205, 0, -205, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -202, 0, -202, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -203, 0, -203, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 15, 1, 15, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 17, 1, 17, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -207, 0, -207, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 19, 1, 19, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 21, 1, 21, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -209, 0, -209, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -211, 0, -211, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 23, 1, 23, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 25, 1, 25, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 27, 1, 27, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -213, 0, -213, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -214, 0, -214, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 29, 1, 29, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -218, 0, -218, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 31, 1, 31, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -69, 0, -69, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -217, 0, -217, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -71, 0, -71, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -219, 0, -219, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 33, 1, 33, 0, 0, 1, 0, 0, 8, 6, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
{ 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 2 },
@@ -5074,7 +5545,7 @@ static const Properties uc_properties[] = {
{ 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 4, 4, 4, 21, 1 },
- { 0, 17, 240, 5, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 204, 4, 4, 4, 21, 1 },
+ { 0, 17, 240, 5, -1, 0, 0, 0, 0, 84, 0, 84, 0, 116, 1, 204, 4, 4, 4, 21, 1 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 4, 1 },
@@ -5089,103 +5560,106 @@ static const Properties uc_properties[] = {
{ 0, 17, 234, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 4, 1 },
{ 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 4, 1 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 1 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 0, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 10, 0, 0, 8, 6, 12, 4 },
{ 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 8, 8, 12, 2 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 4 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 130, 0, 130, 0, 0, 9, 0, 0, 8, 6, 12, 4 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 13, 0, 8, 2 },
+ { 14, 0, 0, 0, -1, 0, 0, 116, 0, 0, 0, 0, 0, 116, 16, 0, 0, 8, 7, 12, 4 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 4 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 38, 0, 0, 0, 0, 0, 38, 1, 17, 0, 8, 7, 12, 4 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 12, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 37, 0, 0, 0, 0, 0, 37, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 64, 0, 0, 0, 0, 0, 64, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 63, 0, 0, 0, 0, 0, 63, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 165, 1, 165, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 0, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -38, 0, -38, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -37, 0, -37, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 169, 1, 169, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 0, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -31, 0, -31, 0, 1, 1, 0, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -64, 0, -64, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -63, 0, -63, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 8, 0, 0, 0, 0, 0, 8, 10, 0, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -62, 0, -62, 0, -30, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -57, 0, -57, 0, -25, 1, 80, 0, 8, 6, 12, 4 },
{ 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 4 },
{ 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 80, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -47, 0, -47, 0, -15, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -54, 0, -54, 0, -22, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -8, 0, -8, 0, 0, 4, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 6, 0, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 6, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 4, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 8, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 8, 6, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -86, 0, -86, 0, -54, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -80, 0, -80, 0, -48, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 7, 0, 7, 0, 0, 1, 80, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -116, 0, -116, 0, 0, 1, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -60, 0, 0, 0, 0, 0, -60, 5, 80, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -96, 0, -96, 0, -64, 5, 80, 0, 8, 6, 12, 4 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 80, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 7, 0, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 7, 0, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -7, 0, 0, 0, 0, 0, -7, 7, 80, 0, 8, 7, 12, 4 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, -130, 0, 0, 0, 0, 0, -130, 8, 0, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 80, 0, 0, 0, 0, 0, 80, 4, 17, 0, 8, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 80, 0, 0, 0, 0, 0, 80, 1, 17, 0, 8, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 80, 0, 0, 0, 0, 0, 80, 1, 0, 0, 8, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 0, 0, 8, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 17, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -80, 0, -80, 0, 0, 4, 17, 0, 8, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -80, 0, -80, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -80, 0, -80, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 17, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 17, 0, 8, 6, 12, 5 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 5 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 5 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 5 },
{ 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 17, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 17, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 0, 8, 7, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 5 },
- { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 6 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 6, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 6, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 4, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 15, 0, 0, 0, 0, 0, 15, 1, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -15, 0, -15, 0, 0, 9, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 17, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 4, 17, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 8, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 8, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 9, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 9, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 10, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 11, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 11, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 12, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 12, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 16, 0, 0, 8, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 16, 0, 0, 8, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 0, 48, 0, 0, 0, 0, 0, 48, 1, 0, 0, 8, 7, 12, 6 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 6 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 6 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12, 6 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 0, 8, 6, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -48, 0, -48, 0, 0, 1, 0, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 129, 1, 126, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 12, 8, 2 },
{ 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 6 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 6 },
{ 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 9, 6 },
{ 13, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 4, 4, 21, 7 },
@@ -5219,7 +5693,7 @@ static const Properties uc_properties[] = {
{ 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 12, 7 },
{ 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 3, 4, 4, 12, 8 },
{ 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 3, 4, 4, 12, 8 },
- { 13, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
+ { 10, 5, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 3, 4, 4, 12, 2 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 8 },
{ 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 8 },
{ 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 8 },
@@ -5232,7 +5706,8 @@ static const Properties uc_properties[] = {
{ 0, 17, 31, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 32, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 8 },
{ 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 2 },
- { 10, 13, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 8 },
+ { 10, 13, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 3, 4, 4, 21, 2 },
+ { 13, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
{ 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 8 },
{ 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6, 2 },
{ 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 8 },
@@ -5341,12 +5816,16 @@ static const Properties uc_properties[] = {
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 95 },
{ 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 95 },
{ 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 8 },
{ 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 8 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 8 },
+ { 18, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 8 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 27, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 28, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 29, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 8 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 8 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 11 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 11 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 11 },
@@ -5375,9 +5854,11 @@ static const Properties uc_properties[] = {
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 12 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 12 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 12 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 12 },
@@ -5486,8 +5967,10 @@ static const Properties uc_properties[] = {
{ 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 16 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 12, 16 },
{ 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 9, 16 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 17 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 17 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 17 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 17 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 17 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 17 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 4, 4, 21, 17 },
@@ -5507,6 +5990,7 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 17 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 17 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 17 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 18 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 18 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 18 },
{ 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 18 },
@@ -5528,6 +6012,7 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 14, 9, 11, 18 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 18 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 19 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, 4, 21, 19 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 19 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 19 },
@@ -5555,6 +6040,16 @@ static const Properties uc_properties[] = {
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 204, 4, 4, 4, 21, 20 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 20 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 7, 4, 4, 21, 20 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 20 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 20 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 30, 21 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 30, 21 },
@@ -5683,8 +6178,8 @@ static const Properties uc_properties[] = {
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 4, 4, 30, 24 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 24 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 30, 24 },
- { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 25 },
- { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 25 },
+ { 14, 0, 0, 0, -1, 0, 0, 7264, 0, 0, 0, 0, 0, 7264, 1, 0, 0, 8, 7, 12, 25 },
+ { 14, 0, 0, 0, -1, 0, 0, 7264, 0, 0, 0, 0, 0, 7264, 13, 0, 0, 8, 7, 12, 25 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 25 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 25 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 25 },
@@ -5731,6 +6226,7 @@ static const Properties uc_properties[] = {
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 31 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 17, 2 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 8, 12, 31 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 31 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 8, 12, 42 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 42 },
{ 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 4, 4, 4, 21, 42 },
@@ -5791,6 +6287,7 @@ static const Properties uc_properties[] = {
{ 0, 17, 228, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 33 },
{ 18, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 33 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 47 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 47 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 4, 4, 21, 47 },
{ 0, 17, 222, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 4, 4, 4, 21, 47 },
@@ -5852,6 +6349,9 @@ static const Properties uc_properties[] = {
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 78 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 78 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 30, 78 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 1 },
+ { 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 62 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 4, 4, 21, 62 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 62 },
@@ -5881,7 +6381,7 @@ static const Properties uc_properties[] = {
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 67 },
{ 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 67 },
{ 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 67 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 67 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 67 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 14, 9, 11, 67 },
@@ -5944,8 +6444,8 @@ static const Properties uc_properties[] = {
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 80, 0, 8, 6, 12, 4 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 5 },
- { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 35, 1, 35, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 3814, 0, 3814, 0, 0, 8, 0, 0, 8, 6, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 6, 12, 4 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4, 4, 4, 21, 1 },
@@ -5956,126 +6456,126 @@ static const Properties uc_properties[] = {
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 202, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 1 },
{ 0, 17, 233, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 4, 4, 4, 21, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 81, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 176, 1, 176, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 179, 1, 179, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 182, 1, 182, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 185, 1, 185, 0, 0, 1, 17, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 188, 1, 188, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -59, 0, -59, 0, -58, 2, 81, 0, 8, 6, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -7615, 0, 0, 0, 0, 0, -7615, 10, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 10, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 10, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 8, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -8, 0, 0, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 191, 1, 191, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 194, 1, 194, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 198, 1, 198, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 202, 1, 202, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 74, 0, 74, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 74, 0, 74, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 86, 0, 86, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 86, 0, 86, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 100, 0, 100, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 100, 0, 100, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 128, 0, 128, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 128, 0, 128, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 112, 0, 112, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 112, 0, 112, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 126, 0, 126, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 126, 0, 126, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 240, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 243, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 246, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 249, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 252, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 255, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 258, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 261, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 240, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 243, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 246, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 249, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 252, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 255, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 258, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 261, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 264, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 267, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 270, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 273, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 276, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 279, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 282, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 285, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 264, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 267, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 270, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 273, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 276, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 279, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 282, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 285, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 288, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 291, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 294, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 297, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 300, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 303, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 306, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 309, 0, 8, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 288, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 291, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 294, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 297, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 300, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 303, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 306, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -8, 1, 309, 0, 0, 0, -8, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 324, 1, 321, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 312, 0, 9, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 330, 1, 327, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 206, 1, 206, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 361, 1, 357, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -74, 0, 0, 0, 0, 0, -74, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -74, 0, 0, 0, 0, 0, -74, 1, 85, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -9, 1, 312, 0, 0, 0, -9, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -7205, 0, -7205, 0, -7173, 1, 85, 0, 8, 6, 12, 4 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 81, 0, 0, 0, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 85, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 336, 1, 333, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 315, 0, 9, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 342, 1, 339, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 209, 1, 209, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 369, 1, 365, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -86, 0, 0, 0, 0, 0, -86, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -86, 0, 0, 0, 0, 0, -86, 1, 85, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -9, 1, 315, 0, 0, 0, -9, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 212, 1, 212, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 165, 1, 165, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 216, 1, 216, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 219, 1, 219, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -100, 0, 0, 0, 0, 0, -100, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -100, 0, 0, 0, 0, 0, -100, 1, 85, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 223, 1, 223, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 169, 1, 169, 0, 0, 1, 85, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 227, 1, 227, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 7, 0, 7, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 230, 1, 230, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 233, 1, 233, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -112, 0, 0, 0, 0, 0, -112, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -112, 0, 0, 0, 0, 0, -112, 1, 85, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -7, 0, 0, 0, 0, 0, -7, 1, 17, 0, 8, 7, 12, 4 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 17, 0, 8, 6, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 17, 0, 8, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 348, 1, 345, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 318, 0, 9, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 354, 1, 351, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 237, 1, 237, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 377, 1, 373, 0, 0, 1, 17, 0, 8, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -128, 0, 0, 0, 0, 0, -128, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -128, 0, 0, 0, 0, 0, -128, 1, 85, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -126, 0, 0, 0, 0, 0, -126, 1, 17, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, -126, 0, 0, 0, 0, 0, -126, 1, 85, 0, 8, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, 0, -9, 1, 318, 0, 0, 0, -9, 1, 17, 0, 8, 7, 12, 4 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 0, 18, 4 },
{ 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 5, 17, 2 },
{ 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 5, 17, 2 },
@@ -6159,6 +6659,8 @@ static const Properties uc_properties[] = {
{ 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 9, 2 },
{ 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 2 },
{ 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 10, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 9, 2 },
{ 13, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 },
{ 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 1 },
{ 2, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 4, 21, 1 },
@@ -6171,11 +6673,11 @@ static const Properties uc_properties[] = {
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 10, 2 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 9, 2 },
- { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 4 },
- { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 85, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -7517, 0, 0, 0, 0, 0, -7517, 1, 85, 0, 8, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 1, 37, 0, 0, 0, 0, 1, 37, 1, 85, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 39, 0, 0, 0, 0, 1, 39, 1, 85, 0, 8, 7, 12, 3 },
{ 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 28, 0, 0, 0, 0, 0, 28, 1, 0, 0, 8, 7, 12, 3 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 8, 8, 12, 2 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 8, 6, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 12, 2 },
@@ -6187,11 +6689,11 @@ static const Properties uc_properties[] = {
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -28, 0, -28, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
- { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 3 },
- { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 4, 0, 0, 0, -1, 0, 0, 16, 0, 0, 0, 0, 0, 16, 1, 80, 0, 8, 7, 12, 3 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, -16, 0, -16, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 8, 12, 3 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 3 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 12, 2 },
@@ -6215,8 +6717,6 @@ static const Properties uc_properties[] = {
{ 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 12, 2 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 2 },
{ 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 13, 0, 2 },
{ 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 0, 13, 1, 2 },
@@ -6227,6 +6727,7 @@ static const Properties uc_properties[] = {
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
@@ -6238,8 +6739,8 @@ static const Properties uc_properties[] = {
{ 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
- { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 80, 0, 8, 7, 12, 2 },
- { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 26, 0, 0, 0, 0, 0, 26, 1, 80, 0, 8, 7, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, -26, 0, -26, 0, 0, 1, 80, 0, 8, 6, 12, 2 },
{ 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
@@ -6258,7 +6759,9 @@ static const Properties uc_properties[] = {
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 14, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 14, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 13, 3, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 13, 3, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 2 },
{ 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 0, 2 },
{ 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 13, 1, 2 },
@@ -6298,34 +6801,35 @@ static const Properties uc_properties[] = {
{ 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
{ 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 57 },
- { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 57 },
- { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 48, 0, 0, 0, 0, 0, 48, 8, 0, 0, 8, 7, 12, 57 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -48, 0, -48, 0, 0, 8, 0, 0, 8, 6, 12, 57 },
+ { 14, 0, 0, 0, -1, 0, 1, 41, 0, 0, 0, 0, 1, 41, 9, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, -3814, 0, 0, 0, 0, 0, -3814, 9, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 43, 0, 0, 0, 0, 1, 43, 9, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 45, 1, 45, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 47, 1, 47, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 49, 0, 0, 0, 0, 1, 49, 10, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 51, 0, 0, 0, 0, 1, 51, 10, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 53, 0, 0, 0, 0, 1, 53, 10, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 55, 0, 0, 0, 0, 1, 55, 11, 0, 0, 8, 7, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 6, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 80, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 8, 7, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 46 },
+ { 14, 0, 0, 0, -1, 0, 1, 57, 0, 0, 0, 0, 1, 57, 11, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 59, 0, 0, 0, 0, 1, 59, 11, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 8, 0, 0, 8, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 8, 0, 0, 8, 6, 12, 46 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 46 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 46 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 0, 8, 6, 12, 46 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 11, 0, 0, 8, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 11, 0, 0, 8, 6, 12, 46 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 46 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 46 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 13, 0, 0, 8, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 13, 0, 0, 8, 6, 12, 46 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6, 46 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 46 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 46 },
- { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 0, 8, 6, 12, 25 },
- { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 25 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -7264, 0, -7264, 0, 0, 8, 0, 0, 8, 6, 12, 25 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -7264, 0, -7264, 0, 0, 13, 0, 0, 8, 6, 12, 25 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 58 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 58 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 80, 0, 8, 8, 12, 58 },
@@ -6347,6 +6851,11 @@ static const Properties uc_properties[] = {
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 2 },
{ 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 19, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 2 },
+ { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 13, 0, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 14, 37 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 80, 0, 0, 0, 14, 37 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 14, 2 },
@@ -6440,6 +6949,7 @@ static const Properties uc_properties[] = {
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 5 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 5 },
{ 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 5 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 80, 0, 8, 6, 12, 5 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 84 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 84 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 84 },
@@ -6449,15 +6959,24 @@ static const Properties uc_properties[] = {
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 2 },
{ 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 2 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 61, 0, 0, 0, 0, 1, 61, 10, 0, 0, 8, 7, 12, 3 },
{ 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 63, 0, 0, 0, 0, 1, 63, 12, 0, 0, 8, 7, 12, 3 },
{ 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 0, 8, 7, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 0, 8, 6, 12, 3 },
- { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 12, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 12, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 13, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 13, 0, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 16, 0, 0, 8, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 16, 0, 0, 8, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 65, 0, 0, 0, 0, 1, 65, 13, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 67, 0, 0, 0, 0, 1, 67, 16, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 69, 0, 0, 0, 0, 1, 69, 16, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 71, 0, 0, 0, 0, 1, 71, 16, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 73, 0, 0, 0, 0, 1, 73, 16, 0, 0, 8, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 75, 0, 0, 0, 0, 1, 75, 16, 0, 0, 8, 7, 12, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 3 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 8, 6, 12, 3 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 3 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 59 },
@@ -6500,7 +7019,7 @@ static const Properties uc_properties[] = {
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 72 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 72 },
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 72 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 72 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 17, 2 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17, 72 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 73 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 73 },
@@ -6526,6 +7045,19 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 14, 9, 11, 85 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 8, 30, 24 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 30, 24 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 8, 30, 24 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 24 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 77 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 4, 21, 77 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 4, 4, 21, 77 },
@@ -6544,6 +7076,7 @@ static const Properties uc_properties[] = {
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 24 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 24 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 30, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 4, 4, 30, 24 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 8, 30, 79 },
{ 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 79 },
{ 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 30, 79 },
@@ -6556,6 +7089,9 @@ static const Properties uc_properties[] = {
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 86 },
{ 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 86 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 27 },
+ { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 6, 12, 4 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 86 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 86 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 86 },
@@ -6580,17 +7116,17 @@ static const Properties uc_properties[] = {
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 85, 0, 0, 8, 14, 37 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 85, 0, 0, 8, 14, 37 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 85, 0, 0, 8, 14, 37 },
- { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
- { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 89, 1, 86, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 95, 1, 92, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 101, 1, 98, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 108, 1, 104, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 116, 1, 112, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 123, 1, 120, 0, 0, 1, 80, 0, 8, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 135, 1, 132, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 141, 1, 138, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 147, 1, 144, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 153, 1, 150, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 1, 159, 1, 156, 0, 0, 1, 80, 0, 8, 6, 12, 6 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 85, 0, 7, 8, 13, 7 },
{ 0, 17, 26, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 4, 4, 21, 7 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85, 0, 7, 8, 13, 7 },
@@ -6645,11 +7181,11 @@ static const Properties uc_properties[] = {
{ 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 },
{ 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 },
{ 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 80, 0, 8, 7, 14, 3 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 1, 80, 0, 8, 7, 14, 3 },
{ 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 0, 2 },
{ 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 13, 1, 2 },
{ 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 0, 14, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 80, 0, 8, 6, 14, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 1, 80, 0, 8, 6, 14, 3 },
{ 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 13, 0, 2 },
{ 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 80, 0, 0, 13, 1, 2 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 80, 0, 0, 12, 1, 2 },
@@ -6672,21 +7208,27 @@ static const Properties uc_properties[] = {
{ 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 4 },
{ 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 4 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 12, 4 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 4 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 4 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 74 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 8, 12, 75 },
+ { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 2 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 39 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 39 },
{ 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 12, 39 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 40 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 8, 12, 40 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 120 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 120 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 50 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 17, 50 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 60 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 17, 60 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 8, 12, 60 },
- { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 0, 8, 7, 12, 41 },
- { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 0, 8, 7, 12, 41 },
- { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 0, 8, 6, 12, 41 },
- { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 0, 8, 6, 12, 41 },
+ { 14, 0, 0, 0, -1, 0, 0, 40, 0, 0, 0, 0, 0, 40, 5, 0, 0, 8, 7, 12, 41 },
+ { 14, 0, 0, 0, -1, 0, 0, 40, 0, 0, 0, 0, 0, 40, 7, 0, 0, 8, 7, 12, 41 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -40, 0, -40, 0, 0, 5, 0, 0, 8, 6, 12, 41 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -40, 0, -40, 0, 0, 7, 0, 0, 8, 6, 12, 41 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 51 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 52 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 },
@@ -6699,10 +7241,19 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 14, 9, 11, 52 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 106 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 103 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 103 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 110 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 8, 12, 53 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 87 },
{ 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 87 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 87 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 118 },
+ { 29, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 118 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 118 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 117 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 117 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 64 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 12, 64 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 64 },
@@ -6728,12 +7279,31 @@ static const Properties uc_properties[] = {
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 88 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 88 },
{ 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 88 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 116 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 116 },
+ { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 112 },
+ { 18, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 112 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 112 },
+ { 29, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 112 },
+ { 18, 1, 0, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 112 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 112 },
+ { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 112 },
+ { 5, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 112 },
+ { 5, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 112 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 112 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 15, 112 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 80 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 17, 80 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 89 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 89 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 90 },
{ 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 90 },
+ { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 121 },
+ { 18, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 121 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 121 },
+ { 5, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 121 },
+ { 5, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 121 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 121 },
{ 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 91 },
{ 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 },
{ 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 12, 8 },
@@ -6771,6 +7341,7 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 14, 9, 11, 94 },
+ { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 94 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 4, 21, 92 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 4, 4, 21, 92 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 92 },
@@ -6810,6 +7381,10 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 96 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 96 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 17, 96 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 111 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 111 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 111 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 18, 111 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 100 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 100 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 100 },
@@ -6817,6 +7392,7 @@ static const Properties uc_properties[] = {
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 17, 100 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 100 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 17, 100 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 12, 100 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
@@ -6827,6 +7403,84 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 100 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 100 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 20 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 109 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 109 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 109 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 109 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 109 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 109 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 109 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 123 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 123 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 123 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 123 },
+ { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 123 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 123 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 107 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 107 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 107 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 107 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 204, 4, 4, 4, 21, 107 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 7, 4, 4, 21, 107 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 107 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 107 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 124 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 204, 4, 4, 4, 21, 124 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 124 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 124 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 204, 4, 4, 4, 21, 124 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 7, 4, 4, 21, 124 },
+ { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 124 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 124 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 124 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 124 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 122 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 204, 4, 4, 4, 21, 122 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 122 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 122 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 7, 4, 4, 21, 122 },
+ { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 122 },
+ { 0, 17, 7, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 122 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 18, 122 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 122 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 6, 122 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 122 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 114 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 7, 4, 4, 21, 114 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 114 },
+ { 0, 17, 9, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 114 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 114 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 114 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 114 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 102 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 102 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 102 },
@@ -6842,19 +7496,76 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 9, 11, 102 },
+ { 14, 0, 0, 0, -1, 0, 0, 32, 0, 0, 0, 0, 0, 32, 16, 0, 0, 8, 7, 12, 125 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, -32, 0, -32, 0, 0, 16, 0, 0, 8, 6, 12, 125 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 125 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 125 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 125 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 119 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 63 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 63 },
{ 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 8, 8, 12, 63 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 63 },
{ 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 17, 63 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 63 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 12, 81 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 0, 81 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 8, 1, 81 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 8, 12, 84 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 115 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 115 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 115 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 104 },
+ { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 104 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 104 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 108 },
+ { 0, 17, 230, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 108 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 108 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 17, 108 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 108 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 108 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 108 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 14, 9, 11, 108 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 108 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 99 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 4, 4, 21, 99 },
{ 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 4, 4, 21, 99 },
{ 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 8, 12, 99 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 6, 8, 14, 35 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 8, 14, 34 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 105 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 105 },
+ { 0, 17, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 105 },
+ { 0, 17, 1, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 105 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 17, 105 },
+ { 10, 18, 0, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 3, 4, 4, 21, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 12, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 85, 0, 0, 0, 12, 2 },
{ 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 4, 4, 21, 2 },
@@ -6883,6 +7594,9 @@ static const Properties uc_properties[] = {
{ 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 },
{ 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 },
{ 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 80, 0, 14, 9, 11, 2 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8, 8, 12, 113 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 113 },
+ { 0, 17, 220, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 4, 4, 4, 21, 113 },
{ 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 8, 8, 12, 8 },
{ 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 8 },
{ 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
@@ -6895,15 +7609,22 @@ static const Properties uc_properties[] = {
{ 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
{ 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
{ 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 12, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 8, 7, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 8, 7, 12, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 0, 0, 12, 2 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 7, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 7, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 80, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 5, 5, 0, 28, 2 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 80, 0, 0, 0, 14, 34 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 80, 0, 0, 0, 14, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 12, 2 },
{ 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 13, 3, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 5, 2 },
{ 13, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 12, 0 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 8, 14, 37 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 8, 14, 37 },
@@ -6957,12 +7678,44 @@ Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4) Q_DECL_NOTHRO
static const ushort specialCaseMap[] = {
0x0, // placeholder
+ 0x1, 0x2c65,
+ 0x1, 0x2c66,
+ 0x1, 0x2c7e,
+ 0x1, 0x2c7f,
+ 0x1, 0x2c6f,
+ 0x1, 0x2c6d,
+ 0x1, 0x2c70,
+ 0x1, 0xa7ab,
+ 0x1, 0xa7ac,
0x1, 0xa78d,
0x1, 0xa7aa,
+ 0x1, 0x2c62,
+ 0x1, 0xa7ad,
+ 0x1, 0x2c6e,
+ 0x1, 0x2c64,
+ 0x1, 0xa7b1,
+ 0x1, 0xa7b0,
0x1, 0xa77d,
+ 0x1, 0x6b,
+ 0x1, 0xe5,
+ 0x1, 0x26b,
+ 0x1, 0x27d,
+ 0x1, 0x23a,
+ 0x1, 0x23e,
+ 0x1, 0x251,
+ 0x1, 0x271,
+ 0x1, 0x250,
+ 0x1, 0x252,
+ 0x1, 0x23f,
+ 0x1, 0x240,
0x1, 0x1d79,
0x1, 0x265,
0x1, 0x266,
+ 0x1, 0x25c,
+ 0x1, 0x261,
+ 0x1, 0x26c,
+ 0x1, 0x29e,
+ 0x1, 0x287,
0x2, 0x53, 0x73,
0x2, 0x53, 0x53,
0x2, 0x69, 0x307,
@@ -7188,7 +7941,7 @@ static const unsigned short uc_decomposition_trie[] = {
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5612, 5356, 5356, 5356, 5356,
+ 5356, 5356, 5612, 5868, 5356, 5356, 5356, 6124,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
@@ -7199,10 +7952,11 @@ static const unsigned short uc_decomposition_trie[] = {
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5356, 5356, 5868, 6124, 6380,
- 6636, 6892, 7148, 7404, 5356, 5356, 5356, 5356,
+ 5356, 5356, 5356, 5356, 5356, 6380, 6636, 6892,
+ 7148, 7404, 7660, 7916, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5356, 7660, 7916, 5356, 5356,
+ 5356, 5356, 5356, 5356, 8172, 8428, 5356, 8684,
+ 8940, 9196, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
@@ -7225,12 +7979,11 @@ static const unsigned short uc_decomposition_trie[] = {
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
+ 5356, 5356, 5356, 5356, 5356, 9452, 5356, 5356,
+ 9708, 9964, 10220, 10476, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5356, 5356, 8172, 5356, 5356,
- 8428, 8684, 8940, 9196, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 9452, 5356, 5356, 9708, 9964, 5356,
+ 5356, 5356, 10732, 5356, 5356, 10988, 11244, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
@@ -7265,7 +8018,7 @@ static const unsigned short uc_decomposition_trie[] = {
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
5356, 5356, 5356, 5356, 5356, 5356, 5356, 5356,
- 5356, 5356, 5356, 5356, 10220, 10476, 10732, 5356,
+ 5356, 5356, 5356, 5356, 11500, 11756, 12012, 5356,
5356, 5356, 5356, 5356,
@@ -8030,7 +8783,74 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x19f5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0x19f5, 0x19f7, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x19f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x19fb, 0x19fd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0x19ff, 0x1a01, 0x1a03, 0x1a05,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8047,236 +8867,235 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x19f7, 0x19f9, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x19fb, 0x19fd, 0x19ff, 0x1a01, 0x1a03, 0x1a05, 0x1a07, 0x1a09,
- 0x1a0b, 0x1a0d, 0x1a0f, 0x1a11, 0x1a13, 0x1a15, 0x1a17, 0x1a19,
- 0x1a1b, 0x1a1d, 0x1a1f, 0x1a21, 0x1a23, 0x1a25, 0x1a27, 0x1a29,
- 0x1a2b, 0x1a2d, 0x1a2f, 0x1a31, 0x1a33, 0x1a35, 0x1a37, 0x1a39,
- 0x1a3b, 0x1a3d, 0x1a3f, 0x1a41, 0x1a43, 0x1a45, 0x1a47, 0x1a49,
- 0x1a4b, 0x1a4d, 0x1a4f, 0x1a51, 0x1a53, 0x1a55, 0x1a57, 0x1a59,
- 0x1a5b, 0x1a5d, 0x1a5f, 0x1a61, 0x1a63, 0x1a65, 0x1a67, 0x1a69,
- 0x1a6b, 0x1a6d, 0x1a6f, 0x1a71, 0x1a73, 0x1a75, 0x1a77, 0x1a79,
- 0x1a7b, 0x1a7d, 0x1a7f, 0x1a81, 0x1a83, 0x1a85, 0x1a87, 0x1a89,
- 0x1a8b, 0x1a8d, 0x1a8f, 0x1a91, 0x1a93, 0x1a95, 0x1a97, 0x1a99,
- 0x1a9b, 0x1a9d, 0x1a9f, 0x1aa1, 0x1aa3, 0x1aa5, 0x1aa7, 0x1aa9,
- 0x1aab, 0x1aad, 0x1aaf, 0x1ab1, 0x1ab3, 0x1ab5, 0x1ab7, 0x1ab9,
- 0x1abb, 0x1abd, 0x1abf, 0x1ac1, 0x1ac3, 0x1ac5, 0x1ac7, 0x1ac9,
- 0x1acb, 0x1acd, 0x1acf, 0x1ad1, 0x1ad3, 0x1ad5, 0x1ad7, 0x1ad9,
- 0x1adb, 0x1add, 0x1adf, 0x1ae1, 0x1ae3, 0x1ae5, 0x1ae7, 0x1ae9,
- 0x1aeb, 0x1aed, 0x1aef, 0x1af1, 0x1af3, 0x1af5, 0x1af7, 0x1af9,
- 0x1afb, 0x1afd, 0x1aff, 0x1b01, 0x1b03, 0x1b05, 0x1b07, 0x1b09,
- 0x1b0b, 0x1b0d, 0x1b0f, 0x1b11, 0x1b13, 0x1b15, 0x1b17, 0x1b19,
- 0x1b1b, 0x1b1d, 0x1b1f, 0x1b21, 0x1b23, 0x1b25, 0x1b27, 0x1b29,
- 0x1b2b, 0x1b2d, 0x1b2f, 0x1b31, 0x1b33, 0x1b35, 0x1b37, 0x1b39,
- 0x1b3b, 0x1b3d, 0x1b3f, 0x1b41, 0x1b43, 0x1b45, 0x1b47, 0x1b49,
- 0x1b4b, 0x1b4d, 0x1b4f, 0x1b51, 0x1b53, 0x1b55, 0x1b57, 0x1b59,
- 0x1b5b, 0x1b5d, 0x1b5f, 0x1b61, 0x1b63, 0x1b65, 0x1b67, 0x1b69,
- 0x1b6b, 0x1b6d, 0x1b6f, 0x1b71, 0x1b73, 0x1b75, 0x1b77, 0x1b79,
- 0x1b7b, 0x1b7d, 0x1b7f, 0x1b81, 0x1b83, 0x1b85, 0x1b87, 0x1b89,
- 0x1b8b, 0x1b8d, 0x1b8f, 0x1b91, 0x1b93, 0x1b95, 0x1b97, 0x1b99,
- 0x1b9b, 0x1b9d, 0x1b9f, 0x1ba1, 0x1ba3, 0x1ba5, 0x1ba7, 0x1ba9,
- 0x1bab, 0x1bad, 0x1baf, 0x1bb1, 0x1bb3, 0x1bb5, 0x1bb7, 0x1bb9,
- 0x1bbb, 0x1bbd, 0x1bbf, 0x1bc1, 0x1bc3, 0x1bc5, 0x1bc7, 0x1bc9,
- 0x1bcb, 0x1bcd, 0x1bcf, 0x1bd1, 0x1bd3, 0x1bd5, 0x1bd7, 0x1bd9,
- 0x1bdb, 0x1bdd, 0x1bdf, 0x1be1, 0x1be3, 0x1be5, 0x1be7, 0x1be9,
- 0x1beb, 0x1bed, 0x1bef, 0x1bf1, 0x1bf3, 0x1bf5, 0x1bf7, 0x1bf9,
+ 0x1a07, 0x1a09, 0x1a0b, 0x1a0d, 0x1a0f, 0x1a11, 0x1a13, 0x1a15,
+ 0x1a17, 0x1a19, 0x1a1b, 0x1a1d, 0x1a1f, 0x1a21, 0x1a23, 0x1a25,
+ 0x1a27, 0x1a29, 0x1a2b, 0x1a2d, 0x1a2f, 0x1a31, 0x1a33, 0x1a35,
+ 0x1a37, 0x1a39, 0x1a3b, 0x1a3d, 0x1a3f, 0x1a41, 0x1a43, 0x1a45,
+ 0x1a47, 0x1a49, 0x1a4b, 0x1a4d, 0x1a4f, 0x1a51, 0x1a53, 0x1a55,
+ 0x1a57, 0x1a59, 0x1a5b, 0x1a5d, 0x1a5f, 0x1a61, 0x1a63, 0x1a65,
+ 0x1a67, 0x1a69, 0x1a6b, 0x1a6d, 0x1a6f, 0x1a71, 0x1a73, 0x1a75,
+ 0x1a77, 0x1a79, 0x1a7b, 0x1a7d, 0x1a7f, 0x1a81, 0x1a83, 0x1a85,
+ 0x1a87, 0x1a89, 0x1a8b, 0x1a8d, 0x1a8f, 0x1a91, 0x1a93, 0x1a95,
+ 0x1a97, 0x1a99, 0x1a9b, 0x1a9d, 0x1a9f, 0x1aa1, 0x1aa3, 0x1aa5,
+ 0x1aa7, 0x1aa9, 0x1aab, 0x1aad, 0x1aaf, 0x1ab1, 0x1ab3, 0x1ab5,
+ 0x1ab7, 0x1ab9, 0x1abb, 0x1abd, 0x1abf, 0x1ac1, 0x1ac3, 0x1ac5,
+ 0x1ac7, 0x1ac9, 0x1acb, 0x1acd, 0x1acf, 0x1ad1, 0x1ad3, 0x1ad5,
+ 0x1ad7, 0x1ad9, 0x1adb, 0x1add, 0x1adf, 0x1ae1, 0x1ae3, 0x1ae5,
+ 0x1ae7, 0x1ae9, 0x1aeb, 0x1aed, 0x1aef, 0x1af1, 0x1af3, 0x1af5,
+ 0x1af7, 0x1af9, 0x1afb, 0x1afd, 0x1aff, 0x1b01, 0x1b03, 0x1b05,
+ 0x1b07, 0x1b09, 0x1b0b, 0x1b0d, 0x1b0f, 0x1b11, 0x1b13, 0x1b15,
+ 0x1b17, 0x1b19, 0x1b1b, 0x1b1d, 0x1b1f, 0x1b21, 0x1b23, 0x1b25,
+ 0x1b27, 0x1b29, 0x1b2b, 0x1b2d, 0x1b2f, 0x1b31, 0x1b33, 0x1b35,
+ 0x1b37, 0x1b39, 0x1b3b, 0x1b3d, 0x1b3f, 0x1b41, 0x1b43, 0x1b45,
+ 0x1b47, 0x1b49, 0x1b4b, 0x1b4d, 0x1b4f, 0x1b51, 0x1b53, 0x1b55,
+ 0x1b57, 0x1b59, 0x1b5b, 0x1b5d, 0x1b5f, 0x1b61, 0x1b63, 0x1b65,
+ 0x1b67, 0x1b69, 0x1b6b, 0x1b6d, 0x1b6f, 0x1b71, 0x1b73, 0x1b75,
+ 0x1b77, 0x1b79, 0x1b7b, 0x1b7d, 0x1b7f, 0x1b81, 0x1b83, 0x1b85,
+ 0x1b87, 0x1b89, 0x1b8b, 0x1b8d, 0x1b8f, 0x1b91, 0x1b93, 0x1b95,
+ 0x1b97, 0x1b99, 0x1b9b, 0x1b9d, 0x1b9f, 0x1ba1, 0x1ba3, 0x1ba5,
+ 0x1ba7, 0x1ba9, 0x1bab, 0x1bad, 0x1baf, 0x1bb1, 0x1bb3, 0x1bb5,
+ 0x1bb7, 0x1bb9, 0x1bbb, 0x1bbd, 0x1bbf, 0x1bc1, 0x1bc3, 0x1bc5,
+ 0x1bc7, 0x1bc9, 0x1bcb, 0x1bcd, 0x1bcf, 0x1bd1, 0x1bd3, 0x1bd5,
+ 0x1bd7, 0x1bd9, 0x1bdb, 0x1bdd, 0x1bdf, 0x1be1, 0x1be3, 0x1be5,
+ 0x1be7, 0x1be9, 0x1beb, 0x1bed, 0x1bef, 0x1bf1, 0x1bf3, 0x1bf5,
+ 0x1bf7, 0x1bf9, 0x1bfb, 0x1bfd, 0x1bff, 0x1c01, 0x1c03, 0x1c05,
- 0x1bfb, 0x1bfd, 0x1bff, 0x1c01, 0x1c03, 0x1c05, 0x1c07, 0x1c09,
- 0x1c0b, 0x1c0d, 0x1c0f, 0x1c11, 0x1c13, 0x1c15, 0xffff, 0xffff,
- 0x1c17, 0xffff, 0x1c19, 0xffff, 0xffff, 0x1c1b, 0x1c1d, 0x1c1f,
- 0x1c21, 0x1c23, 0x1c25, 0x1c27, 0x1c29, 0x1c2b, 0x1c2d, 0xffff,
- 0x1c2f, 0xffff, 0x1c31, 0xffff, 0xffff, 0x1c33, 0x1c35, 0xffff,
- 0xffff, 0xffff, 0x1c37, 0x1c39, 0x1c3b, 0x1c3d, 0x1c3f, 0x1c41,
- 0x1c43, 0x1c45, 0x1c47, 0x1c49, 0x1c4b, 0x1c4d, 0x1c4f, 0x1c51,
- 0x1c53, 0x1c55, 0x1c57, 0x1c59, 0x1c5b, 0x1c5d, 0x1c5f, 0x1c61,
- 0x1c63, 0x1c65, 0x1c67, 0x1c69, 0x1c6b, 0x1c6d, 0x1c6f, 0x1c71,
- 0x1c73, 0x1c75, 0x1c77, 0x1c79, 0x1c7b, 0x1c7d, 0x1c7f, 0x1c81,
- 0x1c83, 0x1c85, 0x1c87, 0x1c89, 0x1c8b, 0x1c8d, 0x1c8f, 0x1c91,
- 0x1c93, 0x1c95, 0x1c97, 0x1c99, 0x1c9b, 0x1c9d, 0x1c9f, 0x1ca1,
- 0x1ca3, 0x1ca5, 0x1ca7, 0x1ca9, 0x1cab, 0x1cad, 0x1caf, 0x1cb1,
- 0x1cb3, 0x1cb5, 0x1cb7, 0x1cb9, 0x1cbb, 0x1cbe, 0xffff, 0xffff,
- 0x1cc0, 0x1cc2, 0x1cc4, 0x1cc6, 0x1cc8, 0x1cca, 0x1ccc, 0x1cce,
- 0x1cd0, 0x1cd2, 0x1cd4, 0x1cd6, 0x1cd8, 0x1cda, 0x1cdc, 0x1cde,
- 0x1ce0, 0x1ce2, 0x1ce4, 0x1ce6, 0x1ce8, 0x1cea, 0x1cec, 0x1cee,
- 0x1cf0, 0x1cf2, 0x1cf4, 0x1cf6, 0x1cf8, 0x1cfa, 0x1cfc, 0x1cfe,
- 0x1d00, 0x1d02, 0x1d04, 0x1d06, 0x1d08, 0x1d0a, 0x1d0c, 0x1d0e,
- 0x1d10, 0x1d12, 0x1d14, 0x1d16, 0x1d18, 0x1d1a, 0x1d1c, 0x1d1e,
- 0x1d20, 0x1d22, 0x1d24, 0x1d26, 0x1d28, 0x1d2a, 0x1d2c, 0x1d2e,
- 0x1d30, 0x1d32, 0x1d34, 0x1d36, 0x1d38, 0x1d3a, 0x1d3c, 0x1d3e,
- 0x1d40, 0x1d42, 0x1d44, 0x1d46, 0x1d48, 0x1d4a, 0x1d4c, 0x1d4e,
- 0x1d50, 0x1d52, 0x1d54, 0x1d56, 0x1d58, 0x1d5a, 0x1d5c, 0x1d5e,
- 0x1d60, 0x1d62, 0x1d64, 0x1d66, 0x1d68, 0x1d6a, 0x1d6c, 0x1d6e,
- 0x1d70, 0x1d72, 0x1d74, 0x1d76, 0x1d78, 0x1d7a, 0x1d7c, 0x1d7e,
- 0x1d81, 0x1d84, 0x1d87, 0x1d89, 0x1d8b, 0x1d8d, 0x1d90, 0x1d93,
- 0x1d96, 0x1d98, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x1c07, 0x1c09, 0x1c0b, 0x1c0d, 0x1c0f, 0x1c11, 0x1c13, 0x1c15,
+ 0x1c17, 0x1c19, 0x1c1b, 0x1c1d, 0x1c1f, 0x1c21, 0xffff, 0xffff,
+ 0x1c23, 0xffff, 0x1c25, 0xffff, 0xffff, 0x1c27, 0x1c29, 0x1c2b,
+ 0x1c2d, 0x1c2f, 0x1c31, 0x1c33, 0x1c35, 0x1c37, 0x1c39, 0xffff,
+ 0x1c3b, 0xffff, 0x1c3d, 0xffff, 0xffff, 0x1c3f, 0x1c41, 0xffff,
+ 0xffff, 0xffff, 0x1c43, 0x1c45, 0x1c47, 0x1c49, 0x1c4b, 0x1c4d,
+ 0x1c4f, 0x1c51, 0x1c53, 0x1c55, 0x1c57, 0x1c59, 0x1c5b, 0x1c5d,
+ 0x1c5f, 0x1c61, 0x1c63, 0x1c65, 0x1c67, 0x1c69, 0x1c6b, 0x1c6d,
+ 0x1c6f, 0x1c71, 0x1c73, 0x1c75, 0x1c77, 0x1c79, 0x1c7b, 0x1c7d,
+ 0x1c7f, 0x1c81, 0x1c83, 0x1c85, 0x1c87, 0x1c89, 0x1c8b, 0x1c8d,
+ 0x1c8f, 0x1c91, 0x1c93, 0x1c95, 0x1c97, 0x1c99, 0x1c9b, 0x1c9d,
+ 0x1c9f, 0x1ca1, 0x1ca3, 0x1ca5, 0x1ca7, 0x1ca9, 0x1cab, 0x1cad,
+ 0x1caf, 0x1cb1, 0x1cb3, 0x1cb5, 0x1cb7, 0x1cb9, 0x1cbb, 0x1cbd,
+ 0x1cbf, 0x1cc1, 0x1cc3, 0x1cc5, 0x1cc7, 0x1cca, 0xffff, 0xffff,
+ 0x1ccc, 0x1cce, 0x1cd0, 0x1cd2, 0x1cd4, 0x1cd6, 0x1cd8, 0x1cda,
+ 0x1cdc, 0x1cde, 0x1ce0, 0x1ce2, 0x1ce4, 0x1ce6, 0x1ce8, 0x1cea,
+ 0x1cec, 0x1cee, 0x1cf0, 0x1cf2, 0x1cf4, 0x1cf6, 0x1cf8, 0x1cfa,
+ 0x1cfc, 0x1cfe, 0x1d00, 0x1d02, 0x1d04, 0x1d06, 0x1d08, 0x1d0a,
+ 0x1d0c, 0x1d0e, 0x1d10, 0x1d12, 0x1d14, 0x1d16, 0x1d18, 0x1d1a,
+ 0x1d1c, 0x1d1e, 0x1d20, 0x1d22, 0x1d24, 0x1d26, 0x1d28, 0x1d2a,
+ 0x1d2c, 0x1d2e, 0x1d30, 0x1d32, 0x1d34, 0x1d36, 0x1d38, 0x1d3a,
+ 0x1d3c, 0x1d3e, 0x1d40, 0x1d42, 0x1d44, 0x1d46, 0x1d48, 0x1d4a,
+ 0x1d4c, 0x1d4e, 0x1d50, 0x1d52, 0x1d54, 0x1d56, 0x1d58, 0x1d5a,
+ 0x1d5c, 0x1d5e, 0x1d60, 0x1d62, 0x1d64, 0x1d66, 0x1d68, 0x1d6a,
+ 0x1d6c, 0x1d6e, 0x1d70, 0x1d72, 0x1d74, 0x1d76, 0x1d78, 0x1d7a,
+ 0x1d7c, 0x1d7e, 0x1d80, 0x1d82, 0x1d84, 0x1d86, 0x1d88, 0x1d8a,
+ 0x1d8d, 0x1d90, 0x1d93, 0x1d95, 0x1d97, 0x1d99, 0x1d9c, 0x1d9f,
+ 0x1da2, 0x1da4, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x1d9a, 0x1d9d, 0x1da0, 0x1da3, 0x1da7, 0x1dab, 0x1dae, 0xffff,
+ 0x1da6, 0x1da9, 0x1dac, 0x1daf, 0x1db3, 0x1db7, 0x1dba, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x1db1, 0x1db4, 0x1db7, 0x1dba, 0x1dbd,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1dc0, 0xffff, 0x1dc3,
- 0x1dc6, 0x1dc8, 0x1dca, 0x1dcc, 0x1dce, 0x1dd0, 0x1dd2, 0x1dd4,
- 0x1dd6, 0x1dd8, 0x1dda, 0x1ddd, 0x1de0, 0x1de3, 0x1de6, 0x1de9,
- 0x1dec, 0x1def, 0x1df2, 0x1df5, 0x1df8, 0x1dfb, 0x1dfe, 0xffff,
- 0x1e01, 0x1e04, 0x1e07, 0x1e0a, 0x1e0d, 0xffff, 0x1e10, 0xffff,
- 0x1e13, 0x1e16, 0xffff, 0x1e19, 0x1e1c, 0xffff, 0x1e1f, 0x1e22,
- 0x1e25, 0x1e28, 0x1e2b, 0x1e2e, 0x1e31, 0x1e34, 0x1e37, 0x1e3a,
- 0x1e3d, 0x1e3f, 0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b,
- 0x1e4d, 0x1e4f, 0x1e51, 0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b,
- 0x1e5d, 0x1e5f, 0x1e61, 0x1e63, 0x1e65, 0x1e67, 0x1e69, 0x1e6b,
- 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75, 0x1e77, 0x1e79, 0x1e7b,
- 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87, 0x1e89, 0x1e8b,
- 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1e95, 0x1e97, 0x1e99, 0x1e9b,
- 0x1e9d, 0x1e9f, 0x1ea1, 0x1ea3, 0x1ea5, 0x1ea7, 0x1ea9, 0x1eab,
- 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7, 0x1eb9, 0x1ebb,
- 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ec9, 0x1ecb,
- 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9, 0x1edb,
- 0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb,
- 0x1eed, 0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1efb,
- 0x1efd, 0x1eff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x1f01, 0x1f03, 0x1f05, 0x1f07, 0x1f09,
- 0x1f0b, 0x1f0d, 0x1f0f, 0x1f11, 0x1f13, 0x1f15, 0x1f17, 0x1f19,
- 0x1f1b, 0x1f1d, 0x1f1f, 0x1f21, 0x1f23, 0x1f25, 0x1f27, 0x1f29,
- 0x1f2b, 0x1f2d, 0x1f2f, 0x1f32, 0x1f35, 0x1f38, 0x1f3b, 0x1f3e,
- 0x1f41, 0x1f44, 0x1f47, 0x1f4a, 0x1f4d, 0x1f50, 0x1f53, 0x1f56,
- 0x1f59, 0x1f5c, 0x1f5f, 0x1f62, 0x1f65, 0x1f67, 0x1f69, 0x1f6b,
-
- 0x1f6d, 0x1f70, 0x1f73, 0x1f76, 0x1f79, 0x1f7c, 0x1f7f, 0x1f82,
- 0x1f85, 0x1f88, 0x1f8b, 0x1f8e, 0x1f91, 0x1f94, 0x1f97, 0x1f9a,
- 0x1f9d, 0x1fa0, 0x1fa3, 0x1fa6, 0x1fa9, 0x1fac, 0x1faf, 0x1fb2,
- 0x1fb5, 0x1fb8, 0x1fbb, 0x1fbe, 0x1fc1, 0x1fc4, 0x1fc7, 0x1fca,
- 0x1fcd, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fd9, 0x1fdc, 0x1fdf, 0x1fe2,
- 0x1fe5, 0x1fe8, 0x1feb, 0x1fee, 0x1ff1, 0x1ff4, 0x1ff7, 0x1ffa,
- 0x1ffd, 0x2000, 0x2003, 0x2006, 0x2009, 0x200c, 0x200f, 0x2012,
- 0x2015, 0x2018, 0x201b, 0x201e, 0x2021, 0x2024, 0x2027, 0x202a,
- 0x202d, 0x2030, 0x2033, 0x2036, 0x2039, 0x203c, 0x203f, 0x2042,
- 0x2045, 0x2048, 0x204b, 0x204e, 0x2051, 0x2054, 0x2057, 0x205a,
- 0x205d, 0x2060, 0x2063, 0x2066, 0x2069, 0x206c, 0x206f, 0x2072,
- 0x2075, 0x2078, 0x207b, 0x207e, 0x2081, 0x2084, 0x2087, 0x208b,
- 0x208f, 0x2093, 0x2097, 0x209b, 0x209f, 0x20a2, 0x20a5, 0x20a8,
- 0x20ab, 0x20ae, 0x20b1, 0x20b4, 0x20b7, 0x20ba, 0x20bd, 0x20c0,
- 0x20c3, 0x20c6, 0x20c9, 0x20cc, 0x20cf, 0x20d2, 0x20d5, 0x20d8,
- 0x20db, 0x20de, 0x20e1, 0x20e4, 0x20e7, 0x20ea, 0x20ed, 0x20f0,
- 0x20f3, 0x20f6, 0x20f9, 0x20fc, 0x20ff, 0x2102, 0x2105, 0x2108,
- 0x210b, 0x210e, 0x2111, 0x2114, 0x2117, 0x211a, 0x211d, 0x2120,
- 0x2123, 0x2126, 0x2129, 0x212c, 0x212f, 0x2132, 0x2135, 0x2138,
- 0x213b, 0x213e, 0x2141, 0x2144, 0x2147, 0x214a, 0x214d, 0x2150,
- 0x2153, 0x2156, 0x2159, 0x215c, 0x215f, 0x2162, 0x2165, 0x2168,
- 0x216b, 0x216e, 0x2171, 0x2174, 0x2177, 0x217a, 0x217d, 0x2180,
- 0x2183, 0x2186, 0x2189, 0x218c, 0x218f, 0x2192, 0x2195, 0x2198,
- 0x219b, 0x219e, 0x21a1, 0x21a4, 0x21a7, 0x21aa, 0x21ad, 0x21b0,
- 0x21b3, 0x21b6, 0x21b9, 0x21bc, 0x21bf, 0x21c2, 0x21c5, 0x21c8,
- 0x21cb, 0x21ce, 0x21d1, 0x21d4, 0x21d7, 0x21da, 0x21dd, 0x21e0,
- 0x21e3, 0x21e6, 0x21e9, 0x21ec, 0x21ef, 0x21f2, 0x21f5, 0x21f8,
- 0x21fb, 0x21fe, 0x2201, 0x2204, 0x2207, 0x220a, 0x220d, 0x2210,
- 0x2213, 0x2216, 0x2219, 0x221c, 0x221f, 0x2222, 0x2225, 0x2228,
- 0x222b, 0x222e, 0x2231, 0x2234, 0x2237, 0x223a, 0x223d, 0x2240,
- 0x2243, 0x2246, 0x2249, 0x224d, 0x2251, 0x2255, 0x2258, 0x225b,
- 0x225e, 0x2261, 0x2264, 0x2267, 0x226a, 0x226d, 0x2270, 0x2273,
-
- 0x2276, 0x2279, 0x227c, 0x227f, 0x2282, 0x2285, 0x2288, 0x228b,
- 0x228e, 0x2291, 0x2294, 0x2297, 0x229a, 0x229d, 0x22a0, 0x22a3,
- 0x22a6, 0x22a9, 0x22ac, 0x22af, 0x22b2, 0x22b5, 0x22b8, 0x22bb,
- 0x22be, 0x22c1, 0x22c4, 0x22c7, 0x22ca, 0x22cd, 0x22d0, 0x22d3,
- 0x22d6, 0x22d9, 0x22dc, 0x22df, 0x22e2, 0x22e5, 0x22e8, 0x22eb,
- 0x22ee, 0x22f1, 0x22f4, 0x22f7, 0x22fa, 0x22fd, 0x2300, 0x2303,
- 0x2306, 0x2309, 0x230c, 0x230f, 0x2312, 0x2315, 0x2318, 0x231b,
- 0x231e, 0x2321, 0x2324, 0x2327, 0x232a, 0x232d, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x2330, 0x2334, 0x2338, 0x233c, 0x2340, 0x2344, 0x2348, 0x234c,
- 0x2350, 0x2354, 0x2358, 0x235c, 0x2360, 0x2364, 0x2368, 0x236c,
- 0x2370, 0x2374, 0x2378, 0x237c, 0x2380, 0x2384, 0x2388, 0x238c,
- 0x2390, 0x2394, 0x2398, 0x239c, 0x23a0, 0x23a4, 0x23a8, 0x23ac,
- 0x23b0, 0x23b4, 0x23b8, 0x23bc, 0x23c0, 0x23c4, 0x23c8, 0x23cc,
- 0x23d0, 0x23d4, 0x23d8, 0x23dc, 0x23e0, 0x23e4, 0x23e8, 0x23ec,
- 0x23f0, 0x23f4, 0x23f8, 0x23fc, 0x2400, 0x2404, 0x2408, 0x240c,
- 0x2410, 0x2414, 0x2418, 0x241c, 0x2420, 0x2424, 0x2428, 0x242c,
- 0xffff, 0xffff, 0x2430, 0x2434, 0x2438, 0x243c, 0x2440, 0x2444,
- 0x2448, 0x244c, 0x2450, 0x2454, 0x2458, 0x245c, 0x2460, 0x2464,
- 0x2468, 0x246c, 0x2470, 0x2474, 0x2478, 0x247c, 0x2480, 0x2484,
- 0x2488, 0x248c, 0x2490, 0x2494, 0x2498, 0x249c, 0x24a0, 0x24a4,
- 0x24a8, 0x24ac, 0x24b0, 0x24b4, 0x24b8, 0x24bc, 0x24c0, 0x24c4,
- 0x24c8, 0x24cc, 0x24d0, 0x24d4, 0x24d8, 0x24dc, 0x24e0, 0x24e4,
- 0x24e8, 0x24ec, 0x24f0, 0x24f4, 0x24f8, 0x24fc, 0x2500, 0x2504,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x2508, 0x250c, 0x2510, 0x2515, 0x251a, 0x251f, 0x2524, 0x2529,
- 0x252e, 0x2533, 0x2537, 0x254a, 0x2553, 0xffff, 0xffff, 0xffff,
-
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x2558, 0x255a, 0x255c, 0x255e, 0x2560, 0x2562, 0x2564, 0x2566,
- 0x2568, 0x256a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x256c, 0x256e, 0x2570, 0x2572, 0x2574, 0x2576, 0x2578, 0x257a,
- 0x257c, 0x257e, 0x2580, 0x2582, 0x2584, 0x2586, 0x2588, 0x258a,
- 0x258c, 0x258e, 0x2590, 0x2592, 0x2594, 0xffff, 0xffff, 0x2596,
- 0x2598, 0x259a, 0x259c, 0x259e, 0x25a0, 0x25a2, 0x25a4, 0x25a6,
- 0x25a8, 0x25aa, 0x25ac, 0xffff, 0x25ae, 0x25b0, 0x25b2, 0x25b4,
- 0x25b6, 0x25b8, 0x25ba, 0x25bc, 0x25be, 0x25c0, 0x25c2, 0x25c4,
- 0x25c6, 0x25c8, 0x25ca, 0x25cc, 0x25ce, 0x25d0, 0x25d2, 0xffff,
- 0x25d4, 0x25d6, 0x25d8, 0x25da, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x25dc, 0x25df, 0x25e2, 0xffff, 0x25e5, 0xffff, 0x25e8, 0x25eb,
- 0x25ee, 0x25f1, 0x25f4, 0x25f7, 0x25fa, 0x25fd, 0x2600, 0x2603,
- 0x2606, 0x2608, 0x260a, 0x260c, 0x260e, 0x2610, 0x2612, 0x2614,
- 0x2616, 0x2618, 0x261a, 0x261c, 0x261e, 0x2620, 0x2622, 0x2624,
- 0x2626, 0x2628, 0x262a, 0x262c, 0x262e, 0x2630, 0x2632, 0x2634,
- 0x2636, 0x2638, 0x263a, 0x263c, 0x263e, 0x2640, 0x2642, 0x2644,
- 0x2646, 0x2648, 0x264a, 0x264c, 0x264e, 0x2650, 0x2652, 0x2654,
- 0x2656, 0x2658, 0x265a, 0x265c, 0x265e, 0x2660, 0x2662, 0x2664,
- 0x2666, 0x2668, 0x266a, 0x266c, 0x266e, 0x2670, 0x2672, 0x2674,
- 0x2676, 0x2678, 0x267a, 0x267c, 0x267e, 0x2680, 0x2682, 0x2684,
- 0x2686, 0x2688, 0x268a, 0x268c, 0x268e, 0x2690, 0x2692, 0x2694,
- 0x2696, 0x2698, 0x269a, 0x269c, 0x269e, 0x26a0, 0x26a2, 0x26a4,
- 0x26a6, 0x26a8, 0x26aa, 0x26ac, 0x26ae, 0x26b0, 0x26b2, 0x26b4,
- 0x26b6, 0x26b8, 0x26ba, 0x26bc, 0x26be, 0x26c0, 0x26c2, 0x26c4,
- 0x26c6, 0x26c8, 0x26ca, 0x26cc, 0x26ce, 0x26d0, 0x26d2, 0x26d4,
- 0x26d6, 0x26d8, 0x26da, 0x26dc, 0x26de, 0x26e0, 0x26e2, 0x26e4,
- 0x26e6, 0x26e8, 0x26ea, 0x26ec, 0x26ee, 0x26f0, 0x26f3, 0x26f6,
- 0x26f9, 0x26fc, 0x26ff, 0x2702, 0x2705, 0xffff, 0xffff, 0xffff,
-
- 0xffff, 0x2708, 0x270a, 0x270c, 0x270e, 0x2710, 0x2712, 0x2714,
- 0x2716, 0x2718, 0x271a, 0x271c, 0x271e, 0x2720, 0x2722, 0x2724,
- 0x2726, 0x2728, 0x272a, 0x272c, 0x272e, 0x2730, 0x2732, 0x2734,
- 0x2736, 0x2738, 0x273a, 0x273c, 0x273e, 0x2740, 0x2742, 0x2744,
- 0x2746, 0x2748, 0x274a, 0x274c, 0x274e, 0x2750, 0x2752, 0x2754,
- 0x2756, 0x2758, 0x275a, 0x275c, 0x275e, 0x2760, 0x2762, 0x2764,
- 0x2766, 0x2768, 0x276a, 0x276c, 0x276e, 0x2770, 0x2772, 0x2774,
- 0x2776, 0x2778, 0x277a, 0x277c, 0x277e, 0x2780, 0x2782, 0x2784,
- 0x2786, 0x2788, 0x278a, 0x278c, 0x278e, 0x2790, 0x2792, 0x2794,
- 0x2796, 0x2798, 0x279a, 0x279c, 0x279e, 0x27a0, 0x27a2, 0x27a4,
- 0x27a6, 0x27a8, 0x27aa, 0x27ac, 0x27ae, 0x27b0, 0x27b2, 0x27b4,
- 0x27b6, 0x27b8, 0x27ba, 0x27bc, 0x27be, 0x27c0, 0x27c2, 0x27c4,
- 0x27c6, 0x27c8, 0x27ca, 0x27cc, 0x27ce, 0x27d0, 0x27d2, 0x27d4,
- 0x27d6, 0x27d8, 0x27da, 0x27dc, 0x27de, 0x27e0, 0x27e2, 0x27e4,
- 0x27e6, 0x27e8, 0x27ea, 0x27ec, 0x27ee, 0x27f0, 0x27f2, 0x27f4,
- 0x27f6, 0x27f8, 0x27fa, 0x27fc, 0x27fe, 0x2800, 0x2802, 0x2804,
- 0x2806, 0x2808, 0x280a, 0x280c, 0x280e, 0x2810, 0x2812, 0x2814,
- 0x2816, 0x2818, 0x281a, 0x281c, 0x281e, 0x2820, 0x2822, 0x2824,
- 0x2826, 0x2828, 0x282a, 0x282c, 0x282e, 0x2830, 0x2832, 0x2834,
- 0x2836, 0x2838, 0x283a, 0x283c, 0x283e, 0x2840, 0x2842, 0x2844,
- 0x2846, 0x2848, 0x284a, 0x284c, 0x284e, 0x2850, 0x2852, 0x2854,
- 0x2856, 0x2858, 0x285a, 0x285c, 0x285e, 0x2860, 0x2862, 0x2864,
- 0x2866, 0x2868, 0x286a, 0x286c, 0x286e, 0x2870, 0x2872, 0x2874,
- 0x2876, 0x2878, 0x287a, 0x287c, 0x287e, 0x2880, 0x2882, 0xffff,
- 0xffff, 0xffff, 0x2884, 0x2886, 0x2888, 0x288a, 0x288c, 0x288e,
+ 0xffff, 0xffff, 0xffff, 0x1dbd, 0x1dc0, 0x1dc3, 0x1dc6, 0x1dc9,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1dcc, 0xffff, 0x1dcf,
+ 0x1dd2, 0x1dd4, 0x1dd6, 0x1dd8, 0x1dda, 0x1ddc, 0x1dde, 0x1de0,
+ 0x1de2, 0x1de4, 0x1de6, 0x1de9, 0x1dec, 0x1def, 0x1df2, 0x1df5,
+ 0x1df8, 0x1dfb, 0x1dfe, 0x1e01, 0x1e04, 0x1e07, 0x1e0a, 0xffff,
+ 0x1e0d, 0x1e10, 0x1e13, 0x1e16, 0x1e19, 0xffff, 0x1e1c, 0xffff,
+ 0x1e1f, 0x1e22, 0xffff, 0x1e25, 0x1e28, 0xffff, 0x1e2b, 0x1e2e,
+ 0x1e31, 0x1e34, 0x1e37, 0x1e3a, 0x1e3d, 0x1e40, 0x1e43, 0x1e46,
+ 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f, 0x1e51, 0x1e53, 0x1e55, 0x1e57,
+ 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61, 0x1e63, 0x1e65, 0x1e67,
+ 0x1e69, 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75, 0x1e77,
+ 0x1e79, 0x1e7b, 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87,
+ 0x1e89, 0x1e8b, 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1e95, 0x1e97,
+ 0x1e99, 0x1e9b, 0x1e9d, 0x1e9f, 0x1ea1, 0x1ea3, 0x1ea5, 0x1ea7,
+ 0x1ea9, 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7,
+ 0x1eb9, 0x1ebb, 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7,
+ 0x1ec9, 0x1ecb, 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7,
+ 0x1ed9, 0x1edb, 0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7,
+ 0x1ee9, 0x1eeb, 0x1eed, 0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7,
+ 0x1ef9, 0x1efb, 0x1efd, 0x1eff, 0x1f01, 0x1f03, 0x1f05, 0x1f07,
+ 0x1f09, 0x1f0b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x1f0d, 0x1f0f, 0x1f11, 0x1f13, 0x1f15,
+ 0x1f17, 0x1f19, 0x1f1b, 0x1f1d, 0x1f1f, 0x1f21, 0x1f23, 0x1f25,
+ 0x1f27, 0x1f29, 0x1f2b, 0x1f2d, 0x1f2f, 0x1f31, 0x1f33, 0x1f35,
+ 0x1f37, 0x1f39, 0x1f3b, 0x1f3e, 0x1f41, 0x1f44, 0x1f47, 0x1f4a,
+ 0x1f4d, 0x1f50, 0x1f53, 0x1f56, 0x1f59, 0x1f5c, 0x1f5f, 0x1f62,
+ 0x1f65, 0x1f68, 0x1f6b, 0x1f6e, 0x1f71, 0x1f73, 0x1f75, 0x1f77,
+
+ 0x1f79, 0x1f7c, 0x1f7f, 0x1f82, 0x1f85, 0x1f88, 0x1f8b, 0x1f8e,
+ 0x1f91, 0x1f94, 0x1f97, 0x1f9a, 0x1f9d, 0x1fa0, 0x1fa3, 0x1fa6,
+ 0x1fa9, 0x1fac, 0x1faf, 0x1fb2, 0x1fb5, 0x1fb8, 0x1fbb, 0x1fbe,
+ 0x1fc1, 0x1fc4, 0x1fc7, 0x1fca, 0x1fcd, 0x1fd0, 0x1fd3, 0x1fd6,
+ 0x1fd9, 0x1fdc, 0x1fdf, 0x1fe2, 0x1fe5, 0x1fe8, 0x1feb, 0x1fee,
+ 0x1ff1, 0x1ff4, 0x1ff7, 0x1ffa, 0x1ffd, 0x2000, 0x2003, 0x2006,
+ 0x2009, 0x200c, 0x200f, 0x2012, 0x2015, 0x2018, 0x201b, 0x201e,
+ 0x2021, 0x2024, 0x2027, 0x202a, 0x202d, 0x2030, 0x2033, 0x2036,
+ 0x2039, 0x203c, 0x203f, 0x2042, 0x2045, 0x2048, 0x204b, 0x204e,
+ 0x2051, 0x2054, 0x2057, 0x205a, 0x205d, 0x2060, 0x2063, 0x2066,
+ 0x2069, 0x206c, 0x206f, 0x2072, 0x2075, 0x2078, 0x207b, 0x207e,
+ 0x2081, 0x2084, 0x2087, 0x208a, 0x208d, 0x2090, 0x2093, 0x2097,
+ 0x209b, 0x209f, 0x20a3, 0x20a7, 0x20ab, 0x20ae, 0x20b1, 0x20b4,
+ 0x20b7, 0x20ba, 0x20bd, 0x20c0, 0x20c3, 0x20c6, 0x20c9, 0x20cc,
+ 0x20cf, 0x20d2, 0x20d5, 0x20d8, 0x20db, 0x20de, 0x20e1, 0x20e4,
+ 0x20e7, 0x20ea, 0x20ed, 0x20f0, 0x20f3, 0x20f6, 0x20f9, 0x20fc,
+ 0x20ff, 0x2102, 0x2105, 0x2108, 0x210b, 0x210e, 0x2111, 0x2114,
+ 0x2117, 0x211a, 0x211d, 0x2120, 0x2123, 0x2126, 0x2129, 0x212c,
+ 0x212f, 0x2132, 0x2135, 0x2138, 0x213b, 0x213e, 0x2141, 0x2144,
+ 0x2147, 0x214a, 0x214d, 0x2150, 0x2153, 0x2156, 0x2159, 0x215c,
+ 0x215f, 0x2162, 0x2165, 0x2168, 0x216b, 0x216e, 0x2171, 0x2174,
+ 0x2177, 0x217a, 0x217d, 0x2180, 0x2183, 0x2186, 0x2189, 0x218c,
+ 0x218f, 0x2192, 0x2195, 0x2198, 0x219b, 0x219e, 0x21a1, 0x21a4,
+ 0x21a7, 0x21aa, 0x21ad, 0x21b0, 0x21b3, 0x21b6, 0x21b9, 0x21bc,
+ 0x21bf, 0x21c2, 0x21c5, 0x21c8, 0x21cb, 0x21ce, 0x21d1, 0x21d4,
+ 0x21d7, 0x21da, 0x21dd, 0x21e0, 0x21e3, 0x21e6, 0x21e9, 0x21ec,
+ 0x21ef, 0x21f2, 0x21f5, 0x21f8, 0x21fb, 0x21fe, 0x2201, 0x2204,
+ 0x2207, 0x220a, 0x220d, 0x2210, 0x2213, 0x2216, 0x2219, 0x221c,
+ 0x221f, 0x2222, 0x2225, 0x2228, 0x222b, 0x222e, 0x2231, 0x2234,
+ 0x2237, 0x223a, 0x223d, 0x2240, 0x2243, 0x2246, 0x2249, 0x224c,
+ 0x224f, 0x2252, 0x2255, 0x2259, 0x225d, 0x2261, 0x2264, 0x2267,
+ 0x226a, 0x226d, 0x2270, 0x2273, 0x2276, 0x2279, 0x227c, 0x227f,
+
+ 0x2282, 0x2285, 0x2288, 0x228b, 0x228e, 0x2291, 0x2294, 0x2297,
+ 0x229a, 0x229d, 0x22a0, 0x22a3, 0x22a6, 0x22a9, 0x22ac, 0x22af,
+ 0x22b2, 0x22b5, 0x22b8, 0x22bb, 0x22be, 0x22c1, 0x22c4, 0x22c7,
+ 0x22ca, 0x22cd, 0x22d0, 0x22d3, 0x22d6, 0x22d9, 0x22dc, 0x22df,
+ 0x22e2, 0x22e5, 0x22e8, 0x22eb, 0x22ee, 0x22f1, 0x22f4, 0x22f7,
+ 0x22fa, 0x22fd, 0x2300, 0x2303, 0x2306, 0x2309, 0x230c, 0x230f,
+ 0x2312, 0x2315, 0x2318, 0x231b, 0x231e, 0x2321, 0x2324, 0x2327,
+ 0x232a, 0x232d, 0x2330, 0x2333, 0x2336, 0x2339, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x233c, 0x2340, 0x2344, 0x2348, 0x234c, 0x2350, 0x2354, 0x2358,
+ 0x235c, 0x2360, 0x2364, 0x2368, 0x236c, 0x2370, 0x2374, 0x2378,
+ 0x237c, 0x2380, 0x2384, 0x2388, 0x238c, 0x2390, 0x2394, 0x2398,
+ 0x239c, 0x23a0, 0x23a4, 0x23a8, 0x23ac, 0x23b0, 0x23b4, 0x23b8,
+ 0x23bc, 0x23c0, 0x23c4, 0x23c8, 0x23cc, 0x23d0, 0x23d4, 0x23d8,
+ 0x23dc, 0x23e0, 0x23e4, 0x23e8, 0x23ec, 0x23f0, 0x23f4, 0x23f8,
+ 0x23fc, 0x2400, 0x2404, 0x2408, 0x240c, 0x2410, 0x2414, 0x2418,
+ 0x241c, 0x2420, 0x2424, 0x2428, 0x242c, 0x2430, 0x2434, 0x2438,
+ 0xffff, 0xffff, 0x243c, 0x2440, 0x2444, 0x2448, 0x244c, 0x2450,
+ 0x2454, 0x2458, 0x245c, 0x2460, 0x2464, 0x2468, 0x246c, 0x2470,
+ 0x2474, 0x2478, 0x247c, 0x2480, 0x2484, 0x2488, 0x248c, 0x2490,
+ 0x2494, 0x2498, 0x249c, 0x24a0, 0x24a4, 0x24a8, 0x24ac, 0x24b0,
+ 0x24b4, 0x24b8, 0x24bc, 0x24c0, 0x24c4, 0x24c8, 0x24cc, 0x24d0,
+ 0x24d4, 0x24d8, 0x24dc, 0x24e0, 0x24e4, 0x24e8, 0x24ec, 0x24f0,
+ 0x24f4, 0x24f8, 0x24fc, 0x2500, 0x2504, 0x2508, 0x250c, 0x2510,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x2514, 0x2518, 0x251c, 0x2521, 0x2526, 0x252b, 0x2530, 0x2535,
+ 0x253a, 0x253f, 0x2543, 0x2556, 0x255f, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x2564, 0x2566, 0x2568, 0x256a, 0x256c, 0x256e, 0x2570, 0x2572,
+ 0x2574, 0x2576, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x2578, 0x257a, 0x257c, 0x257e, 0x2580, 0x2582, 0x2584, 0x2586,
+ 0x2588, 0x258a, 0x258c, 0x258e, 0x2590, 0x2592, 0x2594, 0x2596,
+ 0x2598, 0x259a, 0x259c, 0x259e, 0x25a0, 0xffff, 0xffff, 0x25a2,
+ 0x25a4, 0x25a6, 0x25a8, 0x25aa, 0x25ac, 0x25ae, 0x25b0, 0x25b2,
+ 0x25b4, 0x25b6, 0x25b8, 0xffff, 0x25ba, 0x25bc, 0x25be, 0x25c0,
+ 0x25c2, 0x25c4, 0x25c6, 0x25c8, 0x25ca, 0x25cc, 0x25ce, 0x25d0,
+ 0x25d2, 0x25d4, 0x25d6, 0x25d8, 0x25da, 0x25dc, 0x25de, 0xffff,
+ 0x25e0, 0x25e2, 0x25e4, 0x25e6, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x25e8, 0x25eb, 0x25ee, 0xffff, 0x25f1, 0xffff, 0x25f4, 0x25f7,
+ 0x25fa, 0x25fd, 0x2600, 0x2603, 0x2606, 0x2609, 0x260c, 0x260f,
+ 0x2612, 0x2614, 0x2616, 0x2618, 0x261a, 0x261c, 0x261e, 0x2620,
+ 0x2622, 0x2624, 0x2626, 0x2628, 0x262a, 0x262c, 0x262e, 0x2630,
+ 0x2632, 0x2634, 0x2636, 0x2638, 0x263a, 0x263c, 0x263e, 0x2640,
+ 0x2642, 0x2644, 0x2646, 0x2648, 0x264a, 0x264c, 0x264e, 0x2650,
+ 0x2652, 0x2654, 0x2656, 0x2658, 0x265a, 0x265c, 0x265e, 0x2660,
+ 0x2662, 0x2664, 0x2666, 0x2668, 0x266a, 0x266c, 0x266e, 0x2670,
+ 0x2672, 0x2674, 0x2676, 0x2678, 0x267a, 0x267c, 0x267e, 0x2680,
+ 0x2682, 0x2684, 0x2686, 0x2688, 0x268a, 0x268c, 0x268e, 0x2690,
+ 0x2692, 0x2694, 0x2696, 0x2698, 0x269a, 0x269c, 0x269e, 0x26a0,
+ 0x26a2, 0x26a4, 0x26a6, 0x26a8, 0x26aa, 0x26ac, 0x26ae, 0x26b0,
+ 0x26b2, 0x26b4, 0x26b6, 0x26b8, 0x26ba, 0x26bc, 0x26be, 0x26c0,
+ 0x26c2, 0x26c4, 0x26c6, 0x26c8, 0x26ca, 0x26cc, 0x26ce, 0x26d0,
+ 0x26d2, 0x26d4, 0x26d6, 0x26d8, 0x26da, 0x26dc, 0x26de, 0x26e0,
+ 0x26e2, 0x26e4, 0x26e6, 0x26e8, 0x26ea, 0x26ec, 0x26ee, 0x26f0,
+ 0x26f2, 0x26f4, 0x26f6, 0x26f8, 0x26fa, 0x26fc, 0x26ff, 0x2702,
+ 0x2705, 0x2708, 0x270b, 0x270e, 0x2711, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0x2714, 0x2716, 0x2718, 0x271a, 0x271c, 0x271e, 0x2720,
+ 0x2722, 0x2724, 0x2726, 0x2728, 0x272a, 0x272c, 0x272e, 0x2730,
+ 0x2732, 0x2734, 0x2736, 0x2738, 0x273a, 0x273c, 0x273e, 0x2740,
+ 0x2742, 0x2744, 0x2746, 0x2748, 0x274a, 0x274c, 0x274e, 0x2750,
+ 0x2752, 0x2754, 0x2756, 0x2758, 0x275a, 0x275c, 0x275e, 0x2760,
+ 0x2762, 0x2764, 0x2766, 0x2768, 0x276a, 0x276c, 0x276e, 0x2770,
+ 0x2772, 0x2774, 0x2776, 0x2778, 0x277a, 0x277c, 0x277e, 0x2780,
+ 0x2782, 0x2784, 0x2786, 0x2788, 0x278a, 0x278c, 0x278e, 0x2790,
+ 0x2792, 0x2794, 0x2796, 0x2798, 0x279a, 0x279c, 0x279e, 0x27a0,
+ 0x27a2, 0x27a4, 0x27a6, 0x27a8, 0x27aa, 0x27ac, 0x27ae, 0x27b0,
+ 0x27b2, 0x27b4, 0x27b6, 0x27b8, 0x27ba, 0x27bc, 0x27be, 0x27c0,
+ 0x27c2, 0x27c4, 0x27c6, 0x27c8, 0x27ca, 0x27cc, 0x27ce, 0x27d0,
+ 0x27d2, 0x27d4, 0x27d6, 0x27d8, 0x27da, 0x27dc, 0x27de, 0x27e0,
+ 0x27e2, 0x27e4, 0x27e6, 0x27e8, 0x27ea, 0x27ec, 0x27ee, 0x27f0,
+ 0x27f2, 0x27f4, 0x27f6, 0x27f8, 0x27fa, 0x27fc, 0x27fe, 0x2800,
+ 0x2802, 0x2804, 0x2806, 0x2808, 0x280a, 0x280c, 0x280e, 0x2810,
+ 0x2812, 0x2814, 0x2816, 0x2818, 0x281a, 0x281c, 0x281e, 0x2820,
+ 0x2822, 0x2824, 0x2826, 0x2828, 0x282a, 0x282c, 0x282e, 0x2830,
+ 0x2832, 0x2834, 0x2836, 0x2838, 0x283a, 0x283c, 0x283e, 0x2840,
+ 0x2842, 0x2844, 0x2846, 0x2848, 0x284a, 0x284c, 0x284e, 0x2850,
+ 0x2852, 0x2854, 0x2856, 0x2858, 0x285a, 0x285c, 0x285e, 0x2860,
+ 0x2862, 0x2864, 0x2866, 0x2868, 0x286a, 0x286c, 0x286e, 0x2870,
+ 0x2872, 0x2874, 0x2876, 0x2878, 0x287a, 0x287c, 0x287e, 0x2880,
+ 0x2882, 0x2884, 0x2886, 0x2888, 0x288a, 0x288c, 0x288e, 0xffff,
0xffff, 0xffff, 0x2890, 0x2892, 0x2894, 0x2896, 0x2898, 0x289a,
0xffff, 0xffff, 0x289c, 0x289e, 0x28a0, 0x28a2, 0x28a4, 0x28a6,
- 0xffff, 0xffff, 0x28a8, 0x28aa, 0x28ac, 0xffff, 0xffff, 0xffff,
- 0x28ae, 0x28b0, 0x28b2, 0x28b4, 0x28b6, 0x28b8, 0x28ba, 0xffff,
- 0x28bc, 0x28be, 0x28c0, 0x28c2, 0x28c4, 0x28c6, 0x28c8, 0xffff,
+ 0xffff, 0xffff, 0x28a8, 0x28aa, 0x28ac, 0x28ae, 0x28b0, 0x28b2,
+ 0xffff, 0xffff, 0x28b4, 0x28b6, 0x28b8, 0xffff, 0xffff, 0xffff,
+ 0x28ba, 0x28bc, 0x28be, 0x28c0, 0x28c2, 0x28c4, 0x28c6, 0xffff,
+ 0x28c8, 0x28ca, 0x28cc, 0x28ce, 0x28d0, 0x28d2, 0x28d4, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8299,9 +9118,9 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0x28ca, 0xffff, 0x28cf, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0x28d6, 0xffff, 0x28db, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x28d4, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x28e0, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8318,7 +9137,7 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x28d9, 0x28de,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x28e5, 0x28ea,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8355,10 +9174,12 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x28ef, 0x28f4, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x28e3, 0x28e8,
- 0x28ed, 0x28f2, 0x28f7, 0x28fc, 0x2901, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8369,8 +9190,6 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x2906, 0x290b, 0x2910, 0x2915, 0x291a,
- 0x291f, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8379,162 +9198,261 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x2924, 0x2926, 0x2928, 0x292a, 0x292c, 0x292e, 0x2930, 0x2932,
- 0x2934, 0x2936, 0x2938, 0x293a, 0x293c, 0x293e, 0x2940, 0x2942,
- 0x2944, 0x2946, 0x2948, 0x294a, 0x294c, 0x294e, 0x2950, 0x2952,
- 0x2954, 0x2956, 0x2958, 0x295a, 0x295c, 0x295e, 0x2960, 0x2962,
- 0x2964, 0x2966, 0x2968, 0x296a, 0x296c, 0x296e, 0x2970, 0x2972,
- 0x2974, 0x2976, 0x2978, 0x297a, 0x297c, 0x297e, 0x2980, 0x2982,
- 0x2984, 0x2986, 0x2988, 0x298a, 0x298c, 0x298e, 0x2990, 0x2992,
- 0x2994, 0x2996, 0x2998, 0x299a, 0x299c, 0x299e, 0x29a0, 0x29a2,
- 0x29a4, 0x29a6, 0x29a8, 0x29aa, 0x29ac, 0x29ae, 0x29b0, 0x29b2,
- 0x29b4, 0x29b6, 0x29b8, 0x29ba, 0x29bc, 0x29be, 0x29c0, 0x29c2,
- 0x29c4, 0x29c6, 0x29c8, 0x29ca, 0x29cc, 0xffff, 0x29ce, 0x29d0,
- 0x29d2, 0x29d4, 0x29d6, 0x29d8, 0x29da, 0x29dc, 0x29de, 0x29e0,
- 0x29e2, 0x29e4, 0x29e6, 0x29e8, 0x29ea, 0x29ec, 0x29ee, 0x29f0,
- 0x29f2, 0x29f4, 0x29f6, 0x29f8, 0x29fa, 0x29fc, 0x29fe, 0x2a00,
- 0x2a02, 0x2a04, 0x2a06, 0x2a08, 0x2a0a, 0x2a0c, 0x2a0e, 0x2a10,
- 0x2a12, 0x2a14, 0x2a16, 0x2a18, 0x2a1a, 0x2a1c, 0x2a1e, 0x2a20,
- 0x2a22, 0x2a24, 0x2a26, 0x2a28, 0x2a2a, 0x2a2c, 0x2a2e, 0x2a30,
- 0x2a32, 0x2a34, 0x2a36, 0x2a38, 0x2a3a, 0x2a3c, 0x2a3e, 0x2a40,
- 0x2a42, 0x2a44, 0x2a46, 0x2a48, 0x2a4a, 0x2a4c, 0x2a4e, 0x2a50,
- 0x2a52, 0x2a54, 0x2a56, 0x2a58, 0x2a5a, 0xffff, 0x2a5c, 0x2a5e,
- 0xffff, 0xffff, 0x2a60, 0xffff, 0xffff, 0x2a62, 0x2a64, 0xffff,
- 0xffff, 0x2a66, 0x2a68, 0x2a6a, 0x2a6c, 0xffff, 0x2a6e, 0x2a70,
- 0x2a72, 0x2a74, 0x2a76, 0x2a78, 0x2a7a, 0x2a7c, 0x2a7e, 0x2a80,
- 0x2a82, 0x2a84, 0xffff, 0x2a86, 0xffff, 0x2a88, 0x2a8a, 0x2a8c,
- 0x2a8e, 0x2a90, 0x2a92, 0x2a94, 0xffff, 0x2a96, 0x2a98, 0x2a9a,
- 0x2a9c, 0x2a9e, 0x2aa0, 0x2aa2, 0x2aa4, 0x2aa6, 0x2aa8, 0x2aaa,
- 0x2aac, 0x2aae, 0x2ab0, 0x2ab2, 0x2ab4, 0x2ab6, 0x2ab8, 0x2aba,
- 0x2abc, 0x2abe, 0x2ac0, 0x2ac2, 0x2ac4, 0x2ac6, 0x2ac8, 0x2aca,
- 0x2acc, 0x2ace, 0x2ad0, 0x2ad2, 0x2ad4, 0x2ad6, 0x2ad8, 0x2ada,
- 0x2adc, 0x2ade, 0x2ae0, 0x2ae2, 0x2ae4, 0x2ae6, 0x2ae8, 0x2aea,
- 0x2aec, 0x2aee, 0x2af0, 0x2af2, 0x2af4, 0x2af6, 0x2af8, 0x2afa,
- 0x2afc, 0x2afe, 0x2b00, 0x2b02, 0x2b04, 0x2b06, 0x2b08, 0x2b0a,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x28f9, 0x28fe, 0xffff, 0x2903, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x2b0c, 0x2b0e, 0x2b10, 0x2b12, 0x2b14, 0x2b16, 0xffff, 0x2b18,
- 0x2b1a, 0x2b1c, 0x2b1e, 0xffff, 0xffff, 0x2b20, 0x2b22, 0x2b24,
- 0x2b26, 0x2b28, 0x2b2a, 0x2b2c, 0x2b2e, 0xffff, 0x2b30, 0x2b32,
- 0x2b34, 0x2b36, 0x2b38, 0x2b3a, 0x2b3c, 0xffff, 0x2b3e, 0x2b40,
- 0x2b42, 0x2b44, 0x2b46, 0x2b48, 0x2b4a, 0x2b4c, 0x2b4e, 0x2b50,
- 0x2b52, 0x2b54, 0x2b56, 0x2b58, 0x2b5a, 0x2b5c, 0x2b5e, 0x2b60,
- 0x2b62, 0x2b64, 0x2b66, 0x2b68, 0x2b6a, 0x2b6c, 0x2b6e, 0x2b70,
- 0x2b72, 0x2b74, 0xffff, 0x2b76, 0x2b78, 0x2b7a, 0x2b7c, 0xffff,
- 0x2b7e, 0x2b80, 0x2b82, 0x2b84, 0x2b86, 0xffff, 0x2b88, 0xffff,
- 0xffff, 0xffff, 0x2b8a, 0x2b8c, 0x2b8e, 0x2b90, 0x2b92, 0x2b94,
- 0x2b96, 0xffff, 0x2b98, 0x2b9a, 0x2b9c, 0x2b9e, 0x2ba0, 0x2ba2,
- 0x2ba4, 0x2ba6, 0x2ba8, 0x2baa, 0x2bac, 0x2bae, 0x2bb0, 0x2bb2,
- 0x2bb4, 0x2bb6, 0x2bb8, 0x2bba, 0x2bbc, 0x2bbe, 0x2bc0, 0x2bc2,
- 0x2bc4, 0x2bc6, 0x2bc8, 0x2bca, 0x2bcc, 0x2bce, 0x2bd0, 0x2bd2,
- 0x2bd4, 0x2bd6, 0x2bd8, 0x2bda, 0x2bdc, 0x2bde, 0x2be0, 0x2be2,
- 0x2be4, 0x2be6, 0x2be8, 0x2bea, 0x2bec, 0x2bee, 0x2bf0, 0x2bf2,
- 0x2bf4, 0x2bf6, 0x2bf8, 0x2bfa, 0x2bfc, 0x2bfe, 0x2c00, 0x2c02,
- 0x2c04, 0x2c06, 0x2c08, 0x2c0a, 0x2c0c, 0x2c0e, 0x2c10, 0x2c12,
- 0x2c14, 0x2c16, 0x2c18, 0x2c1a, 0x2c1c, 0x2c1e, 0x2c20, 0x2c22,
- 0x2c24, 0x2c26, 0x2c28, 0x2c2a, 0x2c2c, 0x2c2e, 0x2c30, 0x2c32,
- 0x2c34, 0x2c36, 0x2c38, 0x2c3a, 0x2c3c, 0x2c3e, 0x2c40, 0x2c42,
- 0x2c44, 0x2c46, 0x2c48, 0x2c4a, 0x2c4c, 0x2c4e, 0x2c50, 0x2c52,
- 0x2c54, 0x2c56, 0x2c58, 0x2c5a, 0x2c5c, 0x2c5e, 0x2c60, 0x2c62,
- 0x2c64, 0x2c66, 0x2c68, 0x2c6a, 0x2c6c, 0x2c6e, 0x2c70, 0x2c72,
- 0x2c74, 0x2c76, 0x2c78, 0x2c7a, 0x2c7c, 0x2c7e, 0x2c80, 0x2c82,
- 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c, 0x2c8e, 0x2c90, 0x2c92,
- 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e, 0x2ca0, 0x2ca2,
- 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac, 0x2cae, 0x2cb0, 0x2cb2,
- 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc, 0x2cbe, 0x2cc0, 0x2cc2,
- 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc, 0x2cce, 0x2cd0, 0x2cd2,
- 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde, 0x2ce0, 0x2ce2,
- 0x2ce4, 0x2ce6, 0x2ce8, 0x2cea, 0x2cec, 0x2cee, 0x2cf0, 0x2cf2,
-
- 0x2cf4, 0x2cf6, 0x2cf8, 0x2cfa, 0x2cfc, 0x2cfe, 0x2d00, 0x2d02,
- 0x2d04, 0x2d06, 0x2d08, 0x2d0a, 0x2d0c, 0x2d0e, 0x2d10, 0x2d12,
- 0x2d14, 0x2d16, 0x2d18, 0x2d1a, 0x2d1c, 0x2d1e, 0x2d20, 0x2d22,
- 0x2d24, 0x2d26, 0x2d28, 0x2d2a, 0x2d2c, 0x2d2e, 0x2d30, 0x2d32,
- 0x2d34, 0x2d36, 0x2d38, 0x2d3a, 0x2d3c, 0x2d3e, 0x2d40, 0x2d42,
- 0x2d44, 0x2d46, 0x2d48, 0x2d4a, 0x2d4c, 0x2d4e, 0x2d50, 0x2d52,
- 0x2d54, 0x2d56, 0x2d58, 0x2d5a, 0x2d5c, 0x2d5e, 0x2d60, 0x2d62,
- 0x2d64, 0x2d66, 0x2d68, 0x2d6a, 0x2d6c, 0x2d6e, 0x2d70, 0x2d72,
- 0x2d74, 0x2d76, 0x2d78, 0x2d7a, 0x2d7c, 0x2d7e, 0x2d80, 0x2d82,
- 0x2d84, 0x2d86, 0x2d88, 0x2d8a, 0x2d8c, 0x2d8e, 0x2d90, 0x2d92,
- 0x2d94, 0x2d96, 0x2d98, 0x2d9a, 0x2d9c, 0x2d9e, 0x2da0, 0x2da2,
- 0x2da4, 0x2da6, 0x2da8, 0x2daa, 0x2dac, 0x2dae, 0x2db0, 0x2db2,
- 0x2db4, 0x2db6, 0x2db8, 0x2dba, 0x2dbc, 0x2dbe, 0x2dc0, 0x2dc2,
- 0x2dc4, 0x2dc6, 0x2dc8, 0x2dca, 0x2dcc, 0x2dce, 0x2dd0, 0x2dd2,
- 0x2dd4, 0x2dd6, 0x2dd8, 0x2dda, 0x2ddc, 0x2dde, 0x2de0, 0x2de2,
- 0x2de4, 0x2de6, 0x2de8, 0x2dea, 0x2dec, 0x2dee, 0x2df0, 0x2df2,
- 0x2df4, 0x2df6, 0x2df8, 0x2dfa, 0x2dfc, 0x2dfe, 0x2e00, 0x2e02,
- 0x2e04, 0x2e06, 0x2e08, 0x2e0a, 0x2e0c, 0x2e0e, 0x2e10, 0x2e12,
- 0x2e14, 0x2e16, 0x2e18, 0x2e1a, 0x2e1c, 0x2e1e, 0x2e20, 0x2e22,
- 0x2e24, 0x2e26, 0x2e28, 0x2e2a, 0x2e2c, 0x2e2e, 0x2e30, 0x2e32,
- 0x2e34, 0x2e36, 0x2e38, 0x2e3a, 0x2e3c, 0x2e3e, 0xffff, 0xffff,
- 0x2e40, 0x2e42, 0x2e44, 0x2e46, 0x2e48, 0x2e4a, 0x2e4c, 0x2e4e,
- 0x2e50, 0x2e52, 0x2e54, 0x2e56, 0x2e58, 0x2e5a, 0x2e5c, 0x2e5e,
- 0x2e60, 0x2e62, 0x2e64, 0x2e66, 0x2e68, 0x2e6a, 0x2e6c, 0x2e6e,
- 0x2e70, 0x2e72, 0x2e74, 0x2e76, 0x2e78, 0x2e7a, 0x2e7c, 0x2e7e,
- 0x2e80, 0x2e82, 0x2e84, 0x2e86, 0x2e88, 0x2e8a, 0x2e8c, 0x2e8e,
- 0x2e90, 0x2e92, 0x2e94, 0x2e96, 0x2e98, 0x2e9a, 0x2e9c, 0x2e9e,
- 0x2ea0, 0x2ea2, 0x2ea4, 0x2ea6, 0x2ea8, 0x2eaa, 0x2eac, 0x2eae,
- 0x2eb0, 0x2eb2, 0x2eb4, 0x2eb6, 0x2eb8, 0x2eba, 0x2ebc, 0x2ebe,
- 0x2ec0, 0x2ec2, 0x2ec4, 0x2ec6, 0x2ec8, 0x2eca, 0x2ecc, 0x2ece,
- 0x2ed0, 0x2ed2, 0x2ed4, 0x2ed6, 0x2ed8, 0x2eda, 0x2edc, 0x2ede,
- 0x2ee0, 0x2ee2, 0x2ee4, 0x2ee6, 0x2ee8, 0x2eea, 0x2eec, 0x2eee,
-
- 0x2ef0, 0x2ef2, 0x2ef4, 0x2ef6, 0x2ef8, 0x2efa, 0x2efc, 0x2efe,
- 0x2f00, 0x2f02, 0x2f04, 0x2f06, 0x2f08, 0x2f0a, 0x2f0c, 0x2f0e,
- 0x2f10, 0x2f12, 0x2f14, 0x2f16, 0x2f18, 0x2f1a, 0x2f1c, 0x2f1e,
- 0x2f20, 0x2f22, 0x2f24, 0x2f26, 0x2f28, 0x2f2a, 0x2f2c, 0x2f2e,
- 0x2f30, 0x2f32, 0x2f34, 0x2f36, 0x2f38, 0x2f3a, 0x2f3c, 0x2f3e,
- 0x2f40, 0x2f42, 0x2f44, 0x2f46, 0x2f48, 0x2f4a, 0x2f4c, 0x2f4e,
- 0x2f50, 0x2f52, 0x2f54, 0x2f56, 0x2f58, 0x2f5a, 0x2f5c, 0x2f5e,
- 0x2f60, 0x2f62, 0x2f64, 0x2f66, 0x2f68, 0x2f6a, 0x2f6c, 0x2f6e,
- 0x2f70, 0x2f72, 0x2f74, 0x2f76, 0x2f78, 0x2f7a, 0x2f7c, 0x2f7e,
- 0x2f80, 0x2f82, 0x2f84, 0x2f86, 0x2f88, 0x2f8a, 0x2f8c, 0x2f8e,
- 0x2f90, 0x2f92, 0x2f94, 0x2f96, 0x2f98, 0x2f9a, 0x2f9c, 0x2f9e,
- 0x2fa0, 0x2fa2, 0x2fa4, 0x2fa6, 0x2fa8, 0x2faa, 0x2fac, 0x2fae,
- 0x2fb0, 0x2fb2, 0x2fb4, 0x2fb6, 0x2fb8, 0x2fba, 0x2fbc, 0x2fbe,
- 0x2fc0, 0x2fc2, 0x2fc4, 0x2fc6, 0x2fc8, 0x2fca, 0x2fcc, 0x2fce,
- 0x2fd0, 0x2fd2, 0x2fd4, 0x2fd6, 0x2fd8, 0x2fda, 0x2fdc, 0x2fde,
- 0x2fe0, 0x2fe2, 0x2fe4, 0x2fe6, 0x2fe8, 0x2fea, 0x2fec, 0x2fee,
- 0x2ff0, 0x2ff2, 0x2ff4, 0x2ff6, 0x2ff8, 0x2ffa, 0x2ffc, 0x2ffe,
- 0x3000, 0x3002, 0x3004, 0x3006, 0x3008, 0x300a, 0x300c, 0x300e,
- 0x3010, 0x3012, 0x3014, 0x3016, 0x3018, 0x301a, 0x301c, 0x301e,
- 0x3020, 0x3022, 0x3024, 0x3026, 0x3028, 0x302a, 0x302c, 0x302e,
- 0x3030, 0x3032, 0x3034, 0x3036, 0x3038, 0x303a, 0x303c, 0x303e,
- 0x3040, 0x3042, 0x3044, 0x3046, 0x3048, 0x304a, 0x304c, 0x304e,
- 0x3050, 0x3052, 0x3054, 0x3056, 0x3058, 0x305a, 0x305c, 0x305e,
- 0x3060, 0x3062, 0x3064, 0x3066, 0x3068, 0x306a, 0x306c, 0x306e,
- 0x3070, 0x3072, 0x3074, 0x3076, 0x3078, 0x307a, 0x307c, 0x307e,
- 0x3080, 0x3082, 0x3084, 0x3086, 0xffff, 0xffff, 0x3088, 0x308a,
- 0x308c, 0x308e, 0x3090, 0x3092, 0x3094, 0x3096, 0x3098, 0x309a,
- 0x309c, 0x309e, 0x30a0, 0x30a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa,
- 0x30ac, 0x30ae, 0x30b0, 0x30b2, 0x30b4, 0x30b6, 0x30b8, 0x30ba,
- 0x30bc, 0x30be, 0x30c0, 0x30c2, 0x30c4, 0x30c6, 0x30c8, 0x30ca,
- 0x30cc, 0x30ce, 0x30d0, 0x30d2, 0x30d4, 0x30d6, 0x30d8, 0x30da,
- 0x30dc, 0x30de, 0x30e0, 0x30e2, 0x30e4, 0x30e6, 0x30e8, 0x30ea,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0x2908, 0x290d, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x2912, 0x2917,
+ 0x291c, 0x2921, 0x2926, 0x292b, 0x2930, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0x2935, 0x293a, 0x293f, 0x2944, 0x2949,
+ 0x294e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0x2953, 0x2955, 0x2957, 0x2959, 0x295b, 0x295d, 0x295f, 0x2961,
+ 0x2963, 0x2965, 0x2967, 0x2969, 0x296b, 0x296d, 0x296f, 0x2971,
+ 0x2973, 0x2975, 0x2977, 0x2979, 0x297b, 0x297d, 0x297f, 0x2981,
+ 0x2983, 0x2985, 0x2987, 0x2989, 0x298b, 0x298d, 0x298f, 0x2991,
+ 0x2993, 0x2995, 0x2997, 0x2999, 0x299b, 0x299d, 0x299f, 0x29a1,
+ 0x29a3, 0x29a5, 0x29a7, 0x29a9, 0x29ab, 0x29ad, 0x29af, 0x29b1,
+ 0x29b3, 0x29b5, 0x29b7, 0x29b9, 0x29bb, 0x29bd, 0x29bf, 0x29c1,
+ 0x29c3, 0x29c5, 0x29c7, 0x29c9, 0x29cb, 0x29cd, 0x29cf, 0x29d1,
+ 0x29d3, 0x29d5, 0x29d7, 0x29d9, 0x29db, 0x29dd, 0x29df, 0x29e1,
+ 0x29e3, 0x29e5, 0x29e7, 0x29e9, 0x29eb, 0x29ed, 0x29ef, 0x29f1,
+ 0x29f3, 0x29f5, 0x29f7, 0x29f9, 0x29fb, 0xffff, 0x29fd, 0x29ff,
+ 0x2a01, 0x2a03, 0x2a05, 0x2a07, 0x2a09, 0x2a0b, 0x2a0d, 0x2a0f,
+ 0x2a11, 0x2a13, 0x2a15, 0x2a17, 0x2a19, 0x2a1b, 0x2a1d, 0x2a1f,
+ 0x2a21, 0x2a23, 0x2a25, 0x2a27, 0x2a29, 0x2a2b, 0x2a2d, 0x2a2f,
+ 0x2a31, 0x2a33, 0x2a35, 0x2a37, 0x2a39, 0x2a3b, 0x2a3d, 0x2a3f,
+ 0x2a41, 0x2a43, 0x2a45, 0x2a47, 0x2a49, 0x2a4b, 0x2a4d, 0x2a4f,
+ 0x2a51, 0x2a53, 0x2a55, 0x2a57, 0x2a59, 0x2a5b, 0x2a5d, 0x2a5f,
+ 0x2a61, 0x2a63, 0x2a65, 0x2a67, 0x2a69, 0x2a6b, 0x2a6d, 0x2a6f,
+ 0x2a71, 0x2a73, 0x2a75, 0x2a77, 0x2a79, 0x2a7b, 0x2a7d, 0x2a7f,
+ 0x2a81, 0x2a83, 0x2a85, 0x2a87, 0x2a89, 0xffff, 0x2a8b, 0x2a8d,
+ 0xffff, 0xffff, 0x2a8f, 0xffff, 0xffff, 0x2a91, 0x2a93, 0xffff,
+ 0xffff, 0x2a95, 0x2a97, 0x2a99, 0x2a9b, 0xffff, 0x2a9d, 0x2a9f,
+ 0x2aa1, 0x2aa3, 0x2aa5, 0x2aa7, 0x2aa9, 0x2aab, 0x2aad, 0x2aaf,
+ 0x2ab1, 0x2ab3, 0xffff, 0x2ab5, 0xffff, 0x2ab7, 0x2ab9, 0x2abb,
+ 0x2abd, 0x2abf, 0x2ac1, 0x2ac3, 0xffff, 0x2ac5, 0x2ac7, 0x2ac9,
+ 0x2acb, 0x2acd, 0x2acf, 0x2ad1, 0x2ad3, 0x2ad5, 0x2ad7, 0x2ad9,
+ 0x2adb, 0x2add, 0x2adf, 0x2ae1, 0x2ae3, 0x2ae5, 0x2ae7, 0x2ae9,
+ 0x2aeb, 0x2aed, 0x2aef, 0x2af1, 0x2af3, 0x2af5, 0x2af7, 0x2af9,
+ 0x2afb, 0x2afd, 0x2aff, 0x2b01, 0x2b03, 0x2b05, 0x2b07, 0x2b09,
+ 0x2b0b, 0x2b0d, 0x2b0f, 0x2b11, 0x2b13, 0x2b15, 0x2b17, 0x2b19,
+ 0x2b1b, 0x2b1d, 0x2b1f, 0x2b21, 0x2b23, 0x2b25, 0x2b27, 0x2b29,
+ 0x2b2b, 0x2b2d, 0x2b2f, 0x2b31, 0x2b33, 0x2b35, 0x2b37, 0x2b39,
- 0x30ec, 0x30ee, 0x30f0, 0x30f2, 0xffff, 0x30f4, 0x30f6, 0x30f8,
- 0x30fa, 0x30fc, 0x30fe, 0x3100, 0x3102, 0x3104, 0x3106, 0x3108,
- 0x310a, 0x310c, 0x310e, 0x3110, 0x3112, 0x3114, 0x3116, 0x3118,
- 0x311a, 0x311c, 0x311e, 0x3120, 0x3122, 0x3124, 0x3126, 0x3128,
- 0xffff, 0x312a, 0x312c, 0xffff, 0x312e, 0xffff, 0xffff, 0x3130,
- 0xffff, 0x3132, 0x3134, 0x3136, 0x3138, 0x313a, 0x313c, 0x313e,
- 0x3140, 0x3142, 0x3144, 0xffff, 0x3146, 0x3148, 0x314a, 0x314c,
- 0xffff, 0x314e, 0xffff, 0x3150, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0x3152, 0xffff, 0xffff, 0xffff, 0xffff, 0x3154,
- 0xffff, 0x3156, 0xffff, 0x3158, 0xffff, 0x315a, 0x315c, 0x315e,
- 0xffff, 0x3160, 0x3162, 0xffff, 0x3164, 0xffff, 0xffff, 0x3166,
- 0xffff, 0x3168, 0xffff, 0x316a, 0xffff, 0x316c, 0xffff, 0x316e,
- 0xffff, 0x3170, 0x3172, 0xffff, 0x3174, 0xffff, 0xffff, 0x3176,
- 0x3178, 0x317a, 0x317c, 0xffff, 0x317e, 0x3180, 0x3182, 0x3184,
- 0x3186, 0x3188, 0x318a, 0xffff, 0x318c, 0x318e, 0x3190, 0x3192,
- 0xffff, 0x3194, 0x3196, 0x3198, 0x319a, 0xffff, 0x319c, 0xffff,
- 0x319e, 0x31a0, 0x31a2, 0x31a4, 0x31a6, 0x31a8, 0x31aa, 0x31ac,
- 0x31ae, 0x31b0, 0xffff, 0x31b2, 0x31b4, 0x31b6, 0x31b8, 0x31ba,
- 0x31bc, 0x31be, 0x31c0, 0x31c2, 0x31c4, 0x31c6, 0x31c8, 0x31ca,
- 0x31cc, 0x31ce, 0x31d0, 0x31d2, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0x31d4, 0x31d6, 0x31d8, 0xffff, 0x31da, 0x31dc, 0x31de,
- 0x31e0, 0x31e2, 0xffff, 0x31e4, 0x31e6, 0x31e8, 0x31ea, 0x31ec,
- 0x31ee, 0x31f0, 0x31f2, 0x31f4, 0x31f6, 0x31f8, 0x31fa, 0x31fc,
- 0x31fe, 0x3200, 0x3202, 0x3204, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x2b3b, 0x2b3d, 0x2b3f, 0x2b41, 0x2b43, 0x2b45, 0xffff, 0x2b47,
+ 0x2b49, 0x2b4b, 0x2b4d, 0xffff, 0xffff, 0x2b4f, 0x2b51, 0x2b53,
+ 0x2b55, 0x2b57, 0x2b59, 0x2b5b, 0x2b5d, 0xffff, 0x2b5f, 0x2b61,
+ 0x2b63, 0x2b65, 0x2b67, 0x2b69, 0x2b6b, 0xffff, 0x2b6d, 0x2b6f,
+ 0x2b71, 0x2b73, 0x2b75, 0x2b77, 0x2b79, 0x2b7b, 0x2b7d, 0x2b7f,
+ 0x2b81, 0x2b83, 0x2b85, 0x2b87, 0x2b89, 0x2b8b, 0x2b8d, 0x2b8f,
+ 0x2b91, 0x2b93, 0x2b95, 0x2b97, 0x2b99, 0x2b9b, 0x2b9d, 0x2b9f,
+ 0x2ba1, 0x2ba3, 0xffff, 0x2ba5, 0x2ba7, 0x2ba9, 0x2bab, 0xffff,
+ 0x2bad, 0x2baf, 0x2bb1, 0x2bb3, 0x2bb5, 0xffff, 0x2bb7, 0xffff,
+ 0xffff, 0xffff, 0x2bb9, 0x2bbb, 0x2bbd, 0x2bbf, 0x2bc1, 0x2bc3,
+ 0x2bc5, 0xffff, 0x2bc7, 0x2bc9, 0x2bcb, 0x2bcd, 0x2bcf, 0x2bd1,
+ 0x2bd3, 0x2bd5, 0x2bd7, 0x2bd9, 0x2bdb, 0x2bdd, 0x2bdf, 0x2be1,
+ 0x2be3, 0x2be5, 0x2be7, 0x2be9, 0x2beb, 0x2bed, 0x2bef, 0x2bf1,
+ 0x2bf3, 0x2bf5, 0x2bf7, 0x2bf9, 0x2bfb, 0x2bfd, 0x2bff, 0x2c01,
+ 0x2c03, 0x2c05, 0x2c07, 0x2c09, 0x2c0b, 0x2c0d, 0x2c0f, 0x2c11,
+ 0x2c13, 0x2c15, 0x2c17, 0x2c19, 0x2c1b, 0x2c1d, 0x2c1f, 0x2c21,
+ 0x2c23, 0x2c25, 0x2c27, 0x2c29, 0x2c2b, 0x2c2d, 0x2c2f, 0x2c31,
+ 0x2c33, 0x2c35, 0x2c37, 0x2c39, 0x2c3b, 0x2c3d, 0x2c3f, 0x2c41,
+ 0x2c43, 0x2c45, 0x2c47, 0x2c49, 0x2c4b, 0x2c4d, 0x2c4f, 0x2c51,
+ 0x2c53, 0x2c55, 0x2c57, 0x2c59, 0x2c5b, 0x2c5d, 0x2c5f, 0x2c61,
+ 0x2c63, 0x2c65, 0x2c67, 0x2c69, 0x2c6b, 0x2c6d, 0x2c6f, 0x2c71,
+ 0x2c73, 0x2c75, 0x2c77, 0x2c79, 0x2c7b, 0x2c7d, 0x2c7f, 0x2c81,
+ 0x2c83, 0x2c85, 0x2c87, 0x2c89, 0x2c8b, 0x2c8d, 0x2c8f, 0x2c91,
+ 0x2c93, 0x2c95, 0x2c97, 0x2c99, 0x2c9b, 0x2c9d, 0x2c9f, 0x2ca1,
+ 0x2ca3, 0x2ca5, 0x2ca7, 0x2ca9, 0x2cab, 0x2cad, 0x2caf, 0x2cb1,
+ 0x2cb3, 0x2cb5, 0x2cb7, 0x2cb9, 0x2cbb, 0x2cbd, 0x2cbf, 0x2cc1,
+ 0x2cc3, 0x2cc5, 0x2cc7, 0x2cc9, 0x2ccb, 0x2ccd, 0x2ccf, 0x2cd1,
+ 0x2cd3, 0x2cd5, 0x2cd7, 0x2cd9, 0x2cdb, 0x2cdd, 0x2cdf, 0x2ce1,
+ 0x2ce3, 0x2ce5, 0x2ce7, 0x2ce9, 0x2ceb, 0x2ced, 0x2cef, 0x2cf1,
+ 0x2cf3, 0x2cf5, 0x2cf7, 0x2cf9, 0x2cfb, 0x2cfd, 0x2cff, 0x2d01,
+ 0x2d03, 0x2d05, 0x2d07, 0x2d09, 0x2d0b, 0x2d0d, 0x2d0f, 0x2d11,
+ 0x2d13, 0x2d15, 0x2d17, 0x2d19, 0x2d1b, 0x2d1d, 0x2d1f, 0x2d21,
+
+ 0x2d23, 0x2d25, 0x2d27, 0x2d29, 0x2d2b, 0x2d2d, 0x2d2f, 0x2d31,
+ 0x2d33, 0x2d35, 0x2d37, 0x2d39, 0x2d3b, 0x2d3d, 0x2d3f, 0x2d41,
+ 0x2d43, 0x2d45, 0x2d47, 0x2d49, 0x2d4b, 0x2d4d, 0x2d4f, 0x2d51,
+ 0x2d53, 0x2d55, 0x2d57, 0x2d59, 0x2d5b, 0x2d5d, 0x2d5f, 0x2d61,
+ 0x2d63, 0x2d65, 0x2d67, 0x2d69, 0x2d6b, 0x2d6d, 0x2d6f, 0x2d71,
+ 0x2d73, 0x2d75, 0x2d77, 0x2d79, 0x2d7b, 0x2d7d, 0x2d7f, 0x2d81,
+ 0x2d83, 0x2d85, 0x2d87, 0x2d89, 0x2d8b, 0x2d8d, 0x2d8f, 0x2d91,
+ 0x2d93, 0x2d95, 0x2d97, 0x2d99, 0x2d9b, 0x2d9d, 0x2d9f, 0x2da1,
+ 0x2da3, 0x2da5, 0x2da7, 0x2da9, 0x2dab, 0x2dad, 0x2daf, 0x2db1,
+ 0x2db3, 0x2db5, 0x2db7, 0x2db9, 0x2dbb, 0x2dbd, 0x2dbf, 0x2dc1,
+ 0x2dc3, 0x2dc5, 0x2dc7, 0x2dc9, 0x2dcb, 0x2dcd, 0x2dcf, 0x2dd1,
+ 0x2dd3, 0x2dd5, 0x2dd7, 0x2dd9, 0x2ddb, 0x2ddd, 0x2ddf, 0x2de1,
+ 0x2de3, 0x2de5, 0x2de7, 0x2de9, 0x2deb, 0x2ded, 0x2def, 0x2df1,
+ 0x2df3, 0x2df5, 0x2df7, 0x2df9, 0x2dfb, 0x2dfd, 0x2dff, 0x2e01,
+ 0x2e03, 0x2e05, 0x2e07, 0x2e09, 0x2e0b, 0x2e0d, 0x2e0f, 0x2e11,
+ 0x2e13, 0x2e15, 0x2e17, 0x2e19, 0x2e1b, 0x2e1d, 0x2e1f, 0x2e21,
+ 0x2e23, 0x2e25, 0x2e27, 0x2e29, 0x2e2b, 0x2e2d, 0x2e2f, 0x2e31,
+ 0x2e33, 0x2e35, 0x2e37, 0x2e39, 0x2e3b, 0x2e3d, 0x2e3f, 0x2e41,
+ 0x2e43, 0x2e45, 0x2e47, 0x2e49, 0x2e4b, 0x2e4d, 0x2e4f, 0x2e51,
+ 0x2e53, 0x2e55, 0x2e57, 0x2e59, 0x2e5b, 0x2e5d, 0x2e5f, 0x2e61,
+ 0x2e63, 0x2e65, 0x2e67, 0x2e69, 0x2e6b, 0x2e6d, 0xffff, 0xffff,
+ 0x2e6f, 0x2e71, 0x2e73, 0x2e75, 0x2e77, 0x2e79, 0x2e7b, 0x2e7d,
+ 0x2e7f, 0x2e81, 0x2e83, 0x2e85, 0x2e87, 0x2e89, 0x2e8b, 0x2e8d,
+ 0x2e8f, 0x2e91, 0x2e93, 0x2e95, 0x2e97, 0x2e99, 0x2e9b, 0x2e9d,
+ 0x2e9f, 0x2ea1, 0x2ea3, 0x2ea5, 0x2ea7, 0x2ea9, 0x2eab, 0x2ead,
+ 0x2eaf, 0x2eb1, 0x2eb3, 0x2eb5, 0x2eb7, 0x2eb9, 0x2ebb, 0x2ebd,
+ 0x2ebf, 0x2ec1, 0x2ec3, 0x2ec5, 0x2ec7, 0x2ec9, 0x2ecb, 0x2ecd,
+ 0x2ecf, 0x2ed1, 0x2ed3, 0x2ed5, 0x2ed7, 0x2ed9, 0x2edb, 0x2edd,
+ 0x2edf, 0x2ee1, 0x2ee3, 0x2ee5, 0x2ee7, 0x2ee9, 0x2eeb, 0x2eed,
+ 0x2eef, 0x2ef1, 0x2ef3, 0x2ef5, 0x2ef7, 0x2ef9, 0x2efb, 0x2efd,
+ 0x2eff, 0x2f01, 0x2f03, 0x2f05, 0x2f07, 0x2f09, 0x2f0b, 0x2f0d,
+ 0x2f0f, 0x2f11, 0x2f13, 0x2f15, 0x2f17, 0x2f19, 0x2f1b, 0x2f1d,
+
+ 0x2f1f, 0x2f21, 0x2f23, 0x2f25, 0x2f27, 0x2f29, 0x2f2b, 0x2f2d,
+ 0x2f2f, 0x2f31, 0x2f33, 0x2f35, 0x2f37, 0x2f39, 0x2f3b, 0x2f3d,
+ 0x2f3f, 0x2f41, 0x2f43, 0x2f45, 0x2f47, 0x2f49, 0x2f4b, 0x2f4d,
+ 0x2f4f, 0x2f51, 0x2f53, 0x2f55, 0x2f57, 0x2f59, 0x2f5b, 0x2f5d,
+ 0x2f5f, 0x2f61, 0x2f63, 0x2f65, 0x2f67, 0x2f69, 0x2f6b, 0x2f6d,
+ 0x2f6f, 0x2f71, 0x2f73, 0x2f75, 0x2f77, 0x2f79, 0x2f7b, 0x2f7d,
+ 0x2f7f, 0x2f81, 0x2f83, 0x2f85, 0x2f87, 0x2f89, 0x2f8b, 0x2f8d,
+ 0x2f8f, 0x2f91, 0x2f93, 0x2f95, 0x2f97, 0x2f99, 0x2f9b, 0x2f9d,
+ 0x2f9f, 0x2fa1, 0x2fa3, 0x2fa5, 0x2fa7, 0x2fa9, 0x2fab, 0x2fad,
+ 0x2faf, 0x2fb1, 0x2fb3, 0x2fb5, 0x2fb7, 0x2fb9, 0x2fbb, 0x2fbd,
+ 0x2fbf, 0x2fc1, 0x2fc3, 0x2fc5, 0x2fc7, 0x2fc9, 0x2fcb, 0x2fcd,
+ 0x2fcf, 0x2fd1, 0x2fd3, 0x2fd5, 0x2fd7, 0x2fd9, 0x2fdb, 0x2fdd,
+ 0x2fdf, 0x2fe1, 0x2fe3, 0x2fe5, 0x2fe7, 0x2fe9, 0x2feb, 0x2fed,
+ 0x2fef, 0x2ff1, 0x2ff3, 0x2ff5, 0x2ff7, 0x2ff9, 0x2ffb, 0x2ffd,
+ 0x2fff, 0x3001, 0x3003, 0x3005, 0x3007, 0x3009, 0x300b, 0x300d,
+ 0x300f, 0x3011, 0x3013, 0x3015, 0x3017, 0x3019, 0x301b, 0x301d,
+ 0x301f, 0x3021, 0x3023, 0x3025, 0x3027, 0x3029, 0x302b, 0x302d,
+ 0x302f, 0x3031, 0x3033, 0x3035, 0x3037, 0x3039, 0x303b, 0x303d,
+ 0x303f, 0x3041, 0x3043, 0x3045, 0x3047, 0x3049, 0x304b, 0x304d,
+ 0x304f, 0x3051, 0x3053, 0x3055, 0x3057, 0x3059, 0x305b, 0x305d,
+ 0x305f, 0x3061, 0x3063, 0x3065, 0x3067, 0x3069, 0x306b, 0x306d,
+ 0x306f, 0x3071, 0x3073, 0x3075, 0x3077, 0x3079, 0x307b, 0x307d,
+ 0x307f, 0x3081, 0x3083, 0x3085, 0x3087, 0x3089, 0x308b, 0x308d,
+ 0x308f, 0x3091, 0x3093, 0x3095, 0x3097, 0x3099, 0x309b, 0x309d,
+ 0x309f, 0x30a1, 0x30a3, 0x30a5, 0x30a7, 0x30a9, 0x30ab, 0x30ad,
+ 0x30af, 0x30b1, 0x30b3, 0x30b5, 0xffff, 0xffff, 0x30b7, 0x30b9,
+ 0x30bb, 0x30bd, 0x30bf, 0x30c1, 0x30c3, 0x30c5, 0x30c7, 0x30c9,
+ 0x30cb, 0x30cd, 0x30cf, 0x30d1, 0x30d3, 0x30d5, 0x30d7, 0x30d9,
+ 0x30db, 0x30dd, 0x30df, 0x30e1, 0x30e3, 0x30e5, 0x30e7, 0x30e9,
+ 0x30eb, 0x30ed, 0x30ef, 0x30f1, 0x30f3, 0x30f5, 0x30f7, 0x30f9,
+ 0x30fb, 0x30fd, 0x30ff, 0x3101, 0x3103, 0x3105, 0x3107, 0x3109,
+ 0x310b, 0x310d, 0x310f, 0x3111, 0x3113, 0x3115, 0x3117, 0x3119,
+
+ 0x311b, 0x311d, 0x311f, 0x3121, 0xffff, 0x3123, 0x3125, 0x3127,
+ 0x3129, 0x312b, 0x312d, 0x312f, 0x3131, 0x3133, 0x3135, 0x3137,
+ 0x3139, 0x313b, 0x313d, 0x313f, 0x3141, 0x3143, 0x3145, 0x3147,
+ 0x3149, 0x314b, 0x314d, 0x314f, 0x3151, 0x3153, 0x3155, 0x3157,
+ 0xffff, 0x3159, 0x315b, 0xffff, 0x315d, 0xffff, 0xffff, 0x315f,
+ 0xffff, 0x3161, 0x3163, 0x3165, 0x3167, 0x3169, 0x316b, 0x316d,
+ 0x316f, 0x3171, 0x3173, 0xffff, 0x3175, 0x3177, 0x3179, 0x317b,
+ 0xffff, 0x317d, 0xffff, 0x317f, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0x3181, 0xffff, 0xffff, 0xffff, 0xffff, 0x3183,
+ 0xffff, 0x3185, 0xffff, 0x3187, 0xffff, 0x3189, 0x318b, 0x318d,
+ 0xffff, 0x318f, 0x3191, 0xffff, 0x3193, 0xffff, 0xffff, 0x3195,
+ 0xffff, 0x3197, 0xffff, 0x3199, 0xffff, 0x319b, 0xffff, 0x319d,
+ 0xffff, 0x319f, 0x31a1, 0xffff, 0x31a3, 0xffff, 0xffff, 0x31a5,
+ 0x31a7, 0x31a9, 0x31ab, 0xffff, 0x31ad, 0x31af, 0x31b1, 0x31b3,
+ 0x31b5, 0x31b7, 0x31b9, 0xffff, 0x31bb, 0x31bd, 0x31bf, 0x31c1,
+ 0xffff, 0x31c3, 0x31c5, 0x31c7, 0x31c9, 0xffff, 0x31cb, 0xffff,
+ 0x31cd, 0x31cf, 0x31d1, 0x31d3, 0x31d5, 0x31d7, 0x31d9, 0x31db,
+ 0x31dd, 0x31df, 0xffff, 0x31e1, 0x31e3, 0x31e5, 0x31e7, 0x31e9,
+ 0x31eb, 0x31ed, 0x31ef, 0x31f1, 0x31f3, 0x31f5, 0x31f7, 0x31f9,
+ 0x31fb, 0x31fd, 0x31ff, 0x3201, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0x3203, 0x3205, 0x3207, 0xffff, 0x3209, 0x320b, 0x320d,
+ 0x320f, 0x3211, 0xffff, 0x3213, 0x3215, 0x3217, 0x3219, 0x321b,
+ 0x321d, 0x321f, 0x3221, 0x3223, 0x3225, 0x3227, 0x3229, 0x322b,
+ 0x322d, 0x322f, 0x3231, 0x3233, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8544,25 +9462,25 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x3206, 0x3209, 0x320c, 0x320f, 0x3212, 0x3215, 0x3218, 0x321b,
- 0x321e, 0x3221, 0x3224, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x3227, 0x322b, 0x322f, 0x3233, 0x3237, 0x323b, 0x323f, 0x3243,
- 0x3247, 0x324b, 0x324f, 0x3253, 0x3257, 0x325b, 0x325f, 0x3263,
- 0x3267, 0x326b, 0x326f, 0x3273, 0x3277, 0x327b, 0x327f, 0x3283,
- 0x3287, 0x328b, 0x328f, 0x3293, 0x3295, 0x3297, 0x329a, 0xffff,
- 0x329d, 0x329f, 0x32a1, 0x32a3, 0x32a5, 0x32a7, 0x32a9, 0x32ab,
- 0x32ad, 0x32af, 0x32b1, 0x32b3, 0x32b5, 0x32b7, 0x32b9, 0x32bb,
- 0x32bd, 0x32bf, 0x32c1, 0x32c3, 0x32c5, 0x32c7, 0x32c9, 0x32cb,
- 0x32cd, 0x32cf, 0x32d1, 0x32d4, 0x32d7, 0x32da, 0x32dd, 0x32e1,
+ 0x3235, 0x3238, 0x323b, 0x323e, 0x3241, 0x3244, 0x3247, 0x324a,
+ 0x324d, 0x3250, 0x3253, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x3256, 0x325a, 0x325e, 0x3262, 0x3266, 0x326a, 0x326e, 0x3272,
+ 0x3276, 0x327a, 0x327e, 0x3282, 0x3286, 0x328a, 0x328e, 0x3292,
+ 0x3296, 0x329a, 0x329e, 0x32a2, 0x32a6, 0x32aa, 0x32ae, 0x32b2,
+ 0x32b6, 0x32ba, 0x32be, 0x32c2, 0x32c4, 0x32c6, 0x32c9, 0xffff,
+ 0x32cc, 0x32ce, 0x32d0, 0x32d2, 0x32d4, 0x32d6, 0x32d8, 0x32da,
+ 0x32dc, 0x32de, 0x32e0, 0x32e2, 0x32e4, 0x32e6, 0x32e8, 0x32ea,
+ 0x32ec, 0x32ee, 0x32f0, 0x32f2, 0x32f4, 0x32f6, 0x32f8, 0x32fa,
+ 0x32fc, 0x32fe, 0x3300, 0x3303, 0x3306, 0x3309, 0x330c, 0x3310,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0x32e4, 0x32e7, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0x3313, 0x3316, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x32ea, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x3319, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8577,17 +9495,17 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x32ed, 0x32f0, 0x32f3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x331c, 0x331f, 0x3322, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x32f5, 0x32f7, 0x32f9, 0x32fb, 0x32fd, 0x32ff, 0x3301, 0x3303,
- 0x3305, 0x3307, 0x3309, 0x330b, 0x330d, 0x330f, 0x3311, 0x3313,
- 0x3315, 0x3317, 0x3319, 0x331b, 0x331d, 0x331f, 0x3321, 0x3323,
- 0x3325, 0x3327, 0x3329, 0x332b, 0x332d, 0x332f, 0x3331, 0x3333,
- 0x3335, 0x3337, 0x3339, 0x333b, 0x333d, 0x333f, 0x3341, 0x3343,
- 0x3345, 0x3347, 0x3349, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x334b, 0x334f, 0x3353, 0x3357, 0x335b, 0x335f, 0x3363, 0x3367,
- 0x336b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x336f, 0x3371, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x3324, 0x3326, 0x3328, 0x332a, 0x332c, 0x332e, 0x3330, 0x3332,
+ 0x3334, 0x3336, 0x3338, 0x333a, 0x333c, 0x333e, 0x3340, 0x3342,
+ 0x3344, 0x3346, 0x3348, 0x334a, 0x334c, 0x334e, 0x3350, 0x3352,
+ 0x3354, 0x3356, 0x3358, 0x335a, 0x335c, 0x335e, 0x3360, 0x3362,
+ 0x3364, 0x3366, 0x3368, 0x336a, 0x336c, 0x336e, 0x3370, 0x3372,
+ 0x3374, 0x3376, 0x3378, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x337a, 0x337e, 0x3382, 0x3386, 0x338a, 0x338e, 0x3392, 0x3396,
+ 0x339a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x339e, 0x33a0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -8610,76 +9528,76 @@ static const unsigned short uc_decomposition_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x3373, 0x3375, 0x3377, 0x3379, 0x337c, 0x337e, 0x3380, 0x3382,
- 0x3384, 0x3386, 0x3388, 0x338a, 0x338c, 0x338e, 0x3391, 0x3393,
- 0x3395, 0x3397, 0x3399, 0x339c, 0x339e, 0x33a0, 0x33a2, 0x33a5,
- 0x33a7, 0x33a9, 0x33ab, 0x33ad, 0x33af, 0x33b2, 0x33b4, 0x33b6,
- 0x33b8, 0x33ba, 0x33bc, 0x33be, 0x33c0, 0x33c2, 0x33c4, 0x33c6,
- 0x33c8, 0x33ca, 0x33cc, 0x33ce, 0x33d0, 0x33d2, 0x33d4, 0x33d6,
- 0x33d8, 0x33da, 0x33dc, 0x33de, 0x33e0, 0x33e3, 0x33e5, 0x33e7,
- 0x33e9, 0x33ec, 0x33ee, 0x33f0, 0x33f2, 0x33f4, 0x33f6, 0x33f8,
- 0x33fa, 0x33fc, 0x33fe, 0x3400, 0x3402, 0x3404, 0x3406, 0x3408,
- 0x340a, 0x340c, 0x340e, 0x3410, 0x3412, 0x3414, 0x3416, 0x3418,
- 0x341a, 0x341c, 0x341e, 0x3420, 0x3422, 0x3424, 0x3426, 0x3428,
- 0x342a, 0x342c, 0x342f, 0x3431, 0x3433, 0x3435, 0x3437, 0x3439,
- 0x343b, 0x343e, 0x3441, 0x3443, 0x3445, 0x3447, 0x3449, 0x344b,
- 0x344d, 0x344f, 0x3451, 0x3453, 0x3455, 0x3458, 0x345a, 0x345c,
- 0x345e, 0x3460, 0x3463, 0x3465, 0x3467, 0x3469, 0x346b, 0x346d,
- 0x346f, 0x3471, 0x3473, 0x3475, 0x3478, 0x347a, 0x347d, 0x347f,
- 0x3481, 0x3483, 0x3485, 0x3487, 0x3489, 0x348b, 0x348d, 0x348f,
- 0x3491, 0x3493, 0x3496, 0x3498, 0x349a, 0x349c, 0x349e, 0x34a0,
- 0x34a3, 0x34a5, 0x34a8, 0x34ab, 0x34ad, 0x34af, 0x34b1, 0x34b3,
- 0x34b6, 0x34b9, 0x34bb, 0x34bd, 0x34bf, 0x34c1, 0x34c3, 0x34c5,
- 0x34c7, 0x34c9, 0x34cb, 0x34cd, 0x34cf, 0x34d2, 0x34d4, 0x34d6,
- 0x34d8, 0x34da, 0x34dc, 0x34de, 0x34e0, 0x34e2, 0x34e4, 0x34e6,
- 0x34e8, 0x34ea, 0x34ec, 0x34ee, 0x34f0, 0x34f2, 0x34f4, 0x34f6,
- 0x34f8, 0x34fb, 0x34fd, 0x34ff, 0x3501, 0x3503, 0x3505, 0x3508,
- 0x350a, 0x350c, 0x350e, 0x3510, 0x3512, 0x3514, 0x3516, 0x3518,
- 0x351a, 0x351c, 0x351e, 0x3521, 0x3523, 0x3525, 0x3527, 0x3529,
- 0x352b, 0x352d, 0x352f, 0x3531, 0x3533, 0x3535, 0x3537, 0x3539,
- 0x353b, 0x353d, 0x353f, 0x3541, 0x3543, 0x3545, 0x3548, 0x354a,
- 0x354c, 0x354e, 0x3550, 0x3552, 0x3555, 0x3557, 0x3559, 0x355b,
- 0x355d, 0x355f, 0x3561, 0x3563, 0x3565, 0x3568, 0x356a, 0x356c,
- 0x356e, 0x3571, 0x3573, 0x3575, 0x3577, 0x3579, 0x357b, 0x357d,
- 0x3580, 0x3583, 0x3586, 0x3588, 0x358b, 0x358d, 0x358f, 0x3591,
+ 0x33a2, 0x33a4, 0x33a6, 0x33a8, 0x33ab, 0x33ad, 0x33af, 0x33b1,
+ 0x33b3, 0x33b5, 0x33b7, 0x33b9, 0x33bb, 0x33bd, 0x33c0, 0x33c2,
+ 0x33c4, 0x33c6, 0x33c8, 0x33cb, 0x33cd, 0x33cf, 0x33d1, 0x33d4,
+ 0x33d6, 0x33d8, 0x33da, 0x33dc, 0x33de, 0x33e1, 0x33e3, 0x33e5,
+ 0x33e7, 0x33e9, 0x33eb, 0x33ed, 0x33ef, 0x33f1, 0x33f3, 0x33f5,
+ 0x33f7, 0x33f9, 0x33fb, 0x33fd, 0x33ff, 0x3401, 0x3403, 0x3405,
+ 0x3407, 0x3409, 0x340b, 0x340d, 0x340f, 0x3412, 0x3414, 0x3416,
+ 0x3418, 0x341b, 0x341d, 0x341f, 0x3421, 0x3423, 0x3425, 0x3427,
+ 0x3429, 0x342b, 0x342d, 0x342f, 0x3431, 0x3433, 0x3435, 0x3437,
+ 0x3439, 0x343b, 0x343d, 0x343f, 0x3441, 0x3443, 0x3445, 0x3447,
+ 0x3449, 0x344b, 0x344d, 0x344f, 0x3451, 0x3453, 0x3455, 0x3457,
+ 0x3459, 0x345b, 0x345e, 0x3460, 0x3462, 0x3464, 0x3466, 0x3468,
+ 0x346a, 0x346d, 0x3470, 0x3472, 0x3474, 0x3476, 0x3478, 0x347a,
+ 0x347c, 0x347e, 0x3480, 0x3482, 0x3484, 0x3487, 0x3489, 0x348b,
+ 0x348d, 0x348f, 0x3492, 0x3494, 0x3496, 0x3498, 0x349a, 0x349c,
+ 0x349e, 0x34a0, 0x34a2, 0x34a4, 0x34a7, 0x34a9, 0x34ac, 0x34ae,
+ 0x34b0, 0x34b2, 0x34b4, 0x34b6, 0x34b8, 0x34ba, 0x34bc, 0x34be,
+ 0x34c0, 0x34c2, 0x34c5, 0x34c7, 0x34c9, 0x34cb, 0x34cd, 0x34cf,
+ 0x34d2, 0x34d4, 0x34d7, 0x34da, 0x34dc, 0x34de, 0x34e0, 0x34e2,
+ 0x34e5, 0x34e8, 0x34ea, 0x34ec, 0x34ee, 0x34f0, 0x34f2, 0x34f4,
+ 0x34f6, 0x34f8, 0x34fa, 0x34fc, 0x34fe, 0x3501, 0x3503, 0x3505,
+ 0x3507, 0x3509, 0x350b, 0x350d, 0x350f, 0x3511, 0x3513, 0x3515,
+ 0x3517, 0x3519, 0x351b, 0x351d, 0x351f, 0x3521, 0x3523, 0x3525,
+ 0x3527, 0x352a, 0x352c, 0x352e, 0x3530, 0x3532, 0x3534, 0x3537,
+ 0x3539, 0x353b, 0x353d, 0x353f, 0x3541, 0x3543, 0x3545, 0x3547,
+ 0x3549, 0x354b, 0x354d, 0x3550, 0x3552, 0x3554, 0x3556, 0x3558,
+ 0x355a, 0x355c, 0x355e, 0x3560, 0x3562, 0x3564, 0x3566, 0x3568,
+ 0x356a, 0x356c, 0x356e, 0x3570, 0x3572, 0x3574, 0x3577, 0x3579,
+ 0x357b, 0x357d, 0x357f, 0x3581, 0x3584, 0x3586, 0x3588, 0x358a,
+ 0x358c, 0x358e, 0x3590, 0x3592, 0x3594, 0x3597, 0x3599, 0x359b,
+ 0x359d, 0x35a0, 0x35a2, 0x35a4, 0x35a6, 0x35a8, 0x35aa, 0x35ac,
+ 0x35af, 0x35b2, 0x35b5, 0x35b7, 0x35ba, 0x35bc, 0x35be, 0x35c0,
- 0x3593, 0x3595, 0x3597, 0x3599, 0x359b, 0x359d, 0x359f, 0x35a2,
- 0x35a4, 0x35a6, 0x35a8, 0x35aa, 0x35ac, 0x35ae, 0x35b1, 0x35b3,
- 0x35b5, 0x35b8, 0x35bb, 0x35bd, 0x35bf, 0x35c1, 0x35c3, 0x35c5,
- 0x35c7, 0x35c9, 0x35cb, 0x35cd, 0x35d0, 0x35d2, 0x35d5, 0x35d7,
- 0x35da, 0x35dc, 0x35de, 0x35e0, 0x35e3, 0x35e5, 0x35e7, 0x35ea,
- 0x35ed, 0x35ef, 0x35f1, 0x35f3, 0x35f5, 0x35f7, 0x35f9, 0x35fb,
- 0x35fd, 0x35ff, 0x3601, 0x3603, 0x3605, 0x3607, 0x360a, 0x360c,
- 0x360f, 0x3611, 0x3614, 0x3616, 0x3619, 0x361c, 0x361f, 0x3621,
- 0x3623, 0x3625, 0x3628, 0x362b, 0x362e, 0x3631, 0x3633, 0x3635,
- 0x3637, 0x3639, 0x363b, 0x363d, 0x363f, 0x3641, 0x3644, 0x3646,
- 0x3648, 0x364a, 0x364c, 0x364f, 0x3651, 0x3654, 0x3657, 0x3659,
- 0x365b, 0x365d, 0x365f, 0x3661, 0x3663, 0x3666, 0x3669, 0x366c,
- 0x366e, 0x3670, 0x3673, 0x3675, 0x3677, 0x3679, 0x367c, 0x367e,
- 0x3680, 0x3682, 0x3684, 0x3686, 0x3689, 0x368b, 0x368d, 0x368f,
- 0x3691, 0x3693, 0x3695, 0x3698, 0x369b, 0x369d, 0x36a0, 0x36a2,
- 0x36a5, 0x36a7, 0x36a9, 0x36ab, 0x36ae, 0x36b1, 0x36b3, 0x36b6,
- 0x36b8, 0x36bb, 0x36bd, 0x36bf, 0x36c1, 0x36c3, 0x36c5, 0x36c7,
- 0x36ca, 0x36cd, 0x36d0, 0x36d3, 0x36d5, 0x36d7, 0x36d9, 0x36db,
- 0x36dd, 0x36df, 0x36e1, 0x36e3, 0x36e5, 0x36e7, 0x36e9, 0x36eb,
- 0x36ee, 0x36f0, 0x36f2, 0x36f4, 0x36f6, 0x36f8, 0x36fa, 0x36fc,
- 0x36fe, 0x3700, 0x3702, 0x3704, 0x3706, 0x3709, 0x370c, 0x370f,
- 0x3711, 0x3713, 0x3715, 0x3717, 0x371a, 0x371c, 0x371f, 0x3721,
- 0x3723, 0x3726, 0x3729, 0x372b, 0x372d, 0x372f, 0x3731, 0x3733,
- 0x3735, 0x3737, 0x3739, 0x373b, 0x373d, 0x373f, 0x3741, 0x3743,
- 0x3745, 0x3747, 0x3749, 0x374b, 0x374d, 0x374f, 0x3752, 0x3754,
- 0x3756, 0x3758, 0x375a, 0x375c, 0x375f, 0x3762, 0x3764, 0x3766,
- 0x3768, 0x376a, 0x376c, 0x376e, 0x3771, 0x3773, 0x3775, 0x3777,
- 0x3779, 0x377c, 0x377f, 0x3781, 0x3783, 0x3785, 0x3788, 0x378a,
- 0x378c, 0x378f, 0x3792, 0x3794, 0x3796, 0x3798, 0x379b, 0x379d,
- 0x379f, 0x37a1, 0x37a3, 0x37a5, 0x37a7, 0x37a9, 0x37ac, 0x37ae,
- 0x37b0, 0x37b2, 0x37b5, 0x37b7, 0x37b9, 0x37bb, 0x37bd, 0x37c0,
- 0x37c3, 0x37c5, 0x37c7, 0x37c9, 0x37cc, 0x37ce, 0x37d1, 0x37d3,
+ 0x35c2, 0x35c4, 0x35c6, 0x35c8, 0x35ca, 0x35cc, 0x35ce, 0x35d1,
+ 0x35d3, 0x35d5, 0x35d7, 0x35d9, 0x35db, 0x35dd, 0x35e0, 0x35e2,
+ 0x35e4, 0x35e7, 0x35ea, 0x35ec, 0x35ee, 0x35f0, 0x35f2, 0x35f4,
+ 0x35f6, 0x35f8, 0x35fa, 0x35fc, 0x35ff, 0x3601, 0x3604, 0x3606,
+ 0x3609, 0x360b, 0x360d, 0x360f, 0x3612, 0x3614, 0x3616, 0x3619,
+ 0x361c, 0x361e, 0x3620, 0x3622, 0x3624, 0x3626, 0x3628, 0x362a,
+ 0x362c, 0x362e, 0x3630, 0x3632, 0x3634, 0x3636, 0x3639, 0x363b,
+ 0x363e, 0x3640, 0x3643, 0x3645, 0x3648, 0x364b, 0x364e, 0x3650,
+ 0x3652, 0x3654, 0x3657, 0x365a, 0x365d, 0x3660, 0x3662, 0x3664,
+ 0x3666, 0x3668, 0x366a, 0x366c, 0x366e, 0x3670, 0x3673, 0x3675,
+ 0x3677, 0x3679, 0x367b, 0x367e, 0x3680, 0x3683, 0x3686, 0x3688,
+ 0x368a, 0x368c, 0x368e, 0x3690, 0x3692, 0x3695, 0x3698, 0x369b,
+ 0x369d, 0x369f, 0x36a2, 0x36a4, 0x36a6, 0x36a8, 0x36ab, 0x36ad,
+ 0x36af, 0x36b1, 0x36b3, 0x36b5, 0x36b8, 0x36ba, 0x36bc, 0x36be,
+ 0x36c0, 0x36c2, 0x36c4, 0x36c7, 0x36ca, 0x36cc, 0x36cf, 0x36d1,
+ 0x36d4, 0x36d6, 0x36d8, 0x36da, 0x36dd, 0x36e0, 0x36e2, 0x36e5,
+ 0x36e7, 0x36ea, 0x36ec, 0x36ee, 0x36f0, 0x36f2, 0x36f4, 0x36f6,
+ 0x36f9, 0x36fc, 0x36ff, 0x3702, 0x3704, 0x3706, 0x3708, 0x370a,
+ 0x370c, 0x370e, 0x3710, 0x3712, 0x3714, 0x3716, 0x3718, 0x371a,
+ 0x371d, 0x371f, 0x3721, 0x3723, 0x3725, 0x3727, 0x3729, 0x372b,
+ 0x372d, 0x372f, 0x3731, 0x3733, 0x3735, 0x3738, 0x373b, 0x373e,
+ 0x3740, 0x3742, 0x3744, 0x3746, 0x3749, 0x374b, 0x374e, 0x3750,
+ 0x3752, 0x3755, 0x3758, 0x375a, 0x375c, 0x375e, 0x3760, 0x3762,
+ 0x3764, 0x3766, 0x3768, 0x376a, 0x376c, 0x376e, 0x3770, 0x3772,
+ 0x3774, 0x3776, 0x3778, 0x377a, 0x377c, 0x377e, 0x3781, 0x3783,
+ 0x3785, 0x3787, 0x3789, 0x378b, 0x378e, 0x3791, 0x3793, 0x3795,
+ 0x3797, 0x3799, 0x379b, 0x379d, 0x37a0, 0x37a2, 0x37a4, 0x37a6,
+ 0x37a8, 0x37ab, 0x37ae, 0x37b0, 0x37b2, 0x37b4, 0x37b7, 0x37b9,
+ 0x37bb, 0x37be, 0x37c1, 0x37c3, 0x37c5, 0x37c7, 0x37ca, 0x37cc,
+ 0x37ce, 0x37d0, 0x37d2, 0x37d4, 0x37d6, 0x37d8, 0x37db, 0x37dd,
+ 0x37df, 0x37e1, 0x37e4, 0x37e6, 0x37e8, 0x37ea, 0x37ec, 0x37ef,
+ 0x37f2, 0x37f4, 0x37f6, 0x37f8, 0x37fb, 0x37fd, 0x3800, 0x3802,
- 0x37d5, 0x37d7, 0x37da, 0x37dc, 0x37de, 0x37e0, 0x37e2, 0x37e4,
- 0x37e6, 0x37e8, 0x37eb, 0x37ed, 0x37ef, 0x37f1, 0x37f3, 0x37f5,
- 0x37f7, 0x37fa, 0x37fc, 0x37ff, 0x3802, 0x3805, 0x3807, 0x3809,
- 0x380b, 0x380d, 0x380f, 0x3811, 0x3813, 0x3815, 0xffff, 0xffff,
+ 0x3804, 0x3806, 0x3809, 0x380b, 0x380d, 0x380f, 0x3811, 0x3813,
+ 0x3815, 0x3817, 0x381a, 0x381c, 0x381e, 0x3820, 0x3822, 0x3824,
+ 0x3826, 0x3829, 0x382b, 0x382e, 0x3831, 0x3834, 0x3836, 0x3838,
+ 0x383a, 0x383c, 0x383e, 0x3840, 0x3842, 0x3844, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
@@ -9548,971 +10466,977 @@ static const unsigned short uc_decomposition_map[] = {
0x65e5, 0x310, 0x32, 0x36, 0x65e5, 0x310, 0x32, 0x37,
0x65e5, 0x310, 0x32, 0x38, 0x65e5, 0x310, 0x32, 0x39,
0x65e5, 0x310, 0x33, 0x30, 0x65e5, 0x310, 0x33, 0x31,
- 0x65e5, 0x30f, 0x67, 0x61, 0x6c, 0x109, 0xa76f, 0x109,
- 0x126, 0x109, 0x153, 0x101, 0x8c48, 0x101, 0x66f4, 0x101,
- 0x8eca, 0x101, 0x8cc8, 0x101, 0x6ed1, 0x101, 0x4e32, 0x101,
- 0x53e5, 0x101, 0x9f9c, 0x101, 0x9f9c, 0x101, 0x5951, 0x101,
- 0x91d1, 0x101, 0x5587, 0x101, 0x5948, 0x101, 0x61f6, 0x101,
- 0x7669, 0x101, 0x7f85, 0x101, 0x863f, 0x101, 0x87ba, 0x101,
- 0x88f8, 0x101, 0x908f, 0x101, 0x6a02, 0x101, 0x6d1b, 0x101,
- 0x70d9, 0x101, 0x73de, 0x101, 0x843d, 0x101, 0x916a, 0x101,
- 0x99f1, 0x101, 0x4e82, 0x101, 0x5375, 0x101, 0x6b04, 0x101,
- 0x721b, 0x101, 0x862d, 0x101, 0x9e1e, 0x101, 0x5d50, 0x101,
- 0x6feb, 0x101, 0x85cd, 0x101, 0x8964, 0x101, 0x62c9, 0x101,
- 0x81d8, 0x101, 0x881f, 0x101, 0x5eca, 0x101, 0x6717, 0x101,
- 0x6d6a, 0x101, 0x72fc, 0x101, 0x90ce, 0x101, 0x4f86, 0x101,
- 0x51b7, 0x101, 0x52de, 0x101, 0x64c4, 0x101, 0x6ad3, 0x101,
- 0x7210, 0x101, 0x76e7, 0x101, 0x8001, 0x101, 0x8606, 0x101,
- 0x865c, 0x101, 0x8def, 0x101, 0x9732, 0x101, 0x9b6f, 0x101,
- 0x9dfa, 0x101, 0x788c, 0x101, 0x797f, 0x101, 0x7da0, 0x101,
- 0x83c9, 0x101, 0x9304, 0x101, 0x9e7f, 0x101, 0x8ad6, 0x101,
- 0x58df, 0x101, 0x5f04, 0x101, 0x7c60, 0x101, 0x807e, 0x101,
- 0x7262, 0x101, 0x78ca, 0x101, 0x8cc2, 0x101, 0x96f7, 0x101,
- 0x58d8, 0x101, 0x5c62, 0x101, 0x6a13, 0x101, 0x6dda, 0x101,
- 0x6f0f, 0x101, 0x7d2f, 0x101, 0x7e37, 0x101, 0x964b, 0x101,
- 0x52d2, 0x101, 0x808b, 0x101, 0x51dc, 0x101, 0x51cc, 0x101,
- 0x7a1c, 0x101, 0x7dbe, 0x101, 0x83f1, 0x101, 0x9675, 0x101,
- 0x8b80, 0x101, 0x62cf, 0x101, 0x6a02, 0x101, 0x8afe, 0x101,
- 0x4e39, 0x101, 0x5be7, 0x101, 0x6012, 0x101, 0x7387, 0x101,
- 0x7570, 0x101, 0x5317, 0x101, 0x78fb, 0x101, 0x4fbf, 0x101,
- 0x5fa9, 0x101, 0x4e0d, 0x101, 0x6ccc, 0x101, 0x6578, 0x101,
- 0x7d22, 0x101, 0x53c3, 0x101, 0x585e, 0x101, 0x7701, 0x101,
- 0x8449, 0x101, 0x8aaa, 0x101, 0x6bba, 0x101, 0x8fb0, 0x101,
- 0x6c88, 0x101, 0x62fe, 0x101, 0x82e5, 0x101, 0x63a0, 0x101,
- 0x7565, 0x101, 0x4eae, 0x101, 0x5169, 0x101, 0x51c9, 0x101,
- 0x6881, 0x101, 0x7ce7, 0x101, 0x826f, 0x101, 0x8ad2, 0x101,
- 0x91cf, 0x101, 0x52f5, 0x101, 0x5442, 0x101, 0x5973, 0x101,
- 0x5eec, 0x101, 0x65c5, 0x101, 0x6ffe, 0x101, 0x792a, 0x101,
- 0x95ad, 0x101, 0x9a6a, 0x101, 0x9e97, 0x101, 0x9ece, 0x101,
- 0x529b, 0x101, 0x66c6, 0x101, 0x6b77, 0x101, 0x8f62, 0x101,
- 0x5e74, 0x101, 0x6190, 0x101, 0x6200, 0x101, 0x649a, 0x101,
- 0x6f23, 0x101, 0x7149, 0x101, 0x7489, 0x101, 0x79ca, 0x101,
- 0x7df4, 0x101, 0x806f, 0x101, 0x8f26, 0x101, 0x84ee, 0x101,
- 0x9023, 0x101, 0x934a, 0x101, 0x5217, 0x101, 0x52a3, 0x101,
- 0x54bd, 0x101, 0x70c8, 0x101, 0x88c2, 0x101, 0x8aaa, 0x101,
- 0x5ec9, 0x101, 0x5ff5, 0x101, 0x637b, 0x101, 0x6bae, 0x101,
- 0x7c3e, 0x101, 0x7375, 0x101, 0x4ee4, 0x101, 0x56f9, 0x101,
- 0x5be7, 0x101, 0x5dba, 0x101, 0x601c, 0x101, 0x73b2, 0x101,
- 0x7469, 0x101, 0x7f9a, 0x101, 0x8046, 0x101, 0x9234, 0x101,
- 0x96f6, 0x101, 0x9748, 0x101, 0x9818, 0x101, 0x4f8b, 0x101,
- 0x79ae, 0x101, 0x91b4, 0x101, 0x96b8, 0x101, 0x60e1, 0x101,
- 0x4e86, 0x101, 0x50da, 0x101, 0x5bee, 0x101, 0x5c3f, 0x101,
- 0x6599, 0x101, 0x6a02, 0x101, 0x71ce, 0x101, 0x7642, 0x101,
- 0x84fc, 0x101, 0x907c, 0x101, 0x9f8d, 0x101, 0x6688, 0x101,
- 0x962e, 0x101, 0x5289, 0x101, 0x677b, 0x101, 0x67f3, 0x101,
- 0x6d41, 0x101, 0x6e9c, 0x101, 0x7409, 0x101, 0x7559, 0x101,
- 0x786b, 0x101, 0x7d10, 0x101, 0x985e, 0x101, 0x516d, 0x101,
- 0x622e, 0x101, 0x9678, 0x101, 0x502b, 0x101, 0x5d19, 0x101,
- 0x6dea, 0x101, 0x8f2a, 0x101, 0x5f8b, 0x101, 0x6144, 0x101,
- 0x6817, 0x101, 0x7387, 0x101, 0x9686, 0x101, 0x5229, 0x101,
- 0x540f, 0x101, 0x5c65, 0x101, 0x6613, 0x101, 0x674e, 0x101,
- 0x68a8, 0x101, 0x6ce5, 0x101, 0x7406, 0x101, 0x75e2, 0x101,
- 0x7f79, 0x101, 0x88cf, 0x101, 0x88e1, 0x101, 0x91cc, 0x101,
- 0x96e2, 0x101, 0x533f, 0x101, 0x6eba, 0x101, 0x541d, 0x101,
- 0x71d0, 0x101, 0x7498, 0x101, 0x85fa, 0x101, 0x96a3, 0x101,
- 0x9c57, 0x101, 0x9e9f, 0x101, 0x6797, 0x101, 0x6dcb, 0x101,
- 0x81e8, 0x101, 0x7acb, 0x101, 0x7b20, 0x101, 0x7c92, 0x101,
- 0x72c0, 0x101, 0x7099, 0x101, 0x8b58, 0x101, 0x4ec0, 0x101,
- 0x8336, 0x101, 0x523a, 0x101, 0x5207, 0x101, 0x5ea6, 0x101,
- 0x62d3, 0x101, 0x7cd6, 0x101, 0x5b85, 0x101, 0x6d1e, 0x101,
- 0x66b4, 0x101, 0x8f3b, 0x101, 0x884c, 0x101, 0x964d, 0x101,
- 0x898b, 0x101, 0x5ed3, 0x101, 0x5140, 0x101, 0x55c0, 0x101,
- 0x585a, 0x101, 0x6674, 0x101, 0x51de, 0x101, 0x732a, 0x101,
- 0x76ca, 0x101, 0x793c, 0x101, 0x795e, 0x101, 0x7965, 0x101,
- 0x798f, 0x101, 0x9756, 0x101, 0x7cbe, 0x101, 0x7fbd, 0x101,
- 0x8612, 0x101, 0x8af8, 0x101, 0x9038, 0x101, 0x90fd, 0x101,
- 0x98ef, 0x101, 0x98fc, 0x101, 0x9928, 0x101, 0x9db4, 0x101,
- 0x90de, 0x101, 0x96b7, 0x101, 0x4fae, 0x101, 0x50e7, 0x101,
- 0x514d, 0x101, 0x52c9, 0x101, 0x52e4, 0x101, 0x5351, 0x101,
- 0x559d, 0x101, 0x5606, 0x101, 0x5668, 0x101, 0x5840, 0x101,
- 0x58a8, 0x101, 0x5c64, 0x101, 0x5c6e, 0x101, 0x6094, 0x101,
- 0x6168, 0x101, 0x618e, 0x101, 0x61f2, 0x101, 0x654f, 0x101,
- 0x65e2, 0x101, 0x6691, 0x101, 0x6885, 0x101, 0x6d77, 0x101,
- 0x6e1a, 0x101, 0x6f22, 0x101, 0x716e, 0x101, 0x722b, 0x101,
- 0x7422, 0x101, 0x7891, 0x101, 0x793e, 0x101, 0x7949, 0x101,
- 0x7948, 0x101, 0x7950, 0x101, 0x7956, 0x101, 0x795d, 0x101,
- 0x798d, 0x101, 0x798e, 0x101, 0x7a40, 0x101, 0x7a81, 0x101,
- 0x7bc0, 0x101, 0x7df4, 0x101, 0x7e09, 0x101, 0x7e41, 0x101,
- 0x7f72, 0x101, 0x8005, 0x101, 0x81ed, 0x101, 0x8279, 0x101,
- 0x8279, 0x101, 0x8457, 0x101, 0x8910, 0x101, 0x8996, 0x101,
- 0x8b01, 0x101, 0x8b39, 0x101, 0x8cd3, 0x101, 0x8d08, 0x101,
- 0x8fb6, 0x101, 0x9038, 0x101, 0x96e3, 0x101, 0x97ff, 0x101,
- 0x983b, 0x101, 0x6075, 0x201, 0xd850, 0xdeee, 0x101, 0x8218,
- 0x101, 0x4e26, 0x101, 0x51b5, 0x101, 0x5168, 0x101, 0x4f80,
- 0x101, 0x5145, 0x101, 0x5180, 0x101, 0x52c7, 0x101, 0x52fa,
- 0x101, 0x559d, 0x101, 0x5555, 0x101, 0x5599, 0x101, 0x55e2,
- 0x101, 0x585a, 0x101, 0x58b3, 0x101, 0x5944, 0x101, 0x5954,
- 0x101, 0x5a62, 0x101, 0x5b28, 0x101, 0x5ed2, 0x101, 0x5ed9,
- 0x101, 0x5f69, 0x101, 0x5fad, 0x101, 0x60d8, 0x101, 0x614e,
- 0x101, 0x6108, 0x101, 0x618e, 0x101, 0x6160, 0x101, 0x61f2,
- 0x101, 0x6234, 0x101, 0x63c4, 0x101, 0x641c, 0x101, 0x6452,
- 0x101, 0x6556, 0x101, 0x6674, 0x101, 0x6717, 0x101, 0x671b,
- 0x101, 0x6756, 0x101, 0x6b79, 0x101, 0x6bba, 0x101, 0x6d41,
- 0x101, 0x6edb, 0x101, 0x6ecb, 0x101, 0x6f22, 0x101, 0x701e,
- 0x101, 0x716e, 0x101, 0x77a7, 0x101, 0x7235, 0x101, 0x72af,
- 0x101, 0x732a, 0x101, 0x7471, 0x101, 0x7506, 0x101, 0x753b,
- 0x101, 0x761d, 0x101, 0x761f, 0x101, 0x76ca, 0x101, 0x76db,
- 0x101, 0x76f4, 0x101, 0x774a, 0x101, 0x7740, 0x101, 0x78cc,
- 0x101, 0x7ab1, 0x101, 0x7bc0, 0x101, 0x7c7b, 0x101, 0x7d5b,
- 0x101, 0x7df4, 0x101, 0x7f3e, 0x101, 0x8005, 0x101, 0x8352,
- 0x101, 0x83ef, 0x101, 0x8779, 0x101, 0x8941, 0x101, 0x8986,
- 0x101, 0x8996, 0x101, 0x8abf, 0x101, 0x8af8, 0x101, 0x8acb,
- 0x101, 0x8b01, 0x101, 0x8afe, 0x101, 0x8aed, 0x101, 0x8b39,
- 0x101, 0x8b8a, 0x101, 0x8d08, 0x101, 0x8f38, 0x101, 0x9072,
- 0x101, 0x9199, 0x101, 0x9276, 0x101, 0x967c, 0x101, 0x96e3,
- 0x101, 0x9756, 0x101, 0x97db, 0x101, 0x97ff, 0x101, 0x980b,
- 0x101, 0x983b, 0x101, 0x9b12, 0x101, 0x9f9c, 0x201, 0xd84a,
- 0xdc4a, 0x201, 0xd84a, 0xdc44, 0x201, 0xd84c, 0xdfd5, 0x101,
- 0x3b9d, 0x101, 0x4018, 0x101, 0x4039, 0x201, 0xd854, 0xde49,
- 0x201, 0xd857, 0xdcd0, 0x201, 0xd85f, 0xded3, 0x101, 0x9f43,
- 0x101, 0x9f8e, 0x210, 0x66, 0x66, 0x210, 0x66, 0x69,
- 0x210, 0x66, 0x6c, 0x310, 0x66, 0x66, 0x69, 0x310,
- 0x66, 0x66, 0x6c, 0x210, 0x17f, 0x74, 0x210, 0x73,
- 0x74, 0x210, 0x574, 0x576, 0x210, 0x574, 0x565, 0x210,
- 0x574, 0x56b, 0x210, 0x57e, 0x576, 0x210, 0x574, 0x56d,
- 0x201, 0x5d9, 0x5b4, 0x201, 0x5f2, 0x5b7, 0x102, 0x5e2,
- 0x102, 0x5d0, 0x102, 0x5d3, 0x102, 0x5d4, 0x102, 0x5db,
- 0x102, 0x5dc, 0x102, 0x5dd, 0x102, 0x5e8, 0x102, 0x5ea,
- 0x102, 0x2b, 0x201, 0x5e9, 0x5c1, 0x201, 0x5e9, 0x5c2,
- 0x201, 0xfb49, 0x5c1, 0x201, 0xfb49, 0x5c2, 0x201, 0x5d0,
- 0x5b7, 0x201, 0x5d0, 0x5b8, 0x201, 0x5d0, 0x5bc, 0x201,
- 0x5d1, 0x5bc, 0x201, 0x5d2, 0x5bc, 0x201, 0x5d3, 0x5bc,
- 0x201, 0x5d4, 0x5bc, 0x201, 0x5d5, 0x5bc, 0x201, 0x5d6,
- 0x5bc, 0x201, 0x5d8, 0x5bc, 0x201, 0x5d9, 0x5bc, 0x201,
- 0x5da, 0x5bc, 0x201, 0x5db, 0x5bc, 0x201, 0x5dc, 0x5bc,
- 0x201, 0x5de, 0x5bc, 0x201, 0x5e0, 0x5bc, 0x201, 0x5e1,
- 0x5bc, 0x201, 0x5e3, 0x5bc, 0x201, 0x5e4, 0x5bc, 0x201,
- 0x5e6, 0x5bc, 0x201, 0x5e7, 0x5bc, 0x201, 0x5e8, 0x5bc,
- 0x201, 0x5e9, 0x5bc, 0x201, 0x5ea, 0x5bc, 0x201, 0x5d5,
- 0x5b9, 0x201, 0x5d1, 0x5bf, 0x201, 0x5db, 0x5bf, 0x201,
- 0x5e4, 0x5bf, 0x210, 0x5d0, 0x5dc, 0x107, 0x671, 0x106,
- 0x671, 0x107, 0x67b, 0x106, 0x67b, 0x104, 0x67b, 0x105,
- 0x67b, 0x107, 0x67e, 0x106, 0x67e, 0x104, 0x67e, 0x105,
- 0x67e, 0x107, 0x680, 0x106, 0x680, 0x104, 0x680, 0x105,
- 0x680, 0x107, 0x67a, 0x106, 0x67a, 0x104, 0x67a, 0x105,
- 0x67a, 0x107, 0x67f, 0x106, 0x67f, 0x104, 0x67f, 0x105,
- 0x67f, 0x107, 0x679, 0x106, 0x679, 0x104, 0x679, 0x105,
- 0x679, 0x107, 0x6a4, 0x106, 0x6a4, 0x104, 0x6a4, 0x105,
- 0x6a4, 0x107, 0x6a6, 0x106, 0x6a6, 0x104, 0x6a6, 0x105,
- 0x6a6, 0x107, 0x684, 0x106, 0x684, 0x104, 0x684, 0x105,
- 0x684, 0x107, 0x683, 0x106, 0x683, 0x104, 0x683, 0x105,
- 0x683, 0x107, 0x686, 0x106, 0x686, 0x104, 0x686, 0x105,
- 0x686, 0x107, 0x687, 0x106, 0x687, 0x104, 0x687, 0x105,
- 0x687, 0x107, 0x68d, 0x106, 0x68d, 0x107, 0x68c, 0x106,
- 0x68c, 0x107, 0x68e, 0x106, 0x68e, 0x107, 0x688, 0x106,
- 0x688, 0x107, 0x698, 0x106, 0x698, 0x107, 0x691, 0x106,
- 0x691, 0x107, 0x6a9, 0x106, 0x6a9, 0x104, 0x6a9, 0x105,
- 0x6a9, 0x107, 0x6af, 0x106, 0x6af, 0x104, 0x6af, 0x105,
- 0x6af, 0x107, 0x6b3, 0x106, 0x6b3, 0x104, 0x6b3, 0x105,
- 0x6b3, 0x107, 0x6b1, 0x106, 0x6b1, 0x104, 0x6b1, 0x105,
- 0x6b1, 0x107, 0x6ba, 0x106, 0x6ba, 0x107, 0x6bb, 0x106,
- 0x6bb, 0x104, 0x6bb, 0x105, 0x6bb, 0x107, 0x6c0, 0x106,
- 0x6c0, 0x107, 0x6c1, 0x106, 0x6c1, 0x104, 0x6c1, 0x105,
- 0x6c1, 0x107, 0x6be, 0x106, 0x6be, 0x104, 0x6be, 0x105,
- 0x6be, 0x107, 0x6d2, 0x106, 0x6d2, 0x107, 0x6d3, 0x106,
- 0x6d3, 0x107, 0x6ad, 0x106, 0x6ad, 0x104, 0x6ad, 0x105,
- 0x6ad, 0x107, 0x6c7, 0x106, 0x6c7, 0x107, 0x6c6, 0x106,
- 0x6c6, 0x107, 0x6c8, 0x106, 0x6c8, 0x107, 0x677, 0x107,
- 0x6cb, 0x106, 0x6cb, 0x107, 0x6c5, 0x106, 0x6c5, 0x107,
- 0x6c9, 0x106, 0x6c9, 0x107, 0x6d0, 0x106, 0x6d0, 0x104,
- 0x6d0, 0x105, 0x6d0, 0x104, 0x649, 0x105, 0x649, 0x207,
- 0x626, 0x627, 0x206, 0x626, 0x627, 0x207, 0x626, 0x6d5,
- 0x206, 0x626, 0x6d5, 0x207, 0x626, 0x648, 0x206, 0x626,
- 0x648, 0x207, 0x626, 0x6c7, 0x206, 0x626, 0x6c7, 0x207,
- 0x626, 0x6c6, 0x206, 0x626, 0x6c6, 0x207, 0x626, 0x6c8,
- 0x206, 0x626, 0x6c8, 0x207, 0x626, 0x6d0, 0x206, 0x626,
- 0x6d0, 0x204, 0x626, 0x6d0, 0x207, 0x626, 0x649, 0x206,
- 0x626, 0x649, 0x204, 0x626, 0x649, 0x107, 0x6cc, 0x106,
- 0x6cc, 0x104, 0x6cc, 0x105, 0x6cc, 0x207, 0x626, 0x62c,
- 0x207, 0x626, 0x62d, 0x207, 0x626, 0x645, 0x207, 0x626,
- 0x649, 0x207, 0x626, 0x64a, 0x207, 0x628, 0x62c, 0x207,
- 0x628, 0x62d, 0x207, 0x628, 0x62e, 0x207, 0x628, 0x645,
- 0x207, 0x628, 0x649, 0x207, 0x628, 0x64a, 0x207, 0x62a,
- 0x62c, 0x207, 0x62a, 0x62d, 0x207, 0x62a, 0x62e, 0x207,
- 0x62a, 0x645, 0x207, 0x62a, 0x649, 0x207, 0x62a, 0x64a,
- 0x207, 0x62b, 0x62c, 0x207, 0x62b, 0x645, 0x207, 0x62b,
- 0x649, 0x207, 0x62b, 0x64a, 0x207, 0x62c, 0x62d, 0x207,
- 0x62c, 0x645, 0x207, 0x62d, 0x62c, 0x207, 0x62d, 0x645,
- 0x207, 0x62e, 0x62c, 0x207, 0x62e, 0x62d, 0x207, 0x62e,
- 0x645, 0x207, 0x633, 0x62c, 0x207, 0x633, 0x62d, 0x207,
- 0x633, 0x62e, 0x207, 0x633, 0x645, 0x207, 0x635, 0x62d,
- 0x207, 0x635, 0x645, 0x207, 0x636, 0x62c, 0x207, 0x636,
- 0x62d, 0x207, 0x636, 0x62e, 0x207, 0x636, 0x645, 0x207,
- 0x637, 0x62d, 0x207, 0x637, 0x645, 0x207, 0x638, 0x645,
- 0x207, 0x639, 0x62c, 0x207, 0x639, 0x645, 0x207, 0x63a,
- 0x62c, 0x207, 0x63a, 0x645, 0x207, 0x641, 0x62c, 0x207,
- 0x641, 0x62d, 0x207, 0x641, 0x62e, 0x207, 0x641, 0x645,
- 0x207, 0x641, 0x649, 0x207, 0x641, 0x64a, 0x207, 0x642,
- 0x62d, 0x207, 0x642, 0x645, 0x207, 0x642, 0x649, 0x207,
- 0x642, 0x64a, 0x207, 0x643, 0x627, 0x207, 0x643, 0x62c,
- 0x207, 0x643, 0x62d, 0x207, 0x643, 0x62e, 0x207, 0x643,
- 0x644, 0x207, 0x643, 0x645, 0x207, 0x643, 0x649, 0x207,
- 0x643, 0x64a, 0x207, 0x644, 0x62c, 0x207, 0x644, 0x62d,
- 0x207, 0x644, 0x62e, 0x207, 0x644, 0x645, 0x207, 0x644,
- 0x649, 0x207, 0x644, 0x64a, 0x207, 0x645, 0x62c, 0x207,
- 0x645, 0x62d, 0x207, 0x645, 0x62e, 0x207, 0x645, 0x645,
- 0x207, 0x645, 0x649, 0x207, 0x645, 0x64a, 0x207, 0x646,
- 0x62c, 0x207, 0x646, 0x62d, 0x207, 0x646, 0x62e, 0x207,
- 0x646, 0x645, 0x207, 0x646, 0x649, 0x207, 0x646, 0x64a,
- 0x207, 0x647, 0x62c, 0x207, 0x647, 0x645, 0x207, 0x647,
- 0x649, 0x207, 0x647, 0x64a, 0x207, 0x64a, 0x62c, 0x207,
- 0x64a, 0x62d, 0x207, 0x64a, 0x62e, 0x207, 0x64a, 0x645,
- 0x207, 0x64a, 0x649, 0x207, 0x64a, 0x64a, 0x207, 0x630,
- 0x670, 0x207, 0x631, 0x670, 0x207, 0x649, 0x670, 0x307,
- 0x20, 0x64c, 0x651, 0x307, 0x20, 0x64d, 0x651, 0x307,
- 0x20, 0x64e, 0x651, 0x307, 0x20, 0x64f, 0x651, 0x307,
- 0x20, 0x650, 0x651, 0x307, 0x20, 0x651, 0x670, 0x206,
- 0x626, 0x631, 0x206, 0x626, 0x632, 0x206, 0x626, 0x645,
- 0x206, 0x626, 0x646, 0x206, 0x626, 0x649, 0x206, 0x626,
- 0x64a, 0x206, 0x628, 0x631, 0x206, 0x628, 0x632, 0x206,
- 0x628, 0x645, 0x206, 0x628, 0x646, 0x206, 0x628, 0x649,
- 0x206, 0x628, 0x64a, 0x206, 0x62a, 0x631, 0x206, 0x62a,
- 0x632, 0x206, 0x62a, 0x645, 0x206, 0x62a, 0x646, 0x206,
- 0x62a, 0x649, 0x206, 0x62a, 0x64a, 0x206, 0x62b, 0x631,
- 0x206, 0x62b, 0x632, 0x206, 0x62b, 0x645, 0x206, 0x62b,
- 0x646, 0x206, 0x62b, 0x649, 0x206, 0x62b, 0x64a, 0x206,
- 0x641, 0x649, 0x206, 0x641, 0x64a, 0x206, 0x642, 0x649,
- 0x206, 0x642, 0x64a, 0x206, 0x643, 0x627, 0x206, 0x643,
- 0x644, 0x206, 0x643, 0x645, 0x206, 0x643, 0x649, 0x206,
- 0x643, 0x64a, 0x206, 0x644, 0x645, 0x206, 0x644, 0x649,
- 0x206, 0x644, 0x64a, 0x206, 0x645, 0x627, 0x206, 0x645,
- 0x645, 0x206, 0x646, 0x631, 0x206, 0x646, 0x632, 0x206,
- 0x646, 0x645, 0x206, 0x646, 0x646, 0x206, 0x646, 0x649,
- 0x206, 0x646, 0x64a, 0x206, 0x649, 0x670, 0x206, 0x64a,
- 0x631, 0x206, 0x64a, 0x632, 0x206, 0x64a, 0x645, 0x206,
- 0x64a, 0x646, 0x206, 0x64a, 0x649, 0x206, 0x64a, 0x64a,
- 0x204, 0x626, 0x62c, 0x204, 0x626, 0x62d, 0x204, 0x626,
- 0x62e, 0x204, 0x626, 0x645, 0x204, 0x626, 0x647, 0x204,
- 0x628, 0x62c, 0x204, 0x628, 0x62d, 0x204, 0x628, 0x62e,
- 0x204, 0x628, 0x645, 0x204, 0x628, 0x647, 0x204, 0x62a,
- 0x62c, 0x204, 0x62a, 0x62d, 0x204, 0x62a, 0x62e, 0x204,
- 0x62a, 0x645, 0x204, 0x62a, 0x647, 0x204, 0x62b, 0x645,
- 0x204, 0x62c, 0x62d, 0x204, 0x62c, 0x645, 0x204, 0x62d,
- 0x62c, 0x204, 0x62d, 0x645, 0x204, 0x62e, 0x62c, 0x204,
- 0x62e, 0x645, 0x204, 0x633, 0x62c, 0x204, 0x633, 0x62d,
- 0x204, 0x633, 0x62e, 0x204, 0x633, 0x645, 0x204, 0x635,
- 0x62d, 0x204, 0x635, 0x62e, 0x204, 0x635, 0x645, 0x204,
- 0x636, 0x62c, 0x204, 0x636, 0x62d, 0x204, 0x636, 0x62e,
- 0x204, 0x636, 0x645, 0x204, 0x637, 0x62d, 0x204, 0x638,
- 0x645, 0x204, 0x639, 0x62c, 0x204, 0x639, 0x645, 0x204,
- 0x63a, 0x62c, 0x204, 0x63a, 0x645, 0x204, 0x641, 0x62c,
- 0x204, 0x641, 0x62d, 0x204, 0x641, 0x62e, 0x204, 0x641,
- 0x645, 0x204, 0x642, 0x62d, 0x204, 0x642, 0x645, 0x204,
- 0x643, 0x62c, 0x204, 0x643, 0x62d, 0x204, 0x643, 0x62e,
- 0x204, 0x643, 0x644, 0x204, 0x643, 0x645, 0x204, 0x644,
- 0x62c, 0x204, 0x644, 0x62d, 0x204, 0x644, 0x62e, 0x204,
- 0x644, 0x645, 0x204, 0x644, 0x647, 0x204, 0x645, 0x62c,
- 0x204, 0x645, 0x62d, 0x204, 0x645, 0x62e, 0x204, 0x645,
- 0x645, 0x204, 0x646, 0x62c, 0x204, 0x646, 0x62d, 0x204,
- 0x646, 0x62e, 0x204, 0x646, 0x645, 0x204, 0x646, 0x647,
- 0x204, 0x647, 0x62c, 0x204, 0x647, 0x645, 0x204, 0x647,
- 0x670, 0x204, 0x64a, 0x62c, 0x204, 0x64a, 0x62d, 0x204,
- 0x64a, 0x62e, 0x204, 0x64a, 0x645, 0x204, 0x64a, 0x647,
- 0x205, 0x626, 0x645, 0x205, 0x626, 0x647, 0x205, 0x628,
- 0x645, 0x205, 0x628, 0x647, 0x205, 0x62a, 0x645, 0x205,
- 0x62a, 0x647, 0x205, 0x62b, 0x645, 0x205, 0x62b, 0x647,
- 0x205, 0x633, 0x645, 0x205, 0x633, 0x647, 0x205, 0x634,
- 0x645, 0x205, 0x634, 0x647, 0x205, 0x643, 0x644, 0x205,
- 0x643, 0x645, 0x205, 0x644, 0x645, 0x205, 0x646, 0x645,
- 0x205, 0x646, 0x647, 0x205, 0x64a, 0x645, 0x205, 0x64a,
- 0x647, 0x305, 0x640, 0x64e, 0x651, 0x305, 0x640, 0x64f,
- 0x651, 0x305, 0x640, 0x650, 0x651, 0x207, 0x637, 0x649,
- 0x207, 0x637, 0x64a, 0x207, 0x639, 0x649, 0x207, 0x639,
- 0x64a, 0x207, 0x63a, 0x649, 0x207, 0x63a, 0x64a, 0x207,
- 0x633, 0x649, 0x207, 0x633, 0x64a, 0x207, 0x634, 0x649,
- 0x207, 0x634, 0x64a, 0x207, 0x62d, 0x649, 0x207, 0x62d,
- 0x64a, 0x207, 0x62c, 0x649, 0x207, 0x62c, 0x64a, 0x207,
- 0x62e, 0x649, 0x207, 0x62e, 0x64a, 0x207, 0x635, 0x649,
- 0x207, 0x635, 0x64a, 0x207, 0x636, 0x649, 0x207, 0x636,
- 0x64a, 0x207, 0x634, 0x62c, 0x207, 0x634, 0x62d, 0x207,
- 0x634, 0x62e, 0x207, 0x634, 0x645, 0x207, 0x634, 0x631,
- 0x207, 0x633, 0x631, 0x207, 0x635, 0x631, 0x207, 0x636,
- 0x631, 0x206, 0x637, 0x649, 0x206, 0x637, 0x64a, 0x206,
- 0x639, 0x649, 0x206, 0x639, 0x64a, 0x206, 0x63a, 0x649,
- 0x206, 0x63a, 0x64a, 0x206, 0x633, 0x649, 0x206, 0x633,
- 0x64a, 0x206, 0x634, 0x649, 0x206, 0x634, 0x64a, 0x206,
- 0x62d, 0x649, 0x206, 0x62d, 0x64a, 0x206, 0x62c, 0x649,
- 0x206, 0x62c, 0x64a, 0x206, 0x62e, 0x649, 0x206, 0x62e,
- 0x64a, 0x206, 0x635, 0x649, 0x206, 0x635, 0x64a, 0x206,
- 0x636, 0x649, 0x206, 0x636, 0x64a, 0x206, 0x634, 0x62c,
- 0x206, 0x634, 0x62d, 0x206, 0x634, 0x62e, 0x206, 0x634,
- 0x645, 0x206, 0x634, 0x631, 0x206, 0x633, 0x631, 0x206,
- 0x635, 0x631, 0x206, 0x636, 0x631, 0x204, 0x634, 0x62c,
- 0x204, 0x634, 0x62d, 0x204, 0x634, 0x62e, 0x204, 0x634,
- 0x645, 0x204, 0x633, 0x647, 0x204, 0x634, 0x647, 0x204,
- 0x637, 0x645, 0x205, 0x633, 0x62c, 0x205, 0x633, 0x62d,
- 0x205, 0x633, 0x62e, 0x205, 0x634, 0x62c, 0x205, 0x634,
- 0x62d, 0x205, 0x634, 0x62e, 0x205, 0x637, 0x645, 0x205,
- 0x638, 0x645, 0x206, 0x627, 0x64b, 0x207, 0x627, 0x64b,
- 0x304, 0x62a, 0x62c, 0x645, 0x306, 0x62a, 0x62d, 0x62c,
- 0x304, 0x62a, 0x62d, 0x62c, 0x304, 0x62a, 0x62d, 0x645,
- 0x304, 0x62a, 0x62e, 0x645, 0x304, 0x62a, 0x645, 0x62c,
- 0x304, 0x62a, 0x645, 0x62d, 0x304, 0x62a, 0x645, 0x62e,
- 0x306, 0x62c, 0x645, 0x62d, 0x304, 0x62c, 0x645, 0x62d,
- 0x306, 0x62d, 0x645, 0x64a, 0x306, 0x62d, 0x645, 0x649,
- 0x304, 0x633, 0x62d, 0x62c, 0x304, 0x633, 0x62c, 0x62d,
- 0x306, 0x633, 0x62c, 0x649, 0x306, 0x633, 0x645, 0x62d,
- 0x304, 0x633, 0x645, 0x62d, 0x304, 0x633, 0x645, 0x62c,
- 0x306, 0x633, 0x645, 0x645, 0x304, 0x633, 0x645, 0x645,
- 0x306, 0x635, 0x62d, 0x62d, 0x304, 0x635, 0x62d, 0x62d,
- 0x306, 0x635, 0x645, 0x645, 0x306, 0x634, 0x62d, 0x645,
- 0x304, 0x634, 0x62d, 0x645, 0x306, 0x634, 0x62c, 0x64a,
- 0x306, 0x634, 0x645, 0x62e, 0x304, 0x634, 0x645, 0x62e,
- 0x306, 0x634, 0x645, 0x645, 0x304, 0x634, 0x645, 0x645,
- 0x306, 0x636, 0x62d, 0x649, 0x306, 0x636, 0x62e, 0x645,
- 0x304, 0x636, 0x62e, 0x645, 0x306, 0x637, 0x645, 0x62d,
- 0x304, 0x637, 0x645, 0x62d, 0x304, 0x637, 0x645, 0x645,
- 0x306, 0x637, 0x645, 0x64a, 0x306, 0x639, 0x62c, 0x645,
- 0x306, 0x639, 0x645, 0x645, 0x304, 0x639, 0x645, 0x645,
- 0x306, 0x639, 0x645, 0x649, 0x306, 0x63a, 0x645, 0x645,
- 0x306, 0x63a, 0x645, 0x64a, 0x306, 0x63a, 0x645, 0x649,
- 0x306, 0x641, 0x62e, 0x645, 0x304, 0x641, 0x62e, 0x645,
- 0x306, 0x642, 0x645, 0x62d, 0x306, 0x642, 0x645, 0x645,
- 0x306, 0x644, 0x62d, 0x645, 0x306, 0x644, 0x62d, 0x64a,
- 0x306, 0x644, 0x62d, 0x649, 0x304, 0x644, 0x62c, 0x62c,
- 0x306, 0x644, 0x62c, 0x62c, 0x306, 0x644, 0x62e, 0x645,
- 0x304, 0x644, 0x62e, 0x645, 0x306, 0x644, 0x645, 0x62d,
- 0x304, 0x644, 0x645, 0x62d, 0x304, 0x645, 0x62d, 0x62c,
- 0x304, 0x645, 0x62d, 0x645, 0x306, 0x645, 0x62d, 0x64a,
- 0x304, 0x645, 0x62c, 0x62d, 0x304, 0x645, 0x62c, 0x645,
- 0x304, 0x645, 0x62e, 0x62c, 0x304, 0x645, 0x62e, 0x645,
- 0x304, 0x645, 0x62c, 0x62e, 0x304, 0x647, 0x645, 0x62c,
- 0x304, 0x647, 0x645, 0x645, 0x304, 0x646, 0x62d, 0x645,
- 0x306, 0x646, 0x62d, 0x649, 0x306, 0x646, 0x62c, 0x645,
- 0x304, 0x646, 0x62c, 0x645, 0x306, 0x646, 0x62c, 0x649,
- 0x306, 0x646, 0x645, 0x64a, 0x306, 0x646, 0x645, 0x649,
- 0x306, 0x64a, 0x645, 0x645, 0x304, 0x64a, 0x645, 0x645,
- 0x306, 0x628, 0x62e, 0x64a, 0x306, 0x62a, 0x62c, 0x64a,
- 0x306, 0x62a, 0x62c, 0x649, 0x306, 0x62a, 0x62e, 0x64a,
- 0x306, 0x62a, 0x62e, 0x649, 0x306, 0x62a, 0x645, 0x64a,
- 0x306, 0x62a, 0x645, 0x649, 0x306, 0x62c, 0x645, 0x64a,
- 0x306, 0x62c, 0x62d, 0x649, 0x306, 0x62c, 0x645, 0x649,
- 0x306, 0x633, 0x62e, 0x649, 0x306, 0x635, 0x62d, 0x64a,
- 0x306, 0x634, 0x62d, 0x64a, 0x306, 0x636, 0x62d, 0x64a,
- 0x306, 0x644, 0x62c, 0x64a, 0x306, 0x644, 0x645, 0x64a,
- 0x306, 0x64a, 0x62d, 0x64a, 0x306, 0x64a, 0x62c, 0x64a,
- 0x306, 0x64a, 0x645, 0x64a, 0x306, 0x645, 0x645, 0x64a,
- 0x306, 0x642, 0x645, 0x64a, 0x306, 0x646, 0x62d, 0x64a,
- 0x304, 0x642, 0x645, 0x62d, 0x304, 0x644, 0x62d, 0x645,
- 0x306, 0x639, 0x645, 0x64a, 0x306, 0x643, 0x645, 0x64a,
- 0x304, 0x646, 0x62c, 0x62d, 0x306, 0x645, 0x62e, 0x64a,
- 0x304, 0x644, 0x62c, 0x645, 0x306, 0x643, 0x645, 0x645,
- 0x306, 0x644, 0x62c, 0x645, 0x306, 0x646, 0x62c, 0x62d,
- 0x306, 0x62c, 0x62d, 0x64a, 0x306, 0x62d, 0x62c, 0x64a,
- 0x306, 0x645, 0x62c, 0x64a, 0x306, 0x641, 0x645, 0x64a,
- 0x306, 0x628, 0x62d, 0x64a, 0x304, 0x643, 0x645, 0x645,
- 0x304, 0x639, 0x62c, 0x645, 0x304, 0x635, 0x645, 0x645,
- 0x306, 0x633, 0x62e, 0x64a, 0x306, 0x646, 0x62c, 0x64a,
- 0x307, 0x635, 0x644, 0x6d2, 0x307, 0x642, 0x644, 0x6d2,
- 0x407, 0x627, 0x644, 0x644, 0x647, 0x407, 0x627, 0x643,
- 0x628, 0x631, 0x407, 0x645, 0x62d, 0x645, 0x62f, 0x407,
- 0x635, 0x644, 0x639, 0x645, 0x407, 0x631, 0x633, 0x648,
- 0x644, 0x407, 0x639, 0x644, 0x64a, 0x647, 0x407, 0x648,
- 0x633, 0x644, 0x645, 0x307, 0x635, 0x644, 0x649, 0x1207,
- 0x635, 0x644, 0x649, 0x20, 0x627, 0x644, 0x644, 0x647,
- 0x20, 0x639, 0x644, 0x64a, 0x647, 0x20, 0x648, 0x633,
- 0x644, 0x645, 0x807, 0x62c, 0x644, 0x20, 0x62c, 0x644,
- 0x627, 0x644, 0x647, 0x407, 0x631, 0x6cc, 0x627, 0x644,
- 0x10b, 0x2c, 0x10b, 0x3001, 0x10b, 0x3002, 0x10b, 0x3a,
- 0x10b, 0x3b, 0x10b, 0x21, 0x10b, 0x3f, 0x10b, 0x3016,
- 0x10b, 0x3017, 0x10b, 0x2026, 0x10b, 0x2025, 0x10b, 0x2014,
- 0x10b, 0x2013, 0x10b, 0x5f, 0x10b, 0x5f, 0x10b, 0x28,
- 0x10b, 0x29, 0x10b, 0x7b, 0x10b, 0x7d, 0x10b, 0x3014,
- 0x10b, 0x3015, 0x10b, 0x3010, 0x10b, 0x3011, 0x10b, 0x300a,
- 0x10b, 0x300b, 0x10b, 0x3008, 0x10b, 0x3009, 0x10b, 0x300c,
- 0x10b, 0x300d, 0x10b, 0x300e, 0x10b, 0x300f, 0x10b, 0x5b,
- 0x10b, 0x5d, 0x110, 0x203e, 0x110, 0x203e, 0x110, 0x203e,
- 0x110, 0x203e, 0x110, 0x5f, 0x110, 0x5f, 0x110, 0x5f,
- 0x10e, 0x2c, 0x10e, 0x3001, 0x10e, 0x2e, 0x10e, 0x3b,
- 0x10e, 0x3a, 0x10e, 0x3f, 0x10e, 0x21, 0x10e, 0x2014,
- 0x10e, 0x28, 0x10e, 0x29, 0x10e, 0x7b, 0x10e, 0x7d,
- 0x10e, 0x3014, 0x10e, 0x3015, 0x10e, 0x23, 0x10e, 0x26,
- 0x10e, 0x2a, 0x10e, 0x2b, 0x10e, 0x2d, 0x10e, 0x3c,
- 0x10e, 0x3e, 0x10e, 0x3d, 0x10e, 0x5c, 0x10e, 0x24,
- 0x10e, 0x25, 0x10e, 0x40, 0x207, 0x20, 0x64b, 0x205,
- 0x640, 0x64b, 0x207, 0x20, 0x64c, 0x207, 0x20, 0x64d,
- 0x207, 0x20, 0x64e, 0x205, 0x640, 0x64e, 0x207, 0x20,
- 0x64f, 0x205, 0x640, 0x64f, 0x207, 0x20, 0x650, 0x205,
- 0x640, 0x650, 0x207, 0x20, 0x651, 0x205, 0x640, 0x651,
- 0x207, 0x20, 0x652, 0x205, 0x640, 0x652, 0x107, 0x621,
- 0x107, 0x622, 0x106, 0x622, 0x107, 0x623, 0x106, 0x623,
- 0x107, 0x624, 0x106, 0x624, 0x107, 0x625, 0x106, 0x625,
- 0x107, 0x626, 0x106, 0x626, 0x104, 0x626, 0x105, 0x626,
- 0x107, 0x627, 0x106, 0x627, 0x107, 0x628, 0x106, 0x628,
- 0x104, 0x628, 0x105, 0x628, 0x107, 0x629, 0x106, 0x629,
- 0x107, 0x62a, 0x106, 0x62a, 0x104, 0x62a, 0x105, 0x62a,
- 0x107, 0x62b, 0x106, 0x62b, 0x104, 0x62b, 0x105, 0x62b,
- 0x107, 0x62c, 0x106, 0x62c, 0x104, 0x62c, 0x105, 0x62c,
- 0x107, 0x62d, 0x106, 0x62d, 0x104, 0x62d, 0x105, 0x62d,
- 0x107, 0x62e, 0x106, 0x62e, 0x104, 0x62e, 0x105, 0x62e,
- 0x107, 0x62f, 0x106, 0x62f, 0x107, 0x630, 0x106, 0x630,
- 0x107, 0x631, 0x106, 0x631, 0x107, 0x632, 0x106, 0x632,
- 0x107, 0x633, 0x106, 0x633, 0x104, 0x633, 0x105, 0x633,
- 0x107, 0x634, 0x106, 0x634, 0x104, 0x634, 0x105, 0x634,
- 0x107, 0x635, 0x106, 0x635, 0x104, 0x635, 0x105, 0x635,
- 0x107, 0x636, 0x106, 0x636, 0x104, 0x636, 0x105, 0x636,
- 0x107, 0x637, 0x106, 0x637, 0x104, 0x637, 0x105, 0x637,
- 0x107, 0x638, 0x106, 0x638, 0x104, 0x638, 0x105, 0x638,
- 0x107, 0x639, 0x106, 0x639, 0x104, 0x639, 0x105, 0x639,
- 0x107, 0x63a, 0x106, 0x63a, 0x104, 0x63a, 0x105, 0x63a,
- 0x107, 0x641, 0x106, 0x641, 0x104, 0x641, 0x105, 0x641,
- 0x107, 0x642, 0x106, 0x642, 0x104, 0x642, 0x105, 0x642,
- 0x107, 0x643, 0x106, 0x643, 0x104, 0x643, 0x105, 0x643,
- 0x107, 0x644, 0x106, 0x644, 0x104, 0x644, 0x105, 0x644,
- 0x107, 0x645, 0x106, 0x645, 0x104, 0x645, 0x105, 0x645,
- 0x107, 0x646, 0x106, 0x646, 0x104, 0x646, 0x105, 0x646,
- 0x107, 0x647, 0x106, 0x647, 0x104, 0x647, 0x105, 0x647,
- 0x107, 0x648, 0x106, 0x648, 0x107, 0x649, 0x106, 0x649,
- 0x107, 0x64a, 0x106, 0x64a, 0x104, 0x64a, 0x105, 0x64a,
- 0x207, 0x644, 0x622, 0x206, 0x644, 0x622, 0x207, 0x644,
- 0x623, 0x206, 0x644, 0x623, 0x207, 0x644, 0x625, 0x206,
- 0x644, 0x625, 0x207, 0x644, 0x627, 0x206, 0x644, 0x627,
- 0x10c, 0x21, 0x10c, 0x22, 0x10c, 0x23, 0x10c, 0x24,
- 0x10c, 0x25, 0x10c, 0x26, 0x10c, 0x27, 0x10c, 0x28,
- 0x10c, 0x29, 0x10c, 0x2a, 0x10c, 0x2b, 0x10c, 0x2c,
- 0x10c, 0x2d, 0x10c, 0x2e, 0x10c, 0x2f, 0x10c, 0x30,
- 0x10c, 0x31, 0x10c, 0x32, 0x10c, 0x33, 0x10c, 0x34,
- 0x10c, 0x35, 0x10c, 0x36, 0x10c, 0x37, 0x10c, 0x38,
- 0x10c, 0x39, 0x10c, 0x3a, 0x10c, 0x3b, 0x10c, 0x3c,
- 0x10c, 0x3d, 0x10c, 0x3e, 0x10c, 0x3f, 0x10c, 0x40,
- 0x10c, 0x41, 0x10c, 0x42, 0x10c, 0x43, 0x10c, 0x44,
- 0x10c, 0x45, 0x10c, 0x46, 0x10c, 0x47, 0x10c, 0x48,
- 0x10c, 0x49, 0x10c, 0x4a, 0x10c, 0x4b, 0x10c, 0x4c,
- 0x10c, 0x4d, 0x10c, 0x4e, 0x10c, 0x4f, 0x10c, 0x50,
- 0x10c, 0x51, 0x10c, 0x52, 0x10c, 0x53, 0x10c, 0x54,
- 0x10c, 0x55, 0x10c, 0x56, 0x10c, 0x57, 0x10c, 0x58,
- 0x10c, 0x59, 0x10c, 0x5a, 0x10c, 0x5b, 0x10c, 0x5c,
- 0x10c, 0x5d, 0x10c, 0x5e, 0x10c, 0x5f, 0x10c, 0x60,
- 0x10c, 0x61, 0x10c, 0x62, 0x10c, 0x63, 0x10c, 0x64,
- 0x10c, 0x65, 0x10c, 0x66, 0x10c, 0x67, 0x10c, 0x68,
- 0x10c, 0x69, 0x10c, 0x6a, 0x10c, 0x6b, 0x10c, 0x6c,
- 0x10c, 0x6d, 0x10c, 0x6e, 0x10c, 0x6f, 0x10c, 0x70,
- 0x10c, 0x71, 0x10c, 0x72, 0x10c, 0x73, 0x10c, 0x74,
- 0x10c, 0x75, 0x10c, 0x76, 0x10c, 0x77, 0x10c, 0x78,
- 0x10c, 0x79, 0x10c, 0x7a, 0x10c, 0x7b, 0x10c, 0x7c,
- 0x10c, 0x7d, 0x10c, 0x7e, 0x10c, 0x2985, 0x10c, 0x2986,
- 0x10d, 0x3002, 0x10d, 0x300c, 0x10d, 0x300d, 0x10d, 0x3001,
- 0x10d, 0x30fb, 0x10d, 0x30f2, 0x10d, 0x30a1, 0x10d, 0x30a3,
- 0x10d, 0x30a5, 0x10d, 0x30a7, 0x10d, 0x30a9, 0x10d, 0x30e3,
- 0x10d, 0x30e5, 0x10d, 0x30e7, 0x10d, 0x30c3, 0x10d, 0x30fc,
- 0x10d, 0x30a2, 0x10d, 0x30a4, 0x10d, 0x30a6, 0x10d, 0x30a8,
- 0x10d, 0x30aa, 0x10d, 0x30ab, 0x10d, 0x30ad, 0x10d, 0x30af,
- 0x10d, 0x30b1, 0x10d, 0x30b3, 0x10d, 0x30b5, 0x10d, 0x30b7,
- 0x10d, 0x30b9, 0x10d, 0x30bb, 0x10d, 0x30bd, 0x10d, 0x30bf,
- 0x10d, 0x30c1, 0x10d, 0x30c4, 0x10d, 0x30c6, 0x10d, 0x30c8,
- 0x10d, 0x30ca, 0x10d, 0x30cb, 0x10d, 0x30cc, 0x10d, 0x30cd,
- 0x10d, 0x30ce, 0x10d, 0x30cf, 0x10d, 0x30d2, 0x10d, 0x30d5,
- 0x10d, 0x30d8, 0x10d, 0x30db, 0x10d, 0x30de, 0x10d, 0x30df,
- 0x10d, 0x30e0, 0x10d, 0x30e1, 0x10d, 0x30e2, 0x10d, 0x30e4,
- 0x10d, 0x30e6, 0x10d, 0x30e8, 0x10d, 0x30e9, 0x10d, 0x30ea,
- 0x10d, 0x30eb, 0x10d, 0x30ec, 0x10d, 0x30ed, 0x10d, 0x30ef,
- 0x10d, 0x30f3, 0x10d, 0x3099, 0x10d, 0x309a, 0x10d, 0x3164,
- 0x10d, 0x3131, 0x10d, 0x3132, 0x10d, 0x3133, 0x10d, 0x3134,
- 0x10d, 0x3135, 0x10d, 0x3136, 0x10d, 0x3137, 0x10d, 0x3138,
- 0x10d, 0x3139, 0x10d, 0x313a, 0x10d, 0x313b, 0x10d, 0x313c,
- 0x10d, 0x313d, 0x10d, 0x313e, 0x10d, 0x313f, 0x10d, 0x3140,
- 0x10d, 0x3141, 0x10d, 0x3142, 0x10d, 0x3143, 0x10d, 0x3144,
- 0x10d, 0x3145, 0x10d, 0x3146, 0x10d, 0x3147, 0x10d, 0x3148,
- 0x10d, 0x3149, 0x10d, 0x314a, 0x10d, 0x314b, 0x10d, 0x314c,
- 0x10d, 0x314d, 0x10d, 0x314e, 0x10d, 0x314f, 0x10d, 0x3150,
- 0x10d, 0x3151, 0x10d, 0x3152, 0x10d, 0x3153, 0x10d, 0x3154,
- 0x10d, 0x3155, 0x10d, 0x3156, 0x10d, 0x3157, 0x10d, 0x3158,
- 0x10d, 0x3159, 0x10d, 0x315a, 0x10d, 0x315b, 0x10d, 0x315c,
- 0x10d, 0x315d, 0x10d, 0x315e, 0x10d, 0x315f, 0x10d, 0x3160,
- 0x10d, 0x3161, 0x10d, 0x3162, 0x10d, 0x3163, 0x10c, 0xa2,
- 0x10c, 0xa3, 0x10c, 0xac, 0x10c, 0xaf, 0x10c, 0xa6,
- 0x10c, 0xa5, 0x10c, 0x20a9, 0x10d, 0x2502, 0x10d, 0x2190,
- 0x10d, 0x2191, 0x10d, 0x2192, 0x10d, 0x2193, 0x10d, 0x25a0,
- 0x10d, 0x25cb, 0x401, 0xd804, 0xdc99, 0xd804, 0xdcba, 0x401,
- 0xd804, 0xdc9b, 0xd804, 0xdcba, 0x401, 0xd804, 0xdca5, 0xd804,
- 0xdcba, 0x401, 0xd804, 0xdd31, 0xd804, 0xdd27, 0x401, 0xd804,
- 0xdd32, 0xd804, 0xdd27, 0x401, 0xd834, 0xdd57, 0xd834, 0xdd65,
- 0x401, 0xd834, 0xdd58, 0xd834, 0xdd65, 0x401, 0xd834, 0xdd5f,
- 0xd834, 0xdd6e, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd6f, 0x401,
- 0xd834, 0xdd5f, 0xd834, 0xdd70, 0x401, 0xd834, 0xdd5f, 0xd834,
- 0xdd71, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd72, 0x401, 0xd834,
- 0xddb9, 0xd834, 0xdd65, 0x401, 0xd834, 0xddba, 0xd834, 0xdd65,
- 0x401, 0xd834, 0xddbb, 0xd834, 0xdd6e, 0x401, 0xd834, 0xddbc,
- 0xd834, 0xdd6e, 0x401, 0xd834, 0xddbb, 0xd834, 0xdd6f, 0x401,
- 0xd834, 0xddbc, 0xd834, 0xdd6f, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x69,
- 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d,
- 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71,
- 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75,
- 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79,
- 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x43,
- 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47,
- 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102, 0x4b,
- 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102, 0x4f,
- 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102, 0x53,
- 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57,
- 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61,
- 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65,
- 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69,
- 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d,
- 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71,
- 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75,
- 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79,
- 0x102, 0x7a, 0x102, 0x41, 0x102, 0x43, 0x102, 0x44,
- 0x102, 0x47, 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x53,
- 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57,
- 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61,
- 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x66,
- 0x102, 0x68, 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b,
- 0x102, 0x6c, 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47,
- 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d,
- 0x102, 0x4e, 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x61,
- 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65,
- 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69,
- 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d,
- 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71,
- 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75,
- 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79,
- 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x44,
- 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, 0x102, 0x49,
- 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d,
- 0x102, 0x4f, 0x102, 0x53, 0x102, 0x54, 0x102, 0x55,
- 0x102, 0x56, 0x102, 0x57, 0x102, 0x58, 0x102, 0x59,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42,
- 0x102, 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46,
- 0x102, 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a,
- 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e,
- 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52,
- 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56,
- 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a,
- 0x102, 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64,
- 0x102, 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68,
- 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c,
- 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70,
- 0x102, 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74,
- 0x102, 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78,
- 0x102, 0x79, 0x102, 0x7a, 0x102, 0x131, 0x102, 0x237,
- 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394,
- 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398,
- 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c,
- 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0,
- 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4,
- 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8,
- 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2,
- 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6,
- 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba,
- 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be,
- 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2,
- 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6,
- 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202,
- 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5,
- 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392,
- 0x102, 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396,
- 0x102, 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a,
- 0x102, 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e,
- 0x102, 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4,
- 0x102, 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6,
- 0x102, 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207,
- 0x102, 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4,
- 0x102, 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8,
- 0x102, 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc,
- 0x102, 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0,
- 0x102, 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4,
- 0x102, 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8,
- 0x102, 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1,
- 0x102, 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6,
- 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394,
- 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398,
- 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c,
- 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0,
- 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4,
- 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8,
- 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2,
- 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6,
- 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba,
- 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be,
- 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2,
- 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6,
- 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202,
- 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5,
- 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392,
- 0x102, 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396,
- 0x102, 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a,
- 0x102, 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e,
- 0x102, 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4,
- 0x102, 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6,
- 0x102, 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207,
- 0x102, 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4,
- 0x102, 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8,
- 0x102, 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc,
- 0x102, 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0,
- 0x102, 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4,
- 0x102, 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8,
- 0x102, 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1,
- 0x102, 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6,
- 0x102, 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394,
- 0x102, 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398,
- 0x102, 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c,
- 0x102, 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0,
- 0x102, 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4,
- 0x102, 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8,
- 0x102, 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2,
- 0x102, 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6,
- 0x102, 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba,
- 0x102, 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be,
- 0x102, 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2,
- 0x102, 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6,
- 0x102, 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202,
- 0x102, 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5,
- 0x102, 0x3f1, 0x102, 0x3d6, 0x102, 0x3dc, 0x102, 0x3dd,
- 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33,
- 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37,
- 0x102, 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31,
- 0x102, 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35,
- 0x102, 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39,
- 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33,
- 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37,
- 0x102, 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31,
- 0x102, 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35,
- 0x102, 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39,
- 0x102, 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33,
- 0x102, 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37,
- 0x102, 0x38, 0x102, 0x39, 0x102, 0x627, 0x102, 0x628,
- 0x102, 0x62c, 0x102, 0x62f, 0x102, 0x648, 0x102, 0x632,
- 0x102, 0x62d, 0x102, 0x637, 0x102, 0x64a, 0x102, 0x643,
- 0x102, 0x644, 0x102, 0x645, 0x102, 0x646, 0x102, 0x633,
- 0x102, 0x639, 0x102, 0x641, 0x102, 0x635, 0x102, 0x642,
- 0x102, 0x631, 0x102, 0x634, 0x102, 0x62a, 0x102, 0x62b,
- 0x102, 0x62e, 0x102, 0x630, 0x102, 0x636, 0x102, 0x638,
- 0x102, 0x63a, 0x102, 0x66e, 0x102, 0x6ba, 0x102, 0x6a1,
- 0x102, 0x66f, 0x102, 0x628, 0x102, 0x62c, 0x102, 0x647,
- 0x102, 0x62d, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x644,
- 0x102, 0x645, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639,
- 0x102, 0x641, 0x102, 0x635, 0x102, 0x642, 0x102, 0x634,
- 0x102, 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x636,
- 0x102, 0x63a, 0x102, 0x62c, 0x102, 0x62d, 0x102, 0x64a,
- 0x102, 0x644, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639,
- 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62e,
- 0x102, 0x636, 0x102, 0x63a, 0x102, 0x6ba, 0x102, 0x66f,
- 0x102, 0x628, 0x102, 0x62c, 0x102, 0x647, 0x102, 0x62d,
- 0x102, 0x637, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x645,
- 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641,
- 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62a,
- 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x636, 0x102, 0x638,
- 0x102, 0x63a, 0x102, 0x66e, 0x102, 0x6a1, 0x102, 0x627,
- 0x102, 0x628, 0x102, 0x62c, 0x102, 0x62f, 0x102, 0x647,
- 0x102, 0x648, 0x102, 0x632, 0x102, 0x62d, 0x102, 0x637,
- 0x102, 0x64a, 0x102, 0x644, 0x102, 0x645, 0x102, 0x646,
- 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, 0x102, 0x635,
- 0x102, 0x642, 0x102, 0x631, 0x102, 0x634, 0x102, 0x62a,
- 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x630, 0x102, 0x636,
- 0x102, 0x638, 0x102, 0x63a, 0x102, 0x628, 0x102, 0x62c,
- 0x102, 0x62f, 0x102, 0x648, 0x102, 0x632, 0x102, 0x62d,
- 0x102, 0x637, 0x102, 0x64a, 0x102, 0x644, 0x102, 0x645,
- 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641,
- 0x102, 0x635, 0x102, 0x642, 0x102, 0x631, 0x102, 0x634,
- 0x102, 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x630,
- 0x102, 0x636, 0x102, 0x638, 0x102, 0x63a, 0x210, 0x30,
- 0x2e, 0x210, 0x30, 0x2c, 0x210, 0x31, 0x2c, 0x210,
- 0x32, 0x2c, 0x210, 0x33, 0x2c, 0x210, 0x34, 0x2c,
- 0x210, 0x35, 0x2c, 0x210, 0x36, 0x2c, 0x210, 0x37,
- 0x2c, 0x210, 0x38, 0x2c, 0x210, 0x39, 0x2c, 0x310,
- 0x28, 0x41, 0x29, 0x310, 0x28, 0x42, 0x29, 0x310,
- 0x28, 0x43, 0x29, 0x310, 0x28, 0x44, 0x29, 0x310,
- 0x28, 0x45, 0x29, 0x310, 0x28, 0x46, 0x29, 0x310,
- 0x28, 0x47, 0x29, 0x310, 0x28, 0x48, 0x29, 0x310,
- 0x28, 0x49, 0x29, 0x310, 0x28, 0x4a, 0x29, 0x310,
- 0x28, 0x4b, 0x29, 0x310, 0x28, 0x4c, 0x29, 0x310,
- 0x28, 0x4d, 0x29, 0x310, 0x28, 0x4e, 0x29, 0x310,
- 0x28, 0x4f, 0x29, 0x310, 0x28, 0x50, 0x29, 0x310,
- 0x28, 0x51, 0x29, 0x310, 0x28, 0x52, 0x29, 0x310,
- 0x28, 0x53, 0x29, 0x310, 0x28, 0x54, 0x29, 0x310,
- 0x28, 0x55, 0x29, 0x310, 0x28, 0x56, 0x29, 0x310,
- 0x28, 0x57, 0x29, 0x310, 0x28, 0x58, 0x29, 0x310,
- 0x28, 0x59, 0x29, 0x310, 0x28, 0x5a, 0x29, 0x310,
- 0x3014, 0x53, 0x3015, 0x108, 0x43, 0x108, 0x52, 0x208,
- 0x43, 0x44, 0x208, 0x57, 0x5a, 0x10f, 0x41, 0x10f,
- 0x42, 0x10f, 0x43, 0x10f, 0x44, 0x10f, 0x45, 0x10f,
- 0x46, 0x10f, 0x47, 0x10f, 0x48, 0x10f, 0x49, 0x10f,
- 0x4a, 0x10f, 0x4b, 0x10f, 0x4c, 0x10f, 0x4d, 0x10f,
- 0x4e, 0x10f, 0x4f, 0x10f, 0x50, 0x10f, 0x51, 0x10f,
- 0x52, 0x10f, 0x53, 0x10f, 0x54, 0x10f, 0x55, 0x10f,
- 0x56, 0x10f, 0x57, 0x10f, 0x58, 0x10f, 0x59, 0x10f,
- 0x5a, 0x20f, 0x48, 0x56, 0x20f, 0x4d, 0x56, 0x20f,
- 0x53, 0x44, 0x20f, 0x53, 0x53, 0x30f, 0x50, 0x50,
- 0x56, 0x20f, 0x57, 0x43, 0x209, 0x4d, 0x43, 0x209,
- 0x4d, 0x44, 0x20f, 0x44, 0x4a, 0x20f, 0x307b, 0x304b,
- 0x20f, 0x30b3, 0x30b3, 0x10f, 0x30b5, 0x10f, 0x624b, 0x10f,
- 0x5b57, 0x10f, 0x53cc, 0x10f, 0x30c7, 0x10f, 0x4e8c, 0x10f,
- 0x591a, 0x10f, 0x89e3, 0x10f, 0x5929, 0x10f, 0x4ea4, 0x10f,
- 0x6620, 0x10f, 0x7121, 0x10f, 0x6599, 0x10f, 0x524d, 0x10f,
- 0x5f8c, 0x10f, 0x518d, 0x10f, 0x65b0, 0x10f, 0x521d, 0x10f,
- 0x7d42, 0x10f, 0x751f, 0x10f, 0x8ca9, 0x10f, 0x58f0, 0x10f,
- 0x5439, 0x10f, 0x6f14, 0x10f, 0x6295, 0x10f, 0x6355, 0x10f,
- 0x4e00, 0x10f, 0x4e09, 0x10f, 0x904a, 0x10f, 0x5de6, 0x10f,
- 0x4e2d, 0x10f, 0x53f3, 0x10f, 0x6307, 0x10f, 0x8d70, 0x10f,
- 0x6253, 0x10f, 0x7981, 0x10f, 0x7a7a, 0x10f, 0x5408, 0x10f,
- 0x6e80, 0x10f, 0x6709, 0x10f, 0x6708, 0x10f, 0x7533, 0x10f,
- 0x5272, 0x10f, 0x55b6, 0x310, 0x3014, 0x672c, 0x3015, 0x310,
- 0x3014, 0x4e09, 0x3015, 0x310, 0x3014, 0x4e8c, 0x3015, 0x310,
- 0x3014, 0x5b89, 0x3015, 0x310, 0x3014, 0x70b9, 0x3015, 0x310,
- 0x3014, 0x6253, 0x3015, 0x310, 0x3014, 0x76d7, 0x3015, 0x310,
- 0x3014, 0x52dd, 0x3015, 0x310, 0x3014, 0x6557, 0x3015, 0x108,
- 0x5f97, 0x108, 0x53ef, 0x101, 0x4e3d, 0x101, 0x4e38, 0x101,
- 0x4e41, 0x201, 0xd840, 0xdd22, 0x101, 0x4f60, 0x101, 0x4fae,
- 0x101, 0x4fbb, 0x101, 0x5002, 0x101, 0x507a, 0x101, 0x5099,
- 0x101, 0x50e7, 0x101, 0x50cf, 0x101, 0x349e, 0x201, 0xd841,
- 0xde3a, 0x101, 0x514d, 0x101, 0x5154, 0x101, 0x5164, 0x101,
- 0x5177, 0x201, 0xd841, 0xdd1c, 0x101, 0x34b9, 0x101, 0x5167,
- 0x101, 0x518d, 0x201, 0xd841, 0xdd4b, 0x101, 0x5197, 0x101,
- 0x51a4, 0x101, 0x4ecc, 0x101, 0x51ac, 0x101, 0x51b5, 0x201,
- 0xd864, 0xdddf, 0x101, 0x51f5, 0x101, 0x5203, 0x101, 0x34df,
- 0x101, 0x523b, 0x101, 0x5246, 0x101, 0x5272, 0x101, 0x5277,
- 0x101, 0x3515, 0x101, 0x52c7, 0x101, 0x52c9, 0x101, 0x52e4,
- 0x101, 0x52fa, 0x101, 0x5305, 0x101, 0x5306, 0x101, 0x5317,
- 0x101, 0x5349, 0x101, 0x5351, 0x101, 0x535a, 0x101, 0x5373,
- 0x101, 0x537d, 0x101, 0x537f, 0x101, 0x537f, 0x101, 0x537f,
- 0x201, 0xd842, 0xde2c, 0x101, 0x7070, 0x101, 0x53ca, 0x101,
- 0x53df, 0x201, 0xd842, 0xdf63, 0x101, 0x53eb, 0x101, 0x53f1,
- 0x101, 0x5406, 0x101, 0x549e, 0x101, 0x5438, 0x101, 0x5448,
- 0x101, 0x5468, 0x101, 0x54a2, 0x101, 0x54f6, 0x101, 0x5510,
- 0x101, 0x5553, 0x101, 0x5563, 0x101, 0x5584, 0x101, 0x5584,
- 0x101, 0x5599, 0x101, 0x55ab, 0x101, 0x55b3, 0x101, 0x55c2,
- 0x101, 0x5716, 0x101, 0x5606, 0x101, 0x5717, 0x101, 0x5651,
- 0x101, 0x5674, 0x101, 0x5207, 0x101, 0x58ee, 0x101, 0x57ce,
- 0x101, 0x57f4, 0x101, 0x580d, 0x101, 0x578b, 0x101, 0x5832,
- 0x101, 0x5831, 0x101, 0x58ac, 0x201, 0xd845, 0xdce4, 0x101,
- 0x58f2, 0x101, 0x58f7, 0x101, 0x5906, 0x101, 0x591a, 0x101,
- 0x5922, 0x101, 0x5962, 0x201, 0xd845, 0xdea8, 0x201, 0xd845,
- 0xdeea, 0x101, 0x59ec, 0x101, 0x5a1b, 0x101, 0x5a27, 0x101,
- 0x59d8, 0x101, 0x5a66, 0x101, 0x36ee, 0x101, 0x36fc, 0x101,
- 0x5b08, 0x101, 0x5b3e, 0x101, 0x5b3e, 0x201, 0xd846, 0xddc8,
- 0x101, 0x5bc3, 0x101, 0x5bd8, 0x101, 0x5be7, 0x101, 0x5bf3,
- 0x201, 0xd846, 0xdf18, 0x101, 0x5bff, 0x101, 0x5c06, 0x101,
- 0x5f53, 0x101, 0x5c22, 0x101, 0x3781, 0x101, 0x5c60, 0x101,
- 0x5c6e, 0x101, 0x5cc0, 0x101, 0x5c8d, 0x201, 0xd847, 0xdde4,
- 0x101, 0x5d43, 0x201, 0xd847, 0xdde6, 0x101, 0x5d6e, 0x101,
- 0x5d6b, 0x101, 0x5d7c, 0x101, 0x5de1, 0x101, 0x5de2, 0x101,
- 0x382f, 0x101, 0x5dfd, 0x101, 0x5e28, 0x101, 0x5e3d, 0x101,
- 0x5e69, 0x101, 0x3862, 0x201, 0xd848, 0xdd83, 0x101, 0x387c,
- 0x101, 0x5eb0, 0x101, 0x5eb3, 0x101, 0x5eb6, 0x101, 0x5eca,
- 0x201, 0xd868, 0xdf92, 0x101, 0x5efe, 0x201, 0xd848, 0xdf31,
- 0x201, 0xd848, 0xdf31, 0x101, 0x8201, 0x101, 0x5f22, 0x101,
- 0x5f22, 0x101, 0x38c7, 0x201, 0xd84c, 0xdeb8, 0x201, 0xd858,
- 0xddda, 0x101, 0x5f62, 0x101, 0x5f6b, 0x101, 0x38e3, 0x101,
- 0x5f9a, 0x101, 0x5fcd, 0x101, 0x5fd7, 0x101, 0x5ff9, 0x101,
- 0x6081, 0x101, 0x393a, 0x101, 0x391c, 0x101, 0x6094, 0x201,
- 0xd849, 0xded4, 0x101, 0x60c7, 0x101, 0x6148, 0x101, 0x614c,
- 0x101, 0x614e, 0x101, 0x614c, 0x101, 0x617a, 0x101, 0x618e,
- 0x101, 0x61b2, 0x101, 0x61a4, 0x101, 0x61af, 0x101, 0x61de,
- 0x101, 0x61f2, 0x101, 0x61f6, 0x101, 0x6210, 0x101, 0x621b,
- 0x101, 0x625d, 0x101, 0x62b1, 0x101, 0x62d4, 0x101, 0x6350,
- 0x201, 0xd84a, 0xdf0c, 0x101, 0x633d, 0x101, 0x62fc, 0x101,
- 0x6368, 0x101, 0x6383, 0x101, 0x63e4, 0x201, 0xd84a, 0xdff1,
- 0x101, 0x6422, 0x101, 0x63c5, 0x101, 0x63a9, 0x101, 0x3a2e,
- 0x101, 0x6469, 0x101, 0x647e, 0x101, 0x649d, 0x101, 0x6477,
- 0x101, 0x3a6c, 0x101, 0x654f, 0x101, 0x656c, 0x201, 0xd84c,
- 0xdc0a, 0x101, 0x65e3, 0x101, 0x66f8, 0x101, 0x6649, 0x101,
- 0x3b19, 0x101, 0x6691, 0x101, 0x3b08, 0x101, 0x3ae4, 0x101,
- 0x5192, 0x101, 0x5195, 0x101, 0x6700, 0x101, 0x669c, 0x101,
- 0x80ad, 0x101, 0x43d9, 0x101, 0x6717, 0x101, 0x671b, 0x101,
- 0x6721, 0x101, 0x675e, 0x101, 0x6753, 0x201, 0xd84c, 0xdfc3,
- 0x101, 0x3b49, 0x101, 0x67fa, 0x101, 0x6785, 0x101, 0x6852,
- 0x101, 0x6885, 0x201, 0xd84d, 0xdc6d, 0x101, 0x688e, 0x101,
- 0x681f, 0x101, 0x6914, 0x101, 0x3b9d, 0x101, 0x6942, 0x101,
- 0x69a3, 0x101, 0x69ea, 0x101, 0x6aa8, 0x201, 0xd84d, 0xdea3,
- 0x101, 0x6adb, 0x101, 0x3c18, 0x101, 0x6b21, 0x201, 0xd84e,
- 0xdca7, 0x101, 0x6b54, 0x101, 0x3c4e, 0x101, 0x6b72, 0x101,
- 0x6b9f, 0x101, 0x6bba, 0x101, 0x6bbb, 0x201, 0xd84e, 0xde8d,
- 0x201, 0xd847, 0xdd0b, 0x201, 0xd84e, 0xdefa, 0x101, 0x6c4e,
- 0x201, 0xd84f, 0xdcbc, 0x101, 0x6cbf, 0x101, 0x6ccd, 0x101,
- 0x6c67, 0x101, 0x6d16, 0x101, 0x6d3e, 0x101, 0x6d77, 0x101,
- 0x6d41, 0x101, 0x6d69, 0x101, 0x6d78, 0x101, 0x6d85, 0x201,
- 0xd84f, 0xdd1e, 0x101, 0x6d34, 0x101, 0x6e2f, 0x101, 0x6e6e,
- 0x101, 0x3d33, 0x101, 0x6ecb, 0x101, 0x6ec7, 0x201, 0xd84f,
- 0xded1, 0x101, 0x6df9, 0x101, 0x6f6e, 0x201, 0xd84f, 0xdf5e,
- 0x201, 0xd84f, 0xdf8e, 0x101, 0x6fc6, 0x101, 0x7039, 0x101,
- 0x701e, 0x101, 0x701b, 0x101, 0x3d96, 0x101, 0x704a, 0x101,
- 0x707d, 0x101, 0x7077, 0x101, 0x70ad, 0x201, 0xd841, 0xdd25,
- 0x101, 0x7145, 0x201, 0xd850, 0xde63, 0x101, 0x719c, 0x201,
- 0xd850, 0xdfab, 0x101, 0x7228, 0x101, 0x7235, 0x101, 0x7250,
- 0x201, 0xd851, 0xde08, 0x101, 0x7280, 0x101, 0x7295, 0x201,
- 0xd851, 0xdf35, 0x201, 0xd852, 0xdc14, 0x101, 0x737a, 0x101,
- 0x738b, 0x101, 0x3eac, 0x101, 0x73a5, 0x101, 0x3eb8, 0x101,
- 0x3eb8, 0x101, 0x7447, 0x101, 0x745c, 0x101, 0x7471, 0x101,
- 0x7485, 0x101, 0x74ca, 0x101, 0x3f1b, 0x101, 0x7524, 0x201,
- 0xd853, 0xdc36, 0x101, 0x753e, 0x201, 0xd853, 0xdc92, 0x101,
- 0x7570, 0x201, 0xd848, 0xdd9f, 0x101, 0x7610, 0x201, 0xd853,
- 0xdfa1, 0x201, 0xd853, 0xdfb8, 0x201, 0xd854, 0xdc44, 0x101,
- 0x3ffc, 0x101, 0x4008, 0x101, 0x76f4, 0x201, 0xd854, 0xdcf3,
- 0x201, 0xd854, 0xdcf2, 0x201, 0xd854, 0xdd19, 0x201, 0xd854,
- 0xdd33, 0x101, 0x771e, 0x101, 0x771f, 0x101, 0x771f, 0x101,
- 0x774a, 0x101, 0x4039, 0x101, 0x778b, 0x101, 0x4046, 0x101,
- 0x4096, 0x201, 0xd855, 0xdc1d, 0x101, 0x784e, 0x101, 0x788c,
- 0x101, 0x78cc, 0x101, 0x40e3, 0x201, 0xd855, 0xde26, 0x101,
- 0x7956, 0x201, 0xd855, 0xde9a, 0x201, 0xd855, 0xdec5, 0x101,
- 0x798f, 0x101, 0x79eb, 0x101, 0x412f, 0x101, 0x7a40, 0x101,
- 0x7a4a, 0x101, 0x7a4f, 0x201, 0xd856, 0xdd7c, 0x201, 0xd856,
- 0xdea7, 0x201, 0xd856, 0xdea7, 0x101, 0x7aee, 0x101, 0x4202,
- 0x201, 0xd856, 0xdfab, 0x101, 0x7bc6, 0x101, 0x7bc9, 0x101,
- 0x4227, 0x201, 0xd857, 0xdc80, 0x101, 0x7cd2, 0x101, 0x42a0,
- 0x101, 0x7ce8, 0x101, 0x7ce3, 0x101, 0x7d00, 0x201, 0xd857,
- 0xdf86, 0x101, 0x7d63, 0x101, 0x4301, 0x101, 0x7dc7, 0x101,
- 0x7e02, 0x101, 0x7e45, 0x101, 0x4334, 0x201, 0xd858, 0xde28,
- 0x201, 0xd858, 0xde47, 0x101, 0x4359, 0x201, 0xd858, 0xded9,
- 0x101, 0x7f7a, 0x201, 0xd858, 0xdf3e, 0x101, 0x7f95, 0x101,
- 0x7ffa, 0x101, 0x8005, 0x201, 0xd859, 0xdcda, 0x201, 0xd859,
- 0xdd23, 0x101, 0x8060, 0x201, 0xd859, 0xdda8, 0x101, 0x8070,
- 0x201, 0xd84c, 0xdf5f, 0x101, 0x43d5, 0x101, 0x80b2, 0x101,
- 0x8103, 0x101, 0x440b, 0x101, 0x813e, 0x101, 0x5ab5, 0x201,
- 0xd859, 0xdfa7, 0x201, 0xd859, 0xdfb5, 0x201, 0xd84c, 0xdf93,
- 0x201, 0xd84c, 0xdf9c, 0x101, 0x8201, 0x101, 0x8204, 0x101,
- 0x8f9e, 0x101, 0x446b, 0x101, 0x8291, 0x101, 0x828b, 0x101,
- 0x829d, 0x101, 0x52b3, 0x101, 0x82b1, 0x101, 0x82b3, 0x101,
- 0x82bd, 0x101, 0x82e6, 0x201, 0xd85a, 0xdf3c, 0x101, 0x82e5,
- 0x101, 0x831d, 0x101, 0x8363, 0x101, 0x83ad, 0x101, 0x8323,
- 0x101, 0x83bd, 0x101, 0x83e7, 0x101, 0x8457, 0x101, 0x8353,
- 0x101, 0x83ca, 0x101, 0x83cc, 0x101, 0x83dc, 0x201, 0xd85b,
- 0xdc36, 0x201, 0xd85b, 0xdd6b, 0x201, 0xd85b, 0xdcd5, 0x101,
- 0x452b, 0x101, 0x84f1, 0x101, 0x84f3, 0x101, 0x8516, 0x201,
- 0xd85c, 0xdfca, 0x101, 0x8564, 0x201, 0xd85b, 0xdf2c, 0x101,
- 0x455d, 0x101, 0x4561, 0x201, 0xd85b, 0xdfb1, 0x201, 0xd85c,
- 0xdcd2, 0x101, 0x456b, 0x101, 0x8650, 0x101, 0x865c, 0x101,
- 0x8667, 0x101, 0x8669, 0x101, 0x86a9, 0x101, 0x8688, 0x101,
- 0x870e, 0x101, 0x86e2, 0x101, 0x8779, 0x101, 0x8728, 0x101,
- 0x876b, 0x101, 0x8786, 0x101, 0x45d7, 0x101, 0x87e1, 0x101,
- 0x8801, 0x101, 0x45f9, 0x101, 0x8860, 0x101, 0x8863, 0x201,
- 0xd85d, 0xde67, 0x101, 0x88d7, 0x101, 0x88de, 0x101, 0x4635,
- 0x101, 0x88fa, 0x101, 0x34bb, 0x201, 0xd85e, 0xdcae, 0x201,
- 0xd85e, 0xdd66, 0x101, 0x46be, 0x101, 0x46c7, 0x101, 0x8aa0,
- 0x101, 0x8aed, 0x101, 0x8b8a, 0x101, 0x8c55, 0x201, 0xd85f,
- 0xdca8, 0x101, 0x8cab, 0x101, 0x8cc1, 0x101, 0x8d1b, 0x101,
- 0x8d77, 0x201, 0xd85f, 0xdf2f, 0x201, 0xd842, 0xdc04, 0x101,
- 0x8dcb, 0x101, 0x8dbc, 0x101, 0x8df0, 0x201, 0xd842, 0xdcde,
- 0x101, 0x8ed4, 0x101, 0x8f38, 0x201, 0xd861, 0xddd2, 0x201,
- 0xd861, 0xdded, 0x101, 0x9094, 0x101, 0x90f1, 0x101, 0x9111,
- 0x201, 0xd861, 0xdf2e, 0x101, 0x911b, 0x101, 0x9238, 0x101,
- 0x92d7, 0x101, 0x92d8, 0x101, 0x927c, 0x101, 0x93f9, 0x101,
- 0x9415, 0x201, 0xd862, 0xdffa, 0x101, 0x958b, 0x101, 0x4995,
- 0x101, 0x95b7, 0x201, 0xd863, 0xdd77, 0x101, 0x49e6, 0x101,
- 0x96c3, 0x101, 0x5db2, 0x101, 0x9723, 0x201, 0xd864, 0xdd45,
- 0x201, 0xd864, 0xde1a, 0x101, 0x4a6e, 0x101, 0x4a76, 0x101,
- 0x97e0, 0x201, 0xd865, 0xdc0a, 0x101, 0x4ab2, 0x201, 0xd865,
- 0xdc96, 0x101, 0x980b, 0x101, 0x980b, 0x101, 0x9829, 0x201,
- 0xd865, 0xddb6, 0x101, 0x98e2, 0x101, 0x4b33, 0x101, 0x9929,
- 0x101, 0x99a7, 0x101, 0x99c2, 0x101, 0x99fe, 0x101, 0x4bce,
- 0x201, 0xd866, 0xdf30, 0x101, 0x9b12, 0x101, 0x9c40, 0x101,
- 0x9cfd, 0x101, 0x4cce, 0x101, 0x4ced, 0x101, 0x9d67, 0x201,
- 0xd868, 0xdcce, 0x101, 0x4cf8, 0x201, 0xd868, 0xdd05, 0x201,
- 0xd868, 0xde0e, 0x201, 0xd868, 0xde91, 0x101, 0x9ebb, 0x101,
- 0x4d56, 0x101, 0x9ef9, 0x101, 0x9efe, 0x101, 0x9f05, 0x101,
- 0x9f0f, 0x101, 0x9f16, 0x101, 0x9f3b, 0x201, 0xd869, 0xde00
+ 0x65e5, 0x30f, 0x67, 0x61, 0x6c, 0x109, 0x44a, 0x109,
+ 0x44c, 0x109, 0xa76f, 0x109, 0x126, 0x109, 0x153, 0x109,
+ 0xa727, 0x109, 0xab37, 0x109, 0x26b, 0x109, 0xab52, 0x101,
+ 0x8c48, 0x101, 0x66f4, 0x101, 0x8eca, 0x101, 0x8cc8, 0x101,
+ 0x6ed1, 0x101, 0x4e32, 0x101, 0x53e5, 0x101, 0x9f9c, 0x101,
+ 0x9f9c, 0x101, 0x5951, 0x101, 0x91d1, 0x101, 0x5587, 0x101,
+ 0x5948, 0x101, 0x61f6, 0x101, 0x7669, 0x101, 0x7f85, 0x101,
+ 0x863f, 0x101, 0x87ba, 0x101, 0x88f8, 0x101, 0x908f, 0x101,
+ 0x6a02, 0x101, 0x6d1b, 0x101, 0x70d9, 0x101, 0x73de, 0x101,
+ 0x843d, 0x101, 0x916a, 0x101, 0x99f1, 0x101, 0x4e82, 0x101,
+ 0x5375, 0x101, 0x6b04, 0x101, 0x721b, 0x101, 0x862d, 0x101,
+ 0x9e1e, 0x101, 0x5d50, 0x101, 0x6feb, 0x101, 0x85cd, 0x101,
+ 0x8964, 0x101, 0x62c9, 0x101, 0x81d8, 0x101, 0x881f, 0x101,
+ 0x5eca, 0x101, 0x6717, 0x101, 0x6d6a, 0x101, 0x72fc, 0x101,
+ 0x90ce, 0x101, 0x4f86, 0x101, 0x51b7, 0x101, 0x52de, 0x101,
+ 0x64c4, 0x101, 0x6ad3, 0x101, 0x7210, 0x101, 0x76e7, 0x101,
+ 0x8001, 0x101, 0x8606, 0x101, 0x865c, 0x101, 0x8def, 0x101,
+ 0x9732, 0x101, 0x9b6f, 0x101, 0x9dfa, 0x101, 0x788c, 0x101,
+ 0x797f, 0x101, 0x7da0, 0x101, 0x83c9, 0x101, 0x9304, 0x101,
+ 0x9e7f, 0x101, 0x8ad6, 0x101, 0x58df, 0x101, 0x5f04, 0x101,
+ 0x7c60, 0x101, 0x807e, 0x101, 0x7262, 0x101, 0x78ca, 0x101,
+ 0x8cc2, 0x101, 0x96f7, 0x101, 0x58d8, 0x101, 0x5c62, 0x101,
+ 0x6a13, 0x101, 0x6dda, 0x101, 0x6f0f, 0x101, 0x7d2f, 0x101,
+ 0x7e37, 0x101, 0x964b, 0x101, 0x52d2, 0x101, 0x808b, 0x101,
+ 0x51dc, 0x101, 0x51cc, 0x101, 0x7a1c, 0x101, 0x7dbe, 0x101,
+ 0x83f1, 0x101, 0x9675, 0x101, 0x8b80, 0x101, 0x62cf, 0x101,
+ 0x6a02, 0x101, 0x8afe, 0x101, 0x4e39, 0x101, 0x5be7, 0x101,
+ 0x6012, 0x101, 0x7387, 0x101, 0x7570, 0x101, 0x5317, 0x101,
+ 0x78fb, 0x101, 0x4fbf, 0x101, 0x5fa9, 0x101, 0x4e0d, 0x101,
+ 0x6ccc, 0x101, 0x6578, 0x101, 0x7d22, 0x101, 0x53c3, 0x101,
+ 0x585e, 0x101, 0x7701, 0x101, 0x8449, 0x101, 0x8aaa, 0x101,
+ 0x6bba, 0x101, 0x8fb0, 0x101, 0x6c88, 0x101, 0x62fe, 0x101,
+ 0x82e5, 0x101, 0x63a0, 0x101, 0x7565, 0x101, 0x4eae, 0x101,
+ 0x5169, 0x101, 0x51c9, 0x101, 0x6881, 0x101, 0x7ce7, 0x101,
+ 0x826f, 0x101, 0x8ad2, 0x101, 0x91cf, 0x101, 0x52f5, 0x101,
+ 0x5442, 0x101, 0x5973, 0x101, 0x5eec, 0x101, 0x65c5, 0x101,
+ 0x6ffe, 0x101, 0x792a, 0x101, 0x95ad, 0x101, 0x9a6a, 0x101,
+ 0x9e97, 0x101, 0x9ece, 0x101, 0x529b, 0x101, 0x66c6, 0x101,
+ 0x6b77, 0x101, 0x8f62, 0x101, 0x5e74, 0x101, 0x6190, 0x101,
+ 0x6200, 0x101, 0x649a, 0x101, 0x6f23, 0x101, 0x7149, 0x101,
+ 0x7489, 0x101, 0x79ca, 0x101, 0x7df4, 0x101, 0x806f, 0x101,
+ 0x8f26, 0x101, 0x84ee, 0x101, 0x9023, 0x101, 0x934a, 0x101,
+ 0x5217, 0x101, 0x52a3, 0x101, 0x54bd, 0x101, 0x70c8, 0x101,
+ 0x88c2, 0x101, 0x8aaa, 0x101, 0x5ec9, 0x101, 0x5ff5, 0x101,
+ 0x637b, 0x101, 0x6bae, 0x101, 0x7c3e, 0x101, 0x7375, 0x101,
+ 0x4ee4, 0x101, 0x56f9, 0x101, 0x5be7, 0x101, 0x5dba, 0x101,
+ 0x601c, 0x101, 0x73b2, 0x101, 0x7469, 0x101, 0x7f9a, 0x101,
+ 0x8046, 0x101, 0x9234, 0x101, 0x96f6, 0x101, 0x9748, 0x101,
+ 0x9818, 0x101, 0x4f8b, 0x101, 0x79ae, 0x101, 0x91b4, 0x101,
+ 0x96b8, 0x101, 0x60e1, 0x101, 0x4e86, 0x101, 0x50da, 0x101,
+ 0x5bee, 0x101, 0x5c3f, 0x101, 0x6599, 0x101, 0x6a02, 0x101,
+ 0x71ce, 0x101, 0x7642, 0x101, 0x84fc, 0x101, 0x907c, 0x101,
+ 0x9f8d, 0x101, 0x6688, 0x101, 0x962e, 0x101, 0x5289, 0x101,
+ 0x677b, 0x101, 0x67f3, 0x101, 0x6d41, 0x101, 0x6e9c, 0x101,
+ 0x7409, 0x101, 0x7559, 0x101, 0x786b, 0x101, 0x7d10, 0x101,
+ 0x985e, 0x101, 0x516d, 0x101, 0x622e, 0x101, 0x9678, 0x101,
+ 0x502b, 0x101, 0x5d19, 0x101, 0x6dea, 0x101, 0x8f2a, 0x101,
+ 0x5f8b, 0x101, 0x6144, 0x101, 0x6817, 0x101, 0x7387, 0x101,
+ 0x9686, 0x101, 0x5229, 0x101, 0x540f, 0x101, 0x5c65, 0x101,
+ 0x6613, 0x101, 0x674e, 0x101, 0x68a8, 0x101, 0x6ce5, 0x101,
+ 0x7406, 0x101, 0x75e2, 0x101, 0x7f79, 0x101, 0x88cf, 0x101,
+ 0x88e1, 0x101, 0x91cc, 0x101, 0x96e2, 0x101, 0x533f, 0x101,
+ 0x6eba, 0x101, 0x541d, 0x101, 0x71d0, 0x101, 0x7498, 0x101,
+ 0x85fa, 0x101, 0x96a3, 0x101, 0x9c57, 0x101, 0x9e9f, 0x101,
+ 0x6797, 0x101, 0x6dcb, 0x101, 0x81e8, 0x101, 0x7acb, 0x101,
+ 0x7b20, 0x101, 0x7c92, 0x101, 0x72c0, 0x101, 0x7099, 0x101,
+ 0x8b58, 0x101, 0x4ec0, 0x101, 0x8336, 0x101, 0x523a, 0x101,
+ 0x5207, 0x101, 0x5ea6, 0x101, 0x62d3, 0x101, 0x7cd6, 0x101,
+ 0x5b85, 0x101, 0x6d1e, 0x101, 0x66b4, 0x101, 0x8f3b, 0x101,
+ 0x884c, 0x101, 0x964d, 0x101, 0x898b, 0x101, 0x5ed3, 0x101,
+ 0x5140, 0x101, 0x55c0, 0x101, 0x585a, 0x101, 0x6674, 0x101,
+ 0x51de, 0x101, 0x732a, 0x101, 0x76ca, 0x101, 0x793c, 0x101,
+ 0x795e, 0x101, 0x7965, 0x101, 0x798f, 0x101, 0x9756, 0x101,
+ 0x7cbe, 0x101, 0x7fbd, 0x101, 0x8612, 0x101, 0x8af8, 0x101,
+ 0x9038, 0x101, 0x90fd, 0x101, 0x98ef, 0x101, 0x98fc, 0x101,
+ 0x9928, 0x101, 0x9db4, 0x101, 0x90de, 0x101, 0x96b7, 0x101,
+ 0x4fae, 0x101, 0x50e7, 0x101, 0x514d, 0x101, 0x52c9, 0x101,
+ 0x52e4, 0x101, 0x5351, 0x101, 0x559d, 0x101, 0x5606, 0x101,
+ 0x5668, 0x101, 0x5840, 0x101, 0x58a8, 0x101, 0x5c64, 0x101,
+ 0x5c6e, 0x101, 0x6094, 0x101, 0x6168, 0x101, 0x618e, 0x101,
+ 0x61f2, 0x101, 0x654f, 0x101, 0x65e2, 0x101, 0x6691, 0x101,
+ 0x6885, 0x101, 0x6d77, 0x101, 0x6e1a, 0x101, 0x6f22, 0x101,
+ 0x716e, 0x101, 0x722b, 0x101, 0x7422, 0x101, 0x7891, 0x101,
+ 0x793e, 0x101, 0x7949, 0x101, 0x7948, 0x101, 0x7950, 0x101,
+ 0x7956, 0x101, 0x795d, 0x101, 0x798d, 0x101, 0x798e, 0x101,
+ 0x7a40, 0x101, 0x7a81, 0x101, 0x7bc0, 0x101, 0x7df4, 0x101,
+ 0x7e09, 0x101, 0x7e41, 0x101, 0x7f72, 0x101, 0x8005, 0x101,
+ 0x81ed, 0x101, 0x8279, 0x101, 0x8279, 0x101, 0x8457, 0x101,
+ 0x8910, 0x101, 0x8996, 0x101, 0x8b01, 0x101, 0x8b39, 0x101,
+ 0x8cd3, 0x101, 0x8d08, 0x101, 0x8fb6, 0x101, 0x9038, 0x101,
+ 0x96e3, 0x101, 0x97ff, 0x101, 0x983b, 0x101, 0x6075, 0x201,
+ 0xd850, 0xdeee, 0x101, 0x8218, 0x101, 0x4e26, 0x101, 0x51b5,
+ 0x101, 0x5168, 0x101, 0x4f80, 0x101, 0x5145, 0x101, 0x5180,
+ 0x101, 0x52c7, 0x101, 0x52fa, 0x101, 0x559d, 0x101, 0x5555,
+ 0x101, 0x5599, 0x101, 0x55e2, 0x101, 0x585a, 0x101, 0x58b3,
+ 0x101, 0x5944, 0x101, 0x5954, 0x101, 0x5a62, 0x101, 0x5b28,
+ 0x101, 0x5ed2, 0x101, 0x5ed9, 0x101, 0x5f69, 0x101, 0x5fad,
+ 0x101, 0x60d8, 0x101, 0x614e, 0x101, 0x6108, 0x101, 0x618e,
+ 0x101, 0x6160, 0x101, 0x61f2, 0x101, 0x6234, 0x101, 0x63c4,
+ 0x101, 0x641c, 0x101, 0x6452, 0x101, 0x6556, 0x101, 0x6674,
+ 0x101, 0x6717, 0x101, 0x671b, 0x101, 0x6756, 0x101, 0x6b79,
+ 0x101, 0x6bba, 0x101, 0x6d41, 0x101, 0x6edb, 0x101, 0x6ecb,
+ 0x101, 0x6f22, 0x101, 0x701e, 0x101, 0x716e, 0x101, 0x77a7,
+ 0x101, 0x7235, 0x101, 0x72af, 0x101, 0x732a, 0x101, 0x7471,
+ 0x101, 0x7506, 0x101, 0x753b, 0x101, 0x761d, 0x101, 0x761f,
+ 0x101, 0x76ca, 0x101, 0x76db, 0x101, 0x76f4, 0x101, 0x774a,
+ 0x101, 0x7740, 0x101, 0x78cc, 0x101, 0x7ab1, 0x101, 0x7bc0,
+ 0x101, 0x7c7b, 0x101, 0x7d5b, 0x101, 0x7df4, 0x101, 0x7f3e,
+ 0x101, 0x8005, 0x101, 0x8352, 0x101, 0x83ef, 0x101, 0x8779,
+ 0x101, 0x8941, 0x101, 0x8986, 0x101, 0x8996, 0x101, 0x8abf,
+ 0x101, 0x8af8, 0x101, 0x8acb, 0x101, 0x8b01, 0x101, 0x8afe,
+ 0x101, 0x8aed, 0x101, 0x8b39, 0x101, 0x8b8a, 0x101, 0x8d08,
+ 0x101, 0x8f38, 0x101, 0x9072, 0x101, 0x9199, 0x101, 0x9276,
+ 0x101, 0x967c, 0x101, 0x96e3, 0x101, 0x9756, 0x101, 0x97db,
+ 0x101, 0x97ff, 0x101, 0x980b, 0x101, 0x983b, 0x101, 0x9b12,
+ 0x101, 0x9f9c, 0x201, 0xd84a, 0xdc4a, 0x201, 0xd84a, 0xdc44,
+ 0x201, 0xd84c, 0xdfd5, 0x101, 0x3b9d, 0x101, 0x4018, 0x101,
+ 0x4039, 0x201, 0xd854, 0xde49, 0x201, 0xd857, 0xdcd0, 0x201,
+ 0xd85f, 0xded3, 0x101, 0x9f43, 0x101, 0x9f8e, 0x210, 0x66,
+ 0x66, 0x210, 0x66, 0x69, 0x210, 0x66, 0x6c, 0x310,
+ 0x66, 0x66, 0x69, 0x310, 0x66, 0x66, 0x6c, 0x210,
+ 0x17f, 0x74, 0x210, 0x73, 0x74, 0x210, 0x574, 0x576,
+ 0x210, 0x574, 0x565, 0x210, 0x574, 0x56b, 0x210, 0x57e,
+ 0x576, 0x210, 0x574, 0x56d, 0x201, 0x5d9, 0x5b4, 0x201,
+ 0x5f2, 0x5b7, 0x102, 0x5e2, 0x102, 0x5d0, 0x102, 0x5d3,
+ 0x102, 0x5d4, 0x102, 0x5db, 0x102, 0x5dc, 0x102, 0x5dd,
+ 0x102, 0x5e8, 0x102, 0x5ea, 0x102, 0x2b, 0x201, 0x5e9,
+ 0x5c1, 0x201, 0x5e9, 0x5c2, 0x201, 0xfb49, 0x5c1, 0x201,
+ 0xfb49, 0x5c2, 0x201, 0x5d0, 0x5b7, 0x201, 0x5d0, 0x5b8,
+ 0x201, 0x5d0, 0x5bc, 0x201, 0x5d1, 0x5bc, 0x201, 0x5d2,
+ 0x5bc, 0x201, 0x5d3, 0x5bc, 0x201, 0x5d4, 0x5bc, 0x201,
+ 0x5d5, 0x5bc, 0x201, 0x5d6, 0x5bc, 0x201, 0x5d8, 0x5bc,
+ 0x201, 0x5d9, 0x5bc, 0x201, 0x5da, 0x5bc, 0x201, 0x5db,
+ 0x5bc, 0x201, 0x5dc, 0x5bc, 0x201, 0x5de, 0x5bc, 0x201,
+ 0x5e0, 0x5bc, 0x201, 0x5e1, 0x5bc, 0x201, 0x5e3, 0x5bc,
+ 0x201, 0x5e4, 0x5bc, 0x201, 0x5e6, 0x5bc, 0x201, 0x5e7,
+ 0x5bc, 0x201, 0x5e8, 0x5bc, 0x201, 0x5e9, 0x5bc, 0x201,
+ 0x5ea, 0x5bc, 0x201, 0x5d5, 0x5b9, 0x201, 0x5d1, 0x5bf,
+ 0x201, 0x5db, 0x5bf, 0x201, 0x5e4, 0x5bf, 0x210, 0x5d0,
+ 0x5dc, 0x107, 0x671, 0x106, 0x671, 0x107, 0x67b, 0x106,
+ 0x67b, 0x104, 0x67b, 0x105, 0x67b, 0x107, 0x67e, 0x106,
+ 0x67e, 0x104, 0x67e, 0x105, 0x67e, 0x107, 0x680, 0x106,
+ 0x680, 0x104, 0x680, 0x105, 0x680, 0x107, 0x67a, 0x106,
+ 0x67a, 0x104, 0x67a, 0x105, 0x67a, 0x107, 0x67f, 0x106,
+ 0x67f, 0x104, 0x67f, 0x105, 0x67f, 0x107, 0x679, 0x106,
+ 0x679, 0x104, 0x679, 0x105, 0x679, 0x107, 0x6a4, 0x106,
+ 0x6a4, 0x104, 0x6a4, 0x105, 0x6a4, 0x107, 0x6a6, 0x106,
+ 0x6a6, 0x104, 0x6a6, 0x105, 0x6a6, 0x107, 0x684, 0x106,
+ 0x684, 0x104, 0x684, 0x105, 0x684, 0x107, 0x683, 0x106,
+ 0x683, 0x104, 0x683, 0x105, 0x683, 0x107, 0x686, 0x106,
+ 0x686, 0x104, 0x686, 0x105, 0x686, 0x107, 0x687, 0x106,
+ 0x687, 0x104, 0x687, 0x105, 0x687, 0x107, 0x68d, 0x106,
+ 0x68d, 0x107, 0x68c, 0x106, 0x68c, 0x107, 0x68e, 0x106,
+ 0x68e, 0x107, 0x688, 0x106, 0x688, 0x107, 0x698, 0x106,
+ 0x698, 0x107, 0x691, 0x106, 0x691, 0x107, 0x6a9, 0x106,
+ 0x6a9, 0x104, 0x6a9, 0x105, 0x6a9, 0x107, 0x6af, 0x106,
+ 0x6af, 0x104, 0x6af, 0x105, 0x6af, 0x107, 0x6b3, 0x106,
+ 0x6b3, 0x104, 0x6b3, 0x105, 0x6b3, 0x107, 0x6b1, 0x106,
+ 0x6b1, 0x104, 0x6b1, 0x105, 0x6b1, 0x107, 0x6ba, 0x106,
+ 0x6ba, 0x107, 0x6bb, 0x106, 0x6bb, 0x104, 0x6bb, 0x105,
+ 0x6bb, 0x107, 0x6c0, 0x106, 0x6c0, 0x107, 0x6c1, 0x106,
+ 0x6c1, 0x104, 0x6c1, 0x105, 0x6c1, 0x107, 0x6be, 0x106,
+ 0x6be, 0x104, 0x6be, 0x105, 0x6be, 0x107, 0x6d2, 0x106,
+ 0x6d2, 0x107, 0x6d3, 0x106, 0x6d3, 0x107, 0x6ad, 0x106,
+ 0x6ad, 0x104, 0x6ad, 0x105, 0x6ad, 0x107, 0x6c7, 0x106,
+ 0x6c7, 0x107, 0x6c6, 0x106, 0x6c6, 0x107, 0x6c8, 0x106,
+ 0x6c8, 0x107, 0x677, 0x107, 0x6cb, 0x106, 0x6cb, 0x107,
+ 0x6c5, 0x106, 0x6c5, 0x107, 0x6c9, 0x106, 0x6c9, 0x107,
+ 0x6d0, 0x106, 0x6d0, 0x104, 0x6d0, 0x105, 0x6d0, 0x104,
+ 0x649, 0x105, 0x649, 0x207, 0x626, 0x627, 0x206, 0x626,
+ 0x627, 0x207, 0x626, 0x6d5, 0x206, 0x626, 0x6d5, 0x207,
+ 0x626, 0x648, 0x206, 0x626, 0x648, 0x207, 0x626, 0x6c7,
+ 0x206, 0x626, 0x6c7, 0x207, 0x626, 0x6c6, 0x206, 0x626,
+ 0x6c6, 0x207, 0x626, 0x6c8, 0x206, 0x626, 0x6c8, 0x207,
+ 0x626, 0x6d0, 0x206, 0x626, 0x6d0, 0x204, 0x626, 0x6d0,
+ 0x207, 0x626, 0x649, 0x206, 0x626, 0x649, 0x204, 0x626,
+ 0x649, 0x107, 0x6cc, 0x106, 0x6cc, 0x104, 0x6cc, 0x105,
+ 0x6cc, 0x207, 0x626, 0x62c, 0x207, 0x626, 0x62d, 0x207,
+ 0x626, 0x645, 0x207, 0x626, 0x649, 0x207, 0x626, 0x64a,
+ 0x207, 0x628, 0x62c, 0x207, 0x628, 0x62d, 0x207, 0x628,
+ 0x62e, 0x207, 0x628, 0x645, 0x207, 0x628, 0x649, 0x207,
+ 0x628, 0x64a, 0x207, 0x62a, 0x62c, 0x207, 0x62a, 0x62d,
+ 0x207, 0x62a, 0x62e, 0x207, 0x62a, 0x645, 0x207, 0x62a,
+ 0x649, 0x207, 0x62a, 0x64a, 0x207, 0x62b, 0x62c, 0x207,
+ 0x62b, 0x645, 0x207, 0x62b, 0x649, 0x207, 0x62b, 0x64a,
+ 0x207, 0x62c, 0x62d, 0x207, 0x62c, 0x645, 0x207, 0x62d,
+ 0x62c, 0x207, 0x62d, 0x645, 0x207, 0x62e, 0x62c, 0x207,
+ 0x62e, 0x62d, 0x207, 0x62e, 0x645, 0x207, 0x633, 0x62c,
+ 0x207, 0x633, 0x62d, 0x207, 0x633, 0x62e, 0x207, 0x633,
+ 0x645, 0x207, 0x635, 0x62d, 0x207, 0x635, 0x645, 0x207,
+ 0x636, 0x62c, 0x207, 0x636, 0x62d, 0x207, 0x636, 0x62e,
+ 0x207, 0x636, 0x645, 0x207, 0x637, 0x62d, 0x207, 0x637,
+ 0x645, 0x207, 0x638, 0x645, 0x207, 0x639, 0x62c, 0x207,
+ 0x639, 0x645, 0x207, 0x63a, 0x62c, 0x207, 0x63a, 0x645,
+ 0x207, 0x641, 0x62c, 0x207, 0x641, 0x62d, 0x207, 0x641,
+ 0x62e, 0x207, 0x641, 0x645, 0x207, 0x641, 0x649, 0x207,
+ 0x641, 0x64a, 0x207, 0x642, 0x62d, 0x207, 0x642, 0x645,
+ 0x207, 0x642, 0x649, 0x207, 0x642, 0x64a, 0x207, 0x643,
+ 0x627, 0x207, 0x643, 0x62c, 0x207, 0x643, 0x62d, 0x207,
+ 0x643, 0x62e, 0x207, 0x643, 0x644, 0x207, 0x643, 0x645,
+ 0x207, 0x643, 0x649, 0x207, 0x643, 0x64a, 0x207, 0x644,
+ 0x62c, 0x207, 0x644, 0x62d, 0x207, 0x644, 0x62e, 0x207,
+ 0x644, 0x645, 0x207, 0x644, 0x649, 0x207, 0x644, 0x64a,
+ 0x207, 0x645, 0x62c, 0x207, 0x645, 0x62d, 0x207, 0x645,
+ 0x62e, 0x207, 0x645, 0x645, 0x207, 0x645, 0x649, 0x207,
+ 0x645, 0x64a, 0x207, 0x646, 0x62c, 0x207, 0x646, 0x62d,
+ 0x207, 0x646, 0x62e, 0x207, 0x646, 0x645, 0x207, 0x646,
+ 0x649, 0x207, 0x646, 0x64a, 0x207, 0x647, 0x62c, 0x207,
+ 0x647, 0x645, 0x207, 0x647, 0x649, 0x207, 0x647, 0x64a,
+ 0x207, 0x64a, 0x62c, 0x207, 0x64a, 0x62d, 0x207, 0x64a,
+ 0x62e, 0x207, 0x64a, 0x645, 0x207, 0x64a, 0x649, 0x207,
+ 0x64a, 0x64a, 0x207, 0x630, 0x670, 0x207, 0x631, 0x670,
+ 0x207, 0x649, 0x670, 0x307, 0x20, 0x64c, 0x651, 0x307,
+ 0x20, 0x64d, 0x651, 0x307, 0x20, 0x64e, 0x651, 0x307,
+ 0x20, 0x64f, 0x651, 0x307, 0x20, 0x650, 0x651, 0x307,
+ 0x20, 0x651, 0x670, 0x206, 0x626, 0x631, 0x206, 0x626,
+ 0x632, 0x206, 0x626, 0x645, 0x206, 0x626, 0x646, 0x206,
+ 0x626, 0x649, 0x206, 0x626, 0x64a, 0x206, 0x628, 0x631,
+ 0x206, 0x628, 0x632, 0x206, 0x628, 0x645, 0x206, 0x628,
+ 0x646, 0x206, 0x628, 0x649, 0x206, 0x628, 0x64a, 0x206,
+ 0x62a, 0x631, 0x206, 0x62a, 0x632, 0x206, 0x62a, 0x645,
+ 0x206, 0x62a, 0x646, 0x206, 0x62a, 0x649, 0x206, 0x62a,
+ 0x64a, 0x206, 0x62b, 0x631, 0x206, 0x62b, 0x632, 0x206,
+ 0x62b, 0x645, 0x206, 0x62b, 0x646, 0x206, 0x62b, 0x649,
+ 0x206, 0x62b, 0x64a, 0x206, 0x641, 0x649, 0x206, 0x641,
+ 0x64a, 0x206, 0x642, 0x649, 0x206, 0x642, 0x64a, 0x206,
+ 0x643, 0x627, 0x206, 0x643, 0x644, 0x206, 0x643, 0x645,
+ 0x206, 0x643, 0x649, 0x206, 0x643, 0x64a, 0x206, 0x644,
+ 0x645, 0x206, 0x644, 0x649, 0x206, 0x644, 0x64a, 0x206,
+ 0x645, 0x627, 0x206, 0x645, 0x645, 0x206, 0x646, 0x631,
+ 0x206, 0x646, 0x632, 0x206, 0x646, 0x645, 0x206, 0x646,
+ 0x646, 0x206, 0x646, 0x649, 0x206, 0x646, 0x64a, 0x206,
+ 0x649, 0x670, 0x206, 0x64a, 0x631, 0x206, 0x64a, 0x632,
+ 0x206, 0x64a, 0x645, 0x206, 0x64a, 0x646, 0x206, 0x64a,
+ 0x649, 0x206, 0x64a, 0x64a, 0x204, 0x626, 0x62c, 0x204,
+ 0x626, 0x62d, 0x204, 0x626, 0x62e, 0x204, 0x626, 0x645,
+ 0x204, 0x626, 0x647, 0x204, 0x628, 0x62c, 0x204, 0x628,
+ 0x62d, 0x204, 0x628, 0x62e, 0x204, 0x628, 0x645, 0x204,
+ 0x628, 0x647, 0x204, 0x62a, 0x62c, 0x204, 0x62a, 0x62d,
+ 0x204, 0x62a, 0x62e, 0x204, 0x62a, 0x645, 0x204, 0x62a,
+ 0x647, 0x204, 0x62b, 0x645, 0x204, 0x62c, 0x62d, 0x204,
+ 0x62c, 0x645, 0x204, 0x62d, 0x62c, 0x204, 0x62d, 0x645,
+ 0x204, 0x62e, 0x62c, 0x204, 0x62e, 0x645, 0x204, 0x633,
+ 0x62c, 0x204, 0x633, 0x62d, 0x204, 0x633, 0x62e, 0x204,
+ 0x633, 0x645, 0x204, 0x635, 0x62d, 0x204, 0x635, 0x62e,
+ 0x204, 0x635, 0x645, 0x204, 0x636, 0x62c, 0x204, 0x636,
+ 0x62d, 0x204, 0x636, 0x62e, 0x204, 0x636, 0x645, 0x204,
+ 0x637, 0x62d, 0x204, 0x638, 0x645, 0x204, 0x639, 0x62c,
+ 0x204, 0x639, 0x645, 0x204, 0x63a, 0x62c, 0x204, 0x63a,
+ 0x645, 0x204, 0x641, 0x62c, 0x204, 0x641, 0x62d, 0x204,
+ 0x641, 0x62e, 0x204, 0x641, 0x645, 0x204, 0x642, 0x62d,
+ 0x204, 0x642, 0x645, 0x204, 0x643, 0x62c, 0x204, 0x643,
+ 0x62d, 0x204, 0x643, 0x62e, 0x204, 0x643, 0x644, 0x204,
+ 0x643, 0x645, 0x204, 0x644, 0x62c, 0x204, 0x644, 0x62d,
+ 0x204, 0x644, 0x62e, 0x204, 0x644, 0x645, 0x204, 0x644,
+ 0x647, 0x204, 0x645, 0x62c, 0x204, 0x645, 0x62d, 0x204,
+ 0x645, 0x62e, 0x204, 0x645, 0x645, 0x204, 0x646, 0x62c,
+ 0x204, 0x646, 0x62d, 0x204, 0x646, 0x62e, 0x204, 0x646,
+ 0x645, 0x204, 0x646, 0x647, 0x204, 0x647, 0x62c, 0x204,
+ 0x647, 0x645, 0x204, 0x647, 0x670, 0x204, 0x64a, 0x62c,
+ 0x204, 0x64a, 0x62d, 0x204, 0x64a, 0x62e, 0x204, 0x64a,
+ 0x645, 0x204, 0x64a, 0x647, 0x205, 0x626, 0x645, 0x205,
+ 0x626, 0x647, 0x205, 0x628, 0x645, 0x205, 0x628, 0x647,
+ 0x205, 0x62a, 0x645, 0x205, 0x62a, 0x647, 0x205, 0x62b,
+ 0x645, 0x205, 0x62b, 0x647, 0x205, 0x633, 0x645, 0x205,
+ 0x633, 0x647, 0x205, 0x634, 0x645, 0x205, 0x634, 0x647,
+ 0x205, 0x643, 0x644, 0x205, 0x643, 0x645, 0x205, 0x644,
+ 0x645, 0x205, 0x646, 0x645, 0x205, 0x646, 0x647, 0x205,
+ 0x64a, 0x645, 0x205, 0x64a, 0x647, 0x305, 0x640, 0x64e,
+ 0x651, 0x305, 0x640, 0x64f, 0x651, 0x305, 0x640, 0x650,
+ 0x651, 0x207, 0x637, 0x649, 0x207, 0x637, 0x64a, 0x207,
+ 0x639, 0x649, 0x207, 0x639, 0x64a, 0x207, 0x63a, 0x649,
+ 0x207, 0x63a, 0x64a, 0x207, 0x633, 0x649, 0x207, 0x633,
+ 0x64a, 0x207, 0x634, 0x649, 0x207, 0x634, 0x64a, 0x207,
+ 0x62d, 0x649, 0x207, 0x62d, 0x64a, 0x207, 0x62c, 0x649,
+ 0x207, 0x62c, 0x64a, 0x207, 0x62e, 0x649, 0x207, 0x62e,
+ 0x64a, 0x207, 0x635, 0x649, 0x207, 0x635, 0x64a, 0x207,
+ 0x636, 0x649, 0x207, 0x636, 0x64a, 0x207, 0x634, 0x62c,
+ 0x207, 0x634, 0x62d, 0x207, 0x634, 0x62e, 0x207, 0x634,
+ 0x645, 0x207, 0x634, 0x631, 0x207, 0x633, 0x631, 0x207,
+ 0x635, 0x631, 0x207, 0x636, 0x631, 0x206, 0x637, 0x649,
+ 0x206, 0x637, 0x64a, 0x206, 0x639, 0x649, 0x206, 0x639,
+ 0x64a, 0x206, 0x63a, 0x649, 0x206, 0x63a, 0x64a, 0x206,
+ 0x633, 0x649, 0x206, 0x633, 0x64a, 0x206, 0x634, 0x649,
+ 0x206, 0x634, 0x64a, 0x206, 0x62d, 0x649, 0x206, 0x62d,
+ 0x64a, 0x206, 0x62c, 0x649, 0x206, 0x62c, 0x64a, 0x206,
+ 0x62e, 0x649, 0x206, 0x62e, 0x64a, 0x206, 0x635, 0x649,
+ 0x206, 0x635, 0x64a, 0x206, 0x636, 0x649, 0x206, 0x636,
+ 0x64a, 0x206, 0x634, 0x62c, 0x206, 0x634, 0x62d, 0x206,
+ 0x634, 0x62e, 0x206, 0x634, 0x645, 0x206, 0x634, 0x631,
+ 0x206, 0x633, 0x631, 0x206, 0x635, 0x631, 0x206, 0x636,
+ 0x631, 0x204, 0x634, 0x62c, 0x204, 0x634, 0x62d, 0x204,
+ 0x634, 0x62e, 0x204, 0x634, 0x645, 0x204, 0x633, 0x647,
+ 0x204, 0x634, 0x647, 0x204, 0x637, 0x645, 0x205, 0x633,
+ 0x62c, 0x205, 0x633, 0x62d, 0x205, 0x633, 0x62e, 0x205,
+ 0x634, 0x62c, 0x205, 0x634, 0x62d, 0x205, 0x634, 0x62e,
+ 0x205, 0x637, 0x645, 0x205, 0x638, 0x645, 0x206, 0x627,
+ 0x64b, 0x207, 0x627, 0x64b, 0x304, 0x62a, 0x62c, 0x645,
+ 0x306, 0x62a, 0x62d, 0x62c, 0x304, 0x62a, 0x62d, 0x62c,
+ 0x304, 0x62a, 0x62d, 0x645, 0x304, 0x62a, 0x62e, 0x645,
+ 0x304, 0x62a, 0x645, 0x62c, 0x304, 0x62a, 0x645, 0x62d,
+ 0x304, 0x62a, 0x645, 0x62e, 0x306, 0x62c, 0x645, 0x62d,
+ 0x304, 0x62c, 0x645, 0x62d, 0x306, 0x62d, 0x645, 0x64a,
+ 0x306, 0x62d, 0x645, 0x649, 0x304, 0x633, 0x62d, 0x62c,
+ 0x304, 0x633, 0x62c, 0x62d, 0x306, 0x633, 0x62c, 0x649,
+ 0x306, 0x633, 0x645, 0x62d, 0x304, 0x633, 0x645, 0x62d,
+ 0x304, 0x633, 0x645, 0x62c, 0x306, 0x633, 0x645, 0x645,
+ 0x304, 0x633, 0x645, 0x645, 0x306, 0x635, 0x62d, 0x62d,
+ 0x304, 0x635, 0x62d, 0x62d, 0x306, 0x635, 0x645, 0x645,
+ 0x306, 0x634, 0x62d, 0x645, 0x304, 0x634, 0x62d, 0x645,
+ 0x306, 0x634, 0x62c, 0x64a, 0x306, 0x634, 0x645, 0x62e,
+ 0x304, 0x634, 0x645, 0x62e, 0x306, 0x634, 0x645, 0x645,
+ 0x304, 0x634, 0x645, 0x645, 0x306, 0x636, 0x62d, 0x649,
+ 0x306, 0x636, 0x62e, 0x645, 0x304, 0x636, 0x62e, 0x645,
+ 0x306, 0x637, 0x645, 0x62d, 0x304, 0x637, 0x645, 0x62d,
+ 0x304, 0x637, 0x645, 0x645, 0x306, 0x637, 0x645, 0x64a,
+ 0x306, 0x639, 0x62c, 0x645, 0x306, 0x639, 0x645, 0x645,
+ 0x304, 0x639, 0x645, 0x645, 0x306, 0x639, 0x645, 0x649,
+ 0x306, 0x63a, 0x645, 0x645, 0x306, 0x63a, 0x645, 0x64a,
+ 0x306, 0x63a, 0x645, 0x649, 0x306, 0x641, 0x62e, 0x645,
+ 0x304, 0x641, 0x62e, 0x645, 0x306, 0x642, 0x645, 0x62d,
+ 0x306, 0x642, 0x645, 0x645, 0x306, 0x644, 0x62d, 0x645,
+ 0x306, 0x644, 0x62d, 0x64a, 0x306, 0x644, 0x62d, 0x649,
+ 0x304, 0x644, 0x62c, 0x62c, 0x306, 0x644, 0x62c, 0x62c,
+ 0x306, 0x644, 0x62e, 0x645, 0x304, 0x644, 0x62e, 0x645,
+ 0x306, 0x644, 0x645, 0x62d, 0x304, 0x644, 0x645, 0x62d,
+ 0x304, 0x645, 0x62d, 0x62c, 0x304, 0x645, 0x62d, 0x645,
+ 0x306, 0x645, 0x62d, 0x64a, 0x304, 0x645, 0x62c, 0x62d,
+ 0x304, 0x645, 0x62c, 0x645, 0x304, 0x645, 0x62e, 0x62c,
+ 0x304, 0x645, 0x62e, 0x645, 0x304, 0x645, 0x62c, 0x62e,
+ 0x304, 0x647, 0x645, 0x62c, 0x304, 0x647, 0x645, 0x645,
+ 0x304, 0x646, 0x62d, 0x645, 0x306, 0x646, 0x62d, 0x649,
+ 0x306, 0x646, 0x62c, 0x645, 0x304, 0x646, 0x62c, 0x645,
+ 0x306, 0x646, 0x62c, 0x649, 0x306, 0x646, 0x645, 0x64a,
+ 0x306, 0x646, 0x645, 0x649, 0x306, 0x64a, 0x645, 0x645,
+ 0x304, 0x64a, 0x645, 0x645, 0x306, 0x628, 0x62e, 0x64a,
+ 0x306, 0x62a, 0x62c, 0x64a, 0x306, 0x62a, 0x62c, 0x649,
+ 0x306, 0x62a, 0x62e, 0x64a, 0x306, 0x62a, 0x62e, 0x649,
+ 0x306, 0x62a, 0x645, 0x64a, 0x306, 0x62a, 0x645, 0x649,
+ 0x306, 0x62c, 0x645, 0x64a, 0x306, 0x62c, 0x62d, 0x649,
+ 0x306, 0x62c, 0x645, 0x649, 0x306, 0x633, 0x62e, 0x649,
+ 0x306, 0x635, 0x62d, 0x64a, 0x306, 0x634, 0x62d, 0x64a,
+ 0x306, 0x636, 0x62d, 0x64a, 0x306, 0x644, 0x62c, 0x64a,
+ 0x306, 0x644, 0x645, 0x64a, 0x306, 0x64a, 0x62d, 0x64a,
+ 0x306, 0x64a, 0x62c, 0x64a, 0x306, 0x64a, 0x645, 0x64a,
+ 0x306, 0x645, 0x645, 0x64a, 0x306, 0x642, 0x645, 0x64a,
+ 0x306, 0x646, 0x62d, 0x64a, 0x304, 0x642, 0x645, 0x62d,
+ 0x304, 0x644, 0x62d, 0x645, 0x306, 0x639, 0x645, 0x64a,
+ 0x306, 0x643, 0x645, 0x64a, 0x304, 0x646, 0x62c, 0x62d,
+ 0x306, 0x645, 0x62e, 0x64a, 0x304, 0x644, 0x62c, 0x645,
+ 0x306, 0x643, 0x645, 0x645, 0x306, 0x644, 0x62c, 0x645,
+ 0x306, 0x646, 0x62c, 0x62d, 0x306, 0x62c, 0x62d, 0x64a,
+ 0x306, 0x62d, 0x62c, 0x64a, 0x306, 0x645, 0x62c, 0x64a,
+ 0x306, 0x641, 0x645, 0x64a, 0x306, 0x628, 0x62d, 0x64a,
+ 0x304, 0x643, 0x645, 0x645, 0x304, 0x639, 0x62c, 0x645,
+ 0x304, 0x635, 0x645, 0x645, 0x306, 0x633, 0x62e, 0x64a,
+ 0x306, 0x646, 0x62c, 0x64a, 0x307, 0x635, 0x644, 0x6d2,
+ 0x307, 0x642, 0x644, 0x6d2, 0x407, 0x627, 0x644, 0x644,
+ 0x647, 0x407, 0x627, 0x643, 0x628, 0x631, 0x407, 0x645,
+ 0x62d, 0x645, 0x62f, 0x407, 0x635, 0x644, 0x639, 0x645,
+ 0x407, 0x631, 0x633, 0x648, 0x644, 0x407, 0x639, 0x644,
+ 0x64a, 0x647, 0x407, 0x648, 0x633, 0x644, 0x645, 0x307,
+ 0x635, 0x644, 0x649, 0x1207, 0x635, 0x644, 0x649, 0x20,
+ 0x627, 0x644, 0x644, 0x647, 0x20, 0x639, 0x644, 0x64a,
+ 0x647, 0x20, 0x648, 0x633, 0x644, 0x645, 0x807, 0x62c,
+ 0x644, 0x20, 0x62c, 0x644, 0x627, 0x644, 0x647, 0x407,
+ 0x631, 0x6cc, 0x627, 0x644, 0x10b, 0x2c, 0x10b, 0x3001,
+ 0x10b, 0x3002, 0x10b, 0x3a, 0x10b, 0x3b, 0x10b, 0x21,
+ 0x10b, 0x3f, 0x10b, 0x3016, 0x10b, 0x3017, 0x10b, 0x2026,
+ 0x10b, 0x2025, 0x10b, 0x2014, 0x10b, 0x2013, 0x10b, 0x5f,
+ 0x10b, 0x5f, 0x10b, 0x28, 0x10b, 0x29, 0x10b, 0x7b,
+ 0x10b, 0x7d, 0x10b, 0x3014, 0x10b, 0x3015, 0x10b, 0x3010,
+ 0x10b, 0x3011, 0x10b, 0x300a, 0x10b, 0x300b, 0x10b, 0x3008,
+ 0x10b, 0x3009, 0x10b, 0x300c, 0x10b, 0x300d, 0x10b, 0x300e,
+ 0x10b, 0x300f, 0x10b, 0x5b, 0x10b, 0x5d, 0x110, 0x203e,
+ 0x110, 0x203e, 0x110, 0x203e, 0x110, 0x203e, 0x110, 0x5f,
+ 0x110, 0x5f, 0x110, 0x5f, 0x10e, 0x2c, 0x10e, 0x3001,
+ 0x10e, 0x2e, 0x10e, 0x3b, 0x10e, 0x3a, 0x10e, 0x3f,
+ 0x10e, 0x21, 0x10e, 0x2014, 0x10e, 0x28, 0x10e, 0x29,
+ 0x10e, 0x7b, 0x10e, 0x7d, 0x10e, 0x3014, 0x10e, 0x3015,
+ 0x10e, 0x23, 0x10e, 0x26, 0x10e, 0x2a, 0x10e, 0x2b,
+ 0x10e, 0x2d, 0x10e, 0x3c, 0x10e, 0x3e, 0x10e, 0x3d,
+ 0x10e, 0x5c, 0x10e, 0x24, 0x10e, 0x25, 0x10e, 0x40,
+ 0x207, 0x20, 0x64b, 0x205, 0x640, 0x64b, 0x207, 0x20,
+ 0x64c, 0x207, 0x20, 0x64d, 0x207, 0x20, 0x64e, 0x205,
+ 0x640, 0x64e, 0x207, 0x20, 0x64f, 0x205, 0x640, 0x64f,
+ 0x207, 0x20, 0x650, 0x205, 0x640, 0x650, 0x207, 0x20,
+ 0x651, 0x205, 0x640, 0x651, 0x207, 0x20, 0x652, 0x205,
+ 0x640, 0x652, 0x107, 0x621, 0x107, 0x622, 0x106, 0x622,
+ 0x107, 0x623, 0x106, 0x623, 0x107, 0x624, 0x106, 0x624,
+ 0x107, 0x625, 0x106, 0x625, 0x107, 0x626, 0x106, 0x626,
+ 0x104, 0x626, 0x105, 0x626, 0x107, 0x627, 0x106, 0x627,
+ 0x107, 0x628, 0x106, 0x628, 0x104, 0x628, 0x105, 0x628,
+ 0x107, 0x629, 0x106, 0x629, 0x107, 0x62a, 0x106, 0x62a,
+ 0x104, 0x62a, 0x105, 0x62a, 0x107, 0x62b, 0x106, 0x62b,
+ 0x104, 0x62b, 0x105, 0x62b, 0x107, 0x62c, 0x106, 0x62c,
+ 0x104, 0x62c, 0x105, 0x62c, 0x107, 0x62d, 0x106, 0x62d,
+ 0x104, 0x62d, 0x105, 0x62d, 0x107, 0x62e, 0x106, 0x62e,
+ 0x104, 0x62e, 0x105, 0x62e, 0x107, 0x62f, 0x106, 0x62f,
+ 0x107, 0x630, 0x106, 0x630, 0x107, 0x631, 0x106, 0x631,
+ 0x107, 0x632, 0x106, 0x632, 0x107, 0x633, 0x106, 0x633,
+ 0x104, 0x633, 0x105, 0x633, 0x107, 0x634, 0x106, 0x634,
+ 0x104, 0x634, 0x105, 0x634, 0x107, 0x635, 0x106, 0x635,
+ 0x104, 0x635, 0x105, 0x635, 0x107, 0x636, 0x106, 0x636,
+ 0x104, 0x636, 0x105, 0x636, 0x107, 0x637, 0x106, 0x637,
+ 0x104, 0x637, 0x105, 0x637, 0x107, 0x638, 0x106, 0x638,
+ 0x104, 0x638, 0x105, 0x638, 0x107, 0x639, 0x106, 0x639,
+ 0x104, 0x639, 0x105, 0x639, 0x107, 0x63a, 0x106, 0x63a,
+ 0x104, 0x63a, 0x105, 0x63a, 0x107, 0x641, 0x106, 0x641,
+ 0x104, 0x641, 0x105, 0x641, 0x107, 0x642, 0x106, 0x642,
+ 0x104, 0x642, 0x105, 0x642, 0x107, 0x643, 0x106, 0x643,
+ 0x104, 0x643, 0x105, 0x643, 0x107, 0x644, 0x106, 0x644,
+ 0x104, 0x644, 0x105, 0x644, 0x107, 0x645, 0x106, 0x645,
+ 0x104, 0x645, 0x105, 0x645, 0x107, 0x646, 0x106, 0x646,
+ 0x104, 0x646, 0x105, 0x646, 0x107, 0x647, 0x106, 0x647,
+ 0x104, 0x647, 0x105, 0x647, 0x107, 0x648, 0x106, 0x648,
+ 0x107, 0x649, 0x106, 0x649, 0x107, 0x64a, 0x106, 0x64a,
+ 0x104, 0x64a, 0x105, 0x64a, 0x207, 0x644, 0x622, 0x206,
+ 0x644, 0x622, 0x207, 0x644, 0x623, 0x206, 0x644, 0x623,
+ 0x207, 0x644, 0x625, 0x206, 0x644, 0x625, 0x207, 0x644,
+ 0x627, 0x206, 0x644, 0x627, 0x10c, 0x21, 0x10c, 0x22,
+ 0x10c, 0x23, 0x10c, 0x24, 0x10c, 0x25, 0x10c, 0x26,
+ 0x10c, 0x27, 0x10c, 0x28, 0x10c, 0x29, 0x10c, 0x2a,
+ 0x10c, 0x2b, 0x10c, 0x2c, 0x10c, 0x2d, 0x10c, 0x2e,
+ 0x10c, 0x2f, 0x10c, 0x30, 0x10c, 0x31, 0x10c, 0x32,
+ 0x10c, 0x33, 0x10c, 0x34, 0x10c, 0x35, 0x10c, 0x36,
+ 0x10c, 0x37, 0x10c, 0x38, 0x10c, 0x39, 0x10c, 0x3a,
+ 0x10c, 0x3b, 0x10c, 0x3c, 0x10c, 0x3d, 0x10c, 0x3e,
+ 0x10c, 0x3f, 0x10c, 0x40, 0x10c, 0x41, 0x10c, 0x42,
+ 0x10c, 0x43, 0x10c, 0x44, 0x10c, 0x45, 0x10c, 0x46,
+ 0x10c, 0x47, 0x10c, 0x48, 0x10c, 0x49, 0x10c, 0x4a,
+ 0x10c, 0x4b, 0x10c, 0x4c, 0x10c, 0x4d, 0x10c, 0x4e,
+ 0x10c, 0x4f, 0x10c, 0x50, 0x10c, 0x51, 0x10c, 0x52,
+ 0x10c, 0x53, 0x10c, 0x54, 0x10c, 0x55, 0x10c, 0x56,
+ 0x10c, 0x57, 0x10c, 0x58, 0x10c, 0x59, 0x10c, 0x5a,
+ 0x10c, 0x5b, 0x10c, 0x5c, 0x10c, 0x5d, 0x10c, 0x5e,
+ 0x10c, 0x5f, 0x10c, 0x60, 0x10c, 0x61, 0x10c, 0x62,
+ 0x10c, 0x63, 0x10c, 0x64, 0x10c, 0x65, 0x10c, 0x66,
+ 0x10c, 0x67, 0x10c, 0x68, 0x10c, 0x69, 0x10c, 0x6a,
+ 0x10c, 0x6b, 0x10c, 0x6c, 0x10c, 0x6d, 0x10c, 0x6e,
+ 0x10c, 0x6f, 0x10c, 0x70, 0x10c, 0x71, 0x10c, 0x72,
+ 0x10c, 0x73, 0x10c, 0x74, 0x10c, 0x75, 0x10c, 0x76,
+ 0x10c, 0x77, 0x10c, 0x78, 0x10c, 0x79, 0x10c, 0x7a,
+ 0x10c, 0x7b, 0x10c, 0x7c, 0x10c, 0x7d, 0x10c, 0x7e,
+ 0x10c, 0x2985, 0x10c, 0x2986, 0x10d, 0x3002, 0x10d, 0x300c,
+ 0x10d, 0x300d, 0x10d, 0x3001, 0x10d, 0x30fb, 0x10d, 0x30f2,
+ 0x10d, 0x30a1, 0x10d, 0x30a3, 0x10d, 0x30a5, 0x10d, 0x30a7,
+ 0x10d, 0x30a9, 0x10d, 0x30e3, 0x10d, 0x30e5, 0x10d, 0x30e7,
+ 0x10d, 0x30c3, 0x10d, 0x30fc, 0x10d, 0x30a2, 0x10d, 0x30a4,
+ 0x10d, 0x30a6, 0x10d, 0x30a8, 0x10d, 0x30aa, 0x10d, 0x30ab,
+ 0x10d, 0x30ad, 0x10d, 0x30af, 0x10d, 0x30b1, 0x10d, 0x30b3,
+ 0x10d, 0x30b5, 0x10d, 0x30b7, 0x10d, 0x30b9, 0x10d, 0x30bb,
+ 0x10d, 0x30bd, 0x10d, 0x30bf, 0x10d, 0x30c1, 0x10d, 0x30c4,
+ 0x10d, 0x30c6, 0x10d, 0x30c8, 0x10d, 0x30ca, 0x10d, 0x30cb,
+ 0x10d, 0x30cc, 0x10d, 0x30cd, 0x10d, 0x30ce, 0x10d, 0x30cf,
+ 0x10d, 0x30d2, 0x10d, 0x30d5, 0x10d, 0x30d8, 0x10d, 0x30db,
+ 0x10d, 0x30de, 0x10d, 0x30df, 0x10d, 0x30e0, 0x10d, 0x30e1,
+ 0x10d, 0x30e2, 0x10d, 0x30e4, 0x10d, 0x30e6, 0x10d, 0x30e8,
+ 0x10d, 0x30e9, 0x10d, 0x30ea, 0x10d, 0x30eb, 0x10d, 0x30ec,
+ 0x10d, 0x30ed, 0x10d, 0x30ef, 0x10d, 0x30f3, 0x10d, 0x3099,
+ 0x10d, 0x309a, 0x10d, 0x3164, 0x10d, 0x3131, 0x10d, 0x3132,
+ 0x10d, 0x3133, 0x10d, 0x3134, 0x10d, 0x3135, 0x10d, 0x3136,
+ 0x10d, 0x3137, 0x10d, 0x3138, 0x10d, 0x3139, 0x10d, 0x313a,
+ 0x10d, 0x313b, 0x10d, 0x313c, 0x10d, 0x313d, 0x10d, 0x313e,
+ 0x10d, 0x313f, 0x10d, 0x3140, 0x10d, 0x3141, 0x10d, 0x3142,
+ 0x10d, 0x3143, 0x10d, 0x3144, 0x10d, 0x3145, 0x10d, 0x3146,
+ 0x10d, 0x3147, 0x10d, 0x3148, 0x10d, 0x3149, 0x10d, 0x314a,
+ 0x10d, 0x314b, 0x10d, 0x314c, 0x10d, 0x314d, 0x10d, 0x314e,
+ 0x10d, 0x314f, 0x10d, 0x3150, 0x10d, 0x3151, 0x10d, 0x3152,
+ 0x10d, 0x3153, 0x10d, 0x3154, 0x10d, 0x3155, 0x10d, 0x3156,
+ 0x10d, 0x3157, 0x10d, 0x3158, 0x10d, 0x3159, 0x10d, 0x315a,
+ 0x10d, 0x315b, 0x10d, 0x315c, 0x10d, 0x315d, 0x10d, 0x315e,
+ 0x10d, 0x315f, 0x10d, 0x3160, 0x10d, 0x3161, 0x10d, 0x3162,
+ 0x10d, 0x3163, 0x10c, 0xa2, 0x10c, 0xa3, 0x10c, 0xac,
+ 0x10c, 0xaf, 0x10c, 0xa6, 0x10c, 0xa5, 0x10c, 0x20a9,
+ 0x10d, 0x2502, 0x10d, 0x2190, 0x10d, 0x2191, 0x10d, 0x2192,
+ 0x10d, 0x2193, 0x10d, 0x25a0, 0x10d, 0x25cb, 0x401, 0xd804,
+ 0xdc99, 0xd804, 0xdcba, 0x401, 0xd804, 0xdc9b, 0xd804, 0xdcba,
+ 0x401, 0xd804, 0xdca5, 0xd804, 0xdcba, 0x401, 0xd804, 0xdd31,
+ 0xd804, 0xdd27, 0x401, 0xd804, 0xdd32, 0xd804, 0xdd27, 0x401,
+ 0xd804, 0xdf47, 0xd804, 0xdf3e, 0x401, 0xd804, 0xdf47, 0xd804,
+ 0xdf57, 0x401, 0xd805, 0xdcb9, 0xd805, 0xdcba, 0x401, 0xd805,
+ 0xdcb9, 0xd805, 0xdcb0, 0x401, 0xd805, 0xdcb9, 0xd805, 0xdcbd,
+ 0x401, 0xd805, 0xddb8, 0xd805, 0xddaf, 0x401, 0xd805, 0xddb9,
+ 0xd805, 0xddaf, 0x401, 0xd834, 0xdd57, 0xd834, 0xdd65, 0x401,
+ 0xd834, 0xdd58, 0xd834, 0xdd65, 0x401, 0xd834, 0xdd5f, 0xd834,
+ 0xdd6e, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd6f, 0x401, 0xd834,
+ 0xdd5f, 0xd834, 0xdd70, 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd71,
+ 0x401, 0xd834, 0xdd5f, 0xd834, 0xdd72, 0x401, 0xd834, 0xddb9,
+ 0xd834, 0xdd65, 0x401, 0xd834, 0xddba, 0xd834, 0xdd65, 0x401,
+ 0xd834, 0xddbb, 0xd834, 0xdd6e, 0x401, 0xd834, 0xddbc, 0xd834,
+ 0xdd6e, 0x401, 0xd834, 0xddbb, 0xd834, 0xdd6f, 0x401, 0xd834,
+ 0xddbc, 0xd834, 0xdd6f, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x69, 0x102,
+ 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, 0x102,
+ 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, 0x102,
+ 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, 0x102,
+ 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, 0x102,
+ 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x43, 0x102,
+ 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, 0x102,
+ 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102, 0x4b, 0x102,
+ 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102, 0x4f, 0x102,
+ 0x50, 0x102, 0x51, 0x102, 0x52, 0x102, 0x53, 0x102,
+ 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57, 0x102,
+ 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61, 0x102,
+ 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65, 0x102,
+ 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69, 0x102,
+ 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, 0x102,
+ 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, 0x102,
+ 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, 0x102,
+ 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, 0x102,
+ 0x7a, 0x102, 0x41, 0x102, 0x43, 0x102, 0x44, 0x102,
+ 0x47, 0x102, 0x4a, 0x102, 0x4b, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x53, 0x102,
+ 0x54, 0x102, 0x55, 0x102, 0x56, 0x102, 0x57, 0x102,
+ 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102, 0x61, 0x102,
+ 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x66, 0x102,
+ 0x68, 0x102, 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102,
+ 0x6c, 0x102, 0x6d, 0x102, 0x6e, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x44, 0x102, 0x45, 0x102, 0x46, 0x102, 0x47, 0x102,
+ 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102,
+ 0x4e, 0x102, 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x61, 0x102,
+ 0x62, 0x102, 0x63, 0x102, 0x64, 0x102, 0x65, 0x102,
+ 0x66, 0x102, 0x67, 0x102, 0x68, 0x102, 0x69, 0x102,
+ 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102, 0x6d, 0x102,
+ 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102, 0x71, 0x102,
+ 0x72, 0x102, 0x73, 0x102, 0x74, 0x102, 0x75, 0x102,
+ 0x76, 0x102, 0x77, 0x102, 0x78, 0x102, 0x79, 0x102,
+ 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102, 0x44, 0x102,
+ 0x45, 0x102, 0x46, 0x102, 0x47, 0x102, 0x49, 0x102,
+ 0x4a, 0x102, 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102,
+ 0x4f, 0x102, 0x53, 0x102, 0x54, 0x102, 0x55, 0x102,
+ 0x56, 0x102, 0x57, 0x102, 0x58, 0x102, 0x59, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x41, 0x102, 0x42, 0x102,
+ 0x43, 0x102, 0x44, 0x102, 0x45, 0x102, 0x46, 0x102,
+ 0x47, 0x102, 0x48, 0x102, 0x49, 0x102, 0x4a, 0x102,
+ 0x4b, 0x102, 0x4c, 0x102, 0x4d, 0x102, 0x4e, 0x102,
+ 0x4f, 0x102, 0x50, 0x102, 0x51, 0x102, 0x52, 0x102,
+ 0x53, 0x102, 0x54, 0x102, 0x55, 0x102, 0x56, 0x102,
+ 0x57, 0x102, 0x58, 0x102, 0x59, 0x102, 0x5a, 0x102,
+ 0x61, 0x102, 0x62, 0x102, 0x63, 0x102, 0x64, 0x102,
+ 0x65, 0x102, 0x66, 0x102, 0x67, 0x102, 0x68, 0x102,
+ 0x69, 0x102, 0x6a, 0x102, 0x6b, 0x102, 0x6c, 0x102,
+ 0x6d, 0x102, 0x6e, 0x102, 0x6f, 0x102, 0x70, 0x102,
+ 0x71, 0x102, 0x72, 0x102, 0x73, 0x102, 0x74, 0x102,
+ 0x75, 0x102, 0x76, 0x102, 0x77, 0x102, 0x78, 0x102,
+ 0x79, 0x102, 0x7a, 0x102, 0x131, 0x102, 0x237, 0x102,
+ 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, 0x102,
+ 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, 0x102,
+ 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, 0x102,
+ 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, 0x102,
+ 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, 0x102,
+ 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, 0x102,
+ 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, 0x102,
+ 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, 0x102,
+ 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, 0x102,
+ 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, 0x102,
+ 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, 0x102,
+ 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, 0x102,
+ 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, 0x102,
+ 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, 0x102,
+ 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392, 0x102,
+ 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396, 0x102,
+ 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a, 0x102,
+ 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e, 0x102,
+ 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4, 0x102,
+ 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6, 0x102,
+ 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207, 0x102,
+ 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4, 0x102,
+ 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8, 0x102,
+ 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc, 0x102,
+ 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0, 0x102,
+ 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4, 0x102,
+ 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8, 0x102,
+ 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1, 0x102,
+ 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6, 0x102,
+ 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, 0x102,
+ 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, 0x102,
+ 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, 0x102,
+ 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, 0x102,
+ 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, 0x102,
+ 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, 0x102,
+ 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, 0x102,
+ 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, 0x102,
+ 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, 0x102,
+ 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, 0x102,
+ 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, 0x102,
+ 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, 0x102,
+ 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, 0x102,
+ 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, 0x102,
+ 0x3f1, 0x102, 0x3d6, 0x102, 0x391, 0x102, 0x392, 0x102,
+ 0x393, 0x102, 0x394, 0x102, 0x395, 0x102, 0x396, 0x102,
+ 0x397, 0x102, 0x398, 0x102, 0x399, 0x102, 0x39a, 0x102,
+ 0x39b, 0x102, 0x39c, 0x102, 0x39d, 0x102, 0x39e, 0x102,
+ 0x39f, 0x102, 0x3a0, 0x102, 0x3a1, 0x102, 0x3f4, 0x102,
+ 0x3a3, 0x102, 0x3a4, 0x102, 0x3a5, 0x102, 0x3a6, 0x102,
+ 0x3a7, 0x102, 0x3a8, 0x102, 0x3a9, 0x102, 0x2207, 0x102,
+ 0x3b1, 0x102, 0x3b2, 0x102, 0x3b3, 0x102, 0x3b4, 0x102,
+ 0x3b5, 0x102, 0x3b6, 0x102, 0x3b7, 0x102, 0x3b8, 0x102,
+ 0x3b9, 0x102, 0x3ba, 0x102, 0x3bb, 0x102, 0x3bc, 0x102,
+ 0x3bd, 0x102, 0x3be, 0x102, 0x3bf, 0x102, 0x3c0, 0x102,
+ 0x3c1, 0x102, 0x3c2, 0x102, 0x3c3, 0x102, 0x3c4, 0x102,
+ 0x3c5, 0x102, 0x3c6, 0x102, 0x3c7, 0x102, 0x3c8, 0x102,
+ 0x3c9, 0x102, 0x2202, 0x102, 0x3f5, 0x102, 0x3d1, 0x102,
+ 0x3f0, 0x102, 0x3d5, 0x102, 0x3f1, 0x102, 0x3d6, 0x102,
+ 0x391, 0x102, 0x392, 0x102, 0x393, 0x102, 0x394, 0x102,
+ 0x395, 0x102, 0x396, 0x102, 0x397, 0x102, 0x398, 0x102,
+ 0x399, 0x102, 0x39a, 0x102, 0x39b, 0x102, 0x39c, 0x102,
+ 0x39d, 0x102, 0x39e, 0x102, 0x39f, 0x102, 0x3a0, 0x102,
+ 0x3a1, 0x102, 0x3f4, 0x102, 0x3a3, 0x102, 0x3a4, 0x102,
+ 0x3a5, 0x102, 0x3a6, 0x102, 0x3a7, 0x102, 0x3a8, 0x102,
+ 0x3a9, 0x102, 0x2207, 0x102, 0x3b1, 0x102, 0x3b2, 0x102,
+ 0x3b3, 0x102, 0x3b4, 0x102, 0x3b5, 0x102, 0x3b6, 0x102,
+ 0x3b7, 0x102, 0x3b8, 0x102, 0x3b9, 0x102, 0x3ba, 0x102,
+ 0x3bb, 0x102, 0x3bc, 0x102, 0x3bd, 0x102, 0x3be, 0x102,
+ 0x3bf, 0x102, 0x3c0, 0x102, 0x3c1, 0x102, 0x3c2, 0x102,
+ 0x3c3, 0x102, 0x3c4, 0x102, 0x3c5, 0x102, 0x3c6, 0x102,
+ 0x3c7, 0x102, 0x3c8, 0x102, 0x3c9, 0x102, 0x2202, 0x102,
+ 0x3f5, 0x102, 0x3d1, 0x102, 0x3f0, 0x102, 0x3d5, 0x102,
+ 0x3f1, 0x102, 0x3d6, 0x102, 0x3dc, 0x102, 0x3dd, 0x102,
+ 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, 0x102,
+ 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, 0x102,
+ 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31, 0x102,
+ 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35, 0x102,
+ 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39, 0x102,
+ 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, 0x102,
+ 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, 0x102,
+ 0x38, 0x102, 0x39, 0x102, 0x30, 0x102, 0x31, 0x102,
+ 0x32, 0x102, 0x33, 0x102, 0x34, 0x102, 0x35, 0x102,
+ 0x36, 0x102, 0x37, 0x102, 0x38, 0x102, 0x39, 0x102,
+ 0x30, 0x102, 0x31, 0x102, 0x32, 0x102, 0x33, 0x102,
+ 0x34, 0x102, 0x35, 0x102, 0x36, 0x102, 0x37, 0x102,
+ 0x38, 0x102, 0x39, 0x102, 0x627, 0x102, 0x628, 0x102,
+ 0x62c, 0x102, 0x62f, 0x102, 0x648, 0x102, 0x632, 0x102,
+ 0x62d, 0x102, 0x637, 0x102, 0x64a, 0x102, 0x643, 0x102,
+ 0x644, 0x102, 0x645, 0x102, 0x646, 0x102, 0x633, 0x102,
+ 0x639, 0x102, 0x641, 0x102, 0x635, 0x102, 0x642, 0x102,
+ 0x631, 0x102, 0x634, 0x102, 0x62a, 0x102, 0x62b, 0x102,
+ 0x62e, 0x102, 0x630, 0x102, 0x636, 0x102, 0x638, 0x102,
+ 0x63a, 0x102, 0x66e, 0x102, 0x6ba, 0x102, 0x6a1, 0x102,
+ 0x66f, 0x102, 0x628, 0x102, 0x62c, 0x102, 0x647, 0x102,
+ 0x62d, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x644, 0x102,
+ 0x645, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102,
+ 0x641, 0x102, 0x635, 0x102, 0x642, 0x102, 0x634, 0x102,
+ 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x636, 0x102,
+ 0x63a, 0x102, 0x62c, 0x102, 0x62d, 0x102, 0x64a, 0x102,
+ 0x644, 0x102, 0x646, 0x102, 0x633, 0x102, 0x639, 0x102,
+ 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62e, 0x102,
+ 0x636, 0x102, 0x63a, 0x102, 0x6ba, 0x102, 0x66f, 0x102,
+ 0x628, 0x102, 0x62c, 0x102, 0x647, 0x102, 0x62d, 0x102,
+ 0x637, 0x102, 0x64a, 0x102, 0x643, 0x102, 0x645, 0x102,
+ 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, 0x102,
+ 0x635, 0x102, 0x642, 0x102, 0x634, 0x102, 0x62a, 0x102,
+ 0x62b, 0x102, 0x62e, 0x102, 0x636, 0x102, 0x638, 0x102,
+ 0x63a, 0x102, 0x66e, 0x102, 0x6a1, 0x102, 0x627, 0x102,
+ 0x628, 0x102, 0x62c, 0x102, 0x62f, 0x102, 0x647, 0x102,
+ 0x648, 0x102, 0x632, 0x102, 0x62d, 0x102, 0x637, 0x102,
+ 0x64a, 0x102, 0x644, 0x102, 0x645, 0x102, 0x646, 0x102,
+ 0x633, 0x102, 0x639, 0x102, 0x641, 0x102, 0x635, 0x102,
+ 0x642, 0x102, 0x631, 0x102, 0x634, 0x102, 0x62a, 0x102,
+ 0x62b, 0x102, 0x62e, 0x102, 0x630, 0x102, 0x636, 0x102,
+ 0x638, 0x102, 0x63a, 0x102, 0x628, 0x102, 0x62c, 0x102,
+ 0x62f, 0x102, 0x648, 0x102, 0x632, 0x102, 0x62d, 0x102,
+ 0x637, 0x102, 0x64a, 0x102, 0x644, 0x102, 0x645, 0x102,
+ 0x646, 0x102, 0x633, 0x102, 0x639, 0x102, 0x641, 0x102,
+ 0x635, 0x102, 0x642, 0x102, 0x631, 0x102, 0x634, 0x102,
+ 0x62a, 0x102, 0x62b, 0x102, 0x62e, 0x102, 0x630, 0x102,
+ 0x636, 0x102, 0x638, 0x102, 0x63a, 0x210, 0x30, 0x2e,
+ 0x210, 0x30, 0x2c, 0x210, 0x31, 0x2c, 0x210, 0x32,
+ 0x2c, 0x210, 0x33, 0x2c, 0x210, 0x34, 0x2c, 0x210,
+ 0x35, 0x2c, 0x210, 0x36, 0x2c, 0x210, 0x37, 0x2c,
+ 0x210, 0x38, 0x2c, 0x210, 0x39, 0x2c, 0x310, 0x28,
+ 0x41, 0x29, 0x310, 0x28, 0x42, 0x29, 0x310, 0x28,
+ 0x43, 0x29, 0x310, 0x28, 0x44, 0x29, 0x310, 0x28,
+ 0x45, 0x29, 0x310, 0x28, 0x46, 0x29, 0x310, 0x28,
+ 0x47, 0x29, 0x310, 0x28, 0x48, 0x29, 0x310, 0x28,
+ 0x49, 0x29, 0x310, 0x28, 0x4a, 0x29, 0x310, 0x28,
+ 0x4b, 0x29, 0x310, 0x28, 0x4c, 0x29, 0x310, 0x28,
+ 0x4d, 0x29, 0x310, 0x28, 0x4e, 0x29, 0x310, 0x28,
+ 0x4f, 0x29, 0x310, 0x28, 0x50, 0x29, 0x310, 0x28,
+ 0x51, 0x29, 0x310, 0x28, 0x52, 0x29, 0x310, 0x28,
+ 0x53, 0x29, 0x310, 0x28, 0x54, 0x29, 0x310, 0x28,
+ 0x55, 0x29, 0x310, 0x28, 0x56, 0x29, 0x310, 0x28,
+ 0x57, 0x29, 0x310, 0x28, 0x58, 0x29, 0x310, 0x28,
+ 0x59, 0x29, 0x310, 0x28, 0x5a, 0x29, 0x310, 0x3014,
+ 0x53, 0x3015, 0x108, 0x43, 0x108, 0x52, 0x208, 0x43,
+ 0x44, 0x208, 0x57, 0x5a, 0x10f, 0x41, 0x10f, 0x42,
+ 0x10f, 0x43, 0x10f, 0x44, 0x10f, 0x45, 0x10f, 0x46,
+ 0x10f, 0x47, 0x10f, 0x48, 0x10f, 0x49, 0x10f, 0x4a,
+ 0x10f, 0x4b, 0x10f, 0x4c, 0x10f, 0x4d, 0x10f, 0x4e,
+ 0x10f, 0x4f, 0x10f, 0x50, 0x10f, 0x51, 0x10f, 0x52,
+ 0x10f, 0x53, 0x10f, 0x54, 0x10f, 0x55, 0x10f, 0x56,
+ 0x10f, 0x57, 0x10f, 0x58, 0x10f, 0x59, 0x10f, 0x5a,
+ 0x20f, 0x48, 0x56, 0x20f, 0x4d, 0x56, 0x20f, 0x53,
+ 0x44, 0x20f, 0x53, 0x53, 0x30f, 0x50, 0x50, 0x56,
+ 0x20f, 0x57, 0x43, 0x209, 0x4d, 0x43, 0x209, 0x4d,
+ 0x44, 0x20f, 0x44, 0x4a, 0x20f, 0x307b, 0x304b, 0x20f,
+ 0x30b3, 0x30b3, 0x10f, 0x30b5, 0x10f, 0x624b, 0x10f, 0x5b57,
+ 0x10f, 0x53cc, 0x10f, 0x30c7, 0x10f, 0x4e8c, 0x10f, 0x591a,
+ 0x10f, 0x89e3, 0x10f, 0x5929, 0x10f, 0x4ea4, 0x10f, 0x6620,
+ 0x10f, 0x7121, 0x10f, 0x6599, 0x10f, 0x524d, 0x10f, 0x5f8c,
+ 0x10f, 0x518d, 0x10f, 0x65b0, 0x10f, 0x521d, 0x10f, 0x7d42,
+ 0x10f, 0x751f, 0x10f, 0x8ca9, 0x10f, 0x58f0, 0x10f, 0x5439,
+ 0x10f, 0x6f14, 0x10f, 0x6295, 0x10f, 0x6355, 0x10f, 0x4e00,
+ 0x10f, 0x4e09, 0x10f, 0x904a, 0x10f, 0x5de6, 0x10f, 0x4e2d,
+ 0x10f, 0x53f3, 0x10f, 0x6307, 0x10f, 0x8d70, 0x10f, 0x6253,
+ 0x10f, 0x7981, 0x10f, 0x7a7a, 0x10f, 0x5408, 0x10f, 0x6e80,
+ 0x10f, 0x6709, 0x10f, 0x6708, 0x10f, 0x7533, 0x10f, 0x5272,
+ 0x10f, 0x55b6, 0x310, 0x3014, 0x672c, 0x3015, 0x310, 0x3014,
+ 0x4e09, 0x3015, 0x310, 0x3014, 0x4e8c, 0x3015, 0x310, 0x3014,
+ 0x5b89, 0x3015, 0x310, 0x3014, 0x70b9, 0x3015, 0x310, 0x3014,
+ 0x6253, 0x3015, 0x310, 0x3014, 0x76d7, 0x3015, 0x310, 0x3014,
+ 0x52dd, 0x3015, 0x310, 0x3014, 0x6557, 0x3015, 0x108, 0x5f97,
+ 0x108, 0x53ef, 0x101, 0x4e3d, 0x101, 0x4e38, 0x101, 0x4e41,
+ 0x201, 0xd840, 0xdd22, 0x101, 0x4f60, 0x101, 0x4fae, 0x101,
+ 0x4fbb, 0x101, 0x5002, 0x101, 0x507a, 0x101, 0x5099, 0x101,
+ 0x50e7, 0x101, 0x50cf, 0x101, 0x349e, 0x201, 0xd841, 0xde3a,
+ 0x101, 0x514d, 0x101, 0x5154, 0x101, 0x5164, 0x101, 0x5177,
+ 0x201, 0xd841, 0xdd1c, 0x101, 0x34b9, 0x101, 0x5167, 0x101,
+ 0x518d, 0x201, 0xd841, 0xdd4b, 0x101, 0x5197, 0x101, 0x51a4,
+ 0x101, 0x4ecc, 0x101, 0x51ac, 0x101, 0x51b5, 0x201, 0xd864,
+ 0xdddf, 0x101, 0x51f5, 0x101, 0x5203, 0x101, 0x34df, 0x101,
+ 0x523b, 0x101, 0x5246, 0x101, 0x5272, 0x101, 0x5277, 0x101,
+ 0x3515, 0x101, 0x52c7, 0x101, 0x52c9, 0x101, 0x52e4, 0x101,
+ 0x52fa, 0x101, 0x5305, 0x101, 0x5306, 0x101, 0x5317, 0x101,
+ 0x5349, 0x101, 0x5351, 0x101, 0x535a, 0x101, 0x5373, 0x101,
+ 0x537d, 0x101, 0x537f, 0x101, 0x537f, 0x101, 0x537f, 0x201,
+ 0xd842, 0xde2c, 0x101, 0x7070, 0x101, 0x53ca, 0x101, 0x53df,
+ 0x201, 0xd842, 0xdf63, 0x101, 0x53eb, 0x101, 0x53f1, 0x101,
+ 0x5406, 0x101, 0x549e, 0x101, 0x5438, 0x101, 0x5448, 0x101,
+ 0x5468, 0x101, 0x54a2, 0x101, 0x54f6, 0x101, 0x5510, 0x101,
+ 0x5553, 0x101, 0x5563, 0x101, 0x5584, 0x101, 0x5584, 0x101,
+ 0x5599, 0x101, 0x55ab, 0x101, 0x55b3, 0x101, 0x55c2, 0x101,
+ 0x5716, 0x101, 0x5606, 0x101, 0x5717, 0x101, 0x5651, 0x101,
+ 0x5674, 0x101, 0x5207, 0x101, 0x58ee, 0x101, 0x57ce, 0x101,
+ 0x57f4, 0x101, 0x580d, 0x101, 0x578b, 0x101, 0x5832, 0x101,
+ 0x5831, 0x101, 0x58ac, 0x201, 0xd845, 0xdce4, 0x101, 0x58f2,
+ 0x101, 0x58f7, 0x101, 0x5906, 0x101, 0x591a, 0x101, 0x5922,
+ 0x101, 0x5962, 0x201, 0xd845, 0xdea8, 0x201, 0xd845, 0xdeea,
+ 0x101, 0x59ec, 0x101, 0x5a1b, 0x101, 0x5a27, 0x101, 0x59d8,
+ 0x101, 0x5a66, 0x101, 0x36ee, 0x101, 0x36fc, 0x101, 0x5b08,
+ 0x101, 0x5b3e, 0x101, 0x5b3e, 0x201, 0xd846, 0xddc8, 0x101,
+ 0x5bc3, 0x101, 0x5bd8, 0x101, 0x5be7, 0x101, 0x5bf3, 0x201,
+ 0xd846, 0xdf18, 0x101, 0x5bff, 0x101, 0x5c06, 0x101, 0x5f53,
+ 0x101, 0x5c22, 0x101, 0x3781, 0x101, 0x5c60, 0x101, 0x5c6e,
+ 0x101, 0x5cc0, 0x101, 0x5c8d, 0x201, 0xd847, 0xdde4, 0x101,
+ 0x5d43, 0x201, 0xd847, 0xdde6, 0x101, 0x5d6e, 0x101, 0x5d6b,
+ 0x101, 0x5d7c, 0x101, 0x5de1, 0x101, 0x5de2, 0x101, 0x382f,
+ 0x101, 0x5dfd, 0x101, 0x5e28, 0x101, 0x5e3d, 0x101, 0x5e69,
+ 0x101, 0x3862, 0x201, 0xd848, 0xdd83, 0x101, 0x387c, 0x101,
+ 0x5eb0, 0x101, 0x5eb3, 0x101, 0x5eb6, 0x101, 0x5eca, 0x201,
+ 0xd868, 0xdf92, 0x101, 0x5efe, 0x201, 0xd848, 0xdf31, 0x201,
+ 0xd848, 0xdf31, 0x101, 0x8201, 0x101, 0x5f22, 0x101, 0x5f22,
+ 0x101, 0x38c7, 0x201, 0xd84c, 0xdeb8, 0x201, 0xd858, 0xddda,
+ 0x101, 0x5f62, 0x101, 0x5f6b, 0x101, 0x38e3, 0x101, 0x5f9a,
+ 0x101, 0x5fcd, 0x101, 0x5fd7, 0x101, 0x5ff9, 0x101, 0x6081,
+ 0x101, 0x393a, 0x101, 0x391c, 0x101, 0x6094, 0x201, 0xd849,
+ 0xded4, 0x101, 0x60c7, 0x101, 0x6148, 0x101, 0x614c, 0x101,
+ 0x614e, 0x101, 0x614c, 0x101, 0x617a, 0x101, 0x618e, 0x101,
+ 0x61b2, 0x101, 0x61a4, 0x101, 0x61af, 0x101, 0x61de, 0x101,
+ 0x61f2, 0x101, 0x61f6, 0x101, 0x6210, 0x101, 0x621b, 0x101,
+ 0x625d, 0x101, 0x62b1, 0x101, 0x62d4, 0x101, 0x6350, 0x201,
+ 0xd84a, 0xdf0c, 0x101, 0x633d, 0x101, 0x62fc, 0x101, 0x6368,
+ 0x101, 0x6383, 0x101, 0x63e4, 0x201, 0xd84a, 0xdff1, 0x101,
+ 0x6422, 0x101, 0x63c5, 0x101, 0x63a9, 0x101, 0x3a2e, 0x101,
+ 0x6469, 0x101, 0x647e, 0x101, 0x649d, 0x101, 0x6477, 0x101,
+ 0x3a6c, 0x101, 0x654f, 0x101, 0x656c, 0x201, 0xd84c, 0xdc0a,
+ 0x101, 0x65e3, 0x101, 0x66f8, 0x101, 0x6649, 0x101, 0x3b19,
+ 0x101, 0x6691, 0x101, 0x3b08, 0x101, 0x3ae4, 0x101, 0x5192,
+ 0x101, 0x5195, 0x101, 0x6700, 0x101, 0x669c, 0x101, 0x80ad,
+ 0x101, 0x43d9, 0x101, 0x6717, 0x101, 0x671b, 0x101, 0x6721,
+ 0x101, 0x675e, 0x101, 0x6753, 0x201, 0xd84c, 0xdfc3, 0x101,
+ 0x3b49, 0x101, 0x67fa, 0x101, 0x6785, 0x101, 0x6852, 0x101,
+ 0x6885, 0x201, 0xd84d, 0xdc6d, 0x101, 0x688e, 0x101, 0x681f,
+ 0x101, 0x6914, 0x101, 0x3b9d, 0x101, 0x6942, 0x101, 0x69a3,
+ 0x101, 0x69ea, 0x101, 0x6aa8, 0x201, 0xd84d, 0xdea3, 0x101,
+ 0x6adb, 0x101, 0x3c18, 0x101, 0x6b21, 0x201, 0xd84e, 0xdca7,
+ 0x101, 0x6b54, 0x101, 0x3c4e, 0x101, 0x6b72, 0x101, 0x6b9f,
+ 0x101, 0x6bba, 0x101, 0x6bbb, 0x201, 0xd84e, 0xde8d, 0x201,
+ 0xd847, 0xdd0b, 0x201, 0xd84e, 0xdefa, 0x101, 0x6c4e, 0x201,
+ 0xd84f, 0xdcbc, 0x101, 0x6cbf, 0x101, 0x6ccd, 0x101, 0x6c67,
+ 0x101, 0x6d16, 0x101, 0x6d3e, 0x101, 0x6d77, 0x101, 0x6d41,
+ 0x101, 0x6d69, 0x101, 0x6d78, 0x101, 0x6d85, 0x201, 0xd84f,
+ 0xdd1e, 0x101, 0x6d34, 0x101, 0x6e2f, 0x101, 0x6e6e, 0x101,
+ 0x3d33, 0x101, 0x6ecb, 0x101, 0x6ec7, 0x201, 0xd84f, 0xded1,
+ 0x101, 0x6df9, 0x101, 0x6f6e, 0x201, 0xd84f, 0xdf5e, 0x201,
+ 0xd84f, 0xdf8e, 0x101, 0x6fc6, 0x101, 0x7039, 0x101, 0x701e,
+ 0x101, 0x701b, 0x101, 0x3d96, 0x101, 0x704a, 0x101, 0x707d,
+ 0x101, 0x7077, 0x101, 0x70ad, 0x201, 0xd841, 0xdd25, 0x101,
+ 0x7145, 0x201, 0xd850, 0xde63, 0x101, 0x719c, 0x201, 0xd850,
+ 0xdfab, 0x101, 0x7228, 0x101, 0x7235, 0x101, 0x7250, 0x201,
+ 0xd851, 0xde08, 0x101, 0x7280, 0x101, 0x7295, 0x201, 0xd851,
+ 0xdf35, 0x201, 0xd852, 0xdc14, 0x101, 0x737a, 0x101, 0x738b,
+ 0x101, 0x3eac, 0x101, 0x73a5, 0x101, 0x3eb8, 0x101, 0x3eb8,
+ 0x101, 0x7447, 0x101, 0x745c, 0x101, 0x7471, 0x101, 0x7485,
+ 0x101, 0x74ca, 0x101, 0x3f1b, 0x101, 0x7524, 0x201, 0xd853,
+ 0xdc36, 0x101, 0x753e, 0x201, 0xd853, 0xdc92, 0x101, 0x7570,
+ 0x201, 0xd848, 0xdd9f, 0x101, 0x7610, 0x201, 0xd853, 0xdfa1,
+ 0x201, 0xd853, 0xdfb8, 0x201, 0xd854, 0xdc44, 0x101, 0x3ffc,
+ 0x101, 0x4008, 0x101, 0x76f4, 0x201, 0xd854, 0xdcf3, 0x201,
+ 0xd854, 0xdcf2, 0x201, 0xd854, 0xdd19, 0x201, 0xd854, 0xdd33,
+ 0x101, 0x771e, 0x101, 0x771f, 0x101, 0x771f, 0x101, 0x774a,
+ 0x101, 0x4039, 0x101, 0x778b, 0x101, 0x4046, 0x101, 0x4096,
+ 0x201, 0xd855, 0xdc1d, 0x101, 0x784e, 0x101, 0x788c, 0x101,
+ 0x78cc, 0x101, 0x40e3, 0x201, 0xd855, 0xde26, 0x101, 0x7956,
+ 0x201, 0xd855, 0xde9a, 0x201, 0xd855, 0xdec5, 0x101, 0x798f,
+ 0x101, 0x79eb, 0x101, 0x412f, 0x101, 0x7a40, 0x101, 0x7a4a,
+ 0x101, 0x7a4f, 0x201, 0xd856, 0xdd7c, 0x201, 0xd856, 0xdea7,
+ 0x201, 0xd856, 0xdea7, 0x101, 0x7aee, 0x101, 0x4202, 0x201,
+ 0xd856, 0xdfab, 0x101, 0x7bc6, 0x101, 0x7bc9, 0x101, 0x4227,
+ 0x201, 0xd857, 0xdc80, 0x101, 0x7cd2, 0x101, 0x42a0, 0x101,
+ 0x7ce8, 0x101, 0x7ce3, 0x101, 0x7d00, 0x201, 0xd857, 0xdf86,
+ 0x101, 0x7d63, 0x101, 0x4301, 0x101, 0x7dc7, 0x101, 0x7e02,
+ 0x101, 0x7e45, 0x101, 0x4334, 0x201, 0xd858, 0xde28, 0x201,
+ 0xd858, 0xde47, 0x101, 0x4359, 0x201, 0xd858, 0xded9, 0x101,
+ 0x7f7a, 0x201, 0xd858, 0xdf3e, 0x101, 0x7f95, 0x101, 0x7ffa,
+ 0x101, 0x8005, 0x201, 0xd859, 0xdcda, 0x201, 0xd859, 0xdd23,
+ 0x101, 0x8060, 0x201, 0xd859, 0xdda8, 0x101, 0x8070, 0x201,
+ 0xd84c, 0xdf5f, 0x101, 0x43d5, 0x101, 0x80b2, 0x101, 0x8103,
+ 0x101, 0x440b, 0x101, 0x813e, 0x101, 0x5ab5, 0x201, 0xd859,
+ 0xdfa7, 0x201, 0xd859, 0xdfb5, 0x201, 0xd84c, 0xdf93, 0x201,
+ 0xd84c, 0xdf9c, 0x101, 0x8201, 0x101, 0x8204, 0x101, 0x8f9e,
+ 0x101, 0x446b, 0x101, 0x8291, 0x101, 0x828b, 0x101, 0x829d,
+ 0x101, 0x52b3, 0x101, 0x82b1, 0x101, 0x82b3, 0x101, 0x82bd,
+ 0x101, 0x82e6, 0x201, 0xd85a, 0xdf3c, 0x101, 0x82e5, 0x101,
+ 0x831d, 0x101, 0x8363, 0x101, 0x83ad, 0x101, 0x8323, 0x101,
+ 0x83bd, 0x101, 0x83e7, 0x101, 0x8457, 0x101, 0x8353, 0x101,
+ 0x83ca, 0x101, 0x83cc, 0x101, 0x83dc, 0x201, 0xd85b, 0xdc36,
+ 0x201, 0xd85b, 0xdd6b, 0x201, 0xd85b, 0xdcd5, 0x101, 0x452b,
+ 0x101, 0x84f1, 0x101, 0x84f3, 0x101, 0x8516, 0x201, 0xd85c,
+ 0xdfca, 0x101, 0x8564, 0x201, 0xd85b, 0xdf2c, 0x101, 0x455d,
+ 0x101, 0x4561, 0x201, 0xd85b, 0xdfb1, 0x201, 0xd85c, 0xdcd2,
+ 0x101, 0x456b, 0x101, 0x8650, 0x101, 0x865c, 0x101, 0x8667,
+ 0x101, 0x8669, 0x101, 0x86a9, 0x101, 0x8688, 0x101, 0x870e,
+ 0x101, 0x86e2, 0x101, 0x8779, 0x101, 0x8728, 0x101, 0x876b,
+ 0x101, 0x8786, 0x101, 0x45d7, 0x101, 0x87e1, 0x101, 0x8801,
+ 0x101, 0x45f9, 0x101, 0x8860, 0x101, 0x8863, 0x201, 0xd85d,
+ 0xde67, 0x101, 0x88d7, 0x101, 0x88de, 0x101, 0x4635, 0x101,
+ 0x88fa, 0x101, 0x34bb, 0x201, 0xd85e, 0xdcae, 0x201, 0xd85e,
+ 0xdd66, 0x101, 0x46be, 0x101, 0x46c7, 0x101, 0x8aa0, 0x101,
+ 0x8aed, 0x101, 0x8b8a, 0x101, 0x8c55, 0x201, 0xd85f, 0xdca8,
+ 0x101, 0x8cab, 0x101, 0x8cc1, 0x101, 0x8d1b, 0x101, 0x8d77,
+ 0x201, 0xd85f, 0xdf2f, 0x201, 0xd842, 0xdc04, 0x101, 0x8dcb,
+ 0x101, 0x8dbc, 0x101, 0x8df0, 0x201, 0xd842, 0xdcde, 0x101,
+ 0x8ed4, 0x101, 0x8f38, 0x201, 0xd861, 0xddd2, 0x201, 0xd861,
+ 0xdded, 0x101, 0x9094, 0x101, 0x90f1, 0x101, 0x9111, 0x201,
+ 0xd861, 0xdf2e, 0x101, 0x911b, 0x101, 0x9238, 0x101, 0x92d7,
+ 0x101, 0x92d8, 0x101, 0x927c, 0x101, 0x93f9, 0x101, 0x9415,
+ 0x201, 0xd862, 0xdffa, 0x101, 0x958b, 0x101, 0x4995, 0x101,
+ 0x95b7, 0x201, 0xd863, 0xdd77, 0x101, 0x49e6, 0x101, 0x96c3,
+ 0x101, 0x5db2, 0x101, 0x9723, 0x201, 0xd864, 0xdd45, 0x201,
+ 0xd864, 0xde1a, 0x101, 0x4a6e, 0x101, 0x4a76, 0x101, 0x97e0,
+ 0x201, 0xd865, 0xdc0a, 0x101, 0x4ab2, 0x201, 0xd865, 0xdc96,
+ 0x101, 0x980b, 0x101, 0x980b, 0x101, 0x9829, 0x201, 0xd865,
+ 0xddb6, 0x101, 0x98e2, 0x101, 0x4b33, 0x101, 0x9929, 0x101,
+ 0x99a7, 0x101, 0x99c2, 0x101, 0x99fe, 0x101, 0x4bce, 0x201,
+ 0xd866, 0xdf30, 0x101, 0x9b12, 0x101, 0x9c40, 0x101, 0x9cfd,
+ 0x101, 0x4cce, 0x101, 0x4ced, 0x101, 0x9d67, 0x201, 0xd868,
+ 0xdcce, 0x101, 0x4cf8, 0x201, 0xd868, 0xdd05, 0x201, 0xd868,
+ 0xde0e, 0x201, 0xd868, 0xde91, 0x101, 0x9ebb, 0x101, 0x4d56,
+ 0x101, 0x9ef9, 0x101, 0x9efe, 0x101, 0x9f05, 0x101, 0x9f0f,
+ 0x101, 0x9f16, 0x101, 0x9f3b, 0x201, 0xd869, 0xde00
};
static const unsigned short uc_ligature_trie[] = {
@@ -10602,7 +11526,7 @@ static const unsigned short uc_ligature_trie[] = {
1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
1271, 1271, 1271, 1271, 1271, 1271, 1271, 1527,
- 1783, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+ 1783, 1271, 2039, 2295, 2551, 1271, 1271, 1271,
1271, 1271, 1271, 1271, 1271, 1271, 1271,
@@ -10803,6 +11727,105 @@ static const unsigned short uc_ligature_trie[] = {
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x78c, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x791,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0x796, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0x79b, 0xffff, 0xffff, 0x7a0, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7a5,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff
};
@@ -11055,7 +12078,11 @@ static const unsigned short uc_ligature_map[] = {
0x30d5, 0x30d7, 0x30d8, 0x30da, 0x30db, 0x30dd, 0x3, 0xd804,
0xdc99, 0xd804, 0xdc9a, 0xd804, 0xdc9b, 0xd804, 0xdc9c, 0xd804,
0xdca5, 0xd804, 0xdcab, 0x2, 0xd804, 0xdd31, 0xd804, 0xdd2e,
- 0xd804, 0xdd32, 0xd804, 0xdd2f
+ 0xd804, 0xdd32, 0xd804, 0xdd2f, 0x1, 0xd804, 0xdf47, 0xd804,
+ 0xdf4b, 0x1, 0xd804, 0xdf47, 0xd804, 0xdf4c, 0x1, 0xd805,
+ 0xdcb9, 0xd805, 0xdcbc, 0x1, 0xd805, 0xdcb9, 0xd805, 0xdcbb,
+ 0x1, 0xd805, 0xdcb9, 0xd805, 0xdcbe, 0x2, 0xd805, 0xddb8,
+ 0xd805, 0xddba, 0xd805, 0xddb9, 0xd805, 0xddbb
};
diff --git a/src/corelib/tools/qunicodetables_p.h b/src/corelib/tools/qunicodetables_p.h
index 90340bb360..43c1f4e197 100644
--- a/src/corelib/tools/qunicodetables_p.h
+++ b/src/corelib/tools/qunicodetables_p.h
@@ -31,7 +31,7 @@
**
****************************************************************************/
-/* This file is autogenerated from the Unicode 6.3 database. Do not edit */
+/* This file is autogenerated from the Unicode 7.0 database. Do not edit */
//
// W A R N I N G
@@ -51,7 +51,7 @@
QT_BEGIN_NAMESPACE
-#define UNICODE_DATA_VERSION QChar::Unicode_6_3
+#define UNICODE_DATA_VERSION QChar::Unicode_7_0
namespace QUnicodeTables {
@@ -60,23 +60,23 @@ struct Properties {
ushort direction : 8; /* 5 used */
ushort combiningClass : 8;
ushort joining : 3;
- signed short digitValue : 5; /* 5 used */
+ signed short digitValue : 5;
signed short mirrorDiff : 16;
- signed short lowerCaseDiff : 16;
- signed short upperCaseDiff : 16;
- signed short titleCaseDiff : 16;
- signed short caseFoldDiff : 16;
ushort lowerCaseSpecial : 1;
+ signed short lowerCaseDiff : 15;
ushort upperCaseSpecial : 1;
+ signed short upperCaseDiff : 15;
ushort titleCaseSpecial : 1;
+ signed short titleCaseDiff : 15;
ushort caseFoldSpecial : 1;
- ushort unicodeVersion : 4;
+ signed short caseFoldDiff : 15;
+ ushort unicodeVersion : 8; /* 5 used */
ushort nfQuickCheck : 8;
ushort graphemeBreakClass : 4; /* 4 used */
ushort wordBreakClass : 4; /* 4 used */
ushort sentenceBreakClass : 8; /* 4 used */
ushort lineBreakClass : 8; /* 6 used */
- ushort script : 8; /* 7 used */
+ ushort script : 8;
};
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4) Q_DECL_NOTHROW;
diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp
index bce5a75d9e..56576c69f1 100644
--- a/src/corelib/tools/qunicodetools.cpp
+++ b/src/corelib/tools/qunicodetools.cpp
@@ -49,7 +49,7 @@ namespace QUnicodeTools {
// -----------------------------------------------------------------------------------------------------
//
// The text boundaries determination algorithm.
-// See http://www.unicode.org/reports/tr29/tr29-23.html
+// See http://www.unicode.org/reports/tr29/tr29-25.html
//
// -----------------------------------------------------------------------------------------------------
@@ -341,7 +341,7 @@ static void getSentenceBreaks(const ushort *string, quint32 len, QCharAttributes
// -----------------------------------------------------------------------------------------------------
//
// The line breaking algorithm.
-// See http://www.unicode.org/reports/tr14/tr14-32.html
+// See http://www.unicode.org/reports/tr14/tr14-33.html
//
// -----------------------------------------------------------------------------------------------------
@@ -659,7 +659,7 @@ Q_CORE_EXPORT void initCharAttributes(const ushort *string, int length,
// ----------------------------------------------------------------------------
//
-// The Unicode script property. See http://www.unicode.org/reports/tr24/tr24-21.html
+// The Unicode script property. See http://www.unicode.org/reports/tr24/tr24-22.html
//
// ----------------------------------------------------------------------------
diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h
index 95cd0447d8..bb15d66439 100644
--- a/src/corelib/tools/qvarlengtharray.h
+++ b/src/corelib/tools/qvarlengtharray.h
@@ -45,6 +45,7 @@
#ifdef Q_COMPILER_INITIALIZER_LISTS
#include <initializer_list>
#endif
+#include <iterator>
QT_BEGIN_NAMESPACE
@@ -91,6 +92,15 @@ public:
return *this;
}
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ QVarLengthArray<T, Prealloc> &operator=(std::initializer_list<T> list)
+ {
+ resize(list.size());
+ std::copy(list.begin(), list.end(), this->begin());
+ return *this;
+ }
+#endif
+
inline void removeLast() {
Q_ASSERT(s > 0);
realloc(s - 1, a);
@@ -165,6 +175,8 @@ public:
typedef T* iterator;
typedef const T* const_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
inline iterator begin() { return ptr; }
inline const_iterator begin() const { return ptr; }
@@ -174,6 +186,12 @@ public:
inline const_iterator end() const { return ptr + s; }
inline const_iterator cend() const { return ptr + s; }
inline const_iterator constEnd() const { return ptr + s; }
+ reverse_iterator rbegin() { return reverse_iterator(end()); }
+ reverse_iterator rend() { return reverse_iterator(begin()); }
+ const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
+ const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator crend() const { return const_reverse_iterator(begin()); }
iterator insert(const_iterator before, int n, const T &x);
inline iterator insert(const_iterator before, const T &x) { return insert(before, 1, x); }
iterator erase(const_iterator begin, const_iterator end);
@@ -480,6 +498,36 @@ bool operator!=(const QVarLengthArray<T, Prealloc1> &l, const QVarLengthArray<T,
return !(l == r);
}
+template <typename T, int Prealloc1, int Prealloc2>
+bool operator<(const QVarLengthArray<T, Prealloc1> &lhs, const QVarLengthArray<T, Prealloc2> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end())))
+{
+ return std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end());
+}
+
+template <typename T, int Prealloc1, int Prealloc2>
+inline bool operator>(const QVarLengthArray<T, Prealloc1> &lhs, const QVarLengthArray<T, Prealloc2> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return rhs < lhs;
+}
+
+template <typename T, int Prealloc1, int Prealloc2>
+inline bool operator<=(const QVarLengthArray<T, Prealloc1> &lhs, const QVarLengthArray<T, Prealloc2> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs > rhs);
+}
+
+template <typename T, int Prealloc1, int Prealloc2>
+inline bool operator>=(const QVarLengthArray<T, Prealloc1> &lhs, const QVarLengthArray<T, Prealloc2> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs < rhs);
+}
+
QT_END_NAMESPACE
#endif // QVARLENGTHARRAY_H
diff --git a/src/corelib/tools/qvarlengtharray.qdoc b/src/corelib/tools/qvarlengtharray.qdoc
index d1b87f381e..2b7f9c5241 100644
--- a/src/corelib/tools/qvarlengtharray.qdoc
+++ b/src/corelib/tools/qvarlengtharray.qdoc
@@ -362,6 +362,15 @@
Assigns \a other to this array and returns a reference to this array.
*/
+/*! \fn QVarLengthArray<T, Prealloc> &QVarLengthArray::operator=(std::initializer_list<T> list)
+ \since 5.5
+
+ Assigns the values of \a list to this array, and returns a reference to this array.
+
+ This constructor is only enabled if the compiler supports C++11 initializer
+ lists.
+*/
+
/*! \fn QVarLengthArray::QVarLengthArray(const QVarLengthArray<T, Prealloc> &other)
Constructs a copy of \a other.
*/
@@ -459,6 +468,20 @@
Typedef for T *. Provided for STL compatibility.
*/
+/*!
+ \typedef QVarLengthArray::const_reverse_iterator
+ \since 5.6
+
+ Typedef for \c{std::reverse_iterator<const T*>}. Provided for STL compatibility.
+*/
+
+/*!
+ \typedef QVarLengthArray::reverse_iterator
+ \since 5.6
+
+ Typedef for \c{std::reverse_iterator<T*>}. Provided for STL compatibility.
+*/
+
/*! \fn void QVarLengthArray::prepend(const T &value)
\since 4.8
@@ -573,6 +596,52 @@
\sa constBegin(), end()
*/
+/*! \fn QVarLengthArray::reverse_iterator QVarLengthArray::rbegin()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the variable length array, in reverse order.
+
+ \sa begin(), crbegin(), rend()
+*/
+
+/*! \fn QVarLengthArray::const_reverse_iterator QVarLengthArray::rbegin() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QVarLengthArray::const_reverse_iterator QVarLengthArray::crbegin() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the variable length array, in reverse order.
+
+ \sa begin(), rbegin(), rend()
+*/
+
+/*! \fn QVarLengthArray::reverse_iterator QVarLengthArray::rend()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to one past
+ the last item in the variable length array, in reverse order.
+
+ \sa end(), crend(), rbegin()
+*/
+
+/*! \fn QVarLengthArray::const_reverse_iterator QVarLengthArray::rend() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QVarLengthArray::const_reverse_iterator QVarLengthArray::crend() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to one
+ past the last item in the variable length array, in reverse order.
+
+ \sa end(), rend(), rbegin()
+*/
+
/*! \fn QVarLengthArray::iterator QVarLengthArray::erase(const_iterator pos)
\since 4.8
@@ -667,6 +736,54 @@
\sa operator==()
*/
+/*! \fn bool operator<(const QVarLengthArray<T,Prealloc1> &lhs, const QVarLengthArray<T,Prealloc2> &rhs)
+ \since 5.6
+ \relates QVarLengthArray
+
+ Returns \c true if variable length array \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator<=(const QVarLengthArray<T,Prealloc1> &lhs, const QVarLengthArray<T,Prealloc2> &rhs)
+ \since 5.6
+ \relates QVarLengthArray
+
+ Returns \c true if variable length array \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>(const QVarLengthArray<T,Prealloc1> &lhs, const QVarLengthArray<T,Prealloc2> &rhs)
+ \since 5.6
+ \relates QVarLengthArray
+
+ Returns \c true if variable length array \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>=(const QVarLengthArray<T,Prealloc1> &lhs, const QVarLengthArray<T,Prealloc2> &rhs)
+ \since 5.6
+ \relates QVarLengthArray
+
+ Returns \c true if variable length array \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
/*! \fn QVarLengthArray &QVarLengthArray::operator<<(const T &value)
\since 4.8
diff --git a/src/corelib/tools/qvector.cpp b/src/corelib/tools/qvector.cpp
index d10f82fbb4..52eafddf88 100644
--- a/src/corelib/tools/qvector.cpp
+++ b/src/corelib/tools/qvector.cpp
@@ -290,6 +290,54 @@
\sa operator==()
*/
+/*! \fn bool operator<(const QVector<T> &lhs, const QVector<T> &rhs)
+ \since 5.6
+ \relates QVector
+
+ Returns \c true if vector \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator<=(const QVector<T> &lhs, const QVector<T> &rhs)
+ \since 5.6
+ \relates QVector
+
+ Returns \c true if vector \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically less than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>(const QVector<T> &lhs, const QVector<T> &rhs)
+ \since 5.6
+ \relates QVector
+
+ Returns \c true if vector \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
+/*! \fn bool operator>=(const QVector<T> &lhs, const QVector<T> &rhs)
+ \since 5.6
+ \relates QVector
+
+ Returns \c true if vector \a lhs is
+ \l{http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare}
+ {lexicographically greater than or equal to} \a rhs; otherwise returns \c false.
+
+ This function requires the value type to have an implementation
+ of \c operator<().
+*/
+
/*! \fn int QVector::size() const
Returns the number of items in the vector.
@@ -823,6 +871,52 @@
\sa constBegin(), end()
*/
+/*! \fn QVector::reverse_iterator QVector::rbegin()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the vector, in reverse order.
+
+ \sa begin(), crbegin(), rend()
+*/
+
+/*! \fn QVector::const_reverse_iterator QVector::rbegin() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QVector::const_reverse_iterator QVector::crbegin() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to the first
+ item in the vector, in reverse order.
+
+ \sa begin(), rbegin(), rend()
+*/
+
+/*! \fn QVector::reverse_iterator QVector::rend()
+ \since 5.6
+
+ Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to one past
+ the last item in the vector, in reverse order.
+
+ \sa end(), crend(), rbegin()
+*/
+
+/*! \fn QVector::const_reverse_iterator QVector::rend() const
+ \since 5.6
+ \overload
+*/
+
+/*! \fn QVector::const_reverse_iterator QVector::crend() const
+ \since 5.6
+
+ Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to one
+ past the last item in the vector, in reverse order.
+
+ \sa end(), rend(), rbegin()
+*/
+
/*! \fn QVector::iterator QVector::erase(iterator pos)
Removes the item pointed to by the iterator \a pos from the
@@ -1013,6 +1107,38 @@
\sa QVector::constBegin(), QVector::constEnd(), QVector::iterator, QVectorIterator
*/
+/*! \typedef QVector::reverse_iterator
+ \since 5.6
+
+ The QVector::reverse_iterator typedef provides an STL-style non-const
+ reverse iterator for QVector.
+
+ It is simply a typedef for \c{std::reverse_iterator<T*>}.
+
+ \warning Iterators on implicitly shared containers do not work
+ exactly like STL-iterators. You should avoid copying a container
+ while iterators are active on that container. For more information,
+ read \l{Implicit sharing iterator problem}.
+
+ \sa QVector::rbegin(), QVector::rend(), QVector::const_reverse_iterator, QVector::iterator
+*/
+
+/*! \typedef QVector::const_reverse_iterator
+ \since 5.6
+
+ The QVector::const_reverse_iterator typedef provides an STL-style const
+ reverse iterator for QVector.
+
+ It is simply a typedef for \c{std::reverse_iterator<const T*>}.
+
+ \warning Iterators on implicitly shared containers do not work
+ exactly like STL-iterators. You should avoid copying a container
+ while iterators are active on that container. For more information,
+ read \l{Implicit sharing iterator problem}.
+
+ \sa QVector::rbegin(), QVector::rend(), QVector::reverse_iterator, QVector::const_iterator
+*/
+
/*! \typedef QVector::Iterator
Qt-style synonym for QVector::iterator.
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index a48269cfaa..58fbea50cc 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -175,6 +175,8 @@ public:
// STL-style
typedef typename Data::iterator iterator;
typedef typename Data::const_iterator const_iterator;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
#if !defined(QT_STRICT_ITERATORS) || defined(Q_QDOC)
inline iterator begin() { detach(); return d->begin(); }
inline const_iterator begin() const { return d->constBegin(); }
@@ -194,6 +196,12 @@ public:
inline const_iterator cend(const_iterator = const_iterator()) const { return d->constEnd(); }
inline const_iterator constEnd(const_iterator = const_iterator()) const { return d->constEnd(); }
#endif
+ reverse_iterator rbegin() { return reverse_iterator(end()); }
+ reverse_iterator rend() { return reverse_iterator(begin()); }
+ const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
+ const_reverse_iterator crbegin() const { return const_reverse_iterator(end()); }
+ const_reverse_iterator crend() const { return const_reverse_iterator(begin()); }
iterator insert(iterator before, int n, const T &x);
inline iterator insert(iterator before, const T &x) { return insert(before, 1, x); }
iterator erase(iterator begin, iterator end);
@@ -865,6 +873,36 @@ QList<T> QList<T>::fromVector(const QVector<T> &vector)
Q_DECLARE_SEQUENTIAL_ITERATOR(Vector)
Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(Vector)
+template <typename T>
+bool operator<(const QVector<T> &lhs, const QVector<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end())))
+{
+ return std::lexicographical_compare(lhs.begin(), lhs.end(),
+ rhs.begin(), rhs.end());
+}
+
+template <typename T>
+inline bool operator>(const QVector<T> &lhs, const QVector<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return rhs < lhs;
+}
+
+template <typename T>
+inline bool operator<=(const QVector<T> &lhs, const QVector<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs > rhs);
+}
+
+template <typename T>
+inline bool operator>=(const QVector<T> &lhs, const QVector<T> &rhs)
+ Q_DECL_NOEXCEPT_EXPR(noexcept(lhs < rhs))
+{
+ return !(lhs < rhs);
+}
+
/*
### Qt 5:
### This needs to be removed for next releases of Qt. It is a workaround for vc++ because
diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri
index 5de0c09a4d..5e4a22e283 100644
--- a/src/corelib/tools/tools.pri
+++ b/src/corelib/tools/tools.pri
@@ -26,6 +26,7 @@ HEADERS += \
tools/qeasingcurve.h \
tools/qfreelist_p.h \
tools/qhash.h \
+ tools/qhashfunctions.h \
tools/qiterator.h \
tools/qline.h \
tools/qlinkedlist.h \
diff --git a/src/dbus/qdbus_symbols.cpp b/src/dbus/qdbus_symbols.cpp
index 56e836c9ae..b82d92b561 100644
--- a/src/dbus/qdbus_symbols.cpp
+++ b/src/dbus/qdbus_symbols.cpp
@@ -81,6 +81,7 @@ bool qdbus_loadLibDBus()
return lib && lib->isLoaded();
lib = new QLibrary;
+ lib->setLoadHints(QLibrary::ExportExternalSymbolsHint); // make libdbus symbols available for apps that need more advanced control over the dbus
triedToLoadLibrary = true;
static int majorversions[] = { 3, 2, -1 };
diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp
index 29d5c3d88c..03640cdd21 100644
--- a/src/dbus/qdbusabstractinterface.cpp
+++ b/src/dbus/qdbusabstractinterface.cpp
@@ -88,7 +88,7 @@ QDBusAbstractInterfacePrivate::QDBusAbstractInterfacePrivate(const QString &serv
if (!connection.isConnected()) {
lastError = QDBusError(QDBusError::Disconnected,
- QLatin1String("Not connected to D-Bus server"));
+ QDBusUtil::disconnectedErrorMessage());
} else if (!service.isEmpty()) {
currentOwner = connectionPrivate()->getNameOwner(service); // verify the name owner
if (currentOwner.isEmpty()) {
@@ -131,8 +131,8 @@ bool QDBusAbstractInterfacePrivate::property(const QMetaProperty &mp, void *retu
// try to read this property
QDBusMessage msg = QDBusMessage::createMethodCall(service, path,
- QLatin1String(DBUS_INTERFACE_PROPERTIES),
- QLatin1String("Get"));
+ QDBusUtil::dbusInterfaceProperties(),
+ QStringLiteral("Get"));
QDBusMessagePrivate::setParametersValidated(msg, true);
msg << interface << QString::fromUtf8(mp.name());
QDBusMessage reply = connection.call(msg, QDBus::Block, timeout);
@@ -144,7 +144,7 @@ bool QDBusAbstractInterfacePrivate::property(const QMetaProperty &mp, void *retu
if (reply.signature() != QLatin1String("v")) {
QString errmsg = QLatin1String("Invalid signature `%1' in return from call to "
DBUS_INTERFACE_PROPERTIES);
- lastError = QDBusError(QDBusError::InvalidSignature, errmsg.arg(reply.signature()));
+ lastError = QDBusError(QDBusError::InvalidSignature, qMove(errmsg).arg(reply.signature()));
return false;
}
@@ -198,8 +198,8 @@ bool QDBusAbstractInterfacePrivate::setProperty(const QMetaProperty &mp, const Q
// send the value
QDBusMessage msg = QDBusMessage::createMethodCall(service, path,
- QLatin1String(DBUS_INTERFACE_PROPERTIES),
- QLatin1String("Set"));
+ QDBusUtil::dbusInterfaceProperties(),
+ QStringLiteral("Set"));
QDBusMessagePrivate::setParametersValidated(msg, true);
msg << interface << QString::fromUtf8(mp.name()) << QVariant::fromValue(QDBusVariant(value));
QDBusMessage reply = connection.call(msg, QDBus::Block, timeout);
@@ -290,10 +290,10 @@ QDBusAbstractInterface::QDBusAbstractInterface(QDBusAbstractInterfacePrivate &d,
&& !d.service.isEmpty()
&& !d.service.startsWith(QLatin1Char(':'))
&& d.connectionPrivate()->mode != QDBusConnectionPrivate::PeerMode)
- d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service
+ d_func()->connection.connect(QDBusUtil::dbusService(), // service
QString(), // path
- QLatin1String(DBUS_INTERFACE_DBUS), // interface
- QLatin1String("NameOwnerChanged"),
+ QDBusUtil::dbusInterface(), // interface
+ QDBusUtil::nameOwnerChanged(),
QStringList() << d.service,
QString(), // signature
this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
@@ -316,10 +316,10 @@ QDBusAbstractInterface::QDBusAbstractInterface(const QString &service, const QSt
&& !service.isEmpty()
&& !service.startsWith(QLatin1Char(':'))
&& d_func()->connectionPrivate()->mode != QDBusConnectionPrivate::PeerMode)
- d_func()->connection.connect(QLatin1String(DBUS_SERVICE_DBUS), // service
+ d_func()->connection.connect(QDBusUtil::dbusService(), // service
QString(), // path
- QLatin1String(DBUS_INTERFACE_DBUS), // interface
- QLatin1String("NameOwnerChanged"),
+ QDBusUtil::dbusInterface(), // interface
+ QDBusUtil::nameOwnerChanged(),
QStringList() << service,
QString(), //signature
this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 5dc18fe908..0adb3dd748 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -462,7 +462,7 @@ bool QDBusConnection::send(const QDBusMessage &message) const
{
if (!d || !d->connection) {
QDBusError err = QDBusError(QDBusError::Disconnected,
- QLatin1String("Not connected to D-BUS server"));
+ QDBusUtil::disconnectedErrorMessage());
if (d)
d->lastError = err;
return false;
@@ -495,7 +495,7 @@ bool QDBusConnection::callWithCallback(const QDBusMessage &message, QObject *rec
{
if (!d || !d->connection) {
QDBusError err = QDBusError(QDBusError::Disconnected,
- QLatin1String("Not connected to D-BUS server"));
+ QDBusUtil::disconnectedErrorMessage());
if (d)
d->lastError = err;
return false;
@@ -553,7 +553,7 @@ QDBusMessage QDBusConnection::call(const QDBusMessage &message, QDBus::CallMode
{
if (!d || !d->connection) {
QDBusError err = QDBusError(QDBusError::Disconnected,
- QLatin1String("Not connected to D-Bus server"));
+ QDBusUtil::disconnectedErrorMessage());
if (d)
d->lastError = err;
@@ -968,7 +968,7 @@ bool QDBusConnection::isConnected() const
*/
QDBusError QDBusConnection::lastError() const
{
- return d ? d->lastError : QDBusError(QDBusError::Disconnected, QStringLiteral("Not connected."));
+ return d ? d->lastError : QDBusError(QDBusError::Disconnected, QDBusUtil::disconnectedErrorMessage());
}
/*!
diff --git a/src/dbus/qdbusconnectioninterface.cpp b/src/dbus/qdbusconnectioninterface.cpp
index f3ca04b86c..ff923ba282 100644
--- a/src/dbus/qdbusconnectioninterface.cpp
+++ b/src/dbus/qdbusconnectioninterface.cpp
@@ -42,7 +42,7 @@
#include <QtCore/QVariant>
#include <QtCore/QDebug>
-#include "qdbus_symbols_p.h" // for the DBUS_* constants
+#include "qdbusutil_p.h" // for the DBUS_* constants
#ifndef QT_NO_DBUS
@@ -154,8 +154,8 @@ const char *QDBusConnectionInterface::staticInterfaceName()
*/
QDBusConnectionInterface::QDBusConnectionInterface(const QDBusConnection &connection,
QObject *parent)
- : QDBusAbstractInterface(QLatin1String(DBUS_SERVICE_DBUS),
- QLatin1String(DBUS_PATH_DBUS),
+ : QDBusAbstractInterface(QDBusUtil::dbusService(),
+ QDBusUtil::dbusPath(),
DBUS_INTERFACE_DBUS, connection, parent)
{
connect(this, SIGNAL(NameAcquired(QString)), this, SIGNAL(serviceRegistered(QString)));
diff --git a/src/dbus/qdbuserror.cpp b/src/dbus/qdbuserror.cpp
index 0cfb0aa7c2..2b13f90fac 100644
--- a/src/dbus/qdbuserror.cpp
+++ b/src/dbus/qdbuserror.cpp
@@ -395,8 +395,9 @@ QString QDBusError::errorString(ErrorType error)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QDBusError &msg)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QDBusError(" << msg.name() << ", " << msg.message() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index d7fa748a37..6269d9ece3 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -72,37 +72,22 @@ static dbus_int32_t server_slot = -1;
static QBasicAtomicInt isDebugging = Q_BASIC_ATOMIC_INITIALIZER(-1);
#define qDBusDebug if (::isDebugging == 0); else qDebug
-static inline QString orgFreedesktopDBusString()
-{
- return QStringLiteral(DBUS_SERVICE_DBUS);
-}
-
-static inline QString dbusServiceString()
-{
- return orgFreedesktopDBusString();
-}
-
-static inline QString dbusInterfaceString()
-{
- // it's the same string, but just be sure
- Q_ASSERT(orgFreedesktopDBusString() == QLatin1String(DBUS_INTERFACE_DBUS));
- return orgFreedesktopDBusString();
-}
-
static inline QDebug operator<<(QDebug dbg, const QThread *th)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QThread(ptr=" << (const void*)th;
if (th && !th->objectName().isEmpty())
dbg.nospace() << ", name=" << th->objectName();
else if (th)
dbg.nospace() << ", name=" << th->metaObject()->className();
dbg.nospace() << ')';
- return dbg.space();
+ return dbg;
}
#if QDBUS_THREAD_DEBUG
static inline QDebug operator<<(QDebug dbg, const QDBusConnectionPrivate *conn)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QDBusConnection("
<< "ptr=" << (const void*)conn
<< ", name=" << conn->name
@@ -113,7 +98,7 @@ static inline QDebug operator<<(QDebug dbg, const QDBusConnectionPrivate *conn)
else
dbg.nospace() << conn->thread();
dbg.nospace() << ')';
- return dbg.space();
+ return dbg;
}
void qdbusDefaultThreadDebug(int action, int condition, QDBusConnectionPrivate *conn)
@@ -1039,7 +1024,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
// prepopulate watchedServices:
// we know that the owner of org.freedesktop.DBus is itself
- watchedServices.insert(dbusServiceString(), WatchedServiceData(dbusServiceString(), 1));
+ watchedServices.insert(QDBusUtil::dbusService(), WatchedServiceData(QDBusUtil::dbusService(), 1));
// prepopulate matchRefCounts:
// we know that org.freedesktop.DBus will never change owners
@@ -1375,7 +1360,7 @@ bool QDBusConnectionPrivate::activateInternalFilters(const ObjectTreeNode &node,
// object may be null
const QString interface = msg.interface();
- if (interface.isEmpty() || interface == QLatin1String(DBUS_INTERFACE_INTROSPECTABLE)) {
+ if (interface.isEmpty() || interface == QDBusUtil::dbusInterfaceIntrospectable()) {
if (msg.member() == QLatin1String("Introspect") && msg.signature().isEmpty()) {
//qDebug() << "QDBusConnectionPrivate::activateInternalFilters introspect" << msg.d_ptr->msg;
QDBusMessage reply = msg.createReply(qDBusIntrospectObject(node, msg.path()));
@@ -1390,7 +1375,7 @@ bool QDBusConnectionPrivate::activateInternalFilters(const ObjectTreeNode &node,
}
if (node.obj && (interface.isEmpty() ||
- interface == QLatin1String(DBUS_INTERFACE_PROPERTIES))) {
+ interface == QDBusUtil::dbusInterfaceProperties())) {
//qDebug() << "QDBusConnectionPrivate::activateInternalFilters properties" << msg.d_ptr->msg;
if (msg.member() == QLatin1String("Get") && msg.signature() == QLatin1String("ss")) {
QDBusMessage reply = qDBusPropertyGet(node, msg);
@@ -1777,7 +1762,7 @@ void QDBusConnectionPrivate::setConnection(DBusConnection *dbc, const QDBusError
// we don't use connectSignal here because we don't need the rules to be sent to the bus
// the bus will always send us these two signals
SignalHook hook;
- hook.service = dbusServiceString();
+ hook.service = QDBusUtil::dbusService();
hook.path.clear(); // no matching
hook.obj = this;
hook.params << QMetaType::Void << QVariant::String; // both functions take a QString as parameter and return void
@@ -2204,10 +2189,10 @@ QDBusPendingCallPrivate *QDBusConnectionPrivate::sendWithReplyAsync(const QDBusM
return pcall;
} else {
// we're probably disconnected at this point
- lastError = error = QDBusError(QDBusError::Disconnected, QLatin1String("Not connected to server"));
+ lastError = error = QDBusError(QDBusError::Disconnected, QDBusUtil::disconnectedErrorMessage());
}
} else {
- lastError = error = QDBusError(QDBusError::NoMemory, QLatin1String("Out of memory"));
+ lastError = error = QDBusError(QDBusError::NoMemory, QStringLiteral("Out of memory"));
}
q_dbus_message_unref(msg);
@@ -2278,8 +2263,8 @@ void QDBusConnectionPrivate::connectSignal(const QString &key, const SignalHook
WatchedServicesHash::mapped_type &data = watchedServices[hook.service];
if (++data.refcount == 1) {
// we need to watch for this service changing
- connectSignal(dbusServiceString(), QString(), dbusInterfaceString(),
- QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(),
+ connectSignal(QDBusUtil::dbusService(), QString(), QDBusUtil::dbusInterface(),
+ QStringLiteral("NameOwnerChanged"), QStringList() << hook.service, QString(),
this, SLOT(serviceOwnerChangedNoLock(QString,QString,QString)));
data.owner = getNameOwnerNoCache(hook.service);
qDBusDebug() << this << "Watching service" << hook.service << "for owner changes (current owner:"
@@ -2358,8 +2343,8 @@ QDBusConnectionPrivate::disconnectSignal(SignalHookHash::Iterator &it)
if (sit != watchedServices.end()) {
if (--sit.value().refcount == 0) {
watchedServices.erase(sit);
- disconnectSignal(dbusServiceString(), QString(), dbusInterfaceString(),
- QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(),
+ disconnectSignal(QDBusUtil::dbusService(), QString(), QDBusUtil::dbusInterface(),
+ QStringLiteral("NameOwnerChanged"), QStringList() << hook.service, QString(),
this, SLOT(serviceOwnerChangedNoLock(QString,QString,QString)));
}
}
@@ -2500,9 +2485,9 @@ QString QDBusConnectionPrivate::getNameOwner(const QString& serviceName)
QString QDBusConnectionPrivate::getNameOwnerNoCache(const QString &serviceName)
{
- QDBusMessage msg = QDBusMessage::createMethodCall(dbusServiceString(),
- QLatin1String(DBUS_PATH_DBUS), dbusInterfaceString(),
- QLatin1String("GetNameOwner"));
+ QDBusMessage msg = QDBusMessage::createMethodCall(QDBusUtil::dbusService(),
+ QDBusUtil::dbusPath(), QDBusUtil::dbusInterface(),
+ QStringLiteral("GetNameOwner"));
QDBusMessagePrivate::setParametersValidated(msg, true);
msg << serviceName;
QDBusMessage reply = sendWithReply(msg, QDBus::Block);
@@ -2525,8 +2510,8 @@ QDBusConnectionPrivate::findMetaObject(const QString &service, const QString &pa
// introspect the target object
QDBusMessage msg = QDBusMessage::createMethodCall(service, path,
- QLatin1String(DBUS_INTERFACE_INTROSPECTABLE),
- QLatin1String("Introspect"));
+ QDBusUtil::dbusInterfaceIntrospectable(),
+ QStringLiteral("Introspect"));
QDBusMessagePrivate::setParametersValidated(msg, true);
QDBusMessage reply = sendWithReply(msg, QDBus::Block);
@@ -2585,7 +2570,7 @@ bool QDBusConnectionPrivate::isServiceRegisteredByThread(const QString &serviceN
{
if (!serviceName.isEmpty() && serviceName == baseService)
return true;
- if (serviceName == dbusServiceString())
+ if (serviceName == QDBusUtil::dbusService())
return false;
QDBusReadLocker locker(UnregisterServiceAction, this);
diff --git a/src/dbus/qdbusmessage.cpp b/src/dbus/qdbusmessage.cpp
index 76e994bbcf..302d94696d 100644
--- a/src/dbus/qdbusmessage.cpp
+++ b/src/dbus/qdbusmessage.cpp
@@ -813,6 +813,7 @@ static void debugVariantList(QDebug dbg, const QVariantList &list)
QDebug operator<<(QDebug dbg, const QDBusMessage &msg)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QDBusMessage(type=" << msg.type()
<< ", service=" << msg.service();
if (msg.type() == QDBusMessage::MethodCallMessage ||
@@ -827,7 +828,7 @@ QDebug operator<<(QDebug dbg, const QDBusMessage &msg)
<< ", contents=(";
debugVariantList(dbg, msg.arguments());
dbg.nospace() << ") )";
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/dbus/qdbuspendingcall.cpp b/src/dbus/qdbuspendingcall.cpp
index 321dcb4ef4..09eff81107 100644
--- a/src/dbus/qdbuspendingcall.cpp
+++ b/src/dbus/qdbuspendingcall.cpp
@@ -36,6 +36,7 @@
#include "qdbusconnection_p.h"
#include "qdbusmetatype_p.h"
+#include "qdbusutil_p.h"
#include "qcoreapplication.h"
#include "qcoreevent.h"
#include <private/qobject_p.h>
@@ -383,7 +384,7 @@ QDBusError QDBusPendingCall::error() const
// not connected, return an error
QDBusError err = QDBusError(QDBusError::Disconnected,
- QLatin1String("Not connected to D-Bus server"));
+ QDBusUtil::disconnectedErrorMessage());
return err;
}
diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp
index 3b7b797cff..2fc7c75d83 100644
--- a/src/dbus/qdbusserver.cpp
+++ b/src/dbus/qdbusserver.cpp
@@ -34,6 +34,7 @@
#include "qdbusserver.h"
#include "qdbusconnection_p.h"
#include "qdbusconnectionmanager_p.h"
+#include "qdbusutil_p.h"
#ifndef QT_NO_DBUS
@@ -130,7 +131,7 @@ bool QDBusServer::isConnected() const
*/
QDBusError QDBusServer::lastError() const
{
- return d ? d->lastError : QDBusError(QDBusError::Disconnected, QStringLiteral("Not connected."));
+ return d ? d->lastError : QDBusError(QDBusError::Disconnected, QDBusUtil::disconnectedErrorMessage());
}
/*!
diff --git a/src/dbus/qdbusservicewatcher.cpp b/src/dbus/qdbusservicewatcher.cpp
index a7832eb3ff..4adf049d17 100644
--- a/src/dbus/qdbusservicewatcher.cpp
+++ b/src/dbus/qdbusservicewatcher.cpp
@@ -33,7 +33,7 @@
#include "qdbusservicewatcher.h"
#include "qdbusconnection.h"
-#include "qdbus_symbols_p.h"
+#include "qdbusutil_p.h"
#include <QStringList>
@@ -43,10 +43,6 @@
QT_BEGIN_NAMESPACE
-Q_GLOBAL_STATIC_WITH_ARGS(QString, busService, (QLatin1String(DBUS_SERVICE_DBUS)))
-Q_GLOBAL_STATIC_WITH_ARGS(QString, busInterface, (QLatin1String(DBUS_INTERFACE_DBUS)))
-Q_GLOBAL_STATIC_WITH_ARGS(QString, signalName, (QLatin1String("NameOwnerChanged")))
-
class QDBusServiceWatcherPrivate: public QObjectPrivate
{
Q_DECLARE_PUBLIC(QDBusServiceWatcher)
@@ -120,7 +116,7 @@ QStringList QDBusServiceWatcherPrivate::matchArgsForService(const QString &servi
void QDBusServiceWatcherPrivate::addService(const QString &service)
{
QStringList matchArgs = matchArgsForService(service);
- connection.connect(*busService(), QString(), *busInterface(), *signalName(),
+ connection.connect(QDBusUtil::dbusService(), QString(), QDBusUtil::dbusInterface(), QDBusUtil::nameOwnerChanged(),
matchArgs, QString(), q_func(),
SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
}
@@ -128,7 +124,7 @@ void QDBusServiceWatcherPrivate::addService(const QString &service)
void QDBusServiceWatcherPrivate::removeService(const QString &service)
{
QStringList matchArgs = matchArgsForService(service);
- connection.disconnect(*busService(), QString(), *busInterface(), *signalName(),
+ connection.disconnect(QDBusUtil::dbusService(), QString(), QDBusUtil::dbusInterface(), QDBusUtil::nameOwnerChanged(),
matchArgs, QString(), q_func(),
SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
}
diff --git a/src/dbus/qdbusutil_p.h b/src/dbus/qdbusutil_p.h
index b5f92f2e47..8f5ae922db 100644
--- a/src/dbus/qdbusutil_p.h
+++ b/src/dbus/qdbusutil_p.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
+** Copyright (C) 2015 Intel Corporation.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the QtDBus module of the Qt Toolkit.
@@ -51,6 +52,8 @@
#include <QtDBus/qdbusmacros.h>
#include <QtDBus/qdbuserror.h>
+#include "qdbus_symbols_p.h"
+
#ifndef QT_NO_DBUS
QT_BEGIN_NAMESPACE
@@ -147,6 +150,25 @@ namespace QDBusUtil
*error = QDBusError(QDBusError::InvalidInterface, QString::fromLatin1("Invalid error name: %1").arg(name));
return false;
}
+
+ inline QString dbusService()
+ { return QStringLiteral(DBUS_SERVICE_DBUS); }
+ inline QString dbusPath()
+ { return QStringLiteral(DBUS_PATH_DBUS); }
+ inline QString dbusInterface()
+ {
+ // it's the same string, but just be sure
+ Q_ASSERT(dbusService() == QLatin1String(DBUS_INTERFACE_DBUS));
+ return dbusService();
+ }
+ inline QString dbusInterfaceProperties()
+ { return QStringLiteral(DBUS_INTERFACE_PROPERTIES); }
+ inline QString dbusInterfaceIntrospectable()
+ { return QStringLiteral(DBUS_INTERFACE_INTROSPECTABLE); }
+ inline QString nameOwnerChanged()
+ { return QStringLiteral("NameOwnerChanged"); }
+ inline QString disconnectedErrorMessage()
+ { return QStringLiteral("Not connected to D-Bus server"); }
}
QT_END_NAMESPACE
diff --git a/src/dbus/qdbusxmlgenerator.cpp b/src/dbus/qdbusxmlgenerator.cpp
index 8794292146..243440f48b 100644
--- a/src/dbus/qdbusxmlgenerator.cpp
+++ b/src/dbus/qdbusxmlgenerator.cpp
@@ -137,6 +137,12 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method
!(flags & (QDBusConnection::ExportScriptableInvokables | QDBusConnection::ExportNonScriptableInvokables))))
continue; // we're not exporting any slots or invokables
+ // we want to skip non-scriptable stuff as early as possible to avoid bogus warning
+ // for methods that are not being exported at all
+ bool isScriptable = mm.attributes() & QMetaMethod::Scriptable;
+ if (!isScriptable && !(flags & (isSignal ? QDBusConnection::ExportNonScriptableSignals : QDBusConnection::ExportNonScriptableInvokables | QDBusConnection::ExportNonScriptableSlots)))
+ continue;
+
QString xml = QString::fromLatin1(" <%1 name=\"%2\">\n")
.arg(isSignal ? QLatin1String("signal") : QLatin1String("method"))
.arg(QString::fromLatin1(mm.name()));
@@ -179,7 +185,6 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method
continue; // cloned signal?
int j;
- bool isScriptable = mm.attributes() & QMetaMethod::Scriptable;
for (j = 1; j < types.count(); ++j) {
// input parameter for a slot or output for a signal
if (types.at(j) == QDBusMetaTypeId::message()) {
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp
index fb30b5f8ee..cc9d789c6a 100644
--- a/src/gui/accessible/qaccessible.cpp
+++ b/src/gui/accessible/qaccessible.cpp
@@ -1713,6 +1713,7 @@ bool operator==(const QAccessible::State &first, const QAccessible::State &secon
/*! \internal */
Q_GUI_EXPORT QDebug operator<<(QDebug d, const QAccessibleInterface *iface)
{
+ QDebugStateSaver saver(d);
if (!iface) {
d << "QAccessibleInterface(null)";
return d;
@@ -1720,10 +1721,10 @@ Q_GUI_EXPORT QDebug operator<<(QDebug d, const QAccessibleInterface *iface)
d.nospace();
d << "QAccessibleInterface(" << hex << (const void *) iface << dec;
if (iface->isValid()) {
- d << " name=" << iface->text(QAccessible::Name) << " ";
- d << "role=" << qAccessibleRoleString(iface->role()) << " ";
+ d << " name=" << iface->text(QAccessible::Name) << ' ';
+ d << "role=" << qAccessibleRoleString(iface->role()) << ' ';
if (iface->childCount())
- d << "childc=" << iface->childCount() << " ";
+ d << "childc=" << iface->childCount() << ' ';
if (iface->object()) {
d << "obj=" << iface->object();
}
@@ -1747,13 +1748,14 @@ Q_GUI_EXPORT QDebug operator<<(QDebug d, const QAccessibleInterface *iface)
} else {
d << " invalid";
}
- d << ")";
- return d.space();
+ d << ')';
+ return d;
}
/*! \internal */
QDebug operator<<(QDebug d, const QAccessibleEvent &ev)
{
+ QDebugStateSaver saver(d);
d.nospace() << "QAccessibleEvent(";
if (ev.object()) {
d.nospace() << "object=" << hex << ev.object() << dec;
@@ -1806,8 +1808,8 @@ QDebug operator<<(QDebug d, const QAccessibleEvent &ev)
if (changed.supportsAutoCompletion) d << "supportsAutoCompletion";
}
- d.nospace() << ")";
- return d.space();
+ d << ')';
+ return d;
}
#endif // QT_NO_DEBUGSTREAM
diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
index 7a491d8736..f124cede36 100644
--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -484,12 +484,6 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
p = data + (h-y-1)*bpl;
break;
case 2: // delta (jump)
- // Protection
- if ((uint)x >= (uint)w)
- x = w-1;
- if ((uint)y >= (uint)h)
- y = h-1;
-
{
quint8 tmp;
d->getChar((char *)&tmp);
@@ -497,6 +491,13 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
d->getChar((char *)&tmp);
y += tmp;
}
+
+ // Protection
+ if ((uint)x >= (uint)w)
+ x = w-1;
+ if ((uint)y >= (uint)h)
+ y = h-1;
+
p = data + (h-y-1)*bpl + x;
break;
default: // absolute mode
diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp
index 0a451e5ea3..7ba6b123e8 100644
--- a/src/gui/image/qgifhandler.cpp
+++ b/src/gui/image/qgifhandler.cpp
@@ -936,6 +936,8 @@ void QGIFFormat::fillRect(QImage *image, int col, int row, int w, int h, QRgb co
void QGIFFormat::nextY(unsigned char *bits, int bpl)
{
+ if (out_of_bounds)
+ return;
int my;
switch (interlace) {
case 0: // Non-interlaced
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 57c290492c..00eb80ba1a 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -1766,11 +1766,11 @@ void QImage::fill(const QColor &color)
break;
case QImage::Format_BGR30:
case QImage::Format_A2BGR30_Premultiplied:
- fill(qConvertArgb32ToA2rgb30<PixelOrderBGR>(color.rgba()));
+ fill(qConvertRgb64ToRgb30<PixelOrderBGR>(color.rgba64()));
break;
case QImage::Format_RGB30:
case QImage::Format_A2RGB30_Premultiplied:
- fill(qConvertArgb32ToA2rgb30<PixelOrderRGB>(color.rgba()));
+ fill(qConvertRgb64ToRgb30<PixelOrderRGB>(color.rgba64()));
break;
case QImage::Format_RGB16:
fill((uint) qConvertRgb32To16(color.rgba()));
diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp
index 417c185c78..28e3a48689 100644
--- a/src/gui/image/qimage_conversions.cpp
+++ b/src/gui/image/qimage_conversions.cpp
@@ -681,6 +681,8 @@ static bool convert_BGR30_to_RGB30_inplace(QImageData *data, Qt::ImageConversion
static bool convert_indexed8_to_ARGB_PM_inplace(QImageData *data, Qt::ImageConversionFlags)
{
Q_ASSERT(data->format == QImage::Format_Indexed8);
+ if (!data->own_data)
+ return false;
const int depth = 32;
const int dst_bytes_per_line = ((data->width * depth + 31) >> 5) << 2;
@@ -733,6 +735,8 @@ static bool convert_indexed8_to_ARGB_PM_inplace(QImageData *data, Qt::ImageConve
static bool convert_indexed8_to_RGB_inplace(QImageData *data, Qt::ImageConversionFlags)
{
Q_ASSERT(data->format == QImage::Format_Indexed8);
+ if (!data->own_data)
+ return false;
const int depth = 32;
const int dst_bytes_per_line = ((data->width * depth + 31) >> 5) << 2;
@@ -782,6 +786,8 @@ static bool convert_indexed8_to_RGB_inplace(QImageData *data, Qt::ImageConversio
static bool convert_indexed8_to_RGB16_inplace(QImageData *data, Qt::ImageConversionFlags)
{
Q_ASSERT(data->format == QImage::Format_Indexed8);
+ if (!data->own_data)
+ return false;
const int depth = 16;
const int dst_bytes_per_line = ((data->width * depth + 31) >> 5) << 2;
@@ -837,6 +843,8 @@ static bool convert_indexed8_to_RGB16_inplace(QImageData *data, Qt::ImageConvers
static bool convert_RGB_to_RGB16_inplace(QImageData *data, Qt::ImageConversionFlags)
{
Q_ASSERT(data->format == QImage::Format_RGB32);
+ if (!data->own_data)
+ return false;
const int depth = 16;
const int dst_bytes_per_line = ((data->width * depth + 31) >> 5) << 2;
diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp
index aff7b79807..839f90f17c 100644
--- a/src/gui/image/qjpeghandler.cpp
+++ b/src/gui/image/qjpeghandler.cpp
@@ -72,8 +72,6 @@ QT_BEGIN_NAMESPACE
Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32(quint32 *dst, const uchar *src, int len);
typedef void (QT_FASTCALL *Rgb888ToRgb32Converter)(quint32 *dst, const uchar *src, int len);
-static Rgb888ToRgb32Converter rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32;
-
struct my_error_mgr : public jpeg_error_mgr {
jmp_buf setjmp_buffer;
};
@@ -242,7 +240,9 @@ static bool ensureValidImage(QImage *dest, struct jpeg_decompress_struct *info,
static bool read_jpeg_image(QImage *outImage,
QSize scaledSize, QRect scaledClipRect,
- QRect clipRect, volatile int inQuality, j_decompress_ptr info, struct my_error_mgr* err )
+ QRect clipRect, volatile int inQuality,
+ Rgb888ToRgb32Converter converter,
+ j_decompress_ptr info, struct my_error_mgr* err )
{
if (!setjmp(err->setjmp_buffer)) {
// -1 means default quality.
@@ -383,7 +383,7 @@ static bool read_jpeg_image(QImage *outImage,
if (info->output_components == 3) {
uchar *in = rows[0] + clip.x() * 3;
QRgb *out = (QRgb*)outImage->scanLine(y);
- rgb888ToRgb32ConverterPtr(out, in, clip.width());
+ converter(out, in, clip.width());
} else if (info->out_color_space == JCS_CMYK) {
// Convert CMYK->RGB.
uchar *in = rows[0] + clip.x() * 4;
@@ -714,7 +714,8 @@ public:
};
QJpegHandlerPrivate(QJpegHandler *qq)
- : quality(75), exifOrientation(1), iod_src(0), state(Ready), optimize(false), progressive(false), q(qq)
+ : quality(75), exifOrientation(1), iod_src(0),
+ rgb888ToRgb32ConverterPtr(qt_convert_rgb888_to_rgb32), state(Ready), optimize(false), progressive(false), q(qq)
{}
~QJpegHandlerPrivate()
@@ -745,6 +746,8 @@ public:
struct my_jpeg_source_mgr * iod_src;
struct my_error_mgr err;
+ Rgb888ToRgb32Converter rgb888ToRgb32ConverterPtr;
+
State state;
bool optimize;
@@ -968,7 +971,7 @@ bool QJpegHandlerPrivate::read(QImage *image)
if(state == ReadHeader)
{
- bool success = read_jpeg_image(image, scaledSize, scaledClipRect, clipRect, quality, &info, &err);
+ bool success = read_jpeg_image(image, scaledSize, scaledClipRect, clipRect, quality, rgb888ToRgb32ConverterPtr, &info, &err);
if (success) {
for (int i = 0; i < readTexts.size()-1; i+=2)
image->setText(readTexts.at(i), readTexts.at(i+1));
@@ -996,18 +999,18 @@ QJpegHandler::QJpegHandler()
// from qimage_neon.cpp
if (qCpuHasFeature(NEON))
- rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon;
+ d->rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon;
#endif
#if defined(QT_COMPILER_SUPPORTS_SSSE3)
// from qimage_ssse3.cpps
if (qCpuHasFeature(SSSE3)) {
- rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_ssse3;
+ d->rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_ssse3;
}
#endif // QT_COMPILER_SUPPORTS_SSSE3
#if defined(QT_COMPILER_SUPPORTS_MIPS_DSPR2)
if (qCpuHasFeature(DSPR2)) {
- rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_mips_dspr2_asm;
+ d->rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_mips_dspr2_asm;
}
#endif // QT_COMPILER_SUPPORTS_DSPR2
}
diff --git a/src/gui/kernel/qcursor.cpp b/src/gui/kernel/qcursor.cpp
index e6bf2b0be9..547c32b2b4 100644
--- a/src/gui/kernel/qcursor.cpp
+++ b/src/gui/kernel/qcursor.cpp
@@ -602,8 +602,9 @@ QCursor::operator QVariant() const
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QCursor &c)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QCursor(Qt::CursorShape(" << c.shape() << "))";
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 7b75a31847..11f7f13552 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -37,13 +37,13 @@
#include "qpa/qplatformintegration.h"
#include "qpa/qplatformdrag.h"
#include "private/qevent_p.h"
-#include "qdebug.h"
#include "qmetaobject.h"
#include "qmimedata.h"
#include "private/qdnd_p.h"
#include "qevent_p.h"
#include "qmath.h"
+#include <private/qdebug_p.h>
QT_BEGIN_NAMESPACE
@@ -3463,7 +3463,10 @@ QShortcutEvent::~QShortcutEvent()
static inline void formatTouchEvent(QDebug d, const QTouchEvent &t)
{
- d << "QTouchEvent(" << t.type() << " states: " << t.touchPointStates();
+ d << "QTouchEvent(";
+ QtDebugUtils::formatQEnum(d, t.type());
+ d << " states: ";
+ QtDebugUtils::formatQFlags(d, t.touchPointStates());
d << ", " << t.touchPoints().size() << " points: " << t.touchPoints() << ')';
}
@@ -3644,15 +3647,20 @@ static const char *eventClassName(QEvent::Type t)
static void formatDropEvent(QDebug d, const QDropEvent *e)
{
const QEvent::Type type = e->type();
- d << eventClassName(type) << "(dropAction=" << e->dropAction() << ", proposedAction="
- << e->proposedAction() << ", possibleActions=" << e->possibleActions()
- << ", posF=" << e->posF();
+ d << eventClassName(type) << "(dropAction=";
+ QtDebugUtils::formatQEnum(d, e->dropAction());
+ d << ", proposedAction=";
+ QtDebugUtils::formatQEnum(d, e->proposedAction());
+ d << ", possibleActions=";
+ QtDebugUtils::formatQFlags(d, e->possibleActions());
+ d << ", posF=";
+ QtDebugUtils::formatQPoint(d, e->posF());
if (type == QEvent::DragMove || type == QEvent::DragEnter)
d << ", answerRect=" << static_cast<const QDragMoveEvent *>(e)->answerRect();
d << ", formats=" << e->mimeData()->formats();
- if (const Qt::KeyboardModifiers mods = e->keyboardModifiers())
- d << ", keyboardModifiers=" << mods;
- d << ", " << e->mouseButtons();
+ QtDebugUtils::formatNonNullQFlags(d, ", keyboardModifiers=", e->keyboardModifiers());
+ d << ", ";
+ QtDebugUtils::formatQFlags(d, e->mouseButtons());
}
# endif // !QT_NO_DRAGANDDROP
@@ -3663,15 +3671,19 @@ static void formatTabletEvent(QDebug d, const QTabletEvent *e)
{
const QEvent::Type type = e->type();
- d << eventClassName(type) << '(' << type
- << ", device=" << e->device()
- << ", pointerType=" << e->pointerType()
- << ", uniqueId=" << e->uniqueId()
+ d << eventClassName(type) << '(';
+ QtDebugUtils::formatQEnum(d, type);
+ d << ", device=";
+ QtDebugUtils::formatQEnum(d, e->device());
+ d << ", pointerType=";
+ QtDebugUtils::formatQEnum(d, e->pointerType());
+ d << ", uniqueId=" << e->uniqueId()
<< ", pos=" << e->posF()
<< ", z=" << e->z()
<< ", xTilt=" << e->xTilt()
<< ", yTilt=" << e->yTilt()
- << ", " << e->buttons();
+ << ", ";
+ QtDebugUtils::formatQFlags(d, e->buttons());
if (type == QEvent::TabletPress || type == QEvent::TabletMove)
d << ", pressure=" << e->pressure();
if (e->device() == QTabletEvent::RotationStylus || e->device() == QTabletEvent::FourDMouse)
@@ -3685,8 +3697,19 @@ static void formatTabletEvent(QDebug d, const QTabletEvent *e)
QDebug operator<<(QDebug dbg, const QTouchEvent::TouchPoint &tp)
{
QDebugStateSaver saver(dbg);
- dbg.nospace() << "TouchPoint(" << tp.id() << ' ' << tp.rect() << ' ' << tp.state() << " press " << tp.pressure()
- << " vel " << tp.velocity() << " start " << tp.startPos() << " last " << tp.lastPos() << " delta " << tp.pos() - tp.lastPos() << ')';
+ dbg.nospace();
+ dbg << "TouchPoint(" << tp.id() << " (";
+ QtDebugUtils::formatQRect(dbg, tp.rect());
+ dbg << ") ";
+ QtDebugUtils::formatQEnum(dbg, tp.state());
+ dbg << " press " << tp.pressure() << " vel " << tp.velocity()
+ << " start (";
+ QtDebugUtils::formatQPoint(dbg, tp.startPos());
+ dbg << ") last (";
+ QtDebugUtils::formatQPoint(dbg, tp.lastPos());
+ dbg << ") delta (";
+ QtDebugUtils::formatQPoint(dbg, tp.pos() - tp.lastPos());
+ dbg << ')';
return dbg;
}
@@ -3716,18 +3739,23 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
const QMouseEvent *me = static_cast<const QMouseEvent*>(e);
const Qt::MouseButton button = me->button();
const Qt::MouseButtons buttons = me->buttons();
- dbg << "QMouseEvent(" << type;
- if (type != QEvent::MouseMove && type != QEvent::NonClientAreaMouseMove)
- dbg << ", " << button;
- if (buttons && button != buttons)
- dbg << ", buttons=" << buttons;
- if (const int mods = int(me->modifiers()))
- dbg << ", modifiers=0x" << hex << mods << dec;
- dbg << ", localPos=" << me->localPos() << ", screenPos=" << me->screenPos();
- if (me->source())
- dbg << ", " << me->source();
- if (const Qt::MouseEventFlags flags = me->flags())
- dbg << ", flags = " << hex << int(flags) << dec;
+ dbg << "QMouseEvent(";
+ QtDebugUtils::formatQEnum(dbg, type);
+ if (type != QEvent::MouseMove && type != QEvent::NonClientAreaMouseMove) {
+ dbg << ", ";
+ QtDebugUtils::formatQEnum(dbg, button);
+ }
+ if (buttons && button != buttons) {
+ dbg << ", buttons=";
+ QtDebugUtils::formatQFlags(dbg, buttons);
+ }
+ QtDebugUtils::formatNonNullQFlags(dbg, ", ", me->modifiers());
+ dbg << ", localPos=";
+ QtDebugUtils::formatQPoint(dbg, me->localPos());
+ dbg << ", screenPos=";
+ QtDebugUtils::formatQPoint(dbg, me->screenPos());
+ QtDebugUtils::formatNonNullQEnum(dbg, ", ", me->source());
+ QtDebugUtils::formatNonNullQFlags(dbg, ", flags=", me->flags());
dbg << ')';
}
break;
@@ -3743,10 +3771,11 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
case QEvent::ShortcutOverride:
{
const QKeyEvent *ke = static_cast<const QKeyEvent *>(e);
- dbg << "QKeyEvent(" << type
- << ", key=0x" << hex << ke->key() << dec;
- if (const int mods = ke->modifiers())
- dbg << ", modifiers=0x" << hex << mods << dec;
+ dbg << "QKeyEvent(";
+ QtDebugUtils::formatQEnum(dbg, type);
+ dbg << ", ";
+ QtDebugUtils::formatQEnum(dbg, static_cast<Qt::Key>(ke->key()));
+ QtDebugUtils::formatNonNullQFlags(dbg, ", ", ke->modifiers());
if (!ke->text().isEmpty())
dbg << ", text=" << ke->text();
if (ke->isAutoRepeat())
@@ -3765,11 +3794,16 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
case QEvent::FocusAboutToChange:
case QEvent::FocusIn:
case QEvent::FocusOut:
- dbg << "QFocusEvent(" << type << ", " << static_cast<const QFocusEvent *>(e)->reason() << ')';
+ dbg << "QFocusEvent(";
+ QtDebugUtils::formatQEnum(dbg, type);
+ dbg << ", ";
+ QtDebugUtils::formatQEnum(dbg, static_cast<const QFocusEvent *>(e)->reason());
+ dbg << ')';
break;
case QEvent::Move: {
const QMoveEvent *me = static_cast<const QMoveEvent *>(e);
- dbg << "QMoveEvent(" << me->pos();
+ dbg << "QMoveEvent(";
+ QtDebugUtils::formatQPoint(dbg, me->pos());
if (!me->spontaneous())
dbg << ", non-spontaneous";
dbg << ')';
@@ -3777,7 +3811,8 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
break;
case QEvent::Resize: {
const QResizeEvent *re = static_cast<const QResizeEvent *>(e);
- dbg << "QResizeEvent(" << re->size();
+ dbg << "QResizeEvent(";
+ QtDebugUtils::formatQSize(dbg, re->size());
if (!re->spontaneous())
dbg << ", non-spontaneous";
dbg << ')';
@@ -3804,19 +3839,25 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
case QEvent::ChildAdded:
case QEvent::ChildPolished:
case QEvent::ChildRemoved:
- dbg << "QChildEvent(" << type << ", " << (static_cast<const QChildEvent*>(e))->child() << ')';
+ dbg << "QChildEvent(";
+ QtDebugUtils::formatQEnum(dbg, type);
+ dbg << ", " << (static_cast<const QChildEvent*>(e))->child() << ')';
break;
# ifndef QT_NO_GESTURES
case QEvent::NativeGesture: {
const QNativeGestureEvent *ne = static_cast<const QNativeGestureEvent *>(e);
- dbg << "QNativeGestureEvent(" << ne->gestureType()
- << "localPos=" << ne->localPos() << ", value=" << ne->value() << ')';
+ dbg << "QNativeGestureEvent(";
+ QtDebugUtils::formatQEnum(dbg, ne->gestureType());
+ dbg << "localPos=";
+ QtDebugUtils::formatQPoint(dbg, ne->localPos());
+ dbg << ", value=" << ne->value() << ')';
}
break;
# endif // !QT_NO_GESTURES
case QEvent::ApplicationStateChange:
- dbg << "QApplicationStateChangeEvent("
- << static_cast<const QApplicationStateChangeEvent *>(e)->applicationState() << ')';
+ dbg << "QApplicationStateChangeEvent(";
+ QtDebugUtils::formatQEnum(dbg, static_cast<const QApplicationStateChangeEvent *>(e)->applicationState());
+ dbg << ')';
break;
case QEvent::ContextMenu:
dbg << "QContextMenuEvent(" << static_cast<const QContextMenuEvent *>(e)->pos() << ')';
@@ -3849,8 +3890,9 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
dbg << ')';
break;
default:
- dbg << eventClassName(type) << '(' << type << ", "
- << (const void *)e << ", type = " << e->type() << ')';
+ dbg << eventClassName(type) << '(';
+ QtDebugUtils::formatQEnum(dbg, type);
+ dbg << ", " << (const void *)e << ')';
break;
}
return dbg;
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 7b8d5f823e..16db3e66da 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -236,9 +236,7 @@ struct QWindowGeometrySpecification
{
QWindowGeometrySpecification() : corner(Qt::TopLeftCorner), xOffset(-1), yOffset(-1), width(-1), height(-1) {}
static QWindowGeometrySpecification fromArgument(const QByteArray &a);
- QRect apply(const QRect &windowGeometry, const QSize &windowMinimumSize, const QSize &windowMaximumSize, const QRect &availableGeometry) const;
- inline QRect apply(const QRect &windowGeometry, const QWindow *window) const
- { return apply(windowGeometry, window->minimumSize(), window->maximumSize(), window->screen()->virtualGeometry()); }
+ void applyTo(QWindow *window) const;
Qt::Corner corner;
int xOffset;
@@ -300,32 +298,34 @@ QWindowGeometrySpecification QWindowGeometrySpecification::fromArgument(const QB
return result;
}
-QRect QWindowGeometrySpecification::apply(const QRect &windowGeometry, const QSize &windowMinimumSize, const QSize &windowMaximumSize, const QRect &availableGeometry) const
+void QWindowGeometrySpecification::applyTo(QWindow *window) const
{
- QRect result = windowGeometry;
+ QRect windowGeometry = window->frameGeometry();
+ QSize size = windowGeometry.size();
if (width >= 0 || height >= 0) {
- QSize size = windowGeometry.size();
+ const QSize windowMinimumSize = window->minimumSize();
+ const QSize windowMaximumSize = window->maximumSize();
if (width >= 0)
size.setWidth(qBound(windowMinimumSize.width(), width, windowMaximumSize.width()));
if (height >= 0)
size.setHeight(qBound(windowMinimumSize.height(), height, windowMaximumSize.height()));
- result.setSize(size);
+ window->resize(size);
}
if (xOffset >= 0 || yOffset >= 0) {
+ const QRect availableGeometry = window->screen()->virtualGeometry();
QPoint topLeft = windowGeometry.topLeft();
if (xOffset >= 0) {
topLeft.setX(corner == Qt::TopLeftCorner || corner == Qt::BottomLeftCorner ?
xOffset :
- qMax(availableGeometry.right() - result.width() - xOffset, availableGeometry.left()));
+ qMax(availableGeometry.right() - size.width() - xOffset, availableGeometry.left()));
}
if (yOffset >= 0) {
topLeft.setY(corner == Qt::TopLeftCorner || corner == Qt::TopRightCorner ?
yOffset :
- qMax(availableGeometry.bottom() - result.height() - yOffset, availableGeometry.top()));
+ qMax(availableGeometry.bottom() - size.height() - yOffset, availableGeometry.top()));
}
- result.moveTopLeft(topLeft);
+ window->setFramePosition(topLeft);
}
- return result;
}
static QWindowGeometrySpecification windowGeometrySpecification;
@@ -2758,9 +2758,9 @@ void QGuiApplication::setPalette(const QPalette &pal)
emit qGuiApp->paletteChanged(*QGuiApplicationPrivate::app_pal);
}
-QRect QGuiApplicationPrivate::applyWindowGeometrySpecification(const QRect &windowGeometry, const QWindow *window)
+void QGuiApplicationPrivate::applyWindowGeometrySpecificationTo(QWindow *window)
{
- return windowGeometrySpecification.apply(windowGeometry, window);
+ windowGeometrySpecification.applyTo(window);
}
/*!
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index 7ae6e64b26..0559442049 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -279,7 +279,7 @@ public:
virtual void notifyWindowIconChanged();
- static QRect applyWindowGeometrySpecification(const QRect &windowGeometry, const QWindow *window);
+ static void applyWindowGeometrySpecificationTo(QWindow *window);
static void setApplicationState(Qt::ApplicationState state, bool forcePropagate = false);
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index bdf401aa2d..23d5f06aa2 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -1601,8 +1601,9 @@ QDataStream &operator>>(QDataStream &s, QKeySequence &keysequence)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QKeySequence &p)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QKeySequence(" << p.toString() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp
index 90c54c4039..56a3729a4a 100644
--- a/src/gui/kernel/qopenglcontext.cpp
+++ b/src/gui/kernel/qopenglcontext.cpp
@@ -636,12 +636,21 @@ void QOpenGLContext::destroy()
d->platformGLContext = 0;
delete d->functions;
d->functions = 0;
+
+ foreach (QAbstractOpenGLFunctions *func, d->externalVersionFunctions) {
+ QAbstractOpenGLFunctionsPrivate *func_d = QAbstractOpenGLFunctionsPrivate::get(func);
+ func_d->owningContext = 0;
+ func_d->initialized = false;
+ }
+ d->externalVersionFunctions.clear();
qDeleteAll(d->versionFunctions);
d->versionFunctions.clear();
qDeleteAll(d->versionFunctionsBackend);
d->versionFunctionsBackend.clear();
+
delete d->textureFunctions;
d->textureFunctions = 0;
+
d->nativeHandle = QVariant();
}
@@ -719,7 +728,7 @@ QOpenGLFunctions *QOpenGLContext::functions() const
QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context
is current. It is also possible to call this function when the context is not
current, but in that case it is the caller's responsibility to ensure proper
- intiialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions()
+ initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions()
afterwards.
Usually one would use the template version of this function to automatically
@@ -851,15 +860,26 @@ bool QOpenGLContext::hasExtension(const QByteArray &extension) const
/*!
Call this to get the default framebuffer object for the current surface.
- On some platforms the default framebuffer object depends on the surface
- being rendered to, and might be different from 0. Thus, instead of calling
- glBindFramebuffer(0), you should call
+ On some platforms (for instance, iOS) the default framebuffer object depends
+ on the surface being rendered to, and might be different from 0. Thus,
+ instead of calling glBindFramebuffer(0), you should call
glBindFramebuffer(ctx->defaultFramebufferObject()) if you want your
application to work across different Qt platforms.
If you use the glBindFramebuffer() in QOpenGLFunctions you do not have to
worry about this, as it automatically binds the current context's
defaultFramebufferObject() when 0 is passed.
+
+ \note Widgets that render via framebuffer objects, like QOpenGLWidget and
+ QQuickWidget, will override the value returned from this function when
+ painting is active, because at that time the correct "default" framebuffer
+ is the widget's associated backing framebuffer, not the platform-specific
+ one belonging to the top-level window's surface. This ensures the expected
+ behavior for this function and other classes relying on it (for example,
+ QOpenGLFramebufferObject::bindDefault() or
+ QOpenGLFramebufferObject::release()).
+
+ \sa QOpenGLFramebufferObject
*/
GLuint QOpenGLContext::defaultFramebufferObject() const
{
@@ -870,6 +890,9 @@ GLuint QOpenGLContext::defaultFramebufferObject() const
if (!d->surface || !d->surface->surfaceHandle())
return 0;
+ if (d->defaultFboRedirect)
+ return d->defaultFboRedirect;
+
return d->platformGLContext->defaultFramebufferObject(d->surface->surfaceHandle());
}
@@ -1259,6 +1282,24 @@ void QOpenGLContext::removeFunctionsBackend(const QOpenGLVersionStatus &v)
/*!
\internal
+ */
+void QOpenGLContext::insertExternalFunctions(QAbstractOpenGLFunctions *f)
+{
+ Q_D(QOpenGLContext);
+ d->externalVersionFunctions.insert(f);
+}
+
+/*!
+ \internal
+ */
+void QOpenGLContext::removeExternalFunctions(QAbstractOpenGLFunctions *f)
+{
+ Q_D(QOpenGLContext);
+ d->externalVersionFunctions.remove(f);
+}
+
+/*!
+ \internal
*/
QOpenGLTextureHelper* QOpenGLContext::textureFunctions() const
{
diff --git a/src/gui/kernel/qopenglcontext.h b/src/gui/kernel/qopenglcontext.h
index 30a9bc3ad9..a529957ad6 100644
--- a/src/gui/kernel/qopenglcontext.h
+++ b/src/gui/kernel/qopenglcontext.h
@@ -229,6 +229,8 @@ private:
void insertFunctionsBackend(const QOpenGLVersionStatus &v,
QOpenGLVersionFunctionsBackend *backend);
void removeFunctionsBackend(const QOpenGLVersionStatus &v);
+ void insertExternalFunctions(QAbstractOpenGLFunctions *f);
+ void removeExternalFunctions(QAbstractOpenGLFunctions *f);
QOpenGLTextureHelper* textureFunctions() const;
void setTextureFunctions(QOpenGLTextureHelper* textureFuncs);
diff --git a/src/gui/kernel/qopenglcontext_p.h b/src/gui/kernel/qopenglcontext_p.h
index 446efa369c..f9f3ce2c5f 100644
--- a/src/gui/kernel/qopenglcontext_p.h
+++ b/src/gui/kernel/qopenglcontext_p.h
@@ -204,6 +204,7 @@ public:
, workaround_missingPrecisionQualifiers(false)
, active_engine(0)
, qgl_current_fbo_invalid(false)
+ , defaultFboRedirect(0)
{
requestedFormat = QSurfaceFormat::defaultFormat();
}
@@ -216,6 +217,7 @@ public:
mutable QHash<QOpenGLVersionProfile, QAbstractOpenGLFunctions *> versionFunctions;
mutable QHash<QOpenGLVersionStatus, QOpenGLVersionFunctionsBackend *> versionFunctionsBackend;
+ mutable QSet<QAbstractOpenGLFunctions *> externalVersionFunctions;
void *qGLContextHandle;
void (*qGLContextDeleteFunction)(void *handle);
@@ -241,6 +243,7 @@ public:
bool qgl_current_fbo_invalid;
QVariant nativeHandle;
+ GLuint defaultFboRedirect;
static QOpenGLContext *setCurrentContext(QOpenGLContext *context);
diff --git a/src/gui/kernel/qpalette.cpp b/src/gui/kernel/qpalette.cpp
index 58bcc2cc5b..cf17e1b5aa 100644
--- a/src/gui/kernel/qpalette.cpp
+++ b/src/gui/kernel/qpalette.cpp
@@ -1152,6 +1152,7 @@ QDebug operator<<(QDebug dbg, const QPalette &p)
"BrightText", "ButtonText", "Base", "Window", "Shadow", "Highlight",
"HighlightedText", "Link", "LinkVisited", "AlternateBase", "NoRole",
"ToolTipBase","ToolTipText" };
+ QDebugStateSaver saver(dbg);
QDebug nospace = dbg.nospace();
const uint mask = p.resolve();
nospace << "QPalette(resolve=" << hex << showbase << mask << ',';
@@ -1171,7 +1172,7 @@ QDebug operator<<(QDebug dbg, const QPalette &p)
}
}
nospace << ')' << noshowbase << dec;
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index 6147a2a53a..f2a92e10df 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -392,6 +392,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const
return QPlatformTheme::defaultThemeHint(QPlatformTheme::MousePressAndHoldInterval);
case TabFocusBehavior:
return QPlatformTheme::defaultThemeHint(QPlatformTheme::TabFocusBehavior);
+ case ReplayMousePressOutsidePopup:
+ return true;
}
return 0;
diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h
index 24e19f68e6..34639e6929 100644
--- a/src/gui/kernel/qplatformintegration.h
+++ b/src/gui/kernel/qplatformintegration.h
@@ -145,7 +145,8 @@ public:
SetFocusOnTouchRelease,
ShowIsMaximized,
MousePressAndHoldInterval,
- TabFocusBehavior
+ TabFocusBehavior,
+ ReplayMousePressOutsidePopup
};
virtual QVariant styleHint(StyleHint hint) const;
diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp
index 16d278b473..0ff5c36119 100644
--- a/src/gui/kernel/qshortcutmap.cpp
+++ b/src/gui/kernel/qshortcutmap.cpp
@@ -88,14 +88,16 @@ struct QShortcutEntry
/*! \internal
QDebug operator<< for easy debug output of the shortcut entries.
*/
-static QDebug &operator<<(QDebug &dbg, const QShortcutEntry *se) {
+static QDebug &operator<<(QDebug &dbg, const QShortcutEntry *se)
+{
+ QDebugStateSaver saver(dbg);
if (!se)
return dbg << "QShortcutEntry(0x0)";
dbg.nospace()
<< "QShortcutEntry(" << se->keyseq
<< "), id(" << se->id << "), enabled(" << se->enabled << "), autorepeat(" << se->autorepeat
<< "), owner(" << se->owner << ')';
- return dbg.space();
+ return dbg;
}
#endif // QT_NO_DEBUGSTREAM
diff --git a/src/gui/kernel/qsurfaceformat.cpp b/src/gui/kernel/qsurfaceformat.cpp
index d5f5b358b3..d078336d73 100644
--- a/src/gui/kernel/qsurfaceformat.cpp
+++ b/src/gui/kernel/qsurfaceformat.cpp
@@ -812,6 +812,7 @@ bool operator!=(const QSurfaceFormat& a, const QSurfaceFormat& b)
QDebug operator<<(QDebug dbg, const QSurfaceFormat &f)
{
const QSurfaceFormatPrivate * const d = f.d;
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QSurfaceFormat("
<< "version " << d->major << '.' << d->minor
@@ -828,7 +829,7 @@ QDebug operator<<(QDebug dbg, const QSurfaceFormat &f)
<< ", profile " << d->profile
<< ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 0a732c2a52..c7493a8409 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -490,6 +490,13 @@ void QWindow::setVisible(bool visible)
}
if (!app_priv->forcedWindowIcon.isNull())
setIcon(app_priv->forcedWindowIcon);
+
+ // Handling of the -qwindowgeometry, -geometry command line arguments
+ static bool geometryApplied = false;
+ if (!geometryApplied) {
+ geometryApplied = true;
+ QGuiApplicationPrivate::applyWindowGeometrySpecificationTo(this);
+ }
}
QShowEvent showEvent;
@@ -1503,10 +1510,10 @@ void QWindow::setFramePosition(const QPoint &point)
{
Q_D(QWindow);
d->positionPolicy = QWindowPrivate::WindowFrameInclusive;
+ d->positionAutomatic = false;
if (d->platformWindow) {
d->platformWindow->setGeometry(qHighDpiToDevicePixels(QRect(point, size()), this));
} else {
- d->positionAutomatic = false;
d->geometry.moveTopLeft(point);
}
}
diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp
index 808ef9fd66..26f17789f4 100644
--- a/src/gui/kernel/qwindowsysteminterface.cpp
+++ b/src/gui/kernel/qwindowsysteminterface.cpp
@@ -786,10 +786,12 @@ void QWindowSystemInterface::handleEnterWhatsThisEvent()
#endif
#ifndef QT_NO_DEBUG_STREAM
-Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QWindowSystemInterface::TouchPoint &p) {
+Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QWindowSystemInterface::TouchPoint &p)
+{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "TouchPoint(" << p.id << " @" << p.area << " normalized " << p.normalPosition
<< " press " << p.pressure << " vel " << p.velocity << " state " << (int)p.state;
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qgenericmatrix.h b/src/gui/math3d/qgenericmatrix.h
index afce9d935e..89bc09f544 100644
--- a/src/gui/math3d/qgenericmatrix.h
+++ b/src/gui/math3d/qgenericmatrix.h
@@ -341,6 +341,7 @@ typedef QGenericMatrix<4, 3, float> QMatrix4x3;
template <int N, int M, typename T>
QDebug operator<<(QDebug dbg, const QGenericMatrix<N, M, T> &m)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QGenericMatrix<" << N << ", " << M
<< ", " << QTypeInfo<T>::name()
<< ">(" << endl << qSetFieldWidth(10);
@@ -350,7 +351,7 @@ QDebug operator<<(QDebug dbg, const QGenericMatrix<N, M, T> &m)
dbg << endl;
}
dbg << qSetFieldWidth(0) << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qmatrix4x4.cpp b/src/gui/math3d/qmatrix4x4.cpp
index 09b41ac570..eb7c7f4b7a 100644
--- a/src/gui/math3d/qmatrix4x4.cpp
+++ b/src/gui/math3d/qmatrix4x4.cpp
@@ -2010,6 +2010,7 @@ QMatrix4x4::operator QVariant() const
QDebug operator<<(QDebug dbg, const QMatrix4x4 &m)
{
+ QDebugStateSaver saver(dbg);
// Create a string that represents the matrix type.
QByteArray bits;
if (m.flagBits == QMatrix4x4::Identity) {
@@ -2039,7 +2040,7 @@ QDebug operator<<(QDebug dbg, const QMatrix4x4 &m)
<< m(2, 0) << m(2, 1) << m(2, 2) << m(2, 3) << endl
<< m(3, 0) << m(3, 1) << m(3, 2) << m(3, 3) << endl
<< qSetFieldWidth(0) << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qquaternion.cpp b/src/gui/math3d/qquaternion.cpp
index 90d90448e0..4b35ee4e79 100644
--- a/src/gui/math3d/qquaternion.cpp
+++ b/src/gui/math3d/qquaternion.cpp
@@ -720,8 +720,38 @@ QQuaternion QQuaternion::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis
/*!
\since 5.5
+ Constructs the quaternion using specified forward direction \a direction
+ and upward direction \a up.
+ If the upward direction was not specified or the forward and upward
+ vectors are collinear, a new orthonormal upward direction will be generated.
+
+ \sa fromAxes(), rotationTo()
+*/
+QQuaternion QQuaternion::fromDirection(const QVector3D &direction, const QVector3D &up)
+{
+ if (qFuzzyIsNull(direction.x()) && qFuzzyIsNull(direction.y()) && qFuzzyIsNull(direction.z()))
+ return QQuaternion();
+
+ const QVector3D zAxis(direction.normalized());
+ QVector3D xAxis(QVector3D::crossProduct(up, zAxis));
+ if (qFuzzyIsNull(xAxis.lengthSquared())) {
+ // collinear or invalid up vector; derive shortest arc to new direction
+ return QQuaternion::rotationTo(QVector3D(0.0f, 0.0f, 1.0f), zAxis);
+ }
+
+ xAxis.normalize();
+ const QVector3D yAxis(QVector3D::crossProduct(zAxis, xAxis));
+
+ return QQuaternion::fromAxes(xAxis, yAxis, zAxis);
+}
+
+/*!
+ \since 5.5
+
Returns the shortest arc quaternion to rotate from the direction described by the vector \a from
to the direction described by the vector \a to.
+
+ \sa fromDirection()
*/
QQuaternion QQuaternion::rotationTo(const QVector3D &from, const QVector3D &to)
{
@@ -950,10 +980,11 @@ QQuaternion::operator QVariant() const
QDebug operator<<(QDebug dbg, const QQuaternion &q)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QQuaternion(scalar:" << q.scalar()
<< ", vector:(" << q.x() << ", "
<< q.y() << ", " << q.z() << "))";
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h
index c3918645d4..240e31a5c2 100644
--- a/src/gui/math3d/qquaternion.h
+++ b/src/gui/math3d/qquaternion.h
@@ -138,6 +138,8 @@ public:
void getAxes(QVector3D *xAxis, QVector3D *yAxis, QVector3D *zAxis) const;
static QQuaternion fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis);
+ static QQuaternion fromDirection(const QVector3D &direction, const QVector3D &up);
+
static QQuaternion rotationTo(const QVector3D &from, const QVector3D &to);
#endif
diff --git a/src/gui/math3d/qvector2d.cpp b/src/gui/math3d/qvector2d.cpp
index fe4c9f8cc2..2d8a1d3a0f 100644
--- a/src/gui/math3d/qvector2d.cpp
+++ b/src/gui/math3d/qvector2d.cpp
@@ -499,8 +499,9 @@ QVector2D::operator QVariant() const
QDebug operator<<(QDebug dbg, const QVector2D &vector)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QVector2D(" << vector.x() << ", " << vector.y() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qvector3d.cpp b/src/gui/math3d/qvector3d.cpp
index ced4ac9d73..19aa4facdb 100644
--- a/src/gui/math3d/qvector3d.cpp
+++ b/src/gui/math3d/qvector3d.cpp
@@ -697,9 +697,10 @@ float QVector3D::lengthSquared() const
QDebug operator<<(QDebug dbg, const QVector3D &vector)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QVector3D("
<< vector.x() << ", " << vector.y() << ", " << vector.z() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/math3d/qvector4d.cpp b/src/gui/math3d/qvector4d.cpp
index 6afe9b8cad..494e6f97f0 100644
--- a/src/gui/math3d/qvector4d.cpp
+++ b/src/gui/math3d/qvector4d.cpp
@@ -573,10 +573,11 @@ QVector4D::operator QVariant() const
QDebug operator<<(QDebug dbg, const QVector4D &vector)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QVector4D("
<< vector.x() << ", " << vector.y() << ", "
<< vector.z() << ", " << vector.w() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/opengl/qopengldebug.cpp b/src/gui/opengl/qopengldebug.cpp
index 114f118989..e747372df9 100644
--- a/src/gui/opengl/qopengldebug.cpp
+++ b/src/gui/opengl/qopengldebug.cpp
@@ -1039,10 +1039,11 @@ bool QOpenGLDebugMessage::operator==(const QOpenGLDebugMessage &debugMessage) co
*/
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Source source)
{
+ QDebugStateSaver saver(debug);
debug.nospace() << "QOpenGLDebugMessage::Source("
<< qt_messageSourceToString(source)
- << ")";
- return debug.space();
+ << ')';
+ return debug;
}
/*!
@@ -1053,10 +1054,11 @@ QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Source source)
*/
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Type type)
{
+ QDebugStateSaver saver(debug);
debug.nospace() << "QOpenGLDebugMessage::Type("
<< qt_messageTypeToString(type)
- << ")";
- return debug.space();
+ << ')';
+ return debug;
}
/*!
@@ -1067,10 +1069,11 @@ QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Type type)
*/
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Severity severity)
{
+ QDebugStateSaver saver(debug);
debug.nospace() << "QOpenGLDebugMessage::Severity("
<< qt_messageSeverityToString(severity)
- << ")";
- return debug.space();
+ << ')';
+ return debug;
}
/*!
@@ -1081,13 +1084,14 @@ QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Severity severity)
*/
QDebug operator<<(QDebug debug, const QOpenGLDebugMessage &message)
{
+ QDebugStateSaver saver(debug);
debug.nospace() << "QOpenGLDebugMessage("
<< qt_messageSourceToString(message.source()) << ", "
<< message.id() << ", "
<< message.message() << ", "
<< qt_messageSeverityToString(message.severity()) << ", "
- << qt_messageTypeToString(message.type()) << ")";
- return debug.space();
+ << qt_messageTypeToString(message.type()) << ')';
+ return debug;
}
#endif // QT_NO_DEBUG_STREAM
diff --git a/src/gui/opengl/qopenglframebufferobject.cpp b/src/gui/opengl/qopenglframebufferobject.cpp
index c4deeea4c9..8d298496df 100644
--- a/src/gui/opengl/qopenglframebufferobject.cpp
+++ b/src/gui/opengl/qopenglframebufferobject.cpp
@@ -1484,8 +1484,10 @@ void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target,
const int ty0 = targetRect.top();
const int ty1 = targetRect.top() + targetRect.height();
- extensions.glBindFramebuffer(GL_READ_FRAMEBUFFER, source ? source->handle() : 0);
- extensions.glBindFramebuffer(GL_DRAW_FRAMEBUFFER, target ? target->handle() : 0);
+ const GLuint defaultFboId = ctx->defaultFramebufferObject();
+
+ extensions.glBindFramebuffer(GL_READ_FRAMEBUFFER, source ? source->handle() : defaultFboId);
+ extensions.glBindFramebuffer(GL_DRAW_FRAMEBUFFER, target ? target->handle() : defaultFboId);
extensions.glBlitFramebuffer(sx0, sy0, sx1, sy1,
tx0, ty0, tx1, ty1,
diff --git a/src/gui/opengl/qopenglgradientcache.cpp b/src/gui/opengl/qopenglgradientcache.cpp
index ab493fa85c..6622d4805f 100644
--- a/src/gui/opengl/qopenglgradientcache.cpp
+++ b/src/gui/opengl/qopenglgradientcache.cpp
@@ -34,8 +34,18 @@
#include "qopenglgradientcache_p.h"
#include <private/qdrawhelper_p.h>
#include <private/qopenglcontext_p.h>
+#include <private/qrgba64_p.h>
#include <QtCore/qmutex.h>
-#include <QtGui/qopenglfunctions.h>
+#include "qopenglfunctions.h"
+#include "qopenglextensions_p.h"
+
+#ifndef GL_RGBA8
+#define GL_RGBA8 0x8058
+#endif
+
+#ifndef GL_RGBA16
+#define GL_RGBA16 0x805B
+#endif
QT_BEGIN_NAMESPACE
@@ -137,33 +147,40 @@ GLuint QOpenGL2GradientCache::addCacheElement(quint64 hash_val, const QGradient
}
CacheInfo cache_entry(gradient.stops(), opacity, gradient.interpolationMode());
- uint buffer[1024];
+ QRgba64 buffer[1024];
generateGradientColorTable(gradient, buffer, paletteSize(), opacity);
funcs->glGenTextures(1, &cache_entry.texId);
funcs->glBindTexture(GL_TEXTURE_2D, cache_entry.texId);
- funcs->glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, paletteSize(), 1,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
+ GLenum internalFormat = GL_RGBA16;
+ if (QOpenGLContext::currentContext()->isOpenGLES()) {
+ if (static_cast<QOpenGLExtensions*>(funcs)->hasOpenGLExtension(QOpenGLExtensions::Sized8Formats))
+ internalFormat = GL_RGBA8;
+ else
+ internalFormat = GL_RGBA; // Let OpenGLES use whatever it prefers.
+ }
+ funcs->glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, paletteSize(), 1,
+ 0, GL_RGBA, GL_UNSIGNED_SHORT, buffer);
return cache.insert(hash_val, cache_entry).value().texId;
}
//TODO: Let GL generate the texture using an FBO
-void QOpenGL2GradientCache::generateGradientColorTable(const QGradient& gradient, uint *colorTable, int size, qreal opacity) const
+void QOpenGL2GradientCache::generateGradientColorTable(const QGradient& gradient, QRgba64 *colorTable, int size, qreal opacity) const
{
int pos = 0;
QGradientStops s = gradient.stops();
- QVector<uint> colors(s.size());
+ QVector<QRgba64> colors(s.size());
for (int i = 0; i < s.size(); ++i)
- colors[i] = s[i].second.rgba(); // Qt LIES! It returns ARGB (on little-endian AND on big-endian)
+ colors[i] = s[i].second.rgba64();
bool colorInterpolation = (gradient.interpolationMode() == QGradient::ColorInterpolation);
uint alpha = qRound(opacity * 256);
- uint current_color = ARGB_COMBINE_ALPHA(colors[0], alpha);
+ QRgba64 current_color = combineAlpha256(colors[0], alpha);
qreal incr = 1.0 / qreal(size);
qreal fpos = 1.5 * incr;
- colorTable[pos++] = ARGB2RGBA(qPremultiply(current_color));
+ colorTable[pos++] = qPremultiply(current_color);
while (fpos <= s.first().first) {
colorTable[pos] = colorTable[pos - 1];
@@ -176,7 +193,7 @@ void QOpenGL2GradientCache::generateGradientColorTable(const QGradient& gradient
for (int i = 0; i < s.size() - 1; ++i) {
qreal delta = 1/(s[i+1].first - s[i].first);
- uint next_color = ARGB_COMBINE_ALPHA(colors[i+1], alpha);
+ QRgba64 next_color = combineAlpha256(colors[i+1], alpha);
if (colorInterpolation)
next_color = qPremultiply(next_color);
@@ -184,9 +201,9 @@ void QOpenGL2GradientCache::generateGradientColorTable(const QGradient& gradient
int dist = int(256 * ((fpos - s[i].first) * delta));
int idist = 256 - dist;
if (colorInterpolation)
- colorTable[pos] = ARGB2RGBA(INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist));
+ colorTable[pos] = interpolate256(current_color, idist, next_color, dist);
else
- colorTable[pos] = ARGB2RGBA(qPremultiply(INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist)));
+ colorTable[pos] = qPremultiply(interpolate256(current_color, idist, next_color, dist));
++pos;
fpos += incr;
}
@@ -195,7 +212,7 @@ void QOpenGL2GradientCache::generateGradientColorTable(const QGradient& gradient
Q_ASSERT(s.size() > 0);
- uint last_color = ARGB2RGBA(qPremultiply(ARGB_COMBINE_ALPHA(colors[s.size() - 1], alpha)));
+ QRgba64 last_color = qPremultiply(combineAlpha256(colors[s.size() - 1], alpha));
for (;pos < size; ++pos)
colorTable[pos] = last_color;
diff --git a/src/gui/opengl/qopenglgradientcache_p.h b/src/gui/opengl/qopenglgradientcache_p.h
index bcdf3f4fcf..d368f4bcfc 100644
--- a/src/gui/opengl/qopenglgradientcache_p.h
+++ b/src/gui/opengl/qopenglgradientcache_p.h
@@ -50,6 +50,7 @@
#include <private/qopenglcontext_p.h>
#include <QtCore/qmutex.h>
#include <QGradient>
+#include <qrgba64.h>
QT_BEGIN_NAMESPACE
@@ -83,7 +84,7 @@ public:
private:
inline int maxCacheSize() const { return 60; }
inline void generateGradientColorTable(const QGradient& gradient,
- uint *colorTable,
+ QRgba64 *colorTable,
int size, qreal opacity) const;
GLuint addCacheElement(quint64 hash_val, const QGradient &gradient, qreal opacity);
void cleanCache();
diff --git a/src/gui/opengl/qopengltexture.cpp b/src/gui/opengl/qopengltexture.cpp
index fa4b6cdab0..9bc9926b70 100644
--- a/src/gui/opengl/qopengltexture.cpp
+++ b/src/gui/opengl/qopengltexture.cpp
@@ -3650,7 +3650,7 @@ QOpenGLTexture::DepthStencilMode QOpenGLTexture::depthStencilMode() const
}
/*!
- \enum ComparisonFunction
+ \enum QOpenGLTexture::ComparisonFunction
\since 5.5
This enum specifies which comparison operator is used when texture comparison
is enabled on this texture.
diff --git a/src/gui/opengl/qopenglversionfunctions.cpp b/src/gui/opengl/qopenglversionfunctions.cpp
index f3f709c3f0..346a526054 100644
--- a/src/gui/opengl/qopenglversionfunctions.cpp
+++ b/src/gui/opengl/qopenglversionfunctions.cpp
@@ -67,6 +67,17 @@ void QAbstractOpenGLFunctionsPrivate::removeFunctionsBackend(QOpenGLContext *con
context->removeFunctionsBackend(v);
}
+void QAbstractOpenGLFunctionsPrivate::insertExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f)
+{
+ Q_ASSERT(context);
+ context->insertExternalFunctions(f);
+}
+
+void QAbstractOpenGLFunctionsPrivate::removeExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f)
+{
+ Q_ASSERT(context);
+ context->removeExternalFunctions(f);
+}
/*!
\class QAbstractOpenGLFunctions
@@ -182,6 +193,9 @@ QAbstractOpenGLFunctions::QAbstractOpenGLFunctions()
QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions()
{
+ Q_D(QAbstractOpenGLFunctions);
+ if (d->owningContext)
+ d->removeExternalFunctions(d->owningContext, this);
delete d_ptr;
}
@@ -191,6 +205,18 @@ bool QAbstractOpenGLFunctions::initializeOpenGLFunctions()
{
Q_D(QAbstractOpenGLFunctions);
d->initialized = true;
+
+ // For a subclass whose instance is not created via
+ // QOpenGLContext::versionFunctions() owningContext is not set. Set it now
+ // and register such instances to the context as external ones. These are
+ // not owned by the context but still need certain cleanup when the context
+ // is destroyed.
+ if (!d->owningContext) {
+ d->owningContext = QOpenGLContext::currentContext();
+ if (d->owningContext)
+ d->insertExternalFunctions(d->owningContext, this);
+ }
+
return true;
}
diff --git a/src/gui/opengl/qopenglversionfunctions.h b/src/gui/opengl/qopenglversionfunctions.h
index 2ae0f429e5..fcf665f97e 100644
--- a/src/gui/opengl/qopenglversionfunctions.h
+++ b/src/gui/opengl/qopenglversionfunctions.h
@@ -114,6 +114,8 @@ public:
QAtomicInt refs;
};
+class QAbstractOpenGLFunctions;
+
class QAbstractOpenGLFunctionsPrivate
{
public:
@@ -128,12 +130,16 @@ public:
const QOpenGLVersionStatus &v,
QOpenGLVersionFunctionsBackend *backend);
static void removeFunctionsBackend(QOpenGLContext *context, const QOpenGLVersionStatus &v);
+ static void insertExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f);
+ static void removeExternalFunctions(QOpenGLContext *context, QAbstractOpenGLFunctions *f);
+
+ static QAbstractOpenGLFunctionsPrivate *get(QAbstractOpenGLFunctions *q);
QOpenGLContext *owningContext;
bool initialized;
};
-class QAbstractOpenGLFunctions
+class Q_GUI_EXPORT QAbstractOpenGLFunctions
{
public:
virtual ~QAbstractOpenGLFunctions();
@@ -154,6 +160,11 @@ protected:
friend class QOpenGLContext;
};
+inline QAbstractOpenGLFunctionsPrivate *QAbstractOpenGLFunctionsPrivate::get(QAbstractOpenGLFunctions *q)
+{
+ return q->d_func();
+}
+
#if !defined(QT_OPENGL_ES_2)
class QOpenGLFunctions_1_0_CoreBackend : public QOpenGLVersionFunctionsBackend
diff --git a/src/gui/opengl/qopenglvertexarrayobject.cpp b/src/gui/opengl/qopenglvertexarrayobject.cpp
index 6b0f2fede7..2a1b7f4bf4 100644
--- a/src/gui/opengl/qopenglvertexarrayobject.cpp
+++ b/src/gui/opengl/qopenglvertexarrayobject.cpp
@@ -189,11 +189,16 @@ bool QOpenGLVertexArrayObjectPrivate::create()
void QOpenGLVertexArrayObjectPrivate::destroy()
{
+ Q_Q(QOpenGLVertexArrayObject);
+
+ if (context) {
+ QObject::disconnect(context, SIGNAL(aboutToBeDestroyed()), q, SLOT(_q_contextAboutToBeDestroyed()));
+ context = 0;
+ }
+
if (!vao)
return;
- Q_Q(QOpenGLVertexArrayObject);
-
switch (vaoFuncsType) {
#ifndef QT_OPENGL_ES_2
case Core_3_2:
@@ -212,10 +217,6 @@ void QOpenGLVertexArrayObjectPrivate::destroy()
break;
}
- Q_ASSERT(context);
- QObject::disconnect(context, SIGNAL(aboutToBeDestroyed()), q, SLOT(_q_contextAboutToBeDestroyed()));
- context = 0;
-
vao = 0;
}
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 3010d4052a..fafc67cf46 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -44,6 +44,7 @@ HEADERS += \
painting/qregion.h \
painting/qrgb.h \
painting/qrgba64.h \
+ painting/qrgba64_p.h \
painting/qstroker_p.h \
painting/qtextureglyphcache_p.h \
painting/qtransform.h \
diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp
index 27f28f7193..5bf8387400 100644
--- a/src/gui/painting/qbrush.cpp
+++ b/src/gui/painting/qbrush.cpp
@@ -1022,8 +1022,9 @@ QDebug operator<<(QDebug dbg, const QBrush &b)
"TexturePattern" // 24
};
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QBrush(" << b.color() << ',' << BRUSH_STYLES[b.style()] << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp
index 806c9362ac..b33d7a74fc 100644
--- a/src/gui/painting/qcolor.cpp
+++ b/src/gui/painting/qcolor.cpp
@@ -2469,6 +2469,7 @@ void QColor::invalidate()
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QColor &c)
{
+ QDebugStateSaver saver(dbg);
if (!c.isValid())
dbg.nospace() << "QColor(Invalid)";
else if (c.spec() == QColor::Rgb)
@@ -2481,7 +2482,7 @@ QDebug operator<<(QDebug dbg, const QColor &c)
else if (c.spec() == QColor::Hsl)
dbg.nospace() << "QColor(AHSL " << c.alphaF() << ", " << c.hslHueF() << ", " << c.hslSaturationF() << ", " << c.lightnessF() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qcosmeticstroker.cpp b/src/gui/painting/qcosmeticstroker.cpp
index f82b098012..61d57ca3f8 100644
--- a/src/gui/painting/qcosmeticstroker.cpp
+++ b/src/gui/painting/qcosmeticstroker.cpp
@@ -33,6 +33,7 @@
#include "qcosmeticstroker_p.h"
#include "private/qpainterpath_p.h"
+#include "private/qrgba64_p.h"
#include <qdebug.h>
QT_BEGIN_NAMESPACE
@@ -280,7 +281,7 @@ void QCosmeticStroker::setup()
drawCaps = state->lastPen.capStyle() != Qt::FlatCap;
if (strokeSelection & FastDraw) {
- color = INTERPOLATE_PIXEL_256(state->penData.solid.color, opacity, 0, 0);
+ color = multiplyAlpha256(state->penData.solid.color, opacity).toArgb32();
QRasterBuffer *buffer = state->penData.rasterBuffer;
pixels = (uint *)buffer->buffer();
ppl = buffer->bytesPerLine()>>2;
@@ -602,8 +603,7 @@ void QCosmeticStroker::drawPath(const QVectorPath &path)
if (!closed && drawCaps && points == end - 2)
caps |= CapEnd;
- QCosmeticStroker::Point last = this->lastPixel;
- bool unclipped = stroke(this, p.x(), p.y(), p2.x(), p2.y(), caps);
+ bool moveNextStart = stroke(this, p.x(), p.y(), p2.x(), p2.y(), caps);
/* fix for gaps in polylines with fastpen and aliased in a sequence
of points with small distances: if current point p2 has been dropped
@@ -613,14 +613,8 @@ void QCosmeticStroker::drawPath(const QVectorPath &path)
still need to update p to avoid drawing the line after this one from
a bad starting position.
*/
- if (fastPenAliased && unclipped) {
- if (last.x != lastPixel.x || last.y != lastPixel.y
- || points == begin + 2 || points == end - 2) {
- p = p2;
- }
- } else {
+ if (!fastPenAliased || moveNextStart || points == begin + 2 || points == end - 2)
p = p2;
- }
points += 2;
caps = NoCaps;
}
@@ -727,8 +721,9 @@ template<DrawPixel drawPixel, class Dasher>
static bool drawLine(QCosmeticStroker *stroker, qreal rx1, qreal ry1, qreal rx2, qreal ry2, int caps)
{
if (stroker->clipLine(rx1, ry1, rx2, ry2))
- return false;
+ return true;
+ bool didDraw = false;
const int half = stroker->legacyRounding ? 31 : 0;
int x1 = toF26Dot6(rx1) + half;
int y1 = toF26Dot6(ry1) + half;
@@ -814,6 +809,7 @@ static bool drawLine(QCosmeticStroker *stroker, qreal rx1, qreal ry1, qreal rx2,
dasher.adjust();
x += xinc;
} while (++y < ys);
+ didDraw = true;
}
} else {
// horizontal
@@ -889,10 +885,11 @@ static bool drawLine(QCosmeticStroker *stroker, qreal rx1, qreal ry1, qreal rx2,
dasher.adjust();
y += yinc;
} while (++x < xs);
+ didDraw = true;
}
}
stroker->lastPixel = last;
- return true;
+ return didDraw;
}
@@ -900,7 +897,7 @@ template<DrawPixel drawPixel, class Dasher>
static bool drawLineAA(QCosmeticStroker *stroker, qreal rx1, qreal ry1, qreal rx2, qreal ry2, int caps)
{
if (stroker->clipLine(rx1, ry1, rx2, ry2))
- return false;
+ return true;
int x1 = toF26Dot6(rx1);
int y1 = toF26Dot6(ry1);
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 538389f15f..b6f06135cd 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -51,6 +51,7 @@
#include <private/qdrawhelper_mips_dsp_p.h>
#endif
#include <private/qguiapplication_p.h>
+#include <private/qrgba64_p.h>
#include <qmath.h>
QT_BEGIN_NAMESPACE
@@ -758,6 +759,35 @@ static uint *QT_FASTCALL destFetch(uint *buffer, QRasterBuffer *rasterBuffer, in
return const_cast<uint *>(layout->convertToARGB32PM(buffer, ptr, length, layout, 0));
}
+static QRgba64 *QT_FASTCALL destFetch64(QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
+{
+ const QPixelLayout *layout = &qPixelLayouts[rasterBuffer->format];
+ uint buffer32[buffer_size];
+ const uint *ptr = qFetchPixels[layout->bpp](buffer32, rasterBuffer->scanLine(y), x, length);
+ ptr = const_cast<uint *>(layout->convertToARGB32PM(buffer32, ptr, length, layout, 0));
+
+ for (int i = 0; i < length; ++i) {
+ buffer[i] = QRgba64::fromArgb32(ptr[i]);
+ }
+ return buffer;
+}
+
+static QRgba64 *QT_FASTCALL destFetch64ARGB32(QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
+{
+ const uint *src = ((const uint *)rasterBuffer->scanLine(y)) + x;
+ for (int i = 0; i < length; ++i)
+ buffer[i] = QRgba64::fromArgb32(src[i]).premultiplied();
+ return buffer;
+}
+
+template<QtPixelOrder PixelOrder>
+static QRgba64 *QT_FASTCALL destFetch64RGB30(QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length)
+{
+ const uint *src = ((const uint *)rasterBuffer->scanLine(y)) + x;
+ for (int i = 0; i < length; ++i)
+ buffer[i] = qConvertA2rgb30ToRgb64<PixelOrder>(src[i]);
+ return buffer;
+}
static DestFetchProc destFetchProc[QImage::NImageFormats] =
{
@@ -788,6 +818,35 @@ static DestFetchProc destFetchProc[QImage::NImageFormats] =
destFetch, // Format_Grayscale8
};
+static DestFetchProc64 destFetchProc64[QImage::NImageFormats] =
+{
+ 0, // Format_Invalid
+ destFetch64, // Format_Mono,
+ destFetch64, // Format_MonoLSB
+ 0, // Format_Indexed8
+ destFetch64, // Format_RGB32
+ destFetch64ARGB32, // Format_ARGB32,
+ destFetch64, // Format_ARGB32_Premultiplied
+ destFetch64, // Format_RGB16
+ destFetch64, // Format_ARGB8565_Premultiplied
+ destFetch64, // Format_RGB666
+ destFetch64, // Format_ARGB6666_Premultiplied
+ destFetch64, // Format_RGB555
+ destFetch64, // Format_ARGB8555_Premultiplied
+ destFetch64, // Format_RGB888
+ destFetch64, // Format_RGB444
+ destFetch64, // Format_ARGB4444_Premultiplied
+ destFetch64, // Format_RGBX8888
+ destFetch64, // Format_RGBA8888
+ destFetch64, // Format_RGBA8888_Premultiplied
+ destFetch64RGB30<PixelOrderBGR>, // Format_BGR30
+ destFetch64RGB30<PixelOrderBGR>, // Format_A2BGR30_Premultiplied
+ destFetch64RGB30<PixelOrderRGB>, // Format_RGB30
+ destFetch64RGB30<PixelOrderRGB>, // Format_A2RGB30_Premultiplied
+ destFetch64, // Format_Alpha8
+ destFetch64, // Format_Grayscale8
+};
+
/*
Returns the color in the mono destination color table
that is the "nearest" to /color/.
@@ -904,6 +963,51 @@ static void QT_FASTCALL destStore(QRasterBuffer *rasterBuffer, int x, int y, con
}
}
+static void QT_FASTCALL convertFromRgb64(uint *dest, const QRgba64 *src, int length)
+{
+ for (int i = 0; i < length; ++i) {
+ dest[i] = src[i].toArgb32();
+ }
+}
+
+static void QT_FASTCALL destStore64(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length)
+{
+ uint buf[buffer_size];
+ const QPixelLayout *layout = &qPixelLayouts[rasterBuffer->format];
+ StorePixelsFunc store = qStorePixels[layout->bpp];
+ uchar *dest = rasterBuffer->scanLine(y);
+ while (length) {
+ int l = qMin(length, buffer_size);
+ const uint *ptr = 0;
+ convertFromRgb64(buf, buffer, l);
+ if (!layout->premultiplied && !layout->alphaWidth)
+ ptr = layout->convertFromRGB32(buf, buf, l, layout, 0);
+ else
+ ptr = layout->convertFromARGB32PM(buf, buf, l, layout, 0);
+ store(dest, ptr, x, l);
+ length -= l;
+ buffer += l;
+ x += l;
+ }
+}
+
+static void QT_FASTCALL destStore64ARGB32(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length)
+{
+ uint *dest = (uint*)rasterBuffer->scanLine(y) + x;
+ for (int i = 0; i < length; ++i) {
+ dest[i] = buffer[i].unpremultiplied().toArgb32();
+ }
+}
+
+template<QtPixelOrder PixelOrder>
+static void QT_FASTCALL destStore64RGB30(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length)
+{
+ uint *dest = (uint*)rasterBuffer->scanLine(y) + x;
+ for (int i = 0; i < length; ++i) {
+ dest[i] = qConvertRgb64ToRgb30<PixelOrder>(buffer[i]);
+ }
+}
+
static DestStoreProc destStoreProc[QImage::NImageFormats] =
{
0, // Format_Invalid
@@ -933,6 +1037,35 @@ static DestStoreProc destStoreProc[QImage::NImageFormats] =
destStore, // Format_Grayscale8
};
+static DestStoreProc64 destStoreProc64[QImage::NImageFormats] =
+{
+ 0, // Format_Invalid
+ destStore64, // Format_Mono,
+ destStore64, // Format_MonoLSB
+ 0, // Format_Indexed8
+ destStore64, // Format_RGB32
+ destStore64ARGB32, // Format_ARGB32,
+ destStore64, // Format_ARGB32_Premultiplied
+ destStore64, // Format_RGB16
+ destStore64, // Format_ARGB8565_Premultiplied
+ destStore64, // Format_RGB666
+ destStore64, // Format_ARGB6666_Premultiplied
+ destStore64, // Format_RGB555
+ destStore64, // Format_ARGB8555_Premultiplied
+ destStore64, // Format_RGB888
+ destStore64, // Format_RGB444
+ destStore64, // Format_ARGB4444_Premultiplied
+ destStore64, // Format_RGBX8888
+ destStore64, // Format_RGBA8888
+ destStore64, // Format_RGBA8888_Premultiplied
+ destStore64RGB30<PixelOrderBGR>, // Format_BGR30
+ destStore64RGB30<PixelOrderBGR>, // Format_A2BGR30_Premultiplied
+ destStore64RGB30<PixelOrderRGB>, // Format_RGB30
+ destStore64RGB30<PixelOrderRGB>, // Format_A2RGB30_Premultiplied
+ destStore64, // Format_Alpha8
+ destStore64, // Format_Grayscale8
+};
+
/*
Source fetches
@@ -1539,40 +1672,29 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c
const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
const __m128i v_256 = _mm_set1_epi16(256);
const __m128i v_disty = _mm_set1_epi16(disty);
- __m128i v_fdx = _mm_set1_epi32(fdx*4);
-
- ptrdiff_t secondLine = reinterpret_cast<const uint *>(s2) - reinterpret_cast<const uint *>(s1);
-
- union Vect_buffer { __m128i vect; quint32 i[4]; };
- Vect_buffer v_fx;
-
- for (int i = 0; i < 4; i++) {
- v_fx.i[i] = fx;
- fx += fdx;
- }
+ const __m128i v_fdx = _mm_set1_epi32(fdx*4);
+ __m128i v_fx = _mm_setr_epi32(fx, fx + fdx, fx + fdx + fdx, fx + fdx + fdx + fdx);
while (b < boundedEnd) {
-
- Vect_buffer tl, tr, bl, br;
-
- for (int i = 0; i < 4; i++) {
- int x1 = v_fx.i[i] >> 16;
- const uint *addr_tl = reinterpret_cast<const uint *>(s1) + x1;
- const uint *addr_tr = addr_tl + 1;
- tl.i[i] = *addr_tl;
- tr.i[i] = *addr_tr;
- bl.i[i] = *(addr_tl+secondLine);
- br.i[i] = *(addr_tr+secondLine);
- }
- __m128i v_distx = _mm_srli_epi16(v_fx.vect, 12);
+ __m128i offset = _mm_srli_epi32(v_fx, 16);
+ const int offset0 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset1 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset2 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset3 = _mm_cvtsi128_si32(offset);
+ const __m128i tl = _mm_setr_epi32(s1[offset0], s1[offset1], s1[offset2], s1[offset3]);
+ const __m128i tr = _mm_setr_epi32(s1[offset0 + 1], s1[offset1 + 1], s1[offset2 + 1], s1[offset3 + 1]);
+ const __m128i bl = _mm_setr_epi32(s2[offset0], s2[offset1], s2[offset2], s2[offset3]);
+ const __m128i br = _mm_setr_epi32(s2[offset0 + 1], s2[offset1 + 1], s2[offset2 + 1], s2[offset3 + 1]);
+
+ __m128i v_distx = _mm_srli_epi16(v_fx, 12);
v_distx = _mm_shufflehi_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
v_distx = _mm_shufflelo_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
- interpolate_4_pixels_16_sse2(tl.vect, tr.vect, bl.vect, br.vect, v_distx, v_disty, colorMask, v_256, b);
- b+=4;
- v_fx.vect = _mm_add_epi32(v_fx.vect, v_fdx);
+ interpolate_4_pixels_16_sse2(tl, tr, bl, br, v_distx, v_disty, colorMask, v_256, b);
+ b += 4;
+ v_fx = _mm_add_epi32(v_fx, v_fdx);
}
- fx = v_fx.i[0];
+ fx = _mm_cvtsi128_si32(v_fx);
#elif defined(__ARM_NEON__)
BILINEAR_DOWNSCALE_BOUNDS_PROLOG
@@ -1687,9 +1809,9 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c
uint tr = s1[x2]; \
uint bl = s2[x1]; \
uint br = s2[x2]; \
- int distx = (fx & 0x0000ffff) >> 12; \
- int disty = (fy & 0x0000ffff) >> 12; \
- *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty); \
+ int distx = (fx & 0x0000ffff) >> 8; \
+ int disty = (fy & 0x0000ffff) >> 8; \
+ *b = interpolate_4_pixels(tl, tr, bl, br, distx, disty); \
fx += fdx; \
fy += fdy; \
++b; \
@@ -1702,62 +1824,54 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c
const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
const __m128i v_256 = _mm_set1_epi16(256);
- __m128i v_fdx = _mm_set1_epi32(fdx*4);
- __m128i v_fdy = _mm_set1_epi32(fdy*4);
+ const __m128i v_fdx = _mm_set1_epi32(fdx*4);
+ const __m128i v_fdy = _mm_set1_epi32(fdy*4);
+ __m128i v_fx = _mm_setr_epi32(fx, fx + fdx, fx + fdx + fdx, fx + fdx + fdx + fdx);
+ __m128i v_fy = _mm_setr_epi32(fy, fy + fdy, fy + fdy + fdy, fy + fdy + fdy + fdy);
const uchar *textureData = data->texture.imageData;
const int bytesPerLine = data->texture.bytesPerLine;
-
- union Vect_buffer { __m128i vect; qint32 i[4]; };
- Vect_buffer v_fx, v_fy;
-
- for (int i = 0; i < 4; i++) {
- v_fx.i[i] = fx;
- v_fy.i[i] = fy;
- fx += fdx;
- fy += fdy;
- }
+ const __m128i vbpl = _mm_shufflelo_epi16(_mm_cvtsi32_si128(bytesPerLine/4), _MM_SHUFFLE(0, 0, 0, 0));
while (b < boundedEnd) {
- if (fdx > 0 && (v_fx.i[3] >> 16) >= image_x2)
+ if (fdx > 0 && (short)_mm_extract_epi16(v_fx, 7) >= image_x2)
break;
- if (fdx < 0 && (v_fx.i[3] >> 16) < image_x1)
+ if (fdx < 0 && (short)_mm_extract_epi16(v_fx, 7) < image_x1)
break;
- if (fdy > 0 && (v_fy.i[3] >> 16) >= image_y2)
+ if (fdy > 0 && (short)_mm_extract_epi16(v_fy, 7) >= image_y2)
break;
- if (fdy < 0 && (v_fy.i[3] >> 16) < image_y1)
+ if (fdy < 0 && (short)_mm_extract_epi16(v_fy, 7) < image_y1)
break;
- Vect_buffer tl, tr, bl, br;
- Vect_buffer v_fx_shifted, v_fy_shifted;
- v_fx_shifted.vect = _mm_srli_epi32(v_fx.vect, 16);
- v_fy_shifted.vect = _mm_srli_epi32(v_fy.vect, 16);
-
- for (int i = 0; i < 4; i++) {
- const int x1 = v_fx_shifted.i[i];
- const int y1 = v_fy_shifted.i[i];
- const uchar *sl = textureData + bytesPerLine * y1;
- const uint *s1 = (const uint *)sl;
- const uint *s2 = (const uint *)(sl + bytesPerLine);
- tl.i[i] = s1[x1];
- tr.i[i] = s1[x1+1];
- bl.i[i] = s2[x1];
- br.i[i] = s2[x1+1];
- }
- __m128i v_distx = _mm_srli_epi16(v_fx.vect, 12);
- __m128i v_disty = _mm_srli_epi16(v_fy.vect, 12);
+ const __m128i vy = _mm_packs_epi32(_mm_srli_epi32(v_fy, 16), _mm_setzero_si128());
+ // 4x16bit * 4x16bit -> 4x32bit
+ __m128i offset = _mm_unpacklo_epi16(_mm_mullo_epi16(vy, vbpl), _mm_mulhi_epi16(vy, vbpl));
+ offset = _mm_add_epi32(offset, _mm_srli_epi32(v_fx, 16));
+ const int offset0 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset1 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset2 = _mm_cvtsi128_si32(offset); offset = _mm_srli_si128(offset, 4);
+ const int offset3 = _mm_cvtsi128_si32(offset);
+ const uint *topData = (const uint *)(textureData);
+ const __m128i tl = _mm_setr_epi32(topData[offset0], topData[offset1], topData[offset2], topData[offset3]);
+ const __m128i tr = _mm_setr_epi32(topData[offset0 + 1], topData[offset1 + 1], topData[offset2 + 1], topData[offset3 + 1]);
+ const uint *bottomData = (const uint *)(textureData + bytesPerLine);
+ const __m128i bl = _mm_setr_epi32(bottomData[offset0], bottomData[offset1], bottomData[offset2], bottomData[offset3]);
+ const __m128i br = _mm_setr_epi32(bottomData[offset0 + 1], bottomData[offset1 + 1], bottomData[offset2 + 1], bottomData[offset3 + 1]);
+
+ __m128i v_distx = _mm_srli_epi16(v_fx, 12);
+ __m128i v_disty = _mm_srli_epi16(v_fy, 12);
v_distx = _mm_shufflehi_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
v_distx = _mm_shufflelo_epi16(v_distx, _MM_SHUFFLE(2,2,0,0));
v_disty = _mm_shufflehi_epi16(v_disty, _MM_SHUFFLE(2,2,0,0));
v_disty = _mm_shufflelo_epi16(v_disty, _MM_SHUFFLE(2,2,0,0));
- interpolate_4_pixels_16_sse2(tl.vect, tr.vect, bl.vect, br.vect, v_distx, v_disty, colorMask, v_256, b);
- b+=4;
- v_fx.vect = _mm_add_epi32(v_fx.vect, v_fdx);
- v_fy.vect = _mm_add_epi32(v_fy.vect, v_fdy);
+ interpolate_4_pixels_16_sse2(tl, tr, bl, br, v_distx, v_disty, colorMask, v_256, b);
+ b += 4;
+ v_fx = _mm_add_epi32(v_fx, v_fdx);
+ v_fy = _mm_add_epi32(v_fy, v_fdy);
}
- fx = v_fx.i[0];
- fy = v_fy.i[0];
+ fx = _mm_cvtsi128_si32(v_fx);
+ fy = _mm_cvtsi128_si32(v_fy);
#endif
}
@@ -1778,10 +1892,16 @@ static const uint * QT_FASTCALL fetchTransformedBilinearARGB32PM(uint *buffer, c
uint bl = s2[x1];
uint br = s2[x2];
+#if defined(__SSE2__)
+ // The SSE2 optimized interpolate_4_pixels is faster than interpolate_4_pixels_16.
+ int distx = (fx & 0x0000ffff) >> 8;
+ int disty = (fy & 0x0000ffff) >> 8;
+ *b = interpolate_4_pixels(tl, tr, bl, br, distx, disty);
+#else
int distx = (fx & 0x0000ffff) >> 12;
int disty = (fy & 0x0000ffff) >> 12;
-
*b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty);
+#endif
fx += fdx;
fy += fdy;
@@ -2334,6 +2454,12 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
static uint qt_gradient_pixel_fixed(const QGradientData *data, int fixed_pos)
{
int ipos = (fixed_pos + (FIXPT_SIZE / 2)) >> FIXPT_BITS;
+ return data->colorTable[qt_gradient_clamp(data, ipos)].toArgb32();
+}
+
+static const QRgba64& qt_gradient_pixel64_fixed(const QGradientData *data, int fixed_pos)
+{
+ int ipos = (fixed_pos + (FIXPT_SIZE / 2)) >> FIXPT_BITS;
return data->colorTable[qt_gradient_clamp(data, ipos)];
}
@@ -2418,6 +2544,75 @@ static const uint * QT_FASTCALL qt_fetch_linear_gradient(uint *buffer, const Ope
return b;
}
+static const QRgba64 * QT_FASTCALL qt_fetch_linear_gradient_rgb64(QRgba64 *buffer, const Operator *op, const QSpanData *data,
+ int y, int x, int length)
+{
+ const QRgba64 *b = buffer;
+ qreal t, inc;
+
+ bool affine = true;
+ qreal rx=0, ry=0;
+ if (op->linear.l == 0) {
+ t = inc = 0;
+ } else {
+ rx = data->m21 * (y + qreal(0.5)) + data->m11 * (x + qreal(0.5)) + data->dx;
+ ry = data->m22 * (y + qreal(0.5)) + data->m12 * (x + qreal(0.5)) + data->dy;
+ t = op->linear.dx*rx + op->linear.dy*ry + op->linear.off;
+ inc = op->linear.dx * data->m11 + op->linear.dy * data->m12;
+ affine = !data->m13 && !data->m23;
+
+ if (affine) {
+ t *= (GRADIENT_STOPTABLE_SIZE - 1);
+ inc *= (GRADIENT_STOPTABLE_SIZE - 1);
+ }
+ }
+
+ const QRgba64 *end = buffer + length;
+ if (affine) {
+ if (inc > qreal(-1e-5) && inc < qreal(1e-5)) {
+ QRgba64 color = qt_gradient_pixel64_fixed(&data->gradient, int(t * FIXPT_SIZE));
+ qt_memfill64((quint64*)buffer, color, length);
+ } else {
+ if (t+inc*length < qreal(INT_MAX >> (FIXPT_BITS + 1)) &&
+ t+inc*length > qreal(INT_MIN >> (FIXPT_BITS + 1))) {
+ // we can use fixed point math
+ int t_fixed = int(t * FIXPT_SIZE);
+ int inc_fixed = int(inc * FIXPT_SIZE);
+ while (buffer < end) {
+ *buffer = qt_gradient_pixel64_fixed(&data->gradient, t_fixed);
+ t_fixed += inc_fixed;
+ ++buffer;
+ }
+ } else {
+ // we have to fall back to float math
+ while (buffer < end) {
+ *buffer = qt_gradient_pixel64(&data->gradient, t/GRADIENT_STOPTABLE_SIZE);
+ t += inc;
+ ++buffer;
+ }
+ }
+ }
+ } else { // fall back to float math here as well
+ qreal rw = data->m23 * (y + qreal(0.5)) + data->m13 * (x + qreal(0.5)) + data->m33;
+ while (buffer < end) {
+ qreal x = rx/rw;
+ qreal y = ry/rw;
+ t = (op->linear.dx*x + op->linear.dy *y) + op->linear.off;
+
+ *buffer = qt_gradient_pixel64(&data->gradient, t);
+ rx += data->m11;
+ ry += data->m12;
+ rw += data->m13;
+ if (!rw) {
+ rw += data->m13;
+ }
+ ++buffer;
+ }
+ }
+
+ return b;
+}
+
static void QT_FASTCALL getRadialGradientValues(RadialGradientValues *v, const QSpanData *data)
{
v->dx = data->gradient.radial.center.x - data->gradient.radial.focal.x;
@@ -2573,11 +2768,35 @@ void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_
comp_func_Clear_impl(dest, length, const_alpha);
}
+void QT_FASTCALL comp_func_solid_Clear_rgb64(QRgba64 *dest, int length, QRgba64, uint const_alpha)
+{
+ if (const_alpha == 255)
+ qt_memfill64((quint64*)dest, 0, length);
+ else {
+ int ialpha = 255 - const_alpha;
+ for (int i = 0; i < length; ++i) {
+ dest[i] = multiplyAlpha255(dest[i], ialpha);
+ }
+ }
+}
+
void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)
{
comp_func_Clear_impl(dest, length, const_alpha);
}
+void QT_FASTCALL comp_func_Clear_rgb64(QRgba64 *dest, const QRgba64 *, int length, uint const_alpha)
+{
+ if (const_alpha == 255)
+ qt_memfill64((quint64*)dest, 0, length);
+ else {
+ int ialpha = 255 - const_alpha;
+ for (int i = 0; i < length; ++i) {
+ dest[i] = multiplyAlpha255(dest[i], ialpha);
+ }
+ }
+}
+
/*
result = s
dest = s * ca + d * cia
@@ -2597,6 +2816,19 @@ void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint
}
}
+void QT_FASTCALL comp_func_solid_Source_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)
+{
+ if (const_alpha == 255)
+ qt_memfill64((quint64*)dest, color, length);
+ else {
+ int ialpha = 255 - const_alpha;
+ color = multiplyAlpha255(color, const_alpha);
+ for (int i = 0; i < length; ++i) {
+ dest[i] = color + multiplyAlpha255(dest[i], ialpha);
+ }
+ }
+}
+
void QT_FASTCALL comp_func_Source(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)
{
if (const_alpha == 255) {
@@ -2611,14 +2843,34 @@ void QT_FASTCALL comp_func_Source(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL
}
}
+void QT_FASTCALL comp_func_Source_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)
+{
+ if (const_alpha == 255)
+ ::memcpy(dest, src, length * sizeof(quint64));
+ else {
+ int ialpha = 255 - const_alpha;
+ for (int i = 0; i < length; ++i) {
+ dest[i] = interpolate255(src[i], const_alpha, dest[i], ialpha);
+ }
+ }
+}
+
void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)
{
}
+void QT_FASTCALL comp_func_solid_Destination_rgb64(QRgba64 *, int, QRgba64, uint)
+{
+}
+
void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint)
{
}
+void QT_FASTCALL comp_func_Destination_rgb64(QRgba64 *, const QRgba64 *, int, uint)
+{
+}
+
/*
result = s + d * sia
dest = (s + d * sia) * ca + d * cia
@@ -2640,6 +2892,19 @@ void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color,
}
}
+void QT_FASTCALL comp_func_solid_SourceOver_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)
+{
+ if (const_alpha == 255 && color.isOpaque()) {
+ qt_memfill64((quint64*)dest, color, length);
+ } else {
+ if (const_alpha != 255)
+ color = multiplyAlpha255(color, const_alpha);
+ for (int i = 0; i < length; ++i) {
+ dest[i] = color + multiplyAlpha65535(dest[i], 65535 - color.alpha());
+ }
+ }
+}
+
void QT_FASTCALL comp_func_SourceOver(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)
{
PRELOAD_INIT2(dest, src)
@@ -2661,6 +2926,24 @@ void QT_FASTCALL comp_func_SourceOver(uint *Q_DECL_RESTRICT dest, const uint *Q_
}
}
+void QT_FASTCALL comp_func_SourceOver_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)
+{
+ if (const_alpha == 255) {
+ for (int i = 0; i < length; ++i) {
+ QRgba64 s = src[i];
+ if (s.isOpaque())
+ dest[i] = s;
+ else if (!s.isTransparent())
+ dest[i] = s + multiplyAlpha65535(dest[i], 65535 - s.alpha());
+ }
+ } else {
+ for (int i = 0; i < length; ++i) {
+ QRgba64 s = multiplyAlpha255(src[i], const_alpha);
+ dest[i] = s + multiplyAlpha65535(dest[i], 65535 - s.alpha());
+ }
+ }
+}
+
/*
result = d + s * dia
dest = (d + s * dia) * ca + d * cia
@@ -2678,6 +2961,16 @@ void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint co
}
}
+void QT_FASTCALL comp_func_solid_DestinationOver_rgb64(QRgba64 *dest, int length, QRgba64 color, uint const_alpha)
+{
+ if (const_alpha != 255)
+ color = multiplyAlpha255(color, const_alpha);
+ for (int i = 0; i < length; ++i) {
+ QRgba64 d = dest[i];
+ dest[i] = d + multiplyAlpha65535(color, 65535 - d.alpha());
+ }
+}
+
void QT_FASTCALL comp_func_DestinationOver(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha)
{
PRELOAD_INIT2(dest, src)
@@ -2697,6 +2990,22 @@ void QT_FASTCALL comp_func_DestinationOver(uint *Q_DECL_RESTRICT dest, const uin
}
}
+void QT_FASTCALL comp_func_DestinationOver_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha)
+{
+ if (const_alpha == 255) {
+ for (int i = 0; i < length; ++i) {
+ QRgba64 d = dest[i];
+ dest[i] = d + multiplyAlpha65535(src[i], 65535 - d.alpha());
+ }
+ } else {
+ for (int i = 0; i < length; ++i) {
+ QRgba64 d = dest[i];
+ QRgba64 s = multiplyAlpha255(src[i], const_alpha);
+ dest[i] = d + multiplyAlpha65535(s, 65535 - d.alpha());
+ }
+ }
+}
+
/*
result = s * da
dest = s * da * ca + d * cia
@@ -4237,7 +4546,21 @@ static CompositionFunctionSolid functionForModeSolid_C[] = {
rasterop_solid_NotDestination
};
+static CompositionFunctionSolid64 functionForModeSolid64_C[] = {
+ comp_func_solid_SourceOver_rgb64,
+ comp_func_solid_DestinationOver_rgb64,
+ comp_func_solid_Clear_rgb64,
+ comp_func_solid_Source_rgb64,
+ comp_func_solid_Destination_rgb64,
+ 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 CompositionFunctionSolid *functionForModeSolid = functionForModeSolid_C;
+static const CompositionFunctionSolid64 *functionForModeSolid64 = functionForModeSolid64_C;
static CompositionFunction functionForMode_C[] = {
comp_func_SourceOver,
@@ -4280,7 +4603,21 @@ static CompositionFunction functionForMode_C[] = {
rasterop_NotDestination
};
+static CompositionFunction64 functionForMode64_C[] = {
+ comp_func_SourceOver_rgb64,
+ comp_func_DestinationOver_rgb64,
+ comp_func_Clear_rgb64,
+ comp_func_Source_rgb64,
+ comp_func_Destination_rgb64,
+ 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 CompositionFunction *functionForMode = functionForMode_C;
+static const CompositionFunction64 *functionForMode64 = functionForMode64_C;
static TextureBlendType getBlendType(const QSpanData *data)
{
@@ -4310,24 +4647,28 @@ static inline Operator getOperator(const QSpanData *data, const QSpan *spans, in
switch(data->type) {
case QSpanData::Solid:
- solidSource = (qAlpha(data->solid.color) == 255);
+ solidSource = data->solid.color.isOpaque();
break;
case QSpanData::LinearGradient:
solidSource = !data->gradient.alphaColor;
getLinearGradientValues(&op.linear, data);
- op.src_fetch = qt_fetch_linear_gradient;
+ op.srcFetch = qt_fetch_linear_gradient;
+ op.srcFetch64 = qt_fetch_linear_gradient_rgb64;
break;
case QSpanData::RadialGradient:
solidSource = !data->gradient.alphaColor;
getRadialGradientValues(&op.radial, data);
- op.src_fetch = qt_fetch_radial_gradient;
+ op.srcFetch = qt_fetch_radial_gradient;
+ op.srcFetch64 = 0; //qt_fetch_radial_gradient_rgb64;
break;
case QSpanData::ConicalGradient:
solidSource = !data->gradient.alphaColor;
- op.src_fetch = qt_fetch_conical_gradient;
+ op.srcFetch = qt_fetch_conical_gradient;
+ op.srcFetch64 = 0; //qt_fetch_conical_gradient_rgb64;
break;
case QSpanData::Texture:
- op.src_fetch = sourceFetch[getBlendType(data)][data->texture.format];
+ op.srcFetch = sourceFetch[getBlendType(data)][data->texture.format];
+ op.srcFetch64 = 0; // sourceFetch64[getBlendType(data)][data->texture.format];
solidSource = !data->texture.hasAlpha;
default:
break;
@@ -4337,12 +4678,13 @@ static inline Operator getOperator(const QSpanData *data, const QSpan *spans, in
if (op.mode == QPainter::CompositionMode_SourceOver && solidSource)
op.mode = QPainter::CompositionMode_Source;
- op.dest_fetch = destFetchProc[data->rasterBuffer->format];
+ op.destFetch = destFetchProc[data->rasterBuffer->format];
+ op.destFetch64 = destFetchProc64[data->rasterBuffer->format];
if (op.mode == QPainter::CompositionMode_Source) {
switch (data->rasterBuffer->format) {
case QImage::Format_RGB32:
case QImage::Format_ARGB32_Premultiplied:
- // don't clear dest_fetch as it sets up the pointer correctly to save one copy
+ // don't clear destFetch as it sets up the pointer correctly to save one copy
break;
default: {
if (data->type == QSpanData::Texture && data->texture.const_alpha != 256)
@@ -4356,16 +4698,21 @@ static inline Operator getOperator(const QSpanData *data, const QSpan *spans, in
}
++spans;
}
- if (!alphaSpans)
- op.dest_fetch = 0;
+ if (!alphaSpans) {
+ op.destFetch = 0;
+ op.destFetch64 = 0;
+ }
}
}
}
- op.dest_store = destStoreProc[data->rasterBuffer->format];
+ op.destStore = destStoreProc[data->rasterBuffer->format];
+ op.destStore64 = destStoreProc64[data->rasterBuffer->format];
op.funcSolid = functionForModeSolid[op.mode];
+ op.funcSolid64 = functionForModeSolid64[op.mode];
op.func = functionForMode[op.mode];
+ op.func64 = functionForMode64[op.mode];
return op;
}
@@ -4382,16 +4729,17 @@ void blend_color_generic(int count, const QSpan *spans, void *userData)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
uint buffer[buffer_size];
Operator op = getOperator(data, spans, count);
+ const uint color = data->solid.color.toArgb32();
while (count--) {
int x = spans->x;
int length = spans->len;
while (length) {
int l = qMin(buffer_size, length);
- uint *dest = op.dest_fetch ? op.dest_fetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
- op.funcSolid(dest, l, data->solid.color, spans->coverage);
- if (op.dest_store)
- op.dest_store(data->rasterBuffer, x, spans->y, dest, l);
+ uint *dest = op.destFetch ? op.destFetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ op.funcSolid(dest, l, color, spans->coverage);
+ if (op.destStore)
+ op.destStore(data->rasterBuffer, x, spans->y, dest, l);
length -= l;
x += l;
}
@@ -4404,15 +4752,16 @@ static void blend_color_argb(int count, const QSpan *spans, void *userData)
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
Operator op = getOperator(data, spans, count);
+ const uint color = data->solid.color.toArgb32();
if (op.mode == QPainter::CompositionMode_Source) {
// inline for performance
while (count--) {
uint *target = ((uint *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
if (spans->coverage == 255) {
- QT_MEMFILL_UINT(target, spans->len, data->solid.color);
+ QT_MEMFILL_UINT(target, spans->len, color);
} else {
- uint c = BYTE_MUL(data->solid.color, spans->coverage);
+ uint c = BYTE_MUL(color, spans->coverage);
int ialpha = 255 - spans->coverage;
for (int i = 0; i < spans->len; ++i)
target[i] = c + BYTE_MUL(target[i], ialpha);
@@ -4424,7 +4773,35 @@ static void blend_color_argb(int count, const QSpan *spans, void *userData)
while (count--) {
uint *target = ((uint *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
- op.funcSolid(target, spans->len, data->solid.color, spans->coverage);
+ op.funcSolid(target, spans->len, color, spans->coverage);
+ ++spans;
+ }
+}
+
+void blend_color_generic_rgb64(int count, const QSpan *spans, void *userData)
+{
+ QSpanData *data = reinterpret_cast<QSpanData *>(userData);
+ Operator op = getOperator(data, spans, count);
+ if (!op.funcSolid64) {
+ qDebug() << Q_FUNC_INFO << "unsupported 64bit blend attempted";
+ return blend_color_generic(count, spans, userData);
+ }
+
+ QRgba64 buffer[buffer_size];
+ const QRgba64 color = data->solid.color;
+
+ while (count--) {
+ int x = spans->x;
+ int length = spans->len;
+ while (length) {
+ int l = qMin(buffer_size, length);
+ QRgba64 *dest = op.destFetch64 ? op.destFetch64(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ op.funcSolid64(dest, l, color, spans->coverage);
+ if (op.destStore64)
+ op.destStore64(data->rasterBuffer, x, spans->y, dest, l);
+ length -= l;
+ x += l;
+ }
++spans;
}
}
@@ -4439,13 +4816,12 @@ static void blend_color_rgb16(int count, const QSpan *spans, void *userData)
from qt_gradient_quint16 with minimal overhead.
*/
QPainter::CompositionMode mode = data->rasterBuffer->compositionMode;
- if (mode == QPainter::CompositionMode_SourceOver &&
- qAlpha(data->solid.color) == 255)
+ if (mode == QPainter::CompositionMode_SourceOver && data->solid.color.isOpaque())
mode = QPainter::CompositionMode_Source;
if (mode == QPainter::CompositionMode_Source) {
// inline for performance
- ushort c = qConvertRgb32To16(data->solid.color);
+ ushort c = data->solid.color.toRgb16();
while (count--) {
ushort *target = ((ushort *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
if (spans->coverage == 255) {
@@ -4466,7 +4842,7 @@ static void blend_color_rgb16(int count, const QSpan *spans, void *userData)
if (mode == QPainter::CompositionMode_SourceOver) {
while (count--) {
- uint color = BYTE_MUL(data->solid.color, spans->coverage);
+ uint color = BYTE_MUL(data->solid.color.toArgb32(), spans->coverage);
int ialpha = qAlpha(~color);
ushort c = qConvertRgb32To16(color);
ushort *target = ((ushort *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
@@ -4530,7 +4906,7 @@ void handleSpans(int count, const QSpan *spans, const QSpanData *data, T &handle
int process_length = l;
int process_x = x;
- const uint *src = handler.fetch(process_x, y, process_length);
+ const typename T::BlendType *src = handler.fetch(process_x, y, process_length);
int offset = 0;
while (l > 0) {
if (x == spans->x) // new span?
@@ -4555,8 +4931,10 @@ void handleSpans(int count, const QSpan *spans, const QSpanData *data, T &handle
}
}
+template<typename T>
struct QBlendBase
{
+ typedef T BlendType;
QBlendBase(QSpanData *d, Operator o)
: data(d)
, op(o)
@@ -4567,24 +4945,24 @@ struct QBlendBase
QSpanData *data;
Operator op;
- uint *dest;
+ BlendType *dest;
- uint buffer[buffer_size];
- uint src_buffer[buffer_size];
+ BlendType buffer[buffer_size];
+ BlendType src_buffer[buffer_size];
};
-class BlendSrcGeneric : public QBlendBase
+class BlendSrcGeneric : public QBlendBase<uint>
{
public:
BlendSrcGeneric(QSpanData *d, Operator o)
- : QBlendBase(d, o)
+ : QBlendBase<uint>(d, o)
{
}
const uint *fetch(int x, int y, int len)
{
- dest = op.dest_fetch ? op.dest_fetch(buffer, data->rasterBuffer, x, y, len) : buffer;
- return op.src_fetch(src_buffer, &op, data, y, x, len);
+ dest = op.destFetch ? op.destFetch(buffer, data->rasterBuffer, x, y, len) : buffer;
+ return op.srcFetch(src_buffer, &op, data, y, x, len);
}
void process(int, int, int len, int coverage, const uint *src, int offset)
@@ -4594,8 +4972,38 @@ public:
void store(int x, int y, int len)
{
- if (op.dest_store)
- op.dest_store(data->rasterBuffer, x, y, dest, len);
+ if (op.destStore)
+ op.destStore(data->rasterBuffer, x, y, dest, len);
+ }
+};
+
+class BlendSrcGenericRGB64 : public QBlendBase<QRgba64>
+{
+public:
+ BlendSrcGenericRGB64(QSpanData *d, Operator o)
+ : QBlendBase<QRgba64>(d, o)
+ {
+ }
+
+ bool isSupported() const
+ {
+ return op.srcFetch64 && op.func64;
+ }
+
+ const QRgba64 *fetch(int x, int y, int len)
+ {
+ dest = op.destFetch64(buffer, data->rasterBuffer, x, y, len);
+ return op.srcFetch64(src_buffer, &op, data, y, x, len);
+ }
+
+ void process(int, int, int len, int coverage, const QRgba64 *src, int offset)
+ {
+ op.func64(dest + offset, src + offset, len, coverage);
+ }
+
+ void store(int x, int y, int len)
+ {
+ op.destStore64(data->rasterBuffer, x, y, dest, len);
}
};
@@ -4606,6 +5014,20 @@ static void blend_src_generic(int count, const QSpan *spans, void *userData)
handleSpans(count, spans, data, blend);
}
+static void blend_src_generic_rgb64(int count, const QSpan *spans, void *userData)
+{
+ QSpanData *data = reinterpret_cast<QSpanData *>(userData);
+ Operator op = getOperator(data, spans, count);
+ BlendSrcGenericRGB64 blend64(data, op);
+ if (blend64.isSupported())
+ handleSpans(count, spans, data, blend64);
+ else {
+ qDebug("blend_src_generic_rgb64: unsupported 64-bit blend attempted");
+ BlendSrcGeneric blend32(data, op);
+ handleSpans(count, spans, data, blend32);
+ }
+}
+
static void blend_untransformed_generic(int count, const QSpan *spans, void *userData)
{
QSpanData *data = reinterpret_cast<QSpanData *>(userData);
@@ -4636,11 +5058,60 @@ static void blend_untransformed_generic(int count, const QSpan *spans, void *use
const int coverage = (spans->coverage * data->texture.const_alpha) >> 8;
while (length) {
int l = qMin(buffer_size, length);
- const uint *src = op.src_fetch(src_buffer, &op, data, sy, sx, l);
- uint *dest = op.dest_fetch ? op.dest_fetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ const uint *src = op.srcFetch(src_buffer, &op, data, sy, sx, l);
+ uint *dest = op.destFetch ? op.destFetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
op.func(dest, src, l, coverage);
- if (op.dest_store)
- op.dest_store(data->rasterBuffer, x, spans->y, dest, l);
+ if (op.destStore)
+ op.destStore(data->rasterBuffer, x, spans->y, dest, l);
+ x += l;
+ sx += l;
+ length -= l;
+ }
+ }
+ }
+ ++spans;
+ }
+}
+
+static void blend_untransformed_generic_rgb64(int count, const QSpan *spans, void *userData)
+{
+ QSpanData *data = reinterpret_cast<QSpanData *>(userData);
+
+ Operator op = getOperator(data, spans, count);
+ if (!op.srcFetch64 || !op.func64) {
+ qWarning() << Q_FUNC_INFO << "Unsupported blend";
+ return blend_untransformed_generic(count, spans, userData);
+ }
+ QRgba64 buffer[buffer_size];
+ QRgba64 src_buffer[buffer_size];
+
+ const int image_width = data->texture.width;
+ const int image_height = data->texture.height;
+ int xoff = -qRound(-data->dx);
+ int yoff = -qRound(-data->dy);
+
+ while (count--) {
+ int x = spans->x;
+ int length = spans->len;
+ int sx = xoff + x;
+ int sy = yoff + spans->y;
+ if (sy >= 0 && sy < image_height && sx < image_width) {
+ if (sx < 0) {
+ x -= sx;
+ length += sx;
+ sx = 0;
+ }
+ if (sx + length > image_width)
+ length = image_width - sx;
+ if (length > 0) {
+ const int coverage = (spans->coverage * data->texture.const_alpha) >> 8;
+ while (length) {
+ int l = qMin(buffer_size, length);
+ const QRgba64 *src = op.srcFetch64(src_buffer, &op, data, sy, sx, l);
+ QRgba64 *dest = op.destFetch64 ? op.destFetch64(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ op.func64(dest, src, l, coverage);
+ if (op.destStore64)
+ op.destStore64(data->rasterBuffer, x, spans->y, dest, l);
x += l;
sx += l;
length -= l;
@@ -4829,11 +5300,63 @@ static void blend_tiled_generic(int count, const QSpan *spans, void *userData)
int l = qMin(image_width - sx, length);
if (buffer_size < l)
l = buffer_size;
- const uint *src = op.src_fetch(src_buffer, &op, data, sy, sx, l);
- uint *dest = op.dest_fetch ? op.dest_fetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ const uint *src = op.srcFetch(src_buffer, &op, data, sy, sx, l);
+ uint *dest = op.destFetch ? op.destFetch(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
op.func(dest, src, l, coverage);
- if (op.dest_store)
- op.dest_store(data->rasterBuffer, x, spans->y, dest, l);
+ if (op.destStore)
+ op.destStore(data->rasterBuffer, x, spans->y, dest, l);
+ x += l;
+ sx += l;
+ length -= l;
+ if (sx >= image_width)
+ sx = 0;
+ }
+ ++spans;
+ }
+}
+
+static void blend_tiled_generic_rgb64(int count, const QSpan *spans, void *userData)
+{
+ QSpanData *data = reinterpret_cast<QSpanData *>(userData);
+
+ Operator op = getOperator(data, spans, count);
+ if (!op.srcFetch64 || !op.func64) {
+ qDebug("unsupported rgb64 blend");
+ return blend_tiled_generic(count, spans, userData);
+ }
+ QRgba64 buffer[buffer_size];
+ QRgba64 src_buffer[buffer_size];
+
+ const int image_width = data->texture.width;
+ const int image_height = data->texture.height;
+ int xoff = -qRound(-data->dx) % image_width;
+ int yoff = -qRound(-data->dy) % image_height;
+
+ if (xoff < 0)
+ xoff += image_width;
+ if (yoff < 0)
+ yoff += image_height;
+
+ while (count--) {
+ int x = spans->x;
+ int length = spans->len;
+ int sx = (xoff + spans->x) % image_width;
+ int sy = (spans->y + yoff) % image_height;
+ if (sx < 0)
+ sx += image_width;
+ if (sy < 0)
+ sy += image_height;
+
+ const int coverage = (spans->coverage * data->texture.const_alpha) >> 8;
+ while (length) {
+ int l = qMin(image_width - sx, length);
+ if (buffer_size < l)
+ l = buffer_size;
+ const QRgba64 *src = op.srcFetch64(src_buffer, &op, data, sy, sx, l);
+ QRgba64 *dest = op.destFetch64 ? op.destFetch64(buffer, data->rasterBuffer, x, spans->y, l) : buffer;
+ op.func64(dest, src, l, coverage);
+ if (op.destStore64)
+ op.destStore64(data->rasterBuffer, x, spans->y, dest, l);
x += l;
sx += l;
length -= l;
@@ -5714,10 +6237,10 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_untransformed_generic,
blend_untransformed_generic,
blend_untransformed_generic,
- blend_untransformed_generic,
- blend_untransformed_generic,
- blend_untransformed_generic,
- blend_untransformed_generic,
+ blend_untransformed_generic_rgb64,
+ blend_untransformed_generic_rgb64,
+ blend_untransformed_generic_rgb64,
+ blend_untransformed_generic_rgb64,
blend_untransformed_generic,
blend_untransformed_generic,
},
@@ -5742,10 +6265,10 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_tiled_generic,
blend_tiled_generic,
blend_tiled_generic,
- blend_tiled_generic,
- blend_tiled_generic,
- blend_tiled_generic,
- blend_tiled_generic,
+ blend_tiled_generic_rgb64,
+ blend_tiled_generic_rgb64,
+ blend_tiled_generic_rgb64,
+ blend_tiled_generic_rgb64,
blend_tiled_generic,
blend_tiled_generic,
},
@@ -5770,10 +6293,10 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
blend_src_generic,
blend_src_generic,
},
@@ -5797,12 +6320,12 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
blend_src_generic,
blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic
},
// Bilinear
{
@@ -5825,10 +6348,10 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic,
- blend_src_generic,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
+ blend_src_generic_rgb64,
blend_src_generic,
blend_src_generic,
},
@@ -5853,10 +6376,10 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic, // RGBX8888
blend_src_generic, // RGBA8888
blend_src_generic, // RGBA8888_Premultiplied
- blend_src_generic, // BGR30
- blend_src_generic, // A2BGR30_Premultiplied
- blend_src_generic, // RGB30
- blend_src_generic, // A2RGB30_Premultiplied
+ blend_src_generic_rgb64, // BGR30
+ blend_src_generic_rgb64, // A2BGR30_Premultiplied
+ blend_src_generic_rgb64, // RGB30
+ blend_src_generic_rgb64, // A2RGB30_Premultiplied
blend_src_generic, // Alpha8
blend_src_generic, // Grayscale8
}
@@ -6012,13 +6535,11 @@ static void qt_gradient_quint16(int count, const QSpan *spans, void *userData)
int yinc = int((linear.dy * data->m22 * gss) * FIXPT_SIZE);
int off = int((((linear.dy * (data->m22 * qreal(0.5) + data->dy) + linear.off) * gss) * FIXPT_SIZE));
- uint oldColor = data->solid.color;
+ QRgba64 oldColor = data->solid.color;
while (count--) {
int y = spans->y;
- quint32 color = qt_gradient_pixel_fixed(&data->gradient, yinc * y + off);
-
- data->solid.color = color;
+ data->solid.color = QRgba64::fromArgb32(qt_gradient_pixel_fixed(&data->gradient, yinc * y + off));
blend_color_rgb16(1, spans, userData);
++spans;
}
@@ -6030,39 +6551,39 @@ static void qt_gradient_quint16(int count, const QSpan *spans, void *userData)
}
inline static void qt_bitmapblit_argb32(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride)
{
- qt_bitmapblit_template<quint32>(rasterBuffer, x, y, color,
+ qt_bitmapblit_template<quint32>(rasterBuffer, x, y, color.toArgb32(),
map, mapWidth, mapHeight, mapStride);
}
inline static void qt_bitmapblit_rgba8888(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride)
{
- qt_bitmapblit_template<quint32>(rasterBuffer, x, y, ARGB2RGBA(color),
+ qt_bitmapblit_template<quint32>(rasterBuffer, x, y, ARGB2RGBA(color.toArgb32()),
map, mapWidth, mapHeight, mapStride);
}
inline static void qt_bitmapblit_quint16(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride)
{
- qt_bitmapblit_template<quint16>(rasterBuffer, x, y, qConvertRgb32To16(color),
+ qt_bitmapblit_template<quint16>(rasterBuffer, x, y, color.toRgb16(),
map, mapWidth, mapHeight, mapStride);
}
static void qt_alphamapblit_quint16(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride,
const QClipData *)
{
- const quint16 c = qConvertRgb32To16(color);
+ const quint16 c = color.toRgb16();
quint16 *dest = reinterpret_cast<quint16*>(rasterBuffer->scanLine(y)) + x;
const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint16);
@@ -6160,7 +6681,7 @@ static inline void grayBlendPixel(quint32 *dst, int coverage, int sr, int sg, in
}
#endif
-static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer,
+static void qt_alphamapblit_uint32(QRasterBuffer *rasterBuffer,
int x, int y, quint32 color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride,
@@ -6256,28 +6777,38 @@ static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer,
}
}
+
+static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer,
+ int x, int y, const QRgba64 &color,
+ const uchar *map,
+ int mapWidth, int mapHeight, int mapStride,
+ const QClipData *clip)
+{
+ qt_alphamapblit_uint32(rasterBuffer, x, y, color.toArgb32(), map, mapWidth, mapHeight, mapStride, clip);
+}
+
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
static void qt_alphamapblit_rgba8888(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *map,
int mapWidth, int mapHeight, int mapStride,
const QClipData *clip)
{
- qt_alphamapblit_argb32(rasterBuffer, x, y, ARGB2RGBA(color), map, mapWidth, mapHeight, mapStride, clip);
+ qt_alphamapblit_uint32(rasterBuffer, x, y, ARGB2RGBA(color.toArgb32()), map, mapWidth, mapHeight, mapStride, clip);
}
#endif
static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uint *src, int mapWidth, int mapHeight, int srcStride,
const QClipData *clip)
{
- const quint32 c = color;
+ const quint32 c = color.toArgb32();
- int sr = qRed(color);
- int sg = qGreen(color);
- int sb = qBlue(color);
- int sa = qAlpha(color);
+ int sr = qRed(c);
+ int sg = qGreen(c);
+ int sb = qBlue(c);
+ int sa = qAlpha(c);
const QDrawHelperGammaTables *tables = QGuiApplicationPrivate::instance()->gammaTables();
if (!tables)
@@ -6344,58 +6875,67 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer,
static void qt_rectfill_argb32(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint32>(reinterpret_cast<quint32 *>(rasterBuffer->buffer()),
- color, x, y, width, height, rasterBuffer->bytesPerLine());
+ color.toArgb32(), x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_quint16(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint16>(reinterpret_cast<quint16 *>(rasterBuffer->buffer()),
- qConvertRgb32To16(color), x, y, width, height, rasterBuffer->bytesPerLine());
+ color.toRgb16(), x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_nonpremul_argb32(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint32>(reinterpret_cast<quint32 *>(rasterBuffer->buffer()),
- qUnpremultiply(color), x, y, width, height, rasterBuffer->bytesPerLine());
+ color.unpremultiplied().toArgb32(), x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_rgba(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint32>(reinterpret_cast<quint32 *>(rasterBuffer->buffer()),
- ARGB2RGBA(color), x, y, width, height, rasterBuffer->bytesPerLine());
+ ARGB2RGBA(color.toArgb32()), x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_nonpremul_rgba(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
+{
+ qt_rectfill<quint32>(reinterpret_cast<quint32 *>(rasterBuffer->buffer()),
+ ARGB2RGBA(color.unpremultiplied().toArgb32()), x, y, width, height, rasterBuffer->bytesPerLine());
+}
+
+template<QtPixelOrder PixelOrder>
+static void qt_rectfill_rgb30(QRasterBuffer *rasterBuffer,
+ int x, int y, int width, int height,
+ const QRgba64 &color)
{
qt_rectfill<quint32>(reinterpret_cast<quint32 *>(rasterBuffer->buffer()),
- ARGB2RGBA(qUnpremultiply(color)), x, y, width, height, rasterBuffer->bytesPerLine());
+ qConvertRgb64ToRgb30<PixelOrder>(color), x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_alpha(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint8>(reinterpret_cast<quint8 *>(rasterBuffer->buffer()),
- qAlpha(color), x, y, width, height, rasterBuffer->bytesPerLine());
+ color.alpha() >> 8, x, y, width, height, rasterBuffer->bytesPerLine());
}
static void qt_rectfill_gray(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color)
+ const QRgba64 &color)
{
qt_rectfill<quint8>(reinterpret_cast<quint8 *>(rasterBuffer->buffer()),
- qGray(color), x, y, width, height, rasterBuffer->bytesPerLine());
+ qGray(color.toArgb32()), x, y, width, height, rasterBuffer->bytesPerLine());
}
// Map table for destination image format. Contains function pointers
@@ -6548,39 +7088,39 @@ DrawHelper qDrawHelper[QImage::NImageFormats] =
},
// Format_BGR30
{
- blend_color_generic,
- blend_src_generic,
+ blend_color_generic_rgb64,
+ blend_src_generic_rgb64,
0,
0,
0,
- 0
+ qt_rectfill_rgb30<PixelOrderBGR>
},
// Format_A2BGR30_Premultiplied
{
- blend_color_generic,
- blend_src_generic,
+ blend_color_generic_rgb64,
+ blend_src_generic_rgb64,
0,
0,
0,
- 0
+ qt_rectfill_rgb30<PixelOrderBGR>
},
// Format_RGB30
{
- blend_color_generic,
- blend_src_generic,
+ blend_color_generic_rgb64,
+ blend_src_generic_rgb64,
0,
0,
0,
- 0
+ qt_rectfill_rgb30<PixelOrderRGB>
},
// Format_A2RGB30_Premultiplied
{
- blend_color_generic,
- blend_src_generic,
+ blend_color_generic_rgb64,
+ blend_src_generic_rgb64,
0,
0,
0,
- 0
+ qt_rectfill_rgb30<PixelOrderRGB>
},
// Format_Alpha8
{
@@ -6649,6 +7189,11 @@ inline void qt_memfill_template(quint16 *dest, quint16 value, int count)
}
#endif
+void qt_memfill64(quint64 *dest, quint64 color, int count)
+{
+ qt_memfill_template<quint64>(dest, color, count);
+}
+
#if !defined(__SSE2__)
void qt_memfill16(quint16 *dest, quint16 color, int count)
{
diff --git a/src/gui/painting/qdrawhelper_neon.cpp b/src/gui/painting/qdrawhelper_neon.cpp
index 7e12e62151..36e2488a94 100644
--- a/src/gui/painting/qdrawhelper_neon.cpp
+++ b/src/gui/painting/qdrawhelper_neon.cpp
@@ -466,7 +466,7 @@ void qt_blend_rgb32_on_rgb32_neon(uchar *destPixels, int dbpl,
}
void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *bitmap,
int mapWidth, int mapHeight, int mapStride,
const QClipData *)
@@ -475,8 +475,9 @@ void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint16);
uchar *mask = const_cast<uchar *>(bitmap);
+ const uint c = color.toArgb32();
- pixman_composite_over_n_8_0565_asm_neon(mapWidth, mapHeight, dest, destStride, color, 0, mask, mapStride);
+ pixman_composite_over_n_8_0565_asm_neon(mapWidth, mapHeight, dest, destStride, c, 0, mask, mapStride);
}
extern "C" void blend_8_pixels_rgb16_on_rgb16_neon(quint16 *dst, const quint16 *src, int const_alpha);
diff --git a/src/gui/painting/qdrawhelper_neon_p.h b/src/gui/painting/qdrawhelper_neon_p.h
index bd030a8bf3..37e060f147 100644
--- a/src/gui/painting/qdrawhelper_neon_p.h
+++ b/src/gui/painting/qdrawhelper_neon_p.h
@@ -82,7 +82,7 @@ void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
int const_alpha);
void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *bitmap,
int mapWidth, int mapHeight, int mapStride,
const QClipData *clip);
diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h
index 480ba4c97b..501f1ce033 100644
--- a/src/gui/painting/qdrawhelper_p.h
+++ b/src/gui/painting/qdrawhelper_p.h
@@ -50,6 +50,7 @@
#include "QtGui/qcolor.h"
#include "QtGui/qpainter.h"
#include "QtGui/qimage.h"
+#include "QtGui/qrgba64.h"
#ifndef QT_FT_BEGIN_HEADER
#define QT_FT_BEGIN_HEADER
#define QT_FT_END_HEADER
@@ -99,25 +100,25 @@ class QRasterPaintEngineState;
typedef QT_FT_SpanFunc ProcessSpans;
typedef void (*BitmapBlitFunc)(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *bitmap,
int mapWidth, int mapHeight, int mapStride);
typedef void (*AlphamapBlitFunc)(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uchar *bitmap,
int mapWidth, int mapHeight, int mapStride,
const QClipData *clip);
typedef void (*AlphaRGBBlitFunc)(QRasterBuffer *rasterBuffer,
- int x, int y, quint32 color,
+ int x, int y, const QRgba64 &color,
const uint *rgbmask,
int mapWidth, int mapHeight, int mapStride,
const QClipData *clip);
typedef void (*RectFillFunc)(QRasterBuffer *rasterBuffer,
int x, int y, int width, int height,
- quint32 color);
+ const QRgba64 &color);
typedef void (*SrcOverBlendFunc)(uchar *destPixels, int dbpl,
const uchar *src, int spbl,
@@ -158,11 +159,14 @@ extern MemRotateFunc qMemRotateFunctions[QImage::NImageFormats][3];
extern DrawHelper qDrawHelper[QImage::NImageFormats];
void qBlendTexture(int count, const QSpan *spans, void *userData);
+extern void qt_memfill64(quint64 *dest, quint64 value, int count);
extern void qt_memfill32(quint32 *dest, quint32 value, int count);
extern void qt_memfill16(quint16 *dest, quint16 value, int count);
typedef void (QT_FASTCALL *CompositionFunction)(uint *Q_DECL_RESTRICT dest, const uint *Q_DECL_RESTRICT src, int length, uint const_alpha);
+typedef void (QT_FASTCALL *CompositionFunction64)(QRgba64 *Q_DECL_RESTRICT dest, const QRgba64 *Q_DECL_RESTRICT src, int length, uint const_alpha);
typedef void (QT_FASTCALL *CompositionFunctionSolid)(uint *dest, int length, uint color, uint const_alpha);
+typedef void (QT_FASTCALL *CompositionFunctionSolid64)(QRgba64 *dest, int length, QRgba64 color, uint const_alpha);
struct LinearGradientValues
{
@@ -185,17 +189,27 @@ struct RadialGradientValues
struct Operator;
typedef uint* (QT_FASTCALL *DestFetchProc)(uint *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length);
+typedef QRgba64* (QT_FASTCALL *DestFetchProc64)(QRgba64 *buffer, QRasterBuffer *rasterBuffer, int x, int y, int length);
typedef void (QT_FASTCALL *DestStoreProc)(QRasterBuffer *rasterBuffer, int x, int y, const uint *buffer, int length);
+typedef void (QT_FASTCALL *DestStoreProc64)(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length);
typedef const uint* (QT_FASTCALL *SourceFetchProc)(uint *buffer, const Operator *o, const QSpanData *data, int y, int x, int length);
+typedef const QRgba64* (QT_FASTCALL *SourceFetchProc64)(QRgba64 *buffer, const Operator *o, const QSpanData *data, int y, int x, int length);
struct Operator
{
QPainter::CompositionMode mode;
- DestFetchProc dest_fetch;
- DestStoreProc dest_store;
- SourceFetchProc src_fetch;
+ DestFetchProc destFetch;
+ DestStoreProc destStore;
+ SourceFetchProc srcFetch;
CompositionFunctionSolid funcSolid;
CompositionFunction func;
+
+ DestFetchProc64 destFetch64;
+ DestStoreProc64 destStore64;
+ SourceFetchProc64 srcFetch64;
+ CompositionFunctionSolid64 funcSolid64;
+ CompositionFunction64 func64;
+
union {
LinearGradientValues linear;
RadialGradientValues radial;
@@ -208,7 +222,7 @@ class QRasterPaintEngine;
struct QSolidData
{
- uint color;
+ QRgba64 color;
};
struct QLinearGradientData
@@ -259,7 +273,7 @@ struct QGradientData
#define GRADIENT_STOPTABLE_SIZE 1024
#define GRADIENT_STOPTABLE_SIZE_SHIFT 10
- uint* colorTable; //[GRADIENT_STOPTABLE_SIZE];
+ QRgba64* colorTable; //[GRADIENT_STOPTABLE_SIZE];
uint alphaColor : 1;
};
@@ -367,6 +381,12 @@ static inline uint qt_gradient_clamp(const QGradientData *data, int ipos)
static inline uint qt_gradient_pixel(const QGradientData *data, qreal pos)
{
int ipos = int(pos * (GRADIENT_STOPTABLE_SIZE - 1) + qreal(0.5));
+ return data->colorTable[qt_gradient_clamp(data, ipos)].toArgb32();
+}
+
+static inline const QRgba64& qt_gradient_pixel64(const QGradientData *data, qreal pos)
+{
+ int ipos = int(pos * (GRADIENT_STOPTABLE_SIZE - 1) + qreal(0.5));
return data->colorTable[qt_gradient_clamp(data, ipos)];
}
@@ -526,7 +546,7 @@ public:
delta_det4_vec.v = Simd::v_add(delta_det4_vec.v, v_delta_delta_det16); \
b_vec.v = Simd::v_add(b_vec.v, v_delta_b4); \
for (int i = 0; i < 4; ++i) \
- *buffer++ = (extended_mask | v_buffer_mask.i[i]) & data->gradient.colorTable[index_vec.i[i]]; \
+ *buffer++ = (extended_mask | v_buffer_mask.i[i]) & data->gradient.colorTable[index_vec.i[i]].toArgb32(); \
}
#define FETCH_RADIAL_LOOP(FETCH_RADIAL_LOOP_CLAMP) \
@@ -644,7 +664,8 @@ static Q_ALWAYS_INLINE uint BYTE_MUL_RGB16_32(uint x, uint a) {
return t;
}
-static Q_ALWAYS_INLINE int qt_div_255(int x) { return (x + (x>>8) + 0x80) >> 8; }
+static Q_DECL_CONSTEXPR Q_ALWAYS_INLINE int qt_div_255(int x) { return (x + (x>>8) + 0x80) >> 8; }
+static Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_div_65535(uint x) { return (x + (x>>16) + 0x8000U) >> 16; }
static Q_ALWAYS_INLINE uint BYTE_MUL_RGB30(uint x, uint a) {
uint xa = x >> 30;
@@ -687,6 +708,11 @@ inline quint24::operator uint() const
template <class T> Q_STATIC_TEMPLATE_FUNCTION
void qt_memfill(T *dest, T value, int count);
+template<> inline void qt_memfill(quint64 *dest, quint64 color, int count)
+{
+ qt_memfill64(dest, color, count);
+}
+
template<> inline void qt_memfill(quint32 *dest, quint32 color, int count)
{
qt_memfill32(dest, color, count);
@@ -871,6 +897,64 @@ inline QRgb qConvertA2rgb30ToArgb32<PixelOrderRGB>(uint c)
| ((c >> 2) & 0x000000ff);
}
+template<enum QtPixelOrder> inline QRgba64 qConvertA2rgb30ToRgb64(uint rgb);
+
+template<>
+inline QRgba64 qConvertA2rgb30ToRgb64<PixelOrderBGR>(uint rgb)
+{
+ quint16 alpha = rgb >> 30;
+ quint16 blue = (rgb >> 20) & 0x3ff;
+ quint16 green = (rgb >> 10) & 0x3ff;
+ quint16 red = rgb & 0x3ff;
+ // Expand the range.
+ alpha |= (alpha << 2);
+ alpha |= (alpha << 4);
+ alpha |= (alpha << 8);
+ red = (red << 6) | (red >> 4);
+ green = (green << 6) | (green >> 4);
+ blue = (blue << 6) | (blue >> 4);
+ return qRgba64(red, green, blue, alpha);
+}
+
+template<>
+inline QRgba64 qConvertA2rgb30ToRgb64<PixelOrderRGB>(uint rgb)
+{
+ quint16 alpha = rgb >> 30;
+ quint16 red = (rgb >> 20) & 0x3ff;
+ quint16 green = (rgb >> 10) & 0x3ff;
+ quint16 blue = rgb & 0x3ff;
+ // Expand the range.
+ alpha |= (alpha << 2);
+ alpha |= (alpha << 4);
+ alpha |= (alpha << 8);
+ red = (red << 6) | (red >> 4);
+ green = (green << 6) | (green >> 4);
+ blue = (blue << 6) | (blue >> 4);
+ return qRgba64(red, green, blue, alpha);
+}
+
+template<enum QtPixelOrder> inline unsigned int qConvertRgb64ToRgb30(QRgba64);
+
+template<>
+inline unsigned int qConvertRgb64ToRgb30<PixelOrderBGR>(QRgba64 c)
+{
+ const uint a = c.alpha() >> 14;
+ const uint r = c.red() >> 6;
+ const uint g = c.green() >> 6;
+ const uint b = c.blue() >> 6;
+ return (a << 30) | (b << 20) | (g << 10) | r;
+}
+
+template<>
+inline unsigned int qConvertRgb64ToRgb30<PixelOrderRGB>(QRgba64 c)
+{
+ const uint a = c.alpha() >> 14;
+ const uint r = c.red() >> 6;
+ const uint g = c.green() >> 6;
+ const uint b = c.blue() >> 6;
+ return (a << 30) | (r << 20) | (g << 10) | b;
+}
+
inline uint qRgbSwapRgb30(uint c)
{
const uint ag = c & 0xc00ffc00;
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index 84eb3b7909..b8957fe2fb 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -417,7 +417,7 @@ void qt_memfill16(quint16 *dest, quint16 value, int count)
dest[count - 1] = value;
}
-void qt_bitmapblit32_sse2(QRasterBuffer *rasterBuffer, int x, int y,
+void qt_bitmapblit32_sse2_base(QRasterBuffer *rasterBuffer, int x, int y,
quint32 color,
const uchar *src, int width, int height, int stride)
{
@@ -468,18 +468,25 @@ void qt_bitmapblit32_sse2(QRasterBuffer *rasterBuffer, int x, int y,
}
}
+void qt_bitmapblit32_sse2(QRasterBuffer *rasterBuffer, int x, int y,
+ const QRgba64 &color,
+ const uchar *src, int width, int height, int stride)
+{
+ qt_bitmapblit32_sse2_base(rasterBuffer, x, y, color.toArgb32(), src, width, height, stride);
+}
+
void qt_bitmapblit8888_sse2(QRasterBuffer *rasterBuffer, int x, int y,
- quint32 color,
+ const QRgba64 &color,
const uchar *src, int width, int height, int stride)
{
- qt_bitmapblit32_sse2(rasterBuffer, x, y, ARGB2RGBA(color), src, width, height, stride);
+ qt_bitmapblit32_sse2_base(rasterBuffer, x, y, ARGB2RGBA(color.toArgb32()), src, width, height, stride);
}
void qt_bitmapblit16_sse2(QRasterBuffer *rasterBuffer, int x, int y,
- quint32 color,
+ const QRgba64 &color,
const uchar *src, int width, int height, int stride)
{
- const quint16 c = qConvertRgb32To16(color);
+ const quint16 c = qConvertRgb32To16(color.toArgb32());
quint16 *dest = reinterpret_cast<quint16*>(rasterBuffer->scanLine(y)) + x;
const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint16);
diff --git a/src/gui/painting/qdrawhelper_x86_p.h b/src/gui/painting/qdrawhelper_x86_p.h
index 4d203c4f9d..50ee83aa2c 100644
--- a/src/gui/painting/qdrawhelper_x86_p.h
+++ b/src/gui/painting/qdrawhelper_x86_p.h
@@ -53,13 +53,13 @@ QT_BEGIN_NAMESPACE
void qt_memfill32(quint32 *dest, quint32 value, int count);
void qt_memfill16(quint16 *dest, quint16 value, int count);
void qt_bitmapblit32_sse2(QRasterBuffer *rasterBuffer, int x, int y,
- quint32 color,
+ const QRgba64 &color,
const uchar *src, int width, int height, int stride);
void qt_bitmapblit8888_sse2(QRasterBuffer *rasterBuffer, int x, int y,
- quint32 color,
+ const QRgba64 &color,
const uchar *src, int width, int height, int stride);
void qt_bitmapblit16_sse2(QRasterBuffer *rasterBuffer, int x, int y,
- quint32 color,
+ const QRgba64 &color,
const uchar *src, int width, int height, int stride);
void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
const uchar *srcPixels, int sbpl,
diff --git a/src/gui/painting/qmatrix.cpp b/src/gui/painting/qmatrix.cpp
index 679b5000cb..acedc6a7ba 100644
--- a/src/gui/painting/qmatrix.cpp
+++ b/src/gui/painting/qmatrix.cpp
@@ -1130,6 +1130,7 @@ QDataStream &operator>>(QDataStream &s, QMatrix &m)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QMatrix &m)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QMatrix("
<< "11=" << m.m11()
<< " 12=" << m.m12()
@@ -1138,7 +1139,7 @@ QDebug operator<<(QDebug dbg, const QMatrix &m)
<< " dx=" << m.dx()
<< " dy=" << m.dy()
<< ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qpagelayout.cpp b/src/gui/painting/qpagelayout.cpp
index c1b23960ad..f443bbd5ac 100644
--- a/src/gui/painting/qpagelayout.cpp
+++ b/src/gui/painting/qpagelayout.cpp
@@ -942,6 +942,7 @@ QRect QPageLayout::paintRectPixels(int resolution) const
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QPageLayout &layout)
{
+ QDebugStateSaver saver(dbg);
if (layout.isValid()) {
QString output = QStringLiteral("QPageLayout(%1, %2, l:%3 r:%4 t:%5 b:%6 %7)");
QString units;
@@ -976,7 +977,7 @@ QDebug operator<<(QDebug dbg, const QPageLayout &layout)
} else {
dbg.nospace() << "QPageLayout()";
}
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qpagesize.cpp b/src/gui/painting/qpagesize.cpp
index fe445c0aec..c0aae603b7 100644
--- a/src/gui/painting/qpagesize.cpp
+++ b/src/gui/painting/qpagesize.cpp
@@ -1854,6 +1854,7 @@ QSize QPageSize::sizePixels(PageSizeId pageSizeId, int resolution)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QPageSize &pageSize)
{
+ QDebugStateSaver saver(dbg);
if (pageSize.isValid()) {
QString output = QStringLiteral("QPageSize(\"%1\", \"%2\", %3x%4pt, %5)");
output = output.arg(pageSize.name())
@@ -1865,7 +1866,7 @@ QDebug operator<<(QDebug dbg, const QPageSize &pageSize)
} else {
dbg.nospace() << "QPageSize()";
}
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 18522cb6d0..3be6e0f1f4 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -57,6 +57,7 @@
#include <private/qstatictext_p.h>
#include <private/qcosmeticstroker_p.h>
#include "qmemrotate_p.h"
+#include "qrgba64_p.h"
#include "qpaintengine_raster_p.h"
// #include "qbezier_p.h"
@@ -830,7 +831,7 @@ void QRasterPaintEngine::updateRasterState()
&& s->intOpacity == 256
&& (mode == QPainter::CompositionMode_Source
|| (mode == QPainter::CompositionMode_SourceOver
- && qAlpha(s->penData.solid.color) == 255));
+ && s->penData.solid.color.isOpaque()));
}
s->dirty = 0;
@@ -1412,10 +1413,9 @@ static void fillRect_normalized(const QRect &r, QSpanData *data,
if (data->fillRect && (mode == QPainter::CompositionMode_Source
|| (mode == QPainter::CompositionMode_SourceOver
- && qAlpha(data->solid.color) == 255)))
+ && data->solid.color.isOpaque())))
{
- data->fillRect(data->rasterBuffer, x1, y1, width, height,
- data->solid.color);
+ data->fillRect(data->rasterBuffer, x1, y1, width, height, data->solid.color);
return;
}
}
@@ -1773,8 +1773,9 @@ void QRasterPaintEngine::fillRect(const QRectF &r, const QColor &color)
Q_D(QRasterPaintEngine);
QRasterPaintEngineState *s = state();
- d->solid_color_filler.solid.color = qPremultiply(ARGB_COMBINE_ALPHA(color.rgba(), s->intOpacity));
- if ((d->solid_color_filler.solid.color & 0xff000000) == 0
+ d->solid_color_filler.solid.color = qPremultiply(combineAlpha256(color.rgba64(), s->intOpacity));
+
+ if (d->solid_color_filler.solid.color.isTransparent()
&& s->composition_mode == QPainter::CompositionMode_SourceOver) {
return;
}
@@ -2219,19 +2220,15 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe
case QImage::Format_A2BGR30_Premultiplied:
case QImage::Format_A2RGB30_Premultiplied:
// Combine premultiplied color with the opacity set on the painter.
- d->solid_color_filler.solid.color =
- ((((color & 0x00ff00ff) * s->intOpacity) >> 8) & 0x00ff00ff)
- | ((((color & 0xff00ff00) >> 8) * s->intOpacity) & 0xff00ff00);
+ d->solid_color_filler.solid.color = multiplyAlpha256(QRgba64::fromArgb32(color), s->intOpacity);
break;
default:
- d->solid_color_filler.solid.color = qPremultiply(ARGB_COMBINE_ALPHA(color, s->intOpacity));
+ d->solid_color_filler.solid.color = qPremultiply(combineAlpha256(QRgba64::fromArgb32(color), s->intOpacity));
break;
}
- if ((d->solid_color_filler.solid.color & 0xff000000) == 0
- && s->composition_mode == QPainter::CompositionMode_SourceOver) {
+ if (d->solid_color_filler.solid.color.isTransparent() && s->composition_mode == QPainter::CompositionMode_SourceOver)
return;
- }
d->solid_color_filler.clip = d->clip();
d->solid_color_filler.adjustSpanMethods();
@@ -4137,7 +4134,7 @@ class QGradientCache
{
inline CacheInfo(QGradientStops s, int op, QGradient::InterpolationMode mode) :
stops(s), opacity(op), interpolationMode(mode) {}
- uint buffer[GRADIENT_STOPTABLE_SIZE];
+ QRgba64 buffer[GRADIENT_STOPTABLE_SIZE];
QGradientStops stops;
int opacity;
QGradient::InterpolationMode interpolationMode;
@@ -4146,12 +4143,12 @@ class QGradientCache
typedef QMultiHash<quint64, CacheInfo> QGradientColorTableHash;
public:
- inline const uint *getBuffer(const QGradient &gradient, int opacity) {
+ inline const QRgba64 *getBuffer(const QGradient &gradient, int opacity) {
quint64 hash_val = 0;
QGradientStops stops = gradient.stops();
for (int i = 0; i < stops.size() && i <= 2; i++)
- hash_val += stops[i].second.rgba();
+ hash_val += stops[i].second.rgba64();
QMutexLocker lock(&mutex);
QGradientColorTableHash::const_iterator it = cache.constFind(hash_val);
@@ -4174,9 +4171,9 @@ public:
protected:
inline int maxCacheSize() const { return 60; }
inline void generateGradientColorTable(const QGradient& g,
- uint *colorTable,
+ QRgba64 *colorTable,
int size, int opacity) const;
- uint *addCacheElement(quint64 hash_val, const QGradient &gradient, int opacity) {
+ QRgba64 *addCacheElement(quint64 hash_val, const QGradient &gradient, int opacity) {
if (cache.size() == maxCacheSize()) {
// may remove more than 1, but OK
cache.erase(cache.begin() + (qrand() % maxCacheSize()));
@@ -4190,7 +4187,7 @@ protected:
QMutex mutex;
};
-void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint *colorTable, int size, int opacity) const
+void QGradientCache::generateGradientColorTable(const QGradient& gradient, QRgba64 *colorTable, int size, int opacity) const
{
QGradientStops stops = gradient.stops();
int stopCount = stops.count();
@@ -4199,14 +4196,16 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
bool colorInterpolation = (gradient.interpolationMode() == QGradient::ColorInterpolation);
if (stopCount == 2) {
- uint first_color = ARGB_COMBINE_ALPHA(stops[0].second.rgba(), opacity);
- uint second_color = ARGB_COMBINE_ALPHA(stops[1].second.rgba(), opacity);
+ QRgba64 first_color = combineAlpha256(stops[0].second.rgba64(), opacity);
+ QRgba64 second_color = combineAlpha256(stops[1].second.rgba64(), opacity);
qreal first_stop = stops[0].first;
qreal second_stop = stops[1].first;
if (second_stop < first_stop) {
- qSwap(first_color, second_color);
+ quint64 tmp = first_color;
+ first_color = second_color;
+ second_color = tmp;
qSwap(first_stop, second_stop);
}
@@ -4218,15 +4217,15 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
int first_index = qRound(first_stop * (GRADIENT_STOPTABLE_SIZE-1));
int second_index = qRound(second_stop * (GRADIENT_STOPTABLE_SIZE-1));
- uint red_first = qRed(first_color) << 16;
- uint green_first = qGreen(first_color) << 16;
- uint blue_first = qBlue(first_color) << 16;
- uint alpha_first = qAlpha(first_color) << 16;
+ uint red_first = uint(first_color.red()) << 16;
+ uint green_first = uint(first_color.green()) << 16;
+ uint blue_first = uint(first_color.blue()) << 16;
+ uint alpha_first = uint(first_color.alpha()) << 16;
- uint red_second = qRed(second_color) << 16;
- uint green_second = qGreen(second_color) << 16;
- uint blue_second = qBlue(second_color) << 16;
- uint alpha_second = qAlpha(second_color) << 16;
+ uint red_second = uint(second_color.red()) << 16;
+ uint green_second = uint(second_color.green()) << 16;
+ uint blue_second = uint(second_color.blue()) << 16;
+ uint alpha_second = uint(second_color.alpha()) << 16;
int i = 0;
for (; i <= qMin(GRADIENT_STOPTABLE_SIZE, first_index); ++i) {
@@ -4239,10 +4238,10 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
if (i < second_index) {
qreal reciprocal = qreal(1) / (second_index - first_index);
- int red_delta = qRound(int(red_second - red_first) * reciprocal);
- int green_delta = qRound(int(green_second - green_first) * reciprocal);
- int blue_delta = qRound(int(blue_second - blue_first) * reciprocal);
- int alpha_delta = qRound(int(alpha_second - alpha_first) * reciprocal);
+ int red_delta = qRound((qreal(red_second) - red_first) * reciprocal);
+ int green_delta = qRound((qreal(green_second) - green_first) * reciprocal);
+ int blue_delta = qRound((qreal(blue_second) - blue_first) * reciprocal);
+ int alpha_delta = qRound((qreal(alpha_second) - alpha_first) * reciprocal);
// rounding
red_first += 1 << 15;
@@ -4256,8 +4255,7 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
blue_first += blue_delta;
alpha_first += alpha_delta;
- const uint color = ((alpha_first << 8) & 0xff000000) | (red_first & 0xff0000)
- | ((green_first >> 8) & 0xff00) | (blue_first >> 16);
+ const QRgba64 color = qRgba64(red_first >> 16, green_first >> 16, blue_first >> 16, alpha_first >> 16);
if (colorInterpolation)
colorTable[i] = color;
@@ -4276,7 +4274,7 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
return;
}
- uint current_color = ARGB_COMBINE_ALPHA(stops[0].second.rgba(), opacity);
+ QRgba64 current_color = combineAlpha256(stops[0].second.rgba64(), opacity);
if (stopCount == 1) {
current_color = qPremultiply(current_color);
for (int i = 0; i < size; ++i)
@@ -4289,7 +4287,7 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
qreal end_pos = stops[stopCount-1].first;
int pos = 0; // The position in the color table.
- uint next_color;
+ QRgba64 next_color;
qreal incr = 1 / qreal(size); // the double increment.
qreal dpos = 1.5 * incr; // current position in gradient stop list (0 to 1)
@@ -4313,8 +4311,8 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
++current_stop;
if (current_stop != 0)
- current_color = ARGB_COMBINE_ALPHA(stops[current_stop].second.rgba(), opacity);
- next_color = ARGB_COMBINE_ALPHA(stops[current_stop+1].second.rgba(), opacity);
+ current_color = combineAlpha256(stops[current_stop].second.rgba64(), opacity);
+ next_color = combineAlpha256(stops[current_stop+1].second.rgba64(), opacity);
if (colorInterpolation) {
current_color = qPremultiply(current_color);
@@ -4333,9 +4331,9 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
int idist = 256 - dist;
if (colorInterpolation)
- colorTable[pos] = INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist);
+ colorTable[pos] = interpolate256(current_color, idist, next_color, dist);
else
- colorTable[pos] = qPremultiply(INTERPOLATE_PIXEL_256(current_color, idist, next_color, dist));
+ colorTable[pos] = qPremultiply(interpolate256(current_color, idist, next_color, dist));
++pos;
dpos += incr;
@@ -4354,8 +4352,8 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
if (skip == 1)
current_color = next_color;
else
- current_color = ARGB_COMBINE_ALPHA(stops[current_stop].second.rgba(), opacity);
- next_color = ARGB_COMBINE_ALPHA(stops[current_stop+1].second.rgba(), opacity);
+ current_color = combineAlpha256(stops[current_stop].second.rgba64(), opacity);
+ next_color = combineAlpha256(stops[current_stop+1].second.rgba64(), opacity);
if (colorInterpolation) {
if (skip != 1)
@@ -4372,7 +4370,7 @@ void QGradientCache::generateGradientColorTable(const QGradient& gradient, uint
}
// After last point
- current_color = qPremultiply(ARGB_COMBINE_ALPHA(stops[stopCount - 1].second.rgba(), opacity));
+ current_color = qPremultiply(combineAlpha256(stops[stopCount - 1].second.rgba64(), opacity));
while (pos < size - 1) {
colorTable[pos] = current_color;
++pos;
@@ -4405,12 +4403,9 @@ void QSpanData::setup(const QBrush &brush, int alpha, QPainter::CompositionMode
case Qt::SolidPattern: {
type = Solid;
QColor c = qbrush_color(brush);
- QRgb rgba = c.rgba();
- solid.color = qPremultiply(ARGB_COMBINE_ALPHA(rgba, alpha));
- if ((solid.color & 0xff000000) == 0
- && compositionMode == QPainter::CompositionMode_SourceOver) {
+ solid.color = qPremultiply(combineAlpha256(c.rgba64(), alpha));
+ if (solid.color.isTransparent() && compositionMode == QPainter::CompositionMode_SourceOver)
type = None;
- }
break;
}
@@ -4419,7 +4414,7 @@ void QSpanData::setup(const QBrush &brush, int alpha, QPainter::CompositionMode
type = LinearGradient;
const QLinearGradient *g = static_cast<const QLinearGradient *>(brush.gradient());
gradient.alphaColor = !brush.isOpaque() || alpha != 256;
- gradient.colorTable = const_cast<uint*>(qt_gradient_cache()->getBuffer(*g, alpha));
+ gradient.colorTable = const_cast<QRgba64*>(qt_gradient_cache()->getBuffer(*g, alpha));
gradient.spread = g->spread();
QLinearGradientData &linearData = gradient.linear;
@@ -4436,7 +4431,7 @@ void QSpanData::setup(const QBrush &brush, int alpha, QPainter::CompositionMode
type = RadialGradient;
const QRadialGradient *g = static_cast<const QRadialGradient *>(brush.gradient());
gradient.alphaColor = !brush.isOpaque() || alpha != 256;
- gradient.colorTable = const_cast<uint*>(qt_gradient_cache()->getBuffer(*g, alpha));
+ gradient.colorTable = const_cast<QRgba64*>(qt_gradient_cache()->getBuffer(*g, alpha));
gradient.spread = g->spread();
QRadialGradientData &radialData = gradient.radial;
@@ -4457,7 +4452,7 @@ void QSpanData::setup(const QBrush &brush, int alpha, QPainter::CompositionMode
type = ConicalGradient;
const QConicalGradient *g = static_cast<const QConicalGradient *>(brush.gradient());
gradient.alphaColor = !brush.isOpaque() || alpha != 256;
- gradient.colorTable = const_cast<uint*>(qt_gradient_cache()->getBuffer(*g, alpha));
+ gradient.colorTable = const_cast<QRgba64*>(qt_gradient_cache()->getBuffer(*g, alpha));
gradient.spread = QGradient::RepeatSpread;
QConicalGradientData &conicalData = gradient.conical;
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 69cbb42923..70862ea583 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -7462,6 +7462,7 @@ start_lengthVariant:
range.format.setFontUnderline(true);
underlineFormats.append(range);
}
+#ifdef Q_OS_MAC
} else if (hidemnmemonic && *cin == QLatin1Char('(') && l >= 4 &&
cin[1] == QLatin1Char('&') && cin[2] != QLatin1Char('&') &&
cin[3] == QLatin1Char(')')) {
@@ -7473,6 +7474,7 @@ start_lengthVariant:
length -= n + 4;
l -= 4;
continue;
+#endif //Q_OS_MAC
}
*cout = *cin;
++cout;
diff --git a/src/gui/painting/qpen.cpp b/src/gui/painting/qpen.cpp
index 4796d2c0ad..6263d18b01 100644
--- a/src/gui/painting/qpen.cpp
+++ b/src/gui/painting/qpen.cpp
@@ -1026,12 +1026,13 @@ QDebug operator<<(QDebug dbg, const QPen &p)
"CustomDashLine"
};
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QPen(" << p.width() << ',' << p.brush()
<< ',' << PEN_STYLES[p.style()] << ',' << int(p.capStyle())
<< ',' << int(p.joinStyle()) << ',' << p.dashPattern()
<< ',' << p.dashOffset()
<< ',' << p.miterLimit() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qpolygon.cpp b/src/gui/painting/qpolygon.cpp
index 511af49787..efcc8875a5 100644
--- a/src/gui/painting/qpolygon.cpp
+++ b/src/gui/painting/qpolygon.cpp
@@ -461,11 +461,12 @@ QRect QPolygon::boundingRect() const
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QPolygon &a)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QPolygon(";
for (int i = 0; i < a.count(); ++i)
dbg.nospace() << a.at(i);
dbg.nospace() << ')';
- return dbg.space();
+ return dbg;
}
#endif
@@ -802,11 +803,12 @@ QDataStream &operator>>(QDataStream &s, QPolygonF &a)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QPolygonF &a)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QPolygonF(";
for (int i = 0; i < a.count(); ++i)
dbg.nospace() << a.at(i);
dbg.nospace() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/painting/qrgba64.h b/src/gui/painting/qrgba64.h
index 2ea09e6bd6..51ce4ab10d 100644
--- a/src/gui/painting/qrgba64.h
+++ b/src/gui/painting/qrgba64.h
@@ -88,6 +88,9 @@ public:
return fromRgba(rgb >> 16, rgb >> 8, rgb, rgb >> 24);
}
+ Q_DECL_CONSTEXPR bool isOpaque() const { return c.alpha == 0xffff; }
+ Q_DECL_CONSTEXPR bool isTransparent() const { return c.alpha == 0; }
+
Q_DECL_CONSTEXPR quint16 red() const { return c.red; }
Q_DECL_CONSTEXPR quint16 green() const { return c.green; }
Q_DECL_CONSTEXPR quint16 blue() const { return c.blue; }
@@ -133,6 +136,12 @@ public:
return rgba;
}
+ QRgba64 operator=(quint64 _rgba)
+ {
+ rgba = _rgba;
+ return *this;
+ }
+
private:
static Q_DECL_CONSTEXPR uint div_257_floor(uint x) { return (x - (x >> 8)) >> 8; }
static Q_DECL_CONSTEXPR uint div_257(uint x) { return div_257_floor(x + 128); }
diff --git a/src/gui/painting/qrgba64_p.h b/src/gui/painting/qrgba64_p.h
new file mode 100644
index 0000000000..a1452af8d9
--- /dev/null
+++ b/src/gui/painting/qrgba64_p.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QRGBA64_P_H
+#define QRGBA64_P_H
+
+#include <QtGui/qrgba64.h>
+#include <QtGui/private/qdrawhelper_p.h>
+
+QT_BEGIN_NAMESPACE
+
+inline QRgba64 combineAlpha256(QRgba64 rgba64, uint alpha256)
+{
+ return QRgba64::fromRgba64(rgba64.red(), rgba64.green(), rgba64.blue(), (rgba64.alpha() * alpha256) >> 8);
+}
+
+inline QRgba64 multiplyAlpha256(QRgba64 rgba64, uint alpha256)
+{
+ return QRgba64::fromRgba64((rgba64.red() * alpha256) >> 8,
+ (rgba64.green() * alpha256) >> 8,
+ (rgba64.blue() * alpha256) >> 8,
+ (rgba64.alpha() * alpha256) >> 8);
+}
+
+inline QRgba64 multiplyAlpha255(QRgba64 rgba64, uint alpha255)
+{
+ return QRgba64::fromRgba64(qt_div_255(rgba64.red() * alpha255),
+ qt_div_255(rgba64.green() * alpha255),
+ qt_div_255(rgba64.blue() * alpha255),
+ qt_div_255(rgba64.alpha() * alpha255));
+}
+
+inline QRgba64 multiplyAlpha65535(QRgba64 rgba64, uint alpha65535)
+{
+ return QRgba64::fromRgba64(qt_div_65535(rgba64.red() * alpha65535),
+ qt_div_65535(rgba64.green() * alpha65535),
+ qt_div_65535(rgba64.blue() * alpha65535),
+ qt_div_65535(rgba64.alpha() * alpha65535));
+}
+
+inline QRgba64 interpolate256(QRgba64 x, uint alpha1, QRgba64 y, uint alpha2)
+{
+ return QRgba64::fromRgba64(multiplyAlpha256(x, alpha1) + multiplyAlpha256(y, alpha2));
+}
+
+inline QRgba64 interpolate255(QRgba64 x, uint alpha1, QRgba64 y, uint alpha2)
+{
+ return QRgba64::fromRgba64(multiplyAlpha255(x, alpha1) + multiplyAlpha255(y, alpha2));
+}
+
+QT_END_NAMESPACE
+
+#endif // QRGBA64_P_H
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp
index 881fae9afc..4c879cf05d 100644
--- a/src/gui/painting/qtextureglyphcache.cpp
+++ b/src/gui/painting/qtextureglyphcache.cpp
@@ -123,17 +123,6 @@ bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const
if (listItemCoordinates.contains(GlyphAndSubPixelPosition(glyph, subPixelPosition)))
continue;
- // This is a rather crude hack, but it works.
- // The FreeType font engine is not capable of getting precise metrics for the alphamap
- // without first rasterizing the glyph. If we force the glyph to be rasterized before
- // we ask for the alphaMapBoundingBox(), the glyph will be loaded, rasterized and its
- // proper metrics will be cached and used later.
- if (fontEngine->hasInternalCaching()) {
- QImage *locked = fontEngine->lockedAlphaMapForGlyph(glyph, subPixelPosition, m_format);
- if (locked && !locked->isNull())
- fontEngine->unlockAlphaMapForGlyph();
- }
-
glyph_metrics_t metrics = fontEngine->alphaMapBoundingBox(glyph, subPixelPosition, m_transform, m_format);
#ifdef CACHE_DEBUG
diff --git a/src/gui/painting/qtransform.cpp b/src/gui/painting/qtransform.cpp
index 4c1aff92ae..31d7a2300b 100644
--- a/src/gui/painting/qtransform.cpp
+++ b/src/gui/painting/qtransform.cpp
@@ -1091,6 +1091,7 @@ QDebug operator<<(QDebug dbg, const QTransform &m)
"TxProject"
};
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QTransform(type=" << typeStr[m.type()] << ','
<< " 11=" << m.m11()
<< " 12=" << m.m12()
@@ -1103,7 +1104,7 @@ QDebug operator<<(QDebug dbg, const QTransform &m)
<< " 33=" << m.m33()
<< ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index f9e6a7e335..3c98cb568d 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -364,6 +364,29 @@ static quint64 findKnownValue(const QString &name, const QCssKnownValue *start,
return prop->id;
}
+static inline bool isInheritable(Property propertyId)
+{
+ switch (propertyId) {
+ case Font:
+ case FontFamily:
+ case FontSize:
+ case FontStyle:
+ case FontWeight:
+ case TextIndent:
+ case Whitespace:
+ case ListStyleType:
+ case ListStyle:
+ case TextAlignment:
+ case FontVariant:
+ case TextTransform:
+ case LineHeight:
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
///////////////////////////////////////////////////////////////////////////////
// Value Extractor
ValueExtractor::ValueExtractor(const QVector<Declaration> &decls, const QPalette &pal)
@@ -2317,6 +2340,7 @@ bool Parser::parseProperty(Declaration *decl)
{
decl->d->property = lexem();
decl->d->propertyId = static_cast<Property>(findKnownValue(decl->d->property, properties, NumProperties));
+ decl->d->inheritable = isInheritable(decl->d->propertyId);
skipSpace();
return true;
}
diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h
index ebd9904762..75802ba36a 100644
--- a/src/gui/text/qcssparser_p.h
+++ b/src/gui/text/qcssparser_p.h
@@ -426,12 +426,13 @@ struct Q_GUI_EXPORT Declaration
{
struct DeclarationData : public QSharedData
{
- inline DeclarationData() : propertyId(UnknownProperty), important(false) {}
+ inline DeclarationData() : propertyId(UnknownProperty), important(false), inheritable(false) {}
QString property;
Property propertyId;
QVector<Value> values;
QVariant parsed;
- bool important;
+ bool important:1;
+ bool inheritable:1;
};
QExplicitlySharedDataPointer<DeclarationData> d;
inline Declaration() : d(new DeclarationData()) {}
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index 8176ede994..931c71dc63 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -43,6 +43,7 @@
#include "qfile.h"
#include "qfileinfo.h"
+#include <qscopedvaluerollback.h>
#include "qthreadstorage.h"
#include <qmath.h>
@@ -800,6 +801,17 @@ int QFontEngineFT::loadFlags(QGlyphSet *set, GlyphFormat format, int flags,
return load_flags;
}
+static inline bool areMetricsTooLarge(const QFontEngineFT::GlyphInfo &info)
+{
+ // false if exceeds QFontEngineFT::Glyph metrics
+ return (short)(info.linearAdvance) != info.linearAdvance
+ || (signed char)(info.xOff) != info.xOff
+ || (uchar)(info.width) != info.width
+ || (uchar)(info.height) != info.height
+ || (signed char)(info.x) != info.x
+ || (signed char)(info.y) != info.y;
+}
+
QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
QFixed subPixelPosition,
GlyphFormat format,
@@ -807,13 +819,9 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
{
// Q_ASSERT(freetype->lock == 1);
- if (format == Format_None) {
- if (defaultFormat != Format_None) {
- format = defaultFormat;
- } else {
- format = Format_Mono;
- }
- }
+ if (format == Format_None)
+ format = defaultFormat != Format_None ? defaultFormat : Format_Mono;
+ Q_ASSERT(format != Format_None);
Glyph *g = set ? set->getGlyph(glyph, subPixelPosition) : 0;
if (g && g->format == format && (fetchMetricsOnly || g->data))
@@ -822,32 +830,28 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
if (!g && set && set->isGlyphMissing(glyph))
return &emptyGlyph;
- QFontEngineFT::GlyphInfo info;
- Q_ASSERT(format != Format_None);
+ FT_Face face = freetype->face;
+
+ FT_Matrix matrix = freetype->matrix;
+
+ FT_Vector v;
+ v.x = format == Format_Mono ? 0 : FT_Pos(subPixelPosition.value());
+ v.y = 0;
+ FT_Set_Transform(face, &matrix, &v);
+
bool hsubpixel = false;
int vfactor = 1;
int load_flags = loadFlags(set, format, 0, hsubpixel, vfactor);
- if (format != Format_Mono && !embeddedbitmap)
- load_flags |= FT_LOAD_NO_BITMAP;
-
- FT_Matrix matrix = freetype->matrix;
bool transform = matrix.xx != 0x10000
|| matrix.yy != 0x10000
|| matrix.xy != 0
|| matrix.yx != 0;
- if (transform)
+ if (transform || (format != Format_Mono && !embeddedbitmap))
load_flags |= FT_LOAD_NO_BITMAP;
- FT_Face face = freetype->face;
-
- FT_Vector v;
- v.x = format == Format_Mono ? 0 : FT_Pos(subPixelPosition.toReal() * 64);
- v.y = 0;
- FT_Set_Transform(face, &freetype->matrix, &v);
-
FT_Error err = FT_Load_Glyph(face, glyph, load_flags);
if (err && (load_flags & FT_LOAD_NO_BITMAP)) {
load_flags &= ~FT_LOAD_NO_BITMAP;
@@ -891,6 +895,8 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
FT_Matrix_Multiply(&m, &matrix);
}
+ GlyphInfo info;
+ info.linearAdvance = slot->linearHoriAdvance >> 10;
info.xOff = TRUNC(ROUND(slot->advance.x));
info.yOff = 0;
@@ -899,27 +905,23 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
int right = CEIL(slot->metrics.horiBearingX + slot->metrics.width);
int top = CEIL(slot->metrics.horiBearingY);
int bottom = FLOOR(slot->metrics.horiBearingY - slot->metrics.height);
- int width = right-left;
- int height = top-bottom;
+ info.x = TRUNC(left);
+ info.y = TRUNC(top);
+ info.width = TRUNC(right - left);
+ info.height = TRUNC(top - bottom);
// If any of the metrics are too large to fit, don't cache them
- if (qAbs(info.xOff) >= 128
- || qAbs(TRUNC(top)) >= 128
- || TRUNC(width) >= 256
- || TRUNC(height) >= 256
- || qAbs(TRUNC(left)) >= 128
- || qAbs(TRUNC(ROUND(slot->advance.x))) >= 128) {
+ if (areMetricsTooLarge(info))
return 0;
- }
g = new Glyph;
g->data = 0;
- g->linearAdvance = slot->linearHoriAdvance >> 10;
- g->width = TRUNC(width);
- g->height = TRUNC(height);
- g->x = TRUNC(left);
- g->y = TRUNC(top);
- g->advance = TRUNC(ROUND(slot->advance.x));
+ g->linearAdvance = info.linearAdvance;
+ g->width = info.width;
+ g->height = info.height;
+ g->x = info.x;
+ g->y = info.y;
+ g->advance = info.xOff;
g->format = format;
if (set)
@@ -948,7 +950,7 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
info.height = slot->bitmap.rows / vfactor;
info.width = hsubpixel ? slot->bitmap.width / 3 : slot->bitmap.width;
- info.x = -slot->bitmap_left;
+ info.x = slot->bitmap_left;
info.y = slot->bitmap_top;
glyph_buffer_size = info.width * info.height * 4;
@@ -1013,23 +1015,16 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
hpixels = hpixels*3 + 8;
info.width = hpixels;
info.height = TRUNC(top - bottom);
- info.x = -TRUNC(left);
+ info.x = TRUNC(left);
info.y = TRUNC(top);
if (hsubpixel) {
info.width /= 3;
- info.x += 1;
+ info.x -= 1;
}
- bool large_glyph = (((short)(slot->linearHoriAdvance>>10) != slot->linearHoriAdvance>>10)
- || ((uchar)(info.width) != info.width)
- || ((uchar)(info.height) != info.height)
- || ((signed char)(info.x) != info.x)
- || ((signed char)(info.y) != info.y)
- || ((signed char)(info.xOff) != info.xOff));
-
- if (large_glyph) {
+ // If any of the metrics are too large to fit, don't cache them
+ if (areMetricsTooLarge(info))
return 0;
- }
int pitch = (format == Format_Mono ? ((info.width + 31) & ~31) >> 3 :
(format == Format_A8 ? (info.width + 3) & ~3 : info.width * 4));
@@ -1142,10 +1137,10 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyph(QGlyphSet *set, uint glyph,
g->data = 0;
}
- g->linearAdvance = slot->linearHoriAdvance >> 10;
+ g->linearAdvance = info.linearAdvance;
g->width = info.width;
g->height = info.height;
- g->x = -info.x;
+ g->x = info.x;
g->y = info.y;
g->advance = info.xOff;
g->format = format;
@@ -1725,100 +1720,60 @@ glyph_metrics_t QFontEngineFT::alphaMapBoundingBox(glyph_t glyph, QFixed subPixe
return overall;
}
-QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixelPosition,
- QFontEngine::GlyphFormat neededFormat,
- const QTransform &t, QPoint *offset)
+static inline QImage alphaMapFromGlyphData(QFontEngineFT::Glyph *glyph, QFontEngine::GlyphFormat glyphFormat)
{
- Q_ASSERT(currentlyLockedAlphaMap.isNull());
- lockFace();
-
- if (isBitmapFont())
- neededFormat = Format_Mono;
- else if (neededFormat == Format_None && defaultFormat != Format_None)
- neededFormat = defaultFormat;
- else if (neededFormat == Format_None)
- neededFormat = Format_A8;
+ if (glyph == Q_NULLPTR)
+ return QImage();
QImage::Format format;
- switch (neededFormat) {
- case Format_Mono:
+ int bytesPerLine;
+ switch (glyphFormat) {
+ case QFontEngine::Format_Mono:
format = QImage::Format_Mono;
+ bytesPerLine = ((glyph->width + 31) & ~31) >> 3;
break;
- case Format_A8:
+ case QFontEngine::Format_A8:
format = QImage::Format_Alpha8;
+ bytesPerLine = (glyph->width + 3) & ~3;
break;
- case Format_A32:
+ case QFontEngine::Format_A32:
format = QImage::Format_ARGB32;
+ bytesPerLine = glyph->width * 4;
break;
default:
- Q_ASSERT(false);
- format = QImage::Format_Invalid;
+ Q_UNREACHABLE();
};
- QFontEngineFT::Glyph *glyph;
- if (cacheEnabled) {
- QGlyphSet *gset = loadGlyphSet(t);
- QFontEngine::HintStyle hintStyle = default_hint_style;
- if (t.type() >= QTransform::TxScale) {
- // disable hinting if the glyphs are transformed
- default_hint_style = HintNone;
- }
-
- if (gset) {
- FT_Matrix m = matrix;
- FT_Matrix_Multiply(&gset->transformationMatrix, &m);
- FT_Set_Transform(freetype->face, &m, 0);
- freetype->matrix = m;
- }
+ return QImage(static_cast<const uchar *>(glyph->data), glyph->width, glyph->height, bytesPerLine, format);
+}
- if (!gset || gset->outline_drawing || !(glyph = loadGlyph(gset, glyphIndex, subPixelPosition,
- neededFormat))) {
- default_hint_style = hintStyle;
- return QFontEngine::lockedAlphaMapForGlyph(glyphIndex, subPixelPosition, neededFormat, t,
- offset);
- }
- default_hint_style = hintStyle;
- } else {
- FT_Matrix m = matrix;
- FT_Matrix extra = QTransformToFTMatrix(t);
- FT_Matrix_Multiply(&extra, &m);
- FT_Set_Transform(freetype->face, &m, 0);
- freetype->matrix = m;
- glyph = loadGlyph(0, glyphIndex, subPixelPosition, neededFormat);
- }
+QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixelPosition,
+ QFontEngine::GlyphFormat neededFormat,
+ const QTransform &t, QPoint *offset)
+{
+ Q_ASSERT(currentlyLockedAlphaMap.isNull());
- if (glyph == 0 || glyph->data == 0 || glyph->width == 0 || glyph->height == 0) {
- if (!cacheEnabled && glyph != &emptyGlyph)
- delete glyph;
- unlockFace();
- return 0;
- }
+ if (isBitmapFont())
+ neededFormat = Format_Mono;
+ else if (neededFormat == Format_None && defaultFormat != Format_None)
+ neededFormat = defaultFormat;
+ else if (neededFormat == Format_None)
+ neededFormat = Format_A8;
- int pitch;
- switch (neededFormat) {
- case Format_Mono:
- pitch = ((glyph->width + 31) & ~31) >> 3;
- break;
- case Format_A8:
- pitch = (glyph->width + 3) & ~3;
- break;
- case Format_A32:
- pitch = glyph->width * 4;
- break;
- default:
- Q_ASSERT(false);
- pitch = 0;
- };
+ Glyph *glyph = loadGlyphFor(glyphIndex, subPixelPosition, neededFormat, t);
- if (offset != 0)
+ if (offset != 0 && glyph != 0)
*offset = QPoint(glyph->x, -glyph->y);
- currentlyLockedAlphaMap = QImage(glyph->data, glyph->width, glyph->height, pitch, format);
+ currentlyLockedAlphaMap = alphaMapFromGlyphData(glyph, neededFormat);
+
if (!cacheEnabled && glyph != &emptyGlyph) {
currentlyLockedAlphaMap = currentlyLockedAlphaMap.copy();
delete glyph;
}
- Q_ASSERT(!currentlyLockedAlphaMap.isNull());
+
+ if (currentlyLockedAlphaMap.isNull())
+ return QFontEngine::lockedAlphaMapForGlyph(glyphIndex, subPixelPosition, neededFormat, t, offset);
QImageData *data = currentlyLockedAlphaMap.data_ptr();
data->is_locked = true;
@@ -1828,9 +1783,7 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe
void QFontEngineFT::unlockAlphaMapForGlyph()
{
- Q_ASSERT(!currentlyLockedAlphaMap.isNull());
- unlockFace();
- currentlyLockedAlphaMap = QImage();
+ QFontEngine::unlockAlphaMapForGlyph();
}
QFontEngineFT::Glyph *QFontEngineFT::loadGlyphFor(glyph_t g,
@@ -1845,6 +1798,10 @@ QFontEngineFT::Glyph *QFontEngineFT::loadGlyphFor(glyph_t g,
Glyph *glyph = glyphSet != 0 ? glyphSet->getGlyph(g, subPixelPosition) : 0;
if (!glyph || glyph->format != format || (!fetchBoundingBox && !glyph->data)) {
+ QScopedValueRollback<HintStyle> saved_default_hint_style(default_hint_style);
+ if (t.type() >= QTransform::TxScale)
+ default_hint_style = HintNone; // disable hinting if the glyphs are transformed
+
lockFace();
FT_Matrix m = this->matrix;
FT_Matrix ftMatrix = glyphSet != 0 ? glyphSet->transformationMatrix : QTransformToFTMatrix(t);
@@ -1864,32 +1821,20 @@ QImage QFontEngineFT::alphaMapForGlyph(glyph_t g, QFixed subPixelPosition)
QImage QFontEngineFT::alphaMapForGlyph(glyph_t g, QFixed subPixelPosition, const QTransform &t)
{
- Glyph *glyph = loadGlyphFor(g, subPixelPosition, antialias ? Format_A8 : Format_Mono, t);
- if (!glyph || !glyph->data) {
- if (!cacheEnabled && glyph != &emptyGlyph)
- delete glyph;
- return QFontEngine::alphaMapForGlyph(g);
- }
+ const GlyphFormat neededFormat = antialias ? Format_A8 : Format_Mono;
- const int pitch = antialias ? (glyph->width + 3) & ~3 : ((glyph->width + 31)/32) * 4;
+ Glyph *glyph = loadGlyphFor(g, subPixelPosition, neededFormat, t);
- QImage img(glyph->width, glyph->height, antialias ? QImage::Format_Alpha8 : QImage::Format_Mono);
- if (!antialias) {
- QVector<QRgb> colors(2);
- colors[0] = qRgba(0, 0, 0, 0);
- colors[1] = qRgba(0, 0, 0, 255);
- img.setColorTable(colors);
- }
- Q_ASSERT(img.bytesPerLine() == pitch);
- if (glyph->width) {
- for (int y = 0; y < glyph->height; ++y)
- memcpy(img.scanLine(y), &glyph->data[y * pitch], pitch);
- }
+ QImage img = alphaMapFromGlyphData(glyph, neededFormat);
+ img = img.copy();
if (!cacheEnabled && glyph != &emptyGlyph)
delete glyph;
- return img;
+ if (!img.isNull())
+ return img;
+
+ return QFontEngine::alphaMapForGlyph(g);
}
QImage QFontEngineFT::alphaRGBMapForGlyph(glyph_t g, QFixed subPixelPosition, const QTransform &t)
@@ -1897,20 +1842,20 @@ QImage QFontEngineFT::alphaRGBMapForGlyph(glyph_t g, QFixed subPixelPosition, co
if (t.type() > QTransform::TxRotate)
return QFontEngine::alphaRGBMapForGlyph(g, subPixelPosition, t);
- Glyph *glyph = loadGlyphFor(g, subPixelPosition, Format_A32, t);
- if (!glyph || !glyph->data) {
- if (!cacheEnabled && glyph != &emptyGlyph)
- delete glyph;
- return QFontEngine::alphaRGBMapForGlyph(g, subPixelPosition, t);
- }
+ const GlyphFormat neededFormat = Format_A32;
- QImage img(glyph->width, glyph->height, QImage::Format_RGB32);
- memcpy(img.bits(), glyph->data, 4 * glyph->width * glyph->height);
+ Glyph *glyph = loadGlyphFor(g, subPixelPosition, neededFormat, t);
+
+ QImage img = alphaMapFromGlyphData(glyph, neededFormat);
+ img = img.copy();
if (!cacheEnabled && glyph != &emptyGlyph)
delete glyph;
- return img;
+ if (!img.isNull())
+ return img;
+
+ return QFontEngine::alphaRGBMapForGlyph(g, subPixelPosition, t);
}
void QFontEngineFT::removeGlyphFromCache(glyph_t glyph)
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index e9d058d50c..7b28a4064f 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -143,6 +143,7 @@ public:
};
struct GlyphInfo {
+ int linearAdvance;
unsigned short width;
unsigned short height;
short x;
diff --git a/src/gui/text/qharfbuzzng.cpp b/src/gui/text/qharfbuzzng.cpp
index 4baf1fd03c..102c62ea8a 100644
--- a/src/gui/text/qharfbuzzng.cpp
+++ b/src/gui/text/qharfbuzzng.cpp
@@ -94,6 +94,8 @@ static const hb_script_t _qtscript_to_hbscript[] = {
HB_SCRIPT_BUHID,
HB_SCRIPT_TAGBANWA,
HB_SCRIPT_COPTIC,
+
+ // Unicode 4.0 additions
HB_SCRIPT_LIMBU,
HB_SCRIPT_TAI_LE,
HB_SCRIPT_LINEAR_B,
@@ -102,6 +104,8 @@ static const hb_script_t _qtscript_to_hbscript[] = {
HB_SCRIPT_OSMANYA,
HB_SCRIPT_CYPRIOT,
HB_SCRIPT_BRAILLE,
+
+ // Unicode 4.1 additions
HB_SCRIPT_BUGINESE,
HB_SCRIPT_NEW_TAI_LUE,
HB_SCRIPT_GLAGOLITIC,
@@ -109,11 +113,15 @@ static const hb_script_t _qtscript_to_hbscript[] = {
HB_SCRIPT_SYLOTI_NAGRI,
HB_SCRIPT_OLD_PERSIAN,
HB_SCRIPT_KHAROSHTHI,
+
+ // Unicode 5.0 additions
HB_SCRIPT_BALINESE,
HB_SCRIPT_CUNEIFORM,
HB_SCRIPT_PHOENICIAN,
HB_SCRIPT_PHAGS_PA,
HB_SCRIPT_NKO,
+
+ // Unicode 5.1 additions
HB_SCRIPT_SUNDANESE,
HB_SCRIPT_LEPCHA,
HB_SCRIPT_OL_CHIKI,
@@ -125,6 +133,8 @@ static const hb_script_t _qtscript_to_hbscript[] = {
HB_SCRIPT_CARIAN,
HB_SCRIPT_LYDIAN,
HB_SCRIPT_CHAM,
+
+ // Unicode 5.2 additions
HB_SCRIPT_TAI_THAM,
HB_SCRIPT_TAI_VIET,
HB_SCRIPT_AVESTAN,
@@ -140,16 +150,45 @@ static const hb_script_t _qtscript_to_hbscript[] = {
HB_SCRIPT_INSCRIPTIONAL_PAHLAVI,
HB_SCRIPT_OLD_TURKIC,
HB_SCRIPT_KAITHI,
+
+ // Unicode 6.0 additions
HB_SCRIPT_BATAK,
HB_SCRIPT_BRAHMI,
HB_SCRIPT_MANDAIC,
+
+ // Unicode 6.1 additions
HB_SCRIPT_CHAKMA,
HB_SCRIPT_MEROITIC_CURSIVE,
HB_SCRIPT_MEROITIC_HIEROGLYPHS,
HB_SCRIPT_MIAO,
HB_SCRIPT_SHARADA,
HB_SCRIPT_SORA_SOMPENG,
- HB_SCRIPT_TAKRI
+ HB_SCRIPT_TAKRI,
+
+ // Unicode 7.0 additions
+ HB_SCRIPT_CAUCASIAN_ALBANIAN,
+ HB_SCRIPT_BASSA_VAH,
+ HB_SCRIPT_DUPLOYAN,
+ HB_SCRIPT_ELBASAN,
+ HB_SCRIPT_GRANTHA,
+ HB_SCRIPT_PAHAWH_HMONG,
+ HB_SCRIPT_KHOJKI,
+ HB_SCRIPT_LINEAR_A,
+ HB_SCRIPT_MAHAJANI,
+ HB_SCRIPT_MANICHAEAN,
+ HB_SCRIPT_MENDE_KIKAKUI,
+ HB_SCRIPT_MODI,
+ HB_SCRIPT_MRO,
+ HB_SCRIPT_OLD_NORTH_ARABIAN,
+ HB_SCRIPT_NABATAEAN,
+ HB_SCRIPT_PALMYRENE,
+ HB_SCRIPT_PAU_CIN_HAU,
+ HB_SCRIPT_OLD_PERMIC,
+ HB_SCRIPT_PSALTER_PAHLAVI,
+ HB_SCRIPT_SIDDHAM,
+ HB_SCRIPT_KHUDAWADI,
+ HB_SCRIPT_TIRHUTA,
+ HB_SCRIPT_WARANG_CITI
};
Q_STATIC_ASSERT(QChar::ScriptCount == sizeof(_qtscript_to_hbscript) / sizeof(_qtscript_to_hbscript[0]));
diff --git a/src/gui/text/qplatformfontdatabase.cpp b/src/gui/text/qplatformfontdatabase.cpp
index 3c3000da4d..5fa43948aa 100644
--- a/src/gui/text/qplatformfontdatabase.cpp
+++ b/src/gui/text/qplatformfontdatabase.cpp
@@ -522,9 +522,11 @@ enum {
VietnameseCsbBit = 8,
SimplifiedChineseCsbBit = 18,
TraditionalChineseCsbBit = 20,
+ ThaiCsbBit = 16,
JapaneseCsbBit = 17,
KoreanCsbBit = 19,
- KoreanJohabCsbBit = 21
+ KoreanJohabCsbBit = 21,
+ SymbolCsbBit = 31
};
/*!
@@ -579,6 +581,11 @@ QSupportedWritingSystems QPlatformFontDatabase::writingSystemsFromTrueTypeBits(q
hasScript = true;
//qDebug("font %s supports Arabic", familyName.latin1());
}
+ if (codePageRange[0] & (1 << ThaiCsbBit)) {
+ writingSystems.setSupported(QFontDatabase::Thai);
+ hasScript = true;
+ //qDebug("font %s supports Thai", familyName.latin1());
+ }
if (codePageRange[0] & (1 << VietnameseCsbBit)) {
writingSystems.setSupported(QFontDatabase::Vietnamese);
hasScript = true;
@@ -604,6 +611,11 @@ QSupportedWritingSystems QPlatformFontDatabase::writingSystemsFromTrueTypeBits(q
hasScript = true;
//qDebug("font %s supports Korean", familyName.latin1());
}
+ if (codePageRange[0] & (1 << SymbolCsbBit)) {
+ writingSystems = QSupportedWritingSystems();
+ hasScript = false;
+ }
+
if (!hasScript)
writingSystems.setSupported(QFontDatabase::Symbol);
diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp
index 3a86a454ac..db8a792be7 100644
--- a/src/gui/text/qtextdocumentlayout.cpp
+++ b/src/gui/text/qtextdocumentlayout.cpp
@@ -2432,7 +2432,7 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayout
++it;
} else {
QTextFrame::Iterator lastIt;
- if (!previousIt.atEnd())
+ if (!previousIt.atEnd() && previousIt != it)
lastIt = previousIt;
previousIt = it;
QTextBlock block = it.currentBlock();
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 076b6bbde4..10a61d3c84 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -881,16 +881,22 @@ static inline void qt_getJustificationOpportunities(const ushort *string, int le
int spaceAs;
switch (si.analysis.script) {
+ case QChar::Script_Arabic:
+ case QChar::Script_Syriac:
case QChar::Script_Nko:
case QChar::Script_Mandaic:
case QChar::Script_Mongolian:
case QChar::Script_PhagsPa:
+ case QChar::Script_Manichaean:
+ case QChar::Script_PsalterPahlavi:
// same as default but inter character justification takes precedence
spaceAs = Justification_Arabic_Space;
break;
+ case QChar::Script_Tibetan:
case QChar::Script_Hiragana:
case QChar::Script_Katakana:
+ case QChar::Script_Bopomofo:
case QChar::Script_Han:
// same as default but inter character justification is the only option
spaceAs = Justification_Character;
@@ -1201,20 +1207,7 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si, const ushort *st
uint cluster = infos->cluster;
if (Q_LIKELY(last_cluster != cluster)) {
- if (Q_UNLIKELY(g.glyphs[i] == 0)) {
- // hide characters that should normally be invisible
- switch (string[item_pos + str_pos]) {
- case QChar::LineFeed:
- case 0x000c: // FormFeed
- case QChar::CarriageReturn:
- case QChar::LineSeparator:
- case QChar::ParagraphSeparator:
- g.attributes[i].dontPrint = true;
- break;
- default:
- break;
- }
- }
+ g.attributes[i].clusterStart = true;
// fix up clusters so that the cluster indices will be monotonic
// and thus we never return out-of-order indices
@@ -1222,7 +1215,32 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si, const ushort *st
log_clusters[str_pos++] = last_glyph_pos;
last_glyph_pos = i + glyphs_shaped;
last_cluster = cluster;
- g.attributes[i].clusterStart = true;
+
+ // hide characters that should normally be invisible
+ switch (string[item_pos + str_pos]) {
+ case QChar::LineFeed:
+ case 0x000c: // FormFeed
+ case QChar::CarriageReturn:
+ case QChar::LineSeparator:
+ case QChar::ParagraphSeparator:
+ g.attributes[i].dontPrint = true;
+ break;
+ case QChar::SoftHyphen:
+ if (!actualFontEngine->symbol) {
+ // U+00AD [SOFT HYPHEN] is a default ignorable codepoint,
+ // so we replace its glyph and metrics with ones for
+ // U+002D [HYPHEN-MINUS] and make it visible if it appears at line-break
+ g.glyphs[i] = actualFontEngine->glyphIndex('-');
+ if (Q_LIKELY(g.glyphs[i] != 0)) {
+ QGlyphLayout tmp = g.mid(i, 1);
+ actualFontEngine->recalcAdvances(&tmp, 0);
+ }
+ g.attributes[i].dontPrint = true;
+ }
+ break;
+ default:
+ break;
+ }
}
}
while (str_pos < item_length)
@@ -1618,10 +1636,10 @@ void QTextEngine::itemize() const
for (int i = 0; i < length; ++i) {
switch (analysis[i].script) {
case QChar::Script_Latin:
- case QChar::Script_Han:
case QChar::Script_Hiragana:
case QChar::Script_Katakana:
case QChar::Script_Bopomofo:
+ case QChar::Script_Han:
analysis[i].script = QChar::Script_Common;
break;
default:
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp
index efd12b2b15..c60d0cc775 100644
--- a/src/gui/text/qtextformat.cpp
+++ b/src/gui/text/qtextformat.cpp
@@ -3458,14 +3458,16 @@ void QTextFormatCollection::setDefaultFont(const QFont &f)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QTextLength &l)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QTextLength(QTextLength::Type(" << l.type() << "))";
- return dbg.space();
+ return dbg;
}
QDebug operator<<(QDebug dbg, const QTextFormat &f)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QTextFormat(QTextFormat::FormatType(" << f.type() << "))";
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp
index edace3d13c..f8f41bb53d 100644
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
@@ -1050,25 +1050,14 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
// set element specific attributes
switch (id) {
case Html_a:
- charFormat.setAnchor(true);
for (int i = 0; i < attributes.count(); i += 2) {
const QString key = attributes.at(i);
if (key.compare(QLatin1String("href"), Qt::CaseInsensitive) == 0
&& !attributes.at(i + 1).isEmpty()) {
hasHref = true;
- charFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);
- charFormat.setForeground(QGuiApplication::palette().link());
}
}
-
- break;
- case Html_em:
- case Html_i:
- case Html_cite:
- case Html_address:
- case Html_var:
- case Html_dfn:
- charFormat.setFontItalic(true);
+ charFormat.setAnchor(true);
break;
case Html_big:
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(1));
@@ -1076,36 +1065,27 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
case Html_small:
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(-1));
break;
- case Html_strong:
- case Html_b:
- charFormat.setFontWeight(QFont::Bold);
- break;
case Html_h1:
- charFormat.setFontWeight(QFont::Bold);
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(3));
margin[QTextHtmlParser::MarginTop] = 18;
margin[QTextHtmlParser::MarginBottom] = 12;
break;
case Html_h2:
- charFormat.setFontWeight(QFont::Bold);
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(2));
margin[QTextHtmlParser::MarginTop] = 16;
margin[QTextHtmlParser::MarginBottom] = 12;
break;
case Html_h3:
- charFormat.setFontWeight(QFont::Bold);
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(1));
margin[QTextHtmlParser::MarginTop] = 14;
margin[QTextHtmlParser::MarginBottom] = 12;
break;
case Html_h4:
- charFormat.setFontWeight(QFont::Bold);
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(0));
margin[QTextHtmlParser::MarginTop] = 12;
margin[QTextHtmlParser::MarginBottom] = 12;
break;
case Html_h5:
- charFormat.setFontWeight(QFont::Bold);
charFormat.setProperty(QTextFormat::FontSizeAdjustment, int(-1));
margin[QTextHtmlParser::MarginTop] = 12;
margin[QTextHtmlParser::MarginBottom] = 4;
@@ -1114,11 +1094,7 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
margin[QTextHtmlParser::MarginTop] = 12;
margin[QTextHtmlParser::MarginBottom] = 12;
break;
- case Html_center:
- blockFormat.setAlignment(Qt::AlignCenter);
- break;
case Html_ul:
- listStyle = QTextListFormat::ListDisc;
// nested lists don't have margins, except for the toplevel one
if (!isNestedList(parser)) {
margin[QTextHtmlParser::MarginTop] = 12;
@@ -1127,7 +1103,6 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
// no left margin as we use indenting instead
break;
case Html_ol:
- listStyle = QTextListFormat::ListDecimal;
// nested lists don't have margins, except for the toplevel one
if (!isNestedList(parser)) {
margin[QTextHtmlParser::MarginTop] = 12;
@@ -1135,26 +1110,12 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
}
// no left margin as we use indenting instead
break;
- case Html_code:
- case Html_tt:
- case Html_kbd:
- case Html_samp:
- charFormat.setFontFamily(QString::fromLatin1("Courier New,courier"));
- // <tt> uses a fixed font, so set the property
- charFormat.setFontFixedPitch(true);
- break;
case Html_br:
text = QChar(QChar::LineSeparator);
- wsm = QTextHtmlParserNode::WhiteSpacePre;
break;
- // ##### sub / sup
case Html_pre:
- charFormat.setFontFamily(QString::fromLatin1("Courier New,courier"));
- wsm = WhiteSpacePre;
margin[QTextHtmlParser::MarginTop] = 12;
margin[QTextHtmlParser::MarginBottom] = 12;
- // <pre> uses a fixed font
- charFormat.setFontFixedPitch(true);
break;
case Html_blockquote:
margin[QTextHtmlParser::MarginTop] = 12;
@@ -1169,28 +1130,6 @@ void QTextHtmlParserNode::initializeProperties(const QTextHtmlParserNode *parent
case Html_dd:
margin[QTextHtmlParser::MarginLeft] = 30;
break;
- case Html_u:
- charFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);
- break;
- case Html_s:
- charFormat.setFontStrikeOut(true);
- break;
- case Html_nobr:
- wsm = WhiteSpaceNoWrap;
- break;
- case Html_th:
- charFormat.setFontWeight(QFont::Bold);
- blockFormat.setAlignment(Qt::AlignCenter);
- break;
- case Html_td:
- blockFormat.setAlignment(Qt::AlignLeft);
- break;
- case Html_sub:
- charFormat.setVerticalAlignment(QTextCharFormat::AlignSubScript);
- break;
- case Html_sup:
- charFormat.setVerticalAlignment(QTextCharFormat::AlignSuperScript);
- break;
default: break;
}
}
@@ -1345,6 +1284,14 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector<QCss::Declaration>
case QCss::QtListNumberSuffix:
textListNumberSuffix = decl.d->values.first().variant.toString();
break;
+ case QCss::TextAlignment:
+ switch (identifier) {
+ case QCss::Value_Left: blockFormat.setAlignment(Qt::AlignLeft); break;
+ case QCss::Value_Center: blockFormat.setAlignment(Qt::AlignCenter); break;
+ case QCss::Value_Right: blockFormat.setAlignment(Qt::AlignRight); break;
+ default: break;
+ }
+ break;
default: break;
}
}
@@ -1833,6 +1780,189 @@ void QTextHtmlParser::importStyleSheet(const QString &href)
}
}
+QVector<QCss::Declaration> standardDeclarationForNode(const QTextHtmlParserNode &node)
+{
+ QVector<QCss::Declaration> decls;
+ QCss::Declaration decl;
+ QCss::Value val;
+ switch (node.id) {
+ case Html_a:
+ case Html_u: {
+ bool needsUnderline = (node.id == Html_u) ? true : false;
+ if (node.id == Html_a) {
+ for (int i = 0; i < node.attributes.count(); i += 2) {
+ const QString key = node.attributes.at(i);
+ if (key.compare(QLatin1String("href"), Qt::CaseInsensitive) == 0
+ && !node.attributes.at(i + 1).isEmpty()) {
+ needsUnderline = true;
+ decl.d->property = QLatin1String("color");
+ decl.d->propertyId = QCss::Color;
+ val.type = QCss::Value::Color;
+ val.variant = QVariant(QGuiApplication::palette().link());
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ }
+ }
+ }
+ if (needsUnderline) {
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("text-decoration");
+ decl.d->propertyId = QCss::TextDecoration;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = QVariant(QCss::Value_Underline);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ }
+ break;
+ }
+ case Html_b:
+ case Html_strong:
+ case Html_h1:
+ case Html_h2:
+ case Html_h3:
+ case Html_h4:
+ case Html_h5:
+ case Html_th:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("font-weight");
+ decl.d->propertyId = QCss::FontWeight;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = QVariant(QCss::Value_Bold);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ if (node.id == Html_b || node.id == Html_strong)
+ break;
+ // Delibrate fall through
+ case Html_big:
+ case Html_small:
+ if (node.id != Html_th) {
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("font-size");
+ decl.d->propertyId = QCss::FontSize;
+ decl.d->inheritable = false;
+ val.type = QCss::Value::KnownIdentifier;
+ switch (node.id) {
+ case Html_h1: val.variant = QVariant(QCss::Value_XXLarge); break;
+ case Html_h2: val.variant = QVariant(QCss::Value_XLarge); break;
+ case Html_h3: case Html_big: val.variant = QVariant(QCss::Value_Large); break;
+ case Html_h4: val.variant = QVariant(QCss::Value_Medium); break;
+ case Html_h5: case Html_small: val.variant = QVariant(QCss::Value_Small); break;
+ default: break;
+ }
+ decl.d->values = QVector<QCss::Value>() << val;
+ decls << decl;
+ break;
+ }
+ // Delibrate fall through
+ case Html_center:
+ case Html_td:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("text-align");
+ decl.d->propertyId = QCss::TextAlignment;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = (node.id == Html_td) ? QVariant(QCss::Value_Left) : QVariant(QCss::Value_Center);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ case Html_s:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("text-decoration");
+ decl.d->propertyId = QCss::TextDecoration;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = QVariant(QCss::Value_LineThrough);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ case Html_em:
+ case Html_i:
+ case Html_cite:
+ case Html_address:
+ case Html_var:
+ case Html_dfn:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("font-style");
+ decl.d->propertyId = QCss::FontStyle;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = QVariant(QCss::Value_Italic);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ case Html_sub:
+ case Html_sup:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("vertical-align");
+ decl.d->propertyId = QCss::VerticalAlignment;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = (node.id == Html_sub) ? QVariant(QCss::Value_Sub) : QVariant(QCss::Value_Super);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ case Html_ul:
+ case Html_ol:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("list-style");
+ decl.d->propertyId = QCss::ListStyle;
+ val.type = QCss::Value::KnownIdentifier;
+ val.variant = (node.id == Html_ul) ? QVariant(QCss::Value_Disc) : QVariant(QCss::Value_Decimal);
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ case Html_code:
+ case Html_tt:
+ case Html_kbd:
+ case Html_samp:
+ case Html_pre: {
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("font-family");
+ decl.d->propertyId = QCss::FontFamily;
+ QVector<QCss::Value> values;
+ val.type = QCss::Value::String;
+ val.variant = QLatin1String("Courier New");
+ values << val;
+ val.type = QCss::Value::TermOperatorComma;
+ val.variant = QVariant();
+ values << val;
+ val.type = QCss::Value::String;
+ val.variant = QLatin1String("courier");
+ values << val;
+ decl.d->values = values;
+ decl.d->inheritable = true;
+ decls << decl;
+ }
+ if (node.id != Html_pre)
+ break;
+ // Delibrate fall through
+ case Html_br:
+ case Html_nobr:
+ decl = QCss::Declaration();
+ decl.d->property = QLatin1String("whitespace");
+ decl.d->propertyId = QCss::Whitespace;
+ val.type = QCss::Value::KnownIdentifier;
+ switch (node.id) {
+ case Html_br: val.variant = QVariant(QCss::Value_PreWrap); break;
+ case Html_nobr: val.variant = QVariant(QCss::Value_NoWrap); break;
+ case Html_pre: val.variant = QVariant(QCss::Value_Pre); break;
+ default: break;
+ }
+ decl.d->values = QVector<QCss::Value>() << val;
+ decl.d->inheritable = true;
+ decls << decl;
+ break;
+ default:
+ break;
+ }
+ return decls;
+}
+
QVector<QCss::Declaration> QTextHtmlParser::declarationsForNode(int node) const
{
QVector<QCss::Declaration> decls;
@@ -1860,8 +1990,20 @@ QVector<QCss::Declaration> QTextHtmlParser::declarationsForNode(int node) const
const char *extraPseudo = 0;
if (nodes.at(node).id == Html_a && nodes.at(node).hasHref)
extraPseudo = "link";
- decls = selector.declarationsForNode(n, extraPseudo);
-
+ // Ensure that our own style is taken into consideration
+ decls = standardDeclarationForNode(nodes.at(node));
+ decls += selector.declarationsForNode(n, extraPseudo);
+ n = selector.parentNode(n);
+ while (!selector.isNullNode(n)) {
+ QVector<QCss::Declaration> inheritedDecls;
+ inheritedDecls = selector.declarationsForNode(n, extraPseudo);
+ for (int i = 0; i < inheritedDecls.size(); ++i) {
+ const QCss::Declaration &decl = inheritedDecls.at(i);
+ if (decl.d->inheritable)
+ decls.prepend(decl);
+ }
+ n = selector.parentNode(n);
+ }
return decls;
}
diff --git a/src/gui/util/qdesktopservices.cpp b/src/gui/util/qdesktopservices.cpp
index 385706f09e..4c92e5d000 100644
--- a/src/gui/util/qdesktopservices.cpp
+++ b/src/gui/util/qdesktopservices.cpp
@@ -166,6 +166,11 @@ void QOpenUrlHandlerRegistry::handlerDestroyed(QObject *handler)
Unicode-aware, the user may have configured their client without these features.
Also, certain e-mail clients (e.g., Lotus Notes) have problems with long URLs.
+ \warning A return value of \c true indicates that the application has successfully requested
+ the operating system to open the URL in an external application. The external application may
+ still fail to launch or fail to open the requested URL. This result will not be reported back
+ to the application.
+
\sa setUrlHandler()
*/
bool QDesktopServices::openUrl(const QUrl &url)
@@ -185,7 +190,12 @@ bool QDesktopServices::openUrl(const QUrl &url)
}
if (!url.isValid())
return false;
- QPlatformServices *platformServices = QGuiApplicationPrivate::platformIntegration()->services();
+
+ QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration();
+ if (!platformIntegration)
+ return false;
+
+ QPlatformServices *platformServices = platformIntegration->services();
if (!platformServices) {
qWarning("%s: The platform plugin does not support services.", Q_FUNC_INFO);
return false;
diff --git a/src/gui/util/qlayoutpolicy.cpp b/src/gui/util/qlayoutpolicy.cpp
index f1900122ac..0a050184a6 100644
--- a/src/gui/util/qlayoutpolicy.cpp
+++ b/src/gui/util/qlayoutpolicy.cpp
@@ -119,9 +119,10 @@ QDataStream &operator>>(QDataStream &stream, QLayoutPolicy &policy)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QLayoutPolicy &p)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QLayoutPolicy(horizontalPolicy = " << p.horizontalPolicy()
<< ", verticalPolicy = " << p.verticalPolicy() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp
index be1adfbee1..6b6265db32 100644
--- a/src/network/access/qnetworkreplyimpl.cpp
+++ b/src/network/access/qnetworkreplyimpl.cpp
@@ -404,19 +404,11 @@ void QNetworkReplyImplPrivate::setup(QNetworkAccessManager::Operation op, const
} else {
// for HTTP, we want to send out the request as fast as possible to the network, without
// invoking methods in a QueuedConnection
-#ifndef QT_NO_HTTP
- if (backend && backend->isSynchronous()) {
- _q_startOperation();
- } else {
- QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
- }
-#else
if (backend && backend->isSynchronous())
_q_startOperation();
else
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
-#endif // QT_NO_HTTP
- }
+ }
}
void QNetworkReplyImplPrivate::backendNotify(InternalNotifications notification)
@@ -1115,11 +1107,7 @@ bool QNetworkReplyImplPrivate::migrateBackend()
backend->setResumeOffset(bytesDownloaded);
}
-#ifndef QT_NO_HTTP
- QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
-#else
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
-#endif // QT_NO_HTTP
return true;
}
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index f94b1edbff..baecf27162 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -1265,8 +1265,8 @@ bool QAbstractSocketPrivate::readFromSocket()
bytesToRead = readBufferMaxSize - buffer.size();
#if defined(QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocketPrivate::readFromSocket() about to read %d bytes",
- int(bytesToRead));
+ qDebug("QAbstractSocketPrivate::readFromSocket() about to read %lld bytes",
+ bytesToRead);
#endif
// Read from the socket, store data in the read buffer.
@@ -1277,10 +1277,10 @@ bool QAbstractSocketPrivate::readFromSocket()
buffer.chop(bytesToRead);
return true;
}
- buffer.chop(int(bytesToRead - (readBytes < 0 ? qint64(0) : readBytes)));
+ buffer.chop(bytesToRead - (readBytes < 0 ? qint64(0) : readBytes));
#if defined(QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocketPrivate::readFromSocket() got %d bytes, buffer size = %d",
- int(readBytes), buffer.size());
+ qDebug("QAbstractSocketPrivate::readFromSocket() got %lld bytes, buffer size = %lld",
+ readBytes, buffer.size());
#endif
if (!socketEngine->isValid()) {
@@ -1726,7 +1726,7 @@ qint64 QAbstractSocket::bytesAvailable() const
available += d->socketEngine->bytesAvailable();
#if defined(QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocket::bytesAvailable() == %llu", available);
+ qDebug("QAbstractSocket::bytesAvailable() == %lld", available);
#endif
return available;
}
@@ -1805,8 +1805,8 @@ bool QAbstractSocket::canReadLine() const
{
bool hasLine = d_func()->buffer.canReadLine();
#if defined (QABSTRACTSOCKET_DEBUG)
- qDebug("QAbstractSocket::canReadLine() == %s, buffer size = %d, size = %d", hasLine ? "true" : "false",
- d_func()->buffer.size(), d_func()->buffer.size());
+ qDebug("QAbstractSocket::canReadLine() == %s, buffer size = %lld, size = %lld",
+ hasLine ? "true" : "false", d_func()->buffer.size(), d_func()->buffer.size());
#endif
return hasLine || QIODevice::canReadLine();
}
@@ -1979,20 +1979,6 @@ QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option)
return QVariant(ret);
}
-
-/*
- Returns the difference between msecs and elapsed. If msecs is -1,
- however, -1 is returned.
-*/
-static int qt_timeout_value(int msecs, int elapsed)
-{
- if (msecs == -1)
- return -1;
-
- int timeout = msecs - elapsed;
- return timeout < 0 ? 0 : timeout;
-}
-
/*!
Waits until the socket is connected, up to \a msecs
milliseconds. If the connection has been established, this
@@ -2070,7 +2056,7 @@ bool QAbstractSocket::waitForConnected(int msecs)
int attempt = 1;
#endif
while (state() == ConnectingState && (msecs == -1 || stopWatch.elapsed() < msecs)) {
- int timeout = qt_timeout_value(msecs, stopWatch.elapsed());
+ int timeout = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
if (msecs != -1 && timeout > QT_CONNECT_TIMEOUT)
timeout = QT_CONNECT_TIMEOUT;
#if defined (QABSTRACTSOCKET_DEBUG)
@@ -2149,7 +2135,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
bool readyToRead = false;
bool readyToWrite = false;
if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(),
- qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
d->socketError = d->socketEngine->error();
setErrorString(d->socketEngine->errorString());
#if defined (QABSTRACTSOCKET_DEBUG)
@@ -2172,7 +2158,7 @@ bool QAbstractSocket::waitForReadyRead(int msecs)
if (state() != ConnectedState)
return false;
- } while (msecs == -1 || qt_timeout_value(msecs, stopWatch.elapsed()) > 0);
+ } while (msecs == -1 || qt_subtract_from_timeout(msecs, stopWatch.elapsed()) > 0);
return false;
}
@@ -2221,7 +2207,7 @@ bool QAbstractSocket::waitForBytesWritten(int msecs)
bool readyToRead = false;
bool readyToWrite = false;
if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, true, !d->writeBuffer.isEmpty(),
- qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
d->socketError = d->socketEngine->error();
setErrorString(d->socketEngine->errorString());
#if defined (QABSTRACTSOCKET_DEBUG)
@@ -2303,7 +2289,7 @@ bool QAbstractSocket::waitForDisconnected(int msecs)
bool readyToWrite = false;
if (!d->socketEngine->waitForReadOrWrite(&readyToRead, &readyToWrite, state() == ConnectedState,
!d->writeBuffer.isEmpty(),
- qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
d->socketError = d->socketEngine->error();
setErrorString(d->socketEngine->errorString());
#if defined (QABSTRACTSOCKET_DEBUG)
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp
index 82ac435d52..23347ce08b 100644
--- a/src/network/socket/qhttpsocketengine.cpp
+++ b/src/network/socket/qhttpsocketengine.cpp
@@ -36,6 +36,7 @@
#include "qhostaddress.h"
#include "qurl.h"
#include "private/qhttpnetworkreply_p.h"
+#include "private/qiodevice_p.h"
#include "qelapsedtimer.h"
#include "qnetworkinterface.h"
@@ -330,19 +331,6 @@ bool QHttpSocketEngine::setOption(SocketOption option, int value)
return false;
}
-/*
- Returns the difference between msecs and elapsed. If msecs is -1,
- however, -1 is returned.
-*/
-static int qt_timeout_value(int msecs, int elapsed)
-{
- if (msecs == -1)
- return -1;
-
- int timeout = msecs - elapsed;
- return timeout < 0 ? 0 : timeout;
-}
-
bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut)
{
Q_D(const QHttpSocketEngine);
@@ -355,7 +343,7 @@ bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut)
// Wait for more data if nothing is available.
if (!d->socket->bytesAvailable()) {
- if (!d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ if (!d->socket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
if (d->socket->state() == QAbstractSocket::UnconnectedState)
return true;
setError(d->socket->error(), d->socket->errorString());
@@ -367,7 +355,7 @@ bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut)
// If we're not connected yet, wait until we are, or until an error
// occurs.
- while (d->state != Connected && d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ while (d->state != Connected && d->socket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
// Loop while the protocol handshake is taking place.
}
@@ -403,7 +391,7 @@ bool QHttpSocketEngine::waitForWrite(int msecs, bool *timedOut)
// If we're not connected yet, wait until we are, and until bytes have
// been received (i.e., the socket has connected, we have sent the
// greeting, and then received the response).
- while (d->state != Connected && d->socket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ while (d->state != Connected && d->socket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
// Loop while the protocol handshake is taking place.
}
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp
index d42a360dc8..5c615034fc 100644
--- a/src/network/socket/qnativesocketengine_winrt.cpp
+++ b/src/network/socket/qnativesocketengine_winrt.cpp
@@ -163,6 +163,29 @@ static AsyncStatus opStatus(const ComPtr<T> &op)
return status;
}
+static qint64 writeIOStream(ComPtr<IOutputStream> stream, const char *data, qint64 len)
+{
+ ComPtr<IBuffer> buffer;
+ HRESULT hr = g->bufferFactory->Create(len, &buffer);
+ Q_ASSERT_SUCCEEDED(hr);
+ hr = buffer->put_Length(len);
+ Q_ASSERT_SUCCEEDED(hr);
+ ComPtr<Windows::Storage::Streams::IBufferByteAccess> byteArrayAccess;
+ hr = buffer.As(&byteArrayAccess);
+ Q_ASSERT_SUCCEEDED(hr);
+ byte *bytes;
+ hr = byteArrayAccess->Buffer(&bytes);
+ Q_ASSERT_SUCCEEDED(hr);
+ memcpy(bytes, data, len);
+ ComPtr<IAsyncOperationWithProgress<UINT32, UINT32>> op;
+ hr = stream->WriteAsync(buffer.Get(), &op);
+ RETURN_IF_FAILED("Failed to write to stream", return -1);
+ UINT32 bytesWritten;
+ hr = QWinRTFunctions::await(op, &bytesWritten);
+ RETURN_IF_FAILED("Failed to write to stream", return -1);
+ return bytesWritten;
+}
+
QNativeSocketEngine::QNativeSocketEngine(QObject *parent)
: QAbstractSocketEngine(*new QNativeSocketEnginePrivate(), parent)
{
@@ -492,35 +515,12 @@ qint64 QNativeSocketEngine::write(const char *data, qint64 len)
hr = d->tcpSocket()->get_OutputStream(&stream);
else if (d->socketType == QAbstractSocket::UdpSocket)
hr = d->udpSocket()->get_OutputStream(&stream);
- if (FAILED(hr)) {
- qErrnoWarning(hr, "Failed to get output stream to socket.");
- return -1;
- }
-
- ComPtr<IBuffer> buffer;
- hr = g->bufferFactory->Create(len, &buffer);
- Q_ASSERT_SUCCEEDED(hr);
- hr = buffer->put_Length(len);
- Q_ASSERT_SUCCEEDED(hr);
- ComPtr<Windows::Storage::Streams::IBufferByteAccess> byteArrayAccess;
- hr = buffer.As(&byteArrayAccess);
- Q_ASSERT_SUCCEEDED(hr);
- byte *bytes;
- hr = byteArrayAccess->Buffer(&bytes);
- Q_ASSERT_SUCCEEDED(hr);
- memcpy(bytes, data, len);
- ComPtr<IAsyncOperationWithProgress<UINT32, UINT32>> op;
- hr = stream->WriteAsync(buffer.Get(), &op);
- RETURN_IF_FAILED("Failed to write to stream", return -1);
+ RETURN_IF_FAILED("Failed to get output stream to socket", return -1);
- UINT32 bytesWritten;
- hr = QWinRTFunctions::await(op, &bytesWritten);
- if (FAILED(hr)) {
+ qint64 bytesWritten = writeIOStream(stream, data, len);
+ if (bytesWritten < 0)
d->setError(QAbstractSocket::SocketAccessError, QNativeSocketEnginePrivate::AccessErrorString);
- return -1;
- }
-
- if (bytesWritten && d->notifyOnWrite)
+ else if (bytesWritten > 0 && d->notifyOnWrite)
emit writeReady();
return bytesWritten;
@@ -560,11 +560,10 @@ qint64 QNativeSocketEngine::writeDatagram(const char *data, qint64 len, const QH
ComPtr<IHostName> remoteHost;
ComPtr<IHostNameFactory> hostNameFactory;
- if (FAILED(GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Networking_HostName).Get(),
- &hostNameFactory))) {
- qWarning("QNativeSocketEnginePrivate::nativeSendDatagram: could not obtain hostname factory");
- return -1;
- }
+
+ HRESULT hr = GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Networking_HostName).Get(),
+ &hostNameFactory);
+ RETURN_IF_FAILED("Could not obtain hostname factory", return -1);
const QString addressString = addr.toString();
HStringReference hostNameRef(reinterpret_cast<LPCWSTR>(addressString.utf16()));
hostNameFactory->CreateHostName(hostNameRef.Get(), &remoteHost);
@@ -573,17 +572,13 @@ qint64 QNativeSocketEngine::writeDatagram(const char *data, qint64 len, const QH
ComPtr<IOutputStream> stream;
const QString portString = QString::number(port);
HStringReference portRef(reinterpret_cast<LPCWSTR>(portString.utf16()));
- if (FAILED(d->udpSocket()->GetOutputStreamAsync(remoteHost.Get(), portRef.Get(), &streamOperation)))
- return -1;
- HRESULT hr;
- while (hr = streamOperation->GetResults(&stream) == E_ILLEGAL_METHOD_CALL)
- QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
- ComPtr<IDataWriterFactory> dataWriterFactory;
- GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Storage_Streams_DataWriter).Get(), &dataWriterFactory);
- ComPtr<IDataWriter> writer;
- dataWriterFactory->CreateDataWriter(stream.Get(), &writer);
- writer->WriteBytes(len, (unsigned char *)data);
- return len;
+ hr = d->udpSocket()->GetOutputStreamAsync(remoteHost.Get(), portRef.Get(), &streamOperation);
+ RETURN_IF_FAILED("Failed to get output stream to socket", return -1);
+
+ hr = QWinRTFunctions::await(streamOperation, stream.GetAddressOf());
+ RETURN_IF_FAILED("Failed to get output stream to socket", return -1);
+
+ return writeIOStream(stream, data, len);
}
bool QNativeSocketEngine::hasPendingDatagrams() const
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index bdeee4195c..a6eafd2601 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -47,6 +47,7 @@
#include "qcoreapplication.h"
#include "qurl.h"
#include "qauthenticator.h"
+#include "private/qiodevice_p.h"
#include <qendian.h>
#include <qnetworkinterface.h>
@@ -269,19 +270,6 @@ static int qt_socks5_get_host_address_and_port(const QByteArray &buf, QHostAddre
return ret;
}
-/*
- Returns the difference between msecs and elapsed. If msecs is -1,
- however, -1 is returned.
-*/
-static int qt_timeout_value(int msecs, int elapsed)
-{
- if (msecs == -1)
- return -1;
-
- int timeout = msecs - elapsed;
- return timeout < 0 ? 0 : timeout;
-}
-
struct QSocks5Data
{
QTcpSocket *controlSocket;
@@ -1396,7 +1384,7 @@ bool QSocks5SocketEngine::bind(const QHostAddress &addr, quint16 port)
dummy.setProxy(QNetworkProxy::NoProxy);
if (!dummy.bind()
|| writeDatagram(0,0, d->data->controlSocket->localAddress(), dummy.localPort()) != 0
- || !dummy.waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))
+ || !dummy.waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))
|| dummy.readDatagram(0,0, &d->localAddress, &d->localPort) != 0) {
QSOCKS5_DEBUG << "udp actual address and port lookup failed";
setState(QAbstractSocket::UnconnectedState);
@@ -1484,7 +1472,7 @@ void QSocks5SocketEngine::close()
QElapsedTimer stopWatch;
stopWatch.start();
while (!d->data->controlSocket->bytesToWrite()) {
- if (!d->data->controlSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed())))
+ if (!d->data->controlSocket->waitForBytesWritten(qt_subtract_from_timeout(msecs, stopWatch.elapsed())))
break;
}
}
@@ -1740,7 +1728,7 @@ bool QSocks5SocketEnginePrivate::waitForConnected(int msecs, bool *timedOut)
stopWatch.start();
while (socks5State != wantedState) {
- if (!data->controlSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ if (!data->controlSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
if (data->controlSocket->state() == QAbstractSocket::UnconnectedState)
return true;
@@ -1774,7 +1762,7 @@ bool QSocks5SocketEngine::waitForRead(int msecs, bool *timedOut)
if (d->mode == QSocks5SocketEnginePrivate::ConnectMode ||
d->mode == QSocks5SocketEnginePrivate::BindMode) {
while (!d->readNotificationActivated) {
- if (!d->data->controlSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ if (!d->data->controlSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
if (d->data->controlSocket->state() == QAbstractSocket::UnconnectedState)
return true;
@@ -1787,7 +1775,7 @@ bool QSocks5SocketEngine::waitForRead(int msecs, bool *timedOut)
#ifndef QT_NO_UDPSOCKET
} else {
while (!d->readNotificationActivated) {
- if (!d->udpData->udpSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ if (!d->udpData->udpSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
setError(d->udpData->udpSocket->error(), d->udpData->udpSocket->errorString());
if (timedOut && d->udpData->udpSocket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
@@ -1824,11 +1812,11 @@ bool QSocks5SocketEngine::waitForWrite(int msecs, bool *timedOut)
// flush any bytes we may still have buffered in the time that we have left
if (d->data->controlSocket->bytesToWrite())
- d->data->controlSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed()));
+ d->data->controlSocket->waitForBytesWritten(qt_subtract_from_timeout(msecs, stopWatch.elapsed()));
while ((msecs == -1 || stopWatch.elapsed() < msecs)
&& d->data->controlSocket->state() == QAbstractSocket::ConnectedState
&& d->data->controlSocket->bytesToWrite() >= MaxWriteBufferSize)
- d->data->controlSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed()));
+ d->data->controlSocket->waitForBytesWritten(qt_subtract_from_timeout(msecs, stopWatch.elapsed()));
return d->data->controlSocket->bytesToWrite() < MaxWriteBufferSize;
}
diff --git a/src/network/socket/qtcpserver.cpp b/src/network/socket/qtcpserver.cpp
index b41d207947..50cf812491 100644
--- a/src/network/socket/qtcpserver.cpp
+++ b/src/network/socket/qtcpserver.cpp
@@ -160,6 +160,23 @@ QNetworkProxy QTcpServerPrivate::resolveProxy(const QHostAddress &address, quint
/*! \internal
*/
+void QTcpServerPrivate::configureCreatedSocket()
+{
+#if defined(Q_OS_UNIX)
+ // Under Unix, we want to be able to bind to the port, even if a socket on
+ // the same address-port is in TIME_WAIT. Under Windows this is possible
+ // anyway -- furthermore, the meaning of reusable on Windows is different:
+ // it means that you can use the same address-port for multiple listening
+ // sockets.
+ // Don't abort though if we can't set that option. For example the socks
+ // engine doesn't support that option, but that shouldn't prevent us from
+ // trying to bind/listen.
+ socketEngine->setOption(QAbstractSocketEngine::AddressReusable, 1);
+#endif
+}
+
+/*! \internal
+*/
void QTcpServerPrivate::readNotification()
{
Q_Q(QTcpServer);
@@ -275,17 +292,7 @@ bool QTcpServer::listen(const QHostAddress &address, quint16 port)
if (addr.protocol() == QAbstractSocket::AnyIPProtocol && proto == QAbstractSocket::IPv4Protocol)
addr = QHostAddress::AnyIPv4;
-#if defined(Q_OS_UNIX)
- // Under Unix, we want to be able to bind to the port, even if a socket on
- // the same address-port is in TIME_WAIT. Under Windows this is possible
- // anyway -- furthermore, the meaning of reusable on Windows is different:
- // it means that you can use the same address-port for multiple listening
- // sockets.
- // Don't abort though if we can't set that option. For example the socks
- // engine doesn't support that option, but that shouldn't prevent us from
- // trying to bind/listen.
- d->socketEngine->setOption(QAbstractSocketEngine::AddressReusable, 1);
-#endif
+ d->configureCreatedSocket();
if (!d->socketEngine->bind(addr, port)) {
d->serverSocketError = d->socketEngine->error();
diff --git a/src/network/socket/qtcpserver_p.h b/src/network/socket/qtcpserver_p.h
index 415a0e190a..47505e7e91 100644
--- a/src/network/socket/qtcpserver_p.h
+++ b/src/network/socket/qtcpserver_p.h
@@ -80,6 +80,8 @@ public:
QNetworkProxy resolveProxy(const QHostAddress &address, quint16 port);
#endif
+ virtual void configureCreatedSocket();
+
// from QAbstractSocketEngineReceiver
void readNotification() Q_DECL_OVERRIDE;
void closeNotification() Q_DECL_OVERRIDE { readNotification(); }
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index b1076ebd68..ea21f1c5ad 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -326,19 +326,6 @@
QT_BEGIN_NAMESPACE
-/*
- Returns the difference between msecs and elapsed. If msecs is -1,
- however, -1 is returned.
-*/
-static int qt_timeout_value(int msecs, int elapsed)
-{
- if (msecs == -1)
- return -1;
-
- int timeout = msecs - elapsed;
- return timeout < 0 ? 0 : timeout;
-}
-
class QSslSocketGlobalData
{
public:
@@ -1659,7 +1646,7 @@ bool QSslSocket::waitForEncrypted(int msecs)
startClientEncryption();
// Loop, waiting until the connection has been encrypted or an error
// occurs.
- if (!d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed())))
+ if (!d->plainSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed())))
return false;
}
return d->connectionEncrypted;
@@ -1703,7 +1690,7 @@ bool QSslSocket::waitForReadyRead(int msecs)
// test readyReadEmitted first because either operation above
// (waitForEncrypted or transmit) may have set it
while (!readyReadEmitted &&
- d->plainSocket->waitForReadyRead(qt_timeout_value(msecs, stopWatch.elapsed()))) {
+ d->plainSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
}
d->readyReadEmittedPointer = previousReadyReadEmittedPointer;
@@ -1734,7 +1721,7 @@ bool QSslSocket::waitForBytesWritten(int msecs)
d->transmit();
}
- return d->plainSocket->waitForBytesWritten(qt_timeout_value(msecs, stopWatch.elapsed()));
+ return d->plainSocket->waitForBytesWritten(qt_subtract_from_timeout(msecs, stopWatch.elapsed()));
}
/*!
@@ -1767,7 +1754,7 @@ bool QSslSocket::waitForDisconnected(int msecs)
if (!waitForEncrypted(msecs))
return false;
}
- bool retVal = d->plainSocket->waitForDisconnected(qt_timeout_value(msecs, stopWatch.elapsed()));
+ bool retVal = d->plainSocket->waitForDisconnected(qt_subtract_from_timeout(msecs, stopWatch.elapsed()));
if (!retVal) {
setSocketState(d->plainSocket->state());
setSocketError(d->plainSocket->error());
diff --git a/src/network/ssl/qsslsocket_mac.cpp b/src/network/ssl/qsslsocket_mac.cpp
index e833bb70c5..497cbf4c9b 100644
--- a/src/network/ssl/qsslsocket_mac.cpp
+++ b/src/network/ssl/qsslsocket_mac.cpp
@@ -383,25 +383,14 @@ void QSslSocketBackendPrivate::transmit()
if (connectionEncrypted) {
QVarLengthArray<char, 4096> data;
- while (plainSocket->bytesAvailable() > 0) {
+ while (true) {
size_t readBytes = 0;
data.resize(4096);
- if (shutdown) {
- // SSLRead(context, data.data(), data.size(), &readBytes) fails with errSSLClosedGraceful
- // if the session was closed (see disconnectFromHost).
- // SSLClose SSLRead fails and we'll stay in this loop forever.
- // At the moment we're never here (see the test '!context || shutdown' above) -
- // we read nothing from the socket as soon as SSL session closed.
- qCritical() << Q_FUNC_INFO << "read attempt after SSL session closed";
- size_t nBytes = plainSocket->bytesAvailable();
- _q_SSLRead(plainSocket, data.data(), &nBytes);
- } else {
- const OSStatus err = SSLRead(context, data.data(), data.size(), &readBytes);
- if (err != noErr && err != errSSLWouldBlock) {
- qWarning() << Q_FUNC_INFO << "SSLRead failed with:" << int(err);
- setError("SSL read failed", QAbstractSocket::SslInternalError);
- break;
- }
+ const OSStatus err = SSLRead(context, data.data(), data.size(), &readBytes);
+ if (err != noErr && err != errSSLWouldBlock) {
+ qWarning() << Q_FUNC_INFO << "SSLRead failed with:" << int(err);
+ setError("SSL read failed", QAbstractSocket::SslInternalError);
+ break;
}
if (readBytes) {
@@ -411,6 +400,9 @@ void QSslSocketBackendPrivate::transmit()
*readyReadEmittedPointer = true;
emit q->readyRead();
}
+
+ if (err == errSSLWouldBlock)
+ break;
}
}
}
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index e049f53fac..bd4c1fa94b 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1217,7 +1217,7 @@ void QGL2PaintEngineExPrivate::drawVertexArrays(const float *data, int *stops, i
GLenum primitive)
{
// Now setup the pointer to the vertex array:
- setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, (GLfloat*)data);
+ setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, data);
int previousStop = 0;
for (int i=0; i<stopCount; ++i) {
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 38643c50da..352b11b73d 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -1615,6 +1615,7 @@ QDebug operator<<(QDebug dbg, const QGLFormat &f)
{
const QGLFormatPrivate * const d = f.d;
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QGLFormat("
<< "options " << d->opts
<< ", plane " << d->pln
@@ -1632,7 +1633,7 @@ QDebug operator<<(QDebug dbg, const QGLFormat &f)
<< ", profile " << d->profile
<< ')';
- return dbg.space();
+ return dbg;
}
#endif
@@ -2312,7 +2313,7 @@ static void convertToGLFormatHelper(QImage &dst, const QImage &img, GLenum textu
qreal sy = target_height / qreal(img.height());
quint32 *dest = (quint32 *) dst.scanLine(0); // NB! avoid detach here
- uchar *srcPixels = (uchar *) img.scanLine(img.height() - 1);
+ const uchar *srcPixels = img.constScanLine(img.height() - 1);
int sbpl = img.bytesPerLine();
int dbpl = dst.bytesPerLine();
diff --git a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
index cacc9817de..73957eacfe 100644
--- a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
+++ b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp
@@ -87,26 +87,32 @@ uint QDBusMenuLayoutItem::populate(int id, int depth, const QStringList &propert
m_properties.insert(QLatin1String("children-display"), QLatin1String("submenu"));
Q_FOREACH (const QDBusPlatformMenu *menu, QDBusPlatformMenu::topLevelMenus()) {
if (menu)
- Q_FOREACH (const QDBusPlatformMenuItem *item, menu->items()) {
- QDBusMenuLayoutItem child;
- child.populate(item, depth - 1, propertyNames);
- m_children << child;
- }
+ populate(menu, depth, propertyNames);
}
- } else {
- // TODO insert menu properties (name-value pairs)
+ return 1; // revision
}
- QDBusPlatformMenu *menu = QDBusPlatformMenu::byId(id);
- if (depth != 0 && menu) {
- Q_FOREACH (QDBusPlatformMenuItem *item, menu->items()) {
- QDBusMenuLayoutItem child;
- child.populate(item, depth - 1, propertyNames);
- m_children << child;
- }
+
+ const QDBusPlatformMenu *menu = QDBusPlatformMenu::byId(id);
+ if (!menu) {
+ QDBusPlatformMenuItem *item = QDBusPlatformMenuItem::byId(id);
+ if (item)
+ menu = static_cast<const QDBusPlatformMenu *>(item->menu());
}
+ if (depth != 0 && menu)
+ populate(menu, depth, propertyNames);
if (menu)
return menu->revision();
- return 1;
+
+ return 1; // revision
+}
+
+void QDBusMenuLayoutItem::populate(const QDBusPlatformMenu *menu, int depth, const QStringList &propertyNames)
+{
+ Q_FOREACH (QDBusPlatformMenuItem *item, menu->items()) {
+ QDBusMenuLayoutItem child;
+ child.populate(item, depth - 1, propertyNames);
+ m_children << child;
+ }
}
void QDBusMenuLayoutItem::populate(const QDBusPlatformMenuItem *item, int depth, const QStringList &propertyNames)
@@ -116,7 +122,6 @@ void QDBusMenuLayoutItem::populate(const QDBusPlatformMenuItem *item, int depth,
m_id = item->dbusID();
QDBusMenuItem proxy(item);
m_properties = proxy.m_properties;
- // TODO populate m_children
}
const QDBusArgument &operator<<(QDBusArgument &arg, const QDBusMenuLayoutItem &item)
diff --git a/src/platformsupport/dbusmenu/qdbusmenutypes_p.h b/src/platformsupport/dbusmenu/qdbusmenutypes_p.h
index c42aef0b69..28d16b32d5 100644
--- a/src/platformsupport/dbusmenu/qdbusmenutypes_p.h
+++ b/src/platformsupport/dbusmenu/qdbusmenutypes_p.h
@@ -82,6 +82,7 @@ class QDBusMenuLayoutItem
{
public:
uint populate(int id, int depth, const QStringList &propertyNames);
+ void populate(const QDBusPlatformMenu *menu, int depth, const QStringList &propertyNames);
void populate(const QDBusPlatformMenuItem *item, int depth, const QStringList &propertyNames);
int m_id;
diff --git a/src/platformsupport/dbusmenu/qdbusplatformmenu.cpp b/src/platformsupport/dbusmenu/qdbusplatformmenu.cpp
index 581daf97ac..93c822cefb 100644
--- a/src/platformsupport/dbusmenu/qdbusplatformmenu.cpp
+++ b/src/platformsupport/dbusmenu/qdbusplatformmenu.cpp
@@ -43,6 +43,7 @@ Q_LOGGING_CATEGORY(qLcMenu, "qt.qpa.menu")
static int nextDBusID = 1;
QHash<int, QDBusPlatformMenu *> menusByID;
QHash<int, QDBusPlatformMenuItem *> menuItemsByID;
+QList<QDBusPlatformMenu *> QDBusPlatformMenu::m_topLevelMenus;
QDBusPlatformMenuItem::QDBusPlatformMenuItem(quintptr tag)
: m_tag(tag ? tag : reinterpret_cast<quintptr>(this)) // QMenu will overwrite this later
@@ -144,6 +145,8 @@ QDBusPlatformMenu::QDBusPlatformMenu(quintptr tag)
, m_revision(0)
{
menusByID.insert(m_dbusID, this);
+ // Assume it's top-level until we find out otherwise
+ m_topLevelMenus << this;
}
QDBusPlatformMenu::~QDBusPlatformMenu()
@@ -162,6 +165,9 @@ void QDBusPlatformMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMen
else
m_items.insert(idx, item);
m_itemsByTag.insert(item->tag(), item);
+ // If a menu is found as a submenu under an item, we know that it's not a top-level menu.
+ if (item->menu())
+ m_topLevelMenus.removeOne(const_cast<QDBusPlatformMenu *>(static_cast<const QDBusPlatformMenu *>(item->menu())));
}
void QDBusPlatformMenu::removeMenuItem(QPlatformMenuItem *menuItem)
@@ -188,12 +194,6 @@ QDBusPlatformMenu *QDBusPlatformMenu::byId(int id)
return menusByID[id];
}
-QList<QDBusPlatformMenu *> QDBusPlatformMenu::topLevelMenus()
-{
- // TODO just the top-level menus, not all menus
- return menusByID.values();
-}
-
void QDBusPlatformMenu::emitUpdated()
{
emit updated(++m_revision, m_dbusID);
diff --git a/src/platformsupport/dbusmenu/qdbusplatformmenu_p.h b/src/platformsupport/dbusmenu/qdbusplatformmenu_p.h
index c211a75419..2519533e32 100644
--- a/src/platformsupport/dbusmenu/qdbusplatformmenu_p.h
+++ b/src/platformsupport/dbusmenu/qdbusplatformmenu_p.h
@@ -133,6 +133,8 @@ public:
void setFont(const QFont &font) Q_DECL_OVERRIDE { Q_UNUSED(font); }
void setMenuType(MenuType type) Q_DECL_OVERRIDE { Q_UNUSED(type); }
+ int dbusID() const { return m_dbusID; }
+
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) Q_DECL_OVERRIDE
{
Q_UNUSED(parentWindow);
@@ -152,9 +154,9 @@ public:
bool operator==(const QDBusPlatformMenu& other) { return m_tag == other.m_tag; }
static QDBusPlatformMenu* byId(int id);
- static QList<QDBusPlatformMenu *> topLevelMenus();
+ static QList<QDBusPlatformMenu *> topLevelMenus() { return m_topLevelMenus; }
- uint revision() { return m_revision; }
+ uint revision() const { return m_revision; }
void emitUpdated();
@@ -173,6 +175,7 @@ private:
uint m_revision;
QHash<quintptr, QDBusPlatformMenuItem *> m_itemsByTag;
QList<QDBusPlatformMenuItem *> m_items;
+ static QList<QDBusPlatformMenu *> m_topLevelMenus;
};
QT_END_NAMESPACE
diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp
index 61849024da..fed8d219d9 100644
--- a/src/platformsupport/dbustray/qdbustrayicon.cpp
+++ b/src/platformsupport/dbustray/qdbustrayicon.cpp
@@ -115,12 +115,6 @@ void QDBusTrayIcon::cleanup()
m_registered = false;
}
-void QDBusTrayIcon::activate(int x, int y)
-{
- qCDebug(qLcTray) << x << y;
- setStatus(QStringLiteral("Active"));
-}
-
void QDBusTrayIcon::attentionTimerExpired()
{
m_messageTitle = QString();
@@ -191,9 +185,10 @@ void QDBusTrayIcon::updateToolTip(const QString &tooltip)
QPlatformMenu *QDBusTrayIcon::createMenu() const
{
qCDebug(qLcTray);
+ QDBusPlatformMenu *ret = new QDBusPlatformMenu();
if (!m_menu)
- const_cast<QDBusTrayIcon *>(this)->m_menu = new QDBusPlatformMenu();
- return m_menu;
+ const_cast<QDBusTrayIcon *>(this)->m_menu = ret;
+ return ret;
}
void QDBusTrayIcon::updateMenu(QPlatformMenu * menu)
@@ -212,11 +207,6 @@ void QDBusTrayIcon::updateMenu(QPlatformMenu * menu)
m_menu->emitUpdated();
}
-void QDBusTrayIcon::contextMenu(int x, int y)
-{
- qCDebug(qLcTray) << x << y;
-}
-
void QDBusTrayIcon::showMessage(const QString &title, const QString &msg, const QIcon &icon,
QPlatformSystemTrayIcon::MessageIcon iconType, int msecs)
{
diff --git a/src/platformsupport/dbustray/qdbustrayicon_p.h b/src/platformsupport/dbustray/qdbustrayicon_p.h
index 78dfae7c02..34a89c9018 100644
--- a/src/platformsupport/dbustray/qdbustrayicon_p.h
+++ b/src/platformsupport/dbustray/qdbustrayicon_p.h
@@ -113,10 +113,6 @@ public:
QDBusPlatformMenu *menu() { return m_menu; }
-public Q_SLOTS:
- void activate(int x, int y);
- void contextMenu(int x, int y);
-
signals:
void categoryChanged();
void statusChanged(QString arg);
diff --git a/src/platformsupport/dbustray/qstatusnotifieritemadaptor.cpp b/src/platformsupport/dbustray/qstatusnotifieritemadaptor.cpp
index 540e2f011d..36212e9b61 100644
--- a/src/platformsupport/dbustray/qstatusnotifieritemadaptor.cpp
+++ b/src/platformsupport/dbustray/qstatusnotifieritemadaptor.cpp
@@ -50,6 +50,7 @@
QT_BEGIN_NAMESPACE
Q_DECLARE_LOGGING_CATEGORY(qLcMenu)
+Q_DECLARE_LOGGING_CATEGORY(qLcTray)
QStatusNotifierItemAdaptor::QStatusNotifierItemAdaptor(QDBusTrayIcon *parent)
: QDBusAbstractAdaptor(parent), m_trayIcon(parent)
@@ -151,22 +152,26 @@ QXdgDBusToolTipStruct QStatusNotifierItemAdaptor::toolTip() const
void QStatusNotifierItemAdaptor::Activate(int x, int y)
{
- m_trayIcon->activate(x, y);
+ qCDebug(qLcTray) << x << y;
+ emit m_trayIcon->activated(QPlatformSystemTrayIcon::Trigger);
}
void QStatusNotifierItemAdaptor::ContextMenu(int x, int y)
{
- m_trayIcon->contextMenu(x, y);
+ qCDebug(qLcTray) << x << y;
+ emit m_trayIcon->activated(QPlatformSystemTrayIcon::Context);
}
-void QStatusNotifierItemAdaptor::Scroll(int, const QString &)
+void QStatusNotifierItemAdaptor::Scroll(int w, const QString &s)
{
+ qCDebug(qLcTray) << w << s;
// unsupported
}
-void QStatusNotifierItemAdaptor::SecondaryActivate(int, int)
+void QStatusNotifierItemAdaptor::SecondaryActivate(int x, int y)
{
- // unsupported
+ qCDebug(qLcTray) << x << y;
+ emit m_trayIcon->activated(QPlatformSystemTrayIcon::MiddleClick);
}
QT_END_NAMESPACE
diff --git a/src/platformsupport/fbconvenience/qfbbackingstore_p.h b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
index c725cbc6d7..1dc8127fed 100644
--- a/src/platformsupport/fbconvenience/qfbbackingstore_p.h
+++ b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
@@ -70,8 +70,8 @@ public:
void lock();
void unlock();
- void beginPaint(const QRegion &);
- void endPaint();
+ void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
+ void endPaint() Q_DECL_OVERRIDE;
protected:
friend class QFbWindow;
diff --git a/src/platformsupport/fbconvenience/qfbscreen_p.h b/src/platformsupport/fbconvenience/qfbscreen_p.h
index 17b2cab43d..133cdfe8a1 100644
--- a/src/platformsupport/fbconvenience/qfbscreen_p.h
+++ b/src/platformsupport/fbconvenience/qfbscreen_p.h
@@ -93,7 +93,7 @@ protected:
virtual QRegion doRedraw();
void initializeCompositor();
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
QFbWindow *windowForId(WId wid) const;
diff --git a/src/platformsupport/fontdatabases/basic/basic.pri b/src/platformsupport/fontdatabases/basic/basic.pri
index c09ea4eed5..d70b3b6a1a 100644
--- a/src/platformsupport/fontdatabases/basic/basic.pri
+++ b/src/platformsupport/fontdatabases/basic/basic.pri
@@ -10,9 +10,4 @@ SOURCES += \
CONFIG += opentype
-contains(QT_CONFIG, freetype) {
- include($$QT_SOURCE_TREE/src/3rdparty/freetype.pri)
-} else:contains(QT_CONFIG, system-freetype) {
- # pull in the proper freetype2 include directory
- include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
-}
+include($$QT_SOURCE_TREE/src/3rdparty/freetype_dependency.pri)
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index bd22a8fce5..112bb8e0a6 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -218,7 +218,30 @@ static const char *specialLanguages[] = {
"hmd", // Miao
"sa", // Sharada
"srb", // SoraSompeng
- "doi" // Takri
+ "doi", // Takri
+ "lez", // CaucasianAlbanian
+ "bsq", // BassaVah
+ "fr", // Duployan
+ "sq", // Elbasan
+ "sa", // Grantha
+ "hnj", // PahawhHmong
+ "sd", // Khojki
+ "lab", // LinearA
+ "hi", // Mahajani
+ "xmn", // Manichaean
+ "men", // MendeKikakui
+ "mr", // Modi
+ "mru", // Mro
+ "xna", // OldNorthArabian
+ "arc", // Nabataean
+ "arc", // Palmyrene
+ "ctd", // PauCinHau
+ "kv", // OldPermic
+ "pal", // PsalterPahlavi
+ "sa", // Siddham
+ "sd", // Khudawadi
+ "mai", // Tirhuta
+ "hoc" // WarangCiti
};
Q_STATIC_ASSERT(sizeof(specialLanguages) / sizeof(const char *) == QChar::ScriptCount);
diff --git a/src/platformsupport/input/libinput/qlibinputtouch.cpp b/src/platformsupport/input/libinput/qlibinputtouch.cpp
index 72cafb0ff7..c3eb8eac87 100644
--- a/src/platformsupport/input/libinput/qlibinputtouch.cpp
+++ b/src/platformsupport/input/libinput/qlibinputtouch.cpp
@@ -147,18 +147,22 @@ void QLibInputTouch::processTouchCancel(libinput_event_touch *e)
void QLibInputTouch::processTouchFrame(libinput_event_touch *e)
{
DeviceState *state = deviceState(e);
- if (state->m_touchDevice && !state->m_points.isEmpty()) {
- QWindowSystemInterface::handleTouchEvent(Q_NULLPTR, state->m_touchDevice, state->m_points,
- QGuiApplication::keyboardModifiers());
- for (int i = 0; i < state->m_points.count(); ++i) {
- QWindowSystemInterface::TouchPoint &tp(state->m_points[i]);
- if (tp.state == Qt::TouchPointReleased)
- state->m_points.removeAt(i--);
- else if (tp.state == Qt::TouchPointPressed)
- tp.state = Qt::TouchPointStationary;
- }
- } else {
+ if (!state->m_touchDevice) {
qWarning("TouchFrame without registered device");
+ return;
+ }
+ if (state->m_points.isEmpty())
+ return;
+
+ QWindowSystemInterface::handleTouchEvent(Q_NULLPTR, state->m_touchDevice, state->m_points,
+ QGuiApplication::keyboardModifiers());
+
+ for (int i = 0; i < state->m_points.count(); ++i) {
+ QWindowSystemInterface::TouchPoint &tp(state->m_points[i]);
+ if (tp.state == Qt::TouchPointReleased)
+ state->m_points.removeAt(i--);
+ else if (tp.state == Qt::TouchPointPressed)
+ tp.state = Qt::TouchPointStationary;
}
}
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
index 3029d42ca1..155e6970fa 100644
--- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp
+++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
@@ -67,8 +67,8 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, ConnmanMap &map)
}
QConnmanManagerInterface::QConnmanManagerInterface( QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
CONNMAN_MANAGER_INTERFACE,
QDBusConnection::systemBus(), parent)
{
@@ -82,23 +82,23 @@ QConnmanManagerInterface::QConnmanManagerInterface( QObject *parent)
QObject::connect(watcher,SIGNAL(finished(QDBusPendingCallWatcher*)),
this, SLOT(propertiesReply(QDBusPendingCallWatcher*)));
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
- QStringLiteral(CONNMAN_SERVICE_INTERFACE),
- QStringLiteral("PropertyChanged"),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("PropertyChanged"),
this,SLOT(changedProperty(QString,QDBusVariant)));
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
- QStringLiteral(CONNMAN_SERVICE_INTERFACE),
- QStringLiteral("TechnologyAdded"),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("TechnologyAdded"),
this,SLOT(technologyAdded(QDBusObjectPath,QVariantMap)));
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
- QStringLiteral(CONNMAN_SERVICE_INTERFACE),
- QStringLiteral("TechnologyRemoved"),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("TechnologyRemoved"),
this,SLOT(technologyRemoved(QDBusObjectPath)));
QList<QVariant> argumentList2;
@@ -152,10 +152,10 @@ void QConnmanManagerInterface::connectNotify(const QMetaMethod &signal)
{
static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QConnmanManagerInterface::propertyChanged);
if (signal == propertyChangedSignal) {
- if (!connection().connect(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
- QStringLiteral(CONNMAN_MANAGER_INTERFACE),
- QStringLiteral("PropertyChanged"),
+ if (!connection().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
this,SIGNAL(propertyChanged(QString,QDBusVariant)))) {
qWarning() << "PropertyChanged not connected";
}
@@ -163,10 +163,10 @@ void QConnmanManagerInterface::connectNotify(const QMetaMethod &signal)
static const QMetaMethod servicesChangedSignal = QMetaMethod::fromSignal(&QConnmanManagerInterface::servicesChanged);
if (signal == servicesChangedSignal) {
- if (!connection().connect(QStringLiteral(CONNMAN_SERVICE),
- QStringLiteral(CONNMAN_MANAGER_PATH),
- QStringLiteral(CONNMAN_MANAGER_INTERFACE),
- QStringLiteral("ServicesChanged"),
+ if (!connection().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_MANAGER_INTERFACE),
+ QLatin1String("ServicesChanged"),
this,SLOT(onServicesChanged(ConnmanMapList, QList<QDBusObjectPath>)))) {
qWarning() << "servicesChanged not connected";
}
@@ -275,7 +275,7 @@ void QConnmanManagerInterface::technologyRemoved(const QDBusObjectPath &path)
}
QConnmanServiceInterface::QConnmanServiceInterface(const QString &dbusPathName,QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(CONNMAN_SERVICE),
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
dbusPathName,
CONNMAN_SERVICE_INTERFACE,
QDBusConnection::systemBus(), parent)
@@ -288,10 +288,10 @@ QConnmanServiceInterface::QConnmanServiceInterface(const QString &dbusPathName,Q
QObject::connect(watcher,SIGNAL(finished(QDBusPendingCallWatcher*)),
this, SLOT(propertiesReply(QDBusPendingCallWatcher*)));
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
path(),
- QStringLiteral(CONNMAN_SERVICE_INTERFACE),
- QStringLiteral("PropertyChanged"),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("PropertyChanged"),
this,SLOT(changedProperty(QString,QDBusVariant)));
}
@@ -327,10 +327,10 @@ void QConnmanServiceInterface::connectNotify(const QMetaMethod &signal)
{
static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QConnmanServiceInterface::propertyChanged);
if (signal == propertyChangedSignal) {
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
path(),
- QStringLiteral(CONNMAN_SERVICE_INTERFACE),
- QStringLiteral("PropertyChanged"),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("PropertyChanged"),
this,SIGNAL(propertyChanged(QString,QDBusVariant)));
}
}
@@ -440,7 +440,7 @@ QStringList QConnmanServiceInterface::services()
//////////////////////////
QConnmanTechnologyInterface::QConnmanTechnologyInterface(const QString &dbusPathName,QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(CONNMAN_SERVICE),
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
dbusPathName,
CONNMAN_TECHNOLOGY_INTERFACE,
QDBusConnection::systemBus(), parent)
@@ -455,10 +455,10 @@ void QConnmanTechnologyInterface::connectNotify(const QMetaMethod &signal)
{
static const QMetaMethod propertyChangedSignal = QMetaMethod::fromSignal(&QConnmanTechnologyInterface::propertyChanged);
if (signal == propertyChangedSignal) {
- QDBusConnection::systemBus().connect(QStringLiteral(CONNMAN_SERVICE),
+ QDBusConnection::systemBus().connect(QLatin1String(CONNMAN_SERVICE),
path(),
- QStringLiteral(CONNMAN_TECHNOLOGY_INTERFACE),
- QStringLiteral("PropertyChanged"),
+ QLatin1String(CONNMAN_TECHNOLOGY_INTERFACE),
+ QLatin1String("PropertyChanged"),
this,SIGNAL(propertyChanged(QString,QDBusVariant)));
}
}
diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
index 87678bd76d..6e427544fa 100644
--- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
+++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
@@ -67,23 +67,23 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, ObjectPathPropert
QT_BEGIN_NAMESPACE
QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(OFONO_SERVICE),
- QStringLiteral(OFONO_MANAGER_PATH),
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
OFONO_MANAGER_INTERFACE,
QDBusConnection::systemBus(), parent)
{
qDBusRegisterMetaType<ObjectPathProperties>();
qDBusRegisterMetaType<PathPropertiesList>();
- QDBusConnection::systemBus().connect(QStringLiteral(OFONO_SERVICE),
- QStringLiteral(OFONO_MANAGER_PATH),
- QStringLiteral(OFONO_MANAGER_INTERFACE),
- QStringLiteral("ModemAdded"),
+ QDBusConnection::systemBus().connect(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
+ QLatin1String(OFONO_MANAGER_INTERFACE),
+ QLatin1String("ModemAdded"),
this,SLOT(modemAdded(QDBusObjectPath, QVariantMap)));
- QDBusConnection::systemBus().connect(QStringLiteral(OFONO_SERVICE),
- QStringLiteral(OFONO_MANAGER_PATH),
- QStringLiteral(OFONO_MANAGER_INTERFACE),
- QStringLiteral("ModemRemoved"),
+ QDBusConnection::systemBus().connect(QLatin1String(OFONO_SERVICE),
+ QLatin1String(OFONO_MANAGER_PATH),
+ QLatin1String(OFONO_MANAGER_INTERFACE),
+ QLatin1String("ModemRemoved"),
this,SLOT(modemRemoved(QDBusObjectPath)));
}
@@ -137,15 +137,15 @@ void QOfonoManagerInterface::modemRemoved(const QDBusObjectPath &path)
QOfonoModemInterface::QOfonoModemInterface(const QString &dbusPathName, QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(OFONO_SERVICE),
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
dbusPathName,
OFONO_MODEM_INTERFACE,
QDBusConnection::systemBus(), parent)
{
- QDBusConnection::systemBus().connect(QStringLiteral(OFONO_SERVICE),
+ QDBusConnection::systemBus().connect(QLatin1String(OFONO_SERVICE),
path(),
OFONO_MODEM_INTERFACE,
- QStringLiteral("PropertyChanged"),
+ QLatin1String("PropertyChanged"),
this,SLOT(propertyChanged(QString,QDBusVariant)));
}
@@ -199,7 +199,7 @@ QVariant QOfonoModemInterface::getProperty(const QString &property)
QOfonoNetworkRegistrationInterface::QOfonoNetworkRegistrationInterface(const QString &dbusPathName, QObject *parent)
- : QDBusAbstractInterface(QStringLiteral(OFONO_SERVICE),
+ : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
dbusPathName,
OFONO_NETWORK_REGISTRATION_INTERFACE,
QDBusConnection::systemBus(), parent)
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
index 69d7f728b8..7956705789 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h
@@ -497,7 +497,6 @@ public:
QObject *parent = 0)
: QDBusAbstractInterface(service, path, interface.toLatin1().data(), connection, parent)
{}
- ~PropertiesDBusInterface() = default;
};
QT_END_NAMESPACE
diff --git a/src/plugins/imageformats/ico/qicohandler.cpp b/src/plugins/imageformats/ico/qicohandler.cpp
index ab03bfeb04..4cb5e22bf7 100644
--- a/src/plugins/imageformats/ico/qicohandler.cpp
+++ b/src/plugins/imageformats/ico/qicohandler.cpp
@@ -567,7 +567,7 @@ QImage ICOReader::iconAt(int index)
QImage::Format format = QImage::Format_ARGB32;
if (icoAttrib.nbits == 24)
format = QImage::Format_RGB32;
- else if (icoAttrib.ncolors == 2)
+ else if (icoAttrib.ncolors == 2 && icoAttrib.depth == 1)
format = QImage::Format_Mono;
else if (icoAttrib.ncolors > 0)
format = QImage::Format_Indexed8;
diff --git a/src/plugins/platforminputcontexts/compose/compose.pro b/src/plugins/platforminputcontexts/compose/compose.pro
index a9da36c473..a4b5280e64 100644
--- a/src/plugins/platforminputcontexts/compose/compose.pro
+++ b/src/plugins/platforminputcontexts/compose/compose.pro
@@ -5,7 +5,7 @@ PLUGIN_EXTENDS = -
PLUGIN_CLASS_NAME = QComposePlatformInputContextPlugin
load(qt_plugin)
-QT += gui-private
+QT += core-private gui-private
DEFINES += X11_PREFIX='\\"$$QMAKE_X11_PREFIX\\"'
diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
index 4784a6e828..dca5fe871e 100644
--- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
+++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
@@ -36,8 +36,12 @@
#include <QtCore/QByteArray>
#include <QtCore/QTextCodec>
#include <QtCore/QDebug>
+#include <QtCore/QDir>
#include <QtCore/QStringList>
#include <QtCore/QString>
+#include <QtCore/QSaveFile>
+#include <QtCore/QStandardPaths>
+#include <private/qcore_unix_p.h>
#include <algorithm>
@@ -48,12 +52,191 @@
#include <strings.h> // strncasecmp
#include <clocale> // LC_CTYPE
+static const quint32 SupportedCacheVersion = 1;
+
+/*
+ In short on how and why the "Compose" file is cached:
+
+ The "Compose" file is large, for en_US it's likely located at:
+ /usr/share/X11/locale/en_US.UTF-8/Compose
+ and it has about 6000 string lines.
+ Q(Gui)Applications parse this file each time they're created. On modern CPUs
+ it incurs a 4-10 ms startup penalty of each Qt gui app, on older CPUs -
+ tens of ms or more.
+ Since the "Compose" file (almost) never changes using a pre-parsed
+ cache file instead of the "Compose" file is a good idea to improve Qt5
+ application startup time by about 5+ ms (or tens of ms on older CPUs).
+
+ The cache file contains the contents of the QComposeCacheFileHeader struct at the
+ beginning followed by the pre-parsed contents of the "Compose" file.
+
+ struct QComposeCacheFileHeader stores
+ (a) The cache version - in the unlikely event that some day one might need
+ to break compatibility.
+ (b) The (cache) file size.
+ (c) The lastModified field tracks if anything changed since the last time
+ the cache file was saved.
+ If anything did change then we read the compose file and save (cache) it
+ in binary/pre-parsed format, which should happen extremely rarely if at all.
+*/
+
+struct QComposeCacheFileHeader
+{
+ quint32 cacheVersion;
+ // The compiler will add 4 padding bytes anyway.
+ // Reserve them explicitly to possibly use in the future.
+ quint32 reserved;
+ quint64 fileSize;
+ qint64 lastModified;
+};
+
+// localHostName() copied from qtbase/src/corelib/io/qlockfile_unix.cpp
+static QByteArray localHostName()
+{
+ QByteArray hostName(512, Qt::Uninitialized);
+ if (gethostname(hostName.data(), hostName.size()) == -1)
+ return QByteArray();
+ hostName.truncate(strlen(hostName.data()));
+ return hostName;
+}
+
+/*
+ Reads metadata about the Compose file. Later used to determine if the
+ compose cache should be updated. The fileSize field will be zero on failure.
+*/
+static QComposeCacheFileHeader readFileMetadata(const QString &path)
+{
+ QComposeCacheFileHeader info;
+ info.reserved = 0;
+ info.fileSize = 0;
+ const QByteArray pathBytes = QFile::encodeName(path);
+ QT_STATBUF st;
+ if (QT_STAT(pathBytes.data(), &st) != 0)
+ return info;
+ info.lastModified = st.st_mtime;
+ info.fileSize = st.st_size;
+ return info;
+}
+
+static const QString getCacheFilePath()
+{
+ QFile machineIdFile("/var/lib/dbus/machine-id");
+ QString machineId;
+ if (machineIdFile.exists()) {
+ if (machineIdFile.open(QIODevice::ReadOnly))
+ machineId = QString::fromLatin1(machineIdFile.readAll().trimmed());
+ }
+ if (machineId.isEmpty())
+ machineId = localHostName();
+ const QString dirPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation);
+
+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
+ return dirPath + QLatin1String("/qt_compose_cache_big_endian_") + machineId;
+ return dirPath + QLatin1String("/qt_compose_cache_little_endian_") + machineId;
+}
+
+// Returns empty vector on failure
+static QVector<QComposeTableElement> loadCache(const QComposeCacheFileHeader &composeInfo)
+{
+ QVector<QComposeTableElement> vec;
+ const QString cacheFilePath = getCacheFilePath();
+ QFile inputFile(cacheFilePath);
+
+ if (!inputFile.open(QIODevice::ReadOnly))
+ return vec;
+ QComposeCacheFileHeader cacheInfo;
+ // use a "buffer" variable to make the line after this one more readable.
+ char *buffer = reinterpret_cast<char*>(&cacheInfo);
+
+ if (inputFile.read(buffer, sizeof cacheInfo) != sizeof cacheInfo)
+ return vec;
+ if (cacheInfo.fileSize == 0)
+ return vec;
+ // using "!=" just in case someone replaced with a backup that existed before
+ if (cacheInfo.lastModified != composeInfo.lastModified)
+ return vec;
+ if (cacheInfo.cacheVersion != SupportedCacheVersion)
+ return vec;
+ const QByteArray pathBytes = QFile::encodeName(cacheFilePath);
+ QT_STATBUF st;
+ if (QT_STAT(pathBytes.data(), &st) != 0)
+ return vec;
+ const off_t fileSize = st.st_size;
+ if (fileSize > 1024 * 1024 * 5) {
+ // The cache file size is usually about 150KB, so if its size is over
+ // say 5MB then somebody inflated the file, abort.
+ return vec;
+ }
+ const off_t bufferSize = fileSize - (sizeof cacheInfo);
+ const size_t elemSize = sizeof (struct QComposeTableElement);
+ const int elemCount = bufferSize / elemSize;
+ const QByteArray ba = inputFile.read(bufferSize);
+ const char *data = ba.data();
+ // Since we know the number of the (many) elements and their size in
+ // advance calling vector.reserve(..) seems reasonable.
+ vec.reserve(elemCount);
+
+ for (int i = 0; i < elemCount; i++) {
+ const QComposeTableElement *elem =
+ reinterpret_cast<const QComposeTableElement*>(data + (i * elemSize));
+ vec.push_back(*elem);
+ }
+ return vec;
+}
+
+// Returns true on success, false otherwise.
+static bool saveCache(const QComposeCacheFileHeader &info, const QVector<QComposeTableElement> &vec)
+{
+ const QString filePath = getCacheFilePath();
+ QSaveFile outputFile(filePath);
+
+ if (!outputFile.open(QIODevice::WriteOnly))
+ return false;
+ const char *data = reinterpret_cast<const char*>(&info);
+
+ if (outputFile.write(data, sizeof info) != sizeof info)
+ return false;
+ data = reinterpret_cast<const char*>(vec.constData());
+ const qint64 size = vec.size() * (sizeof (struct QComposeTableElement));
+
+ if (outputFile.write(data, size) != size)
+ return false;
+ return outputFile.commit();
+}
+
TableGenerator::TableGenerator() : m_state(NoErrors),
m_systemComposeDir(QString())
{
initPossibleLocations();
- findComposeFile();
- orderComposeTable();
+ QString composeFilePath = findComposeFile();
+#ifdef DEBUG_GENERATOR
+// don't use cache when in debug mode.
+ if (!composeFilePath.isEmpty())
+ qDebug() << "Using Compose file from: " << composeFilePath;
+#else
+ QComposeCacheFileHeader fileInfo = readFileMetadata(composeFilePath);
+ if (fileInfo.fileSize != 0)
+ m_composeTable = loadCache(fileInfo);
+#endif
+ if (m_composeTable.isEmpty() && cleanState()) {
+ if (composeFilePath.isEmpty()) {
+ m_state = MissingComposeFile;
+ } else {
+ QFile composeFile(composeFilePath);
+ composeFile.open(QIODevice::ReadOnly);
+ parseComposeFile(&composeFile);
+ orderComposeTable();
+ if (m_composeTable.isEmpty()) {
+ m_state = EmptyTable;
+#ifndef DEBUG_GENERATOR
+// don't save cache when in debug mode
+ } else {
+ fileInfo.cacheVersion = SupportedCacheVersion;
+ saveCache(fileInfo, m_composeTable);
+#endif
+ }
+ }
+ }
#ifdef DEBUG_GENERATOR
printComposeTable();
#endif
@@ -76,53 +259,39 @@ void TableGenerator::initPossibleLocations()
m_possibleLocations.append(QStringLiteral(X11_PREFIX "/lib/X11/locale"));
}
-void TableGenerator::findComposeFile()
+QString TableGenerator::findComposeFile()
{
- bool found = false;
// check if XCOMPOSEFILE points to a Compose file
if (qEnvironmentVariableIsSet("XCOMPOSEFILE")) {
- QString composeFile(qgetenv("XCOMPOSEFILE"));
- if (composeFile.endsWith(QLatin1String("Compose")))
- found = processFile(composeFile);
+ QString path(qgetenv("XCOMPOSEFILE"));
+ if (path.endsWith(QLatin1String("Compose")))
+ return path;
else
qWarning("Qt Warning: XCOMPOSEFILE doesn't point to a valid Compose file");
-#ifdef DEBUG_GENERATOR
- if (found)
- qDebug() << "Using Compose file from: " << composeFile;
-#endif
}
+
// check if user’s home directory has a file named .XCompose
- if (!found && cleanState()) {
- QString composeFile = qgetenv("HOME") + QStringLiteral("/.XCompose");
- if (QFile(composeFile).exists())
- found = processFile(composeFile);
-#ifdef DEBUG_GENERATOR
- if (found)
- qDebug() << "Using Compose file from: " << composeFile;
-#endif
+ if (cleanState()) {
+ QString path = qgetenv("HOME") + QStringLiteral("/.XCompose");
+ if (QFile(path).exists())
+ return path;
}
+
// check for the system provided compose files
- if (!found && cleanState()) {
+ if (cleanState()) {
QString table = composeTableForLocale();
if (cleanState()) {
if (table.isEmpty())
// no table mappings for the system's locale in the compose.dir
m_state = UnsupportedLocale;
- else
- found = processFile(systemComposeDir() + QLatin1Char('/') + table);
-#ifdef DEBUG_GENERATOR
- if (found)
- qDebug() << "Using Compose file from: " <<
- systemComposeDir() + QLatin1Char('/') + table;
-#endif
+ else {
+ QString path = QDir(systemComposeDir()).filePath(table);
+ if (QFile(path).exists())
+ return path;
+ }
}
}
-
- if (found && m_composeTable.isEmpty())
- m_state = EmptyTable;
-
- if (!found)
- m_state = MissingComposeFile;
+ return QString();
}
QString TableGenerator::composeTableForLocale()
diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
index 468da4cad1..8ad081bea5 100644
--- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
+++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
@@ -43,6 +43,8 @@
//#define DEBUG_GENERATOR
+/* Whenever QComposeTableElement gets modified supportedCacheVersion
+ from qtablegenerator.cpp must be bumped. */
struct QComposeTableElement {
uint keys[QT_KEYSEQUENCE_MAX_LEN];
uint value;
@@ -107,7 +109,7 @@ protected:
void parseKeySequence(char *line);
void parseIncludeInstruction(QString line);
- void findComposeFile();
+ QString findComposeFile();
bool findSystemComposeDir();
QString systemComposeDir();
QString composeTableForLocale();
diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
index d00435b0a3..673942b5d9 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
+++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
@@ -351,6 +351,8 @@ QDBusConnection *QIBusPlatformInputContextPrivate::createConnection()
int pos2 = display.indexOf('.', pos);
if (pos2 > 0)
displayNumber = display.mid(pos, pos2 - pos);
+ else
+ displayNumber = display.right(pos);
if (debug)
qDebug() << "host=" << host << "displayNumber" << displayNumber;
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index eb0af4341b..f794140d85 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -42,6 +42,7 @@
#include "androidjniinput.h"
#include "androidjniclipboard.h"
#include "androidjnimenu.h"
+#include "androiddeadlockprotector.h"
#include "qandroidplatformdialoghelpers.h"
#include "qandroidplatformintegration.h"
#include "qandroidassetsfileenginehandler.h"
@@ -610,11 +611,22 @@ static void updateApplicationState(JNIEnv */*env*/, jobject /*thiz*/, jint state
QtAndroidPrivate::handlePause();
if (state <= Qt::ApplicationInactive) {
+ // NOTE: sometimes we will receive two consecutive suspended notifications,
+ // In the second suspended notification, QWindowSystemInterface::flushWindowSystemEvents()
+ // will deadlock since the dispatcher has been stopped in the first suspended notification.
+ // To avoid the deadlock we simply return if we found the event dispatcher has been stopped.
+ if (QAndroidEventDispatcherStopper::instance()->stopped())
+ return;
+
// Don't send timers and sockets events anymore if we are going to hide all windows
QAndroidEventDispatcherStopper::instance()->goingToStop(true);
QCoreApplication::processEvents();
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationState(state));
- QWindowSystemInterface::flushWindowSystemEvents();
+ {
+ AndroidDeadlockProtector protector;
+ if (protector.acquire())
+ QWindowSystemInterface::flushWindowSystemEvents();
+ }
if (state == Qt::ApplicationSuspended)
QAndroidEventDispatcherStopper::instance()->stopAll();
} else {
diff --git a/src/plugins/platforms/android/qandroideventdispatcher.cpp b/src/plugins/platforms/android/qandroideventdispatcher.cpp
index b83d148ce8..aecea0d4e1 100644
--- a/src/plugins/platforms/android/qandroideventdispatcher.cpp
+++ b/src/plugins/platforms/android/qandroideventdispatcher.cpp
@@ -33,6 +33,7 @@
#include "qandroideventdispatcher.h"
#include "androidjnimain.h"
+#include "androiddeadlockprotector.h"
QAndroidEventDispatcher::QAndroidEventDispatcher(QObject *parent) :
QUnixEventDispatcherQPA(parent)
@@ -78,11 +79,13 @@ void QAndroidEventDispatcher::goingToStop(bool stop)
int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, timespec *timeout)
{
- if (m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) {
- m_semaphore.acquire();
- wakeUp();
+ {
+ AndroidDeadlockProtector protector;
+ if (protector.acquire() && m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) {
+ m_semaphore.acquire();
+ wakeUp();
+ }
}
-
return QUnixEventDispatcherQPA::select(nfds, readfds, writefds, exceptfds, timeout);
}
diff --git a/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp b/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp
index b43c714482..cc2a394d6e 100644
--- a/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp
+++ b/src/plugins/platforms/android/qandroidplatformdialoghelpers.cpp
@@ -97,11 +97,15 @@ bool QAndroidPlatformMessageDialogHelper::show(Qt::WindowFlags windowFlags
if (!str.isEmpty())
m_javaMessageDialog.callMethod<void>("setDetailedText", "(Ljava/lang/String;)V", QJNIObjectPrivate::fromString(str).object());
- for (int i = QPlatformDialogHelper::FirstButton; i < QPlatformDialogHelper::LastButton; i<<=1) {
- if ( opt->standardButtons() & i ) {
- const QString text = QGuiApplicationPrivate::platformTheme()->standardButtonText(i);
- m_javaMessageDialog.callMethod<void>("addButton", "(ILjava/lang/String;)V", i, QJNIObjectPrivate::fromString(text).object());
- }
+ // http://developer.android.com/design/building-blocks/dialogs.html
+ // dismissive action on the left, affirmative on the right
+ // There don't seem to be more fine-grained rules, but the OS X layout
+ // at least conforms to this one rule and makes the rest deterministic.
+ const int * currentLayout = buttonLayout(Qt::Horizontal, MacLayout);
+ while (*currentLayout != QPlatformDialogHelper::EOL) {
+ int role = (*currentLayout & ~QPlatformDialogHelper::Reverse);
+ addButtons(opt, static_cast<ButtonRole>(role));
+ ++currentLayout;
}
m_javaMessageDialog.callMethod<void>("show", "(J)V", jlong(static_cast<QObject*>(this)));
@@ -109,6 +113,17 @@ bool QAndroidPlatformMessageDialogHelper::show(Qt::WindowFlags windowFlags
return true;
}
+void QAndroidPlatformMessageDialogHelper::addButtons(QSharedPointer<QMessageDialogOptions> opt, ButtonRole role)
+{
+ for (int i = QPlatformDialogHelper::FirstButton; i < QPlatformDialogHelper::LastButton; i<<=1) {
+ StandardButton b = static_cast<StandardButton>(i);
+ if (buttonRole(b) == role && (opt->standardButtons() & i)) {
+ const QString text = QGuiApplicationPrivate::platformTheme()->standardButtonText(b);
+ m_javaMessageDialog.callMethod<void>("addButton", "(ILjava/lang/String;)V", i, QJNIObjectPrivate::fromString(text).object());
+ }
+ }
+}
+
void QAndroidPlatformMessageDialogHelper::hide()
{
m_javaMessageDialog.callMethod<void>("hide", "()V");
diff --git a/src/plugins/platforms/android/qandroidplatformdialoghelpers.h b/src/plugins/platforms/android/qandroidplatformdialoghelpers.h
index a70468000f..94f01a1835 100644
--- a/src/plugins/platforms/android/qandroidplatformdialoghelpers.h
+++ b/src/plugins/platforms/android/qandroidplatformdialoghelpers.h
@@ -57,6 +57,9 @@ public slots:
void dialogResult(int buttonID);
private:
+ void addButtons(QSharedPointer<QMessageDialogOptions> opt, ButtonRole role);
+
+private:
int m_buttonId;
QEventLoop m_loop;
QJNIObjectPrivate m_javaMessageDialog;
diff --git a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
index c951e6f938..9b60ab291c 100644
--- a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
+++ b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
@@ -51,10 +51,10 @@ void QAndroidPlatformFontDatabase::populateFontDatabase()
qPrintable(fontpath));
}
- QDir dir(fontpath, QLatin1String("*.ttf"));
- for (int i = 0; i < int(dir.count()); ++i) {
- const QByteArray file = QFile::encodeName(dir.absoluteFilePath(dir[i]));
-
+ QDir dir(fontpath);
+ QList<QFileInfo> entries = dir.entryInfoList(QStringList() << QStringLiteral("*.ttf") << QStringLiteral("*.otf"), QDir::Files);
+ for (int i = 0; i < int(entries.count()); ++i) {
+ const QByteArray file = QFile::encodeName(entries.at(i).absoluteFilePath());
QSupportedWritingSystems supportedWritingSystems;
QStringList families = addTTFile(QByteArray(), file, &supportedWritingSystems);
diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
index 2d6585b891..ec80bf0f8c 100644
--- a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
@@ -106,7 +106,6 @@ void QAndroidPlatformForeignWindow::setVisible(bool visible)
void QAndroidPlatformForeignWindow::applicationStateChanged(Qt::ApplicationState state)
{
if (state <= Qt::ApplicationHidden
- && QtAndroid::blockEventLoopsWhenSuspended()
&& m_surfaceId != -1) {
QtAndroid::destroySurface(m_surfaceId);
m_surfaceId = -1;
diff --git a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
index 02ce082a65..57d3bfaf22 100644
--- a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
@@ -156,7 +156,7 @@ bool QAndroidPlatformOpenGLWindow::checkNativeSurface(EGLConfig config)
void QAndroidPlatformOpenGLWindow::applicationStateChanged(Qt::ApplicationState state)
{
QAndroidPlatformWindow::applicationStateChanged(state);
- if (state <= Qt::ApplicationHidden && QtAndroid::blockEventLoopsWhenSuspended()) {
+ if (state <= Qt::ApplicationHidden) {
lockSurface();
if (m_nativeSurfaceId != -1) {
QtAndroid::destroySurface(m_nativeSurfaceId);
diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp
index 220b23df8e..76c0bfa75d 100644
--- a/src/plugins/platforms/android/qandroidplatformscreen.cpp
+++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp
@@ -269,7 +269,7 @@ void QAndroidPlatformScreen::applicationStateChanged(Qt::ApplicationState state)
foreach (QAndroidPlatformWindow *w, m_windowStack)
w->applicationStateChanged(state);
- if (state <= Qt::ApplicationHidden && QtAndroid::blockEventLoopsWhenSuspended()) {
+ if (state <= Qt::ApplicationHidden) {
lockSurface();
QtAndroid::destroySurface(m_id);
m_id = -1;
diff --git a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h
index 04e51d5392..abaaba91a5 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h
+++ b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.h
@@ -100,6 +100,7 @@
- (void)setReflectionDelegate:(NSObject <NSApplicationDelegate> *)oldDelegate;
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
- (void) removeAppleEventHandlers;
+- (bool) inLaunch;
@end
QT_NAMESPACE_ALIAS_OBJC_CLASS(QCocoaApplicationDelegate);
diff --git a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
index f3a0216870..67d9de859f 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
+++ b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
@@ -284,6 +284,11 @@ QT_END_NAMESPACE
[eventManager removeEventHandlerForEventClass:kInternetEventClass andEventID:kAEGetURL];
}
+- (bool) inLaunch
+{
+ return inLaunch;
+}
+
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
Q_UNUSED(aNotification);
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm
index 867526ff52..09a4c95469 100644
--- a/src/plugins/platforms/cocoa/qcocoamenu.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenu.mm
@@ -37,6 +37,7 @@
#include "qcocoaautoreleasepool.h"
#include <QtCore/QtDebug>
+#include <QtCore/qmetaobject.h>
#include <QtCore/private/qthread_p.h>
#include <QtGui/private/qguiapplication_p.h>
#include "qcocoaapplication.h"
@@ -124,7 +125,8 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QCocoaMenuDelegate);
QCocoaMenuItem *cocoaItem = reinterpret_cast<QCocoaMenuItem *>([item tag]);
QScopedLoopLevelCounter loopLevelCounter(QGuiApplicationPrivate::instance()->threadData);
QGuiApplicationPrivate::modifier_buttons = [QNSView convertKeyModifiers:[NSEvent modifierFlags]];
- cocoaItem->activated();
+ static QMetaMethod activatedSignal = QMetaMethod::fromSignal(&QCocoaMenuItem::activated);
+ activatedSignal.invoke(cocoaItem, Qt::QueuedConnection);
}
- (BOOL)validateMenuItem:(NSMenuItem*)menuItem
diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm
index 764a01370d..7c902a0e53 100644
--- a/src/plugins/platforms/cocoa/qcocoamenubar.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm
@@ -38,6 +38,7 @@
#include "qcocoamenuloader.h"
#include "qcocoaapplication.h" // for custom application category
#include "qcocoaautoreleasepool.h"
+#include "qcocoaapplicationdelegate.h"
#include <QtGui/QGuiApplication>
#include <QtCore/QDebug>
@@ -265,8 +266,21 @@ void QCocoaMenuBar::updateMenuBarImmediately()
QCocoaWindow *cw = findWindowForMenubar();
QWindow *win = cw ? cw->window() : 0;
- if (win && (win->flags() & Qt::Popup) == Qt::Popup)
- return; // context menus, comboboxes, etc. don't need to update the menubar
+ if (win && (win->flags() & Qt::Popup) == Qt::Popup) {
+ // context menus, comboboxes, etc. don't need to update the menubar,
+ // but if an application has only Qt::Tool window(s) on start,
+ // we still have to update the menubar.
+ if ((win->flags() & Qt::WindowType_Mask) != Qt::Tool)
+ return;
+ typedef QT_MANGLE_NAMESPACE(QCocoaApplicationDelegate) AppDelegate;
+ NSApplication *app = [NSApplication sharedApplication];
+ if (![app.delegate isKindOfClass:[AppDelegate class]])
+ return;
+ // We apply this logic _only_ during the startup.
+ AppDelegate *appDelegate = app.delegate;
+ if (!appDelegate.inLaunch)
+ return;
+ }
if (cw && cw->menubar())
mb = cw->menubar();
diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
index 000a47c7b4..f50f552623 100755
--- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
+++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
@@ -94,7 +94,6 @@ QT_USE_NAMESPACE
QCocoaSystemTrayIcon *systray;
NSStatusItem *item;
QCocoaMenu *menu;
- bool menuVisible;
QIcon icon;
QT_MANGLE_NAMESPACE(QNSImageView) *imageCell;
}
@@ -194,8 +193,6 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
m_sys->item->icon = icon;
- const bool menuVisible = m_sys->item->menu && m_sys->item->menuVisible;
-
// The reccomended maximum title bar icon height is 18 points
// (device independent pixels). The menu height on past and
// current OS X versions is 22 points. Provide some future-proofing
@@ -210,9 +207,8 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
// devicePixelRatio for the "best" screen on the system.
qreal devicePixelRatio = qApp->devicePixelRatio();
const int maxPixmapHeight = maxImageHeight * devicePixelRatio;
- const QIcon::Mode mode = menuVisible ? QIcon::Selected : QIcon::Normal;
QSize selectedSize;
- Q_FOREACH (const QSize& size, sortByHeight(icon.availableSizes(mode))) {
+ Q_FOREACH (const QSize& size, sortByHeight(icon.availableSizes())) {
// Select a pixmap based on the height. We want the largest pixmap
// with a height smaller or equal to maxPixmapHeight. The pixmap
// may rectangular; assume it has a reasonable size. If there is
@@ -226,7 +222,11 @@ void QCocoaSystemTrayIcon::updateIcon(const QIcon &icon)
}
}
- QPixmap pixmap = icon.pixmap(selectedSize, mode);
+ // Handle SVG icons, which do not return anything for availableSizes().
+ if (!selectedSize.isValid())
+ selectedSize = icon.actualSize(QSize(maxPixmapHeight, maxPixmapHeight));
+
+ QPixmap pixmap = icon.pixmap(selectedSize);
// Draw a low-resolution icon if there is not enough pixels for a retina
// icon. This prevents showing a small icon on retina displays.
@@ -373,9 +373,6 @@ QT_END_NAMESPACE
Q_UNUSED(notification);
down = NO;
- parent->systray->updateIcon(parent->icon);
- parent->menuVisible = false;
-
[self setNeedsDisplay:YES];
}
@@ -385,8 +382,6 @@ QT_END_NAMESPACE
int clickCount = [mouseEvent clickCount];
[self setNeedsDisplay:YES];
- parent->systray->updateIcon(parent->icon);
-
if (clickCount == 2) {
[self menuTrackingDone:nil];
[parent doubleClickSelector:self];
@@ -442,7 +437,6 @@ QT_END_NAMESPACE
if (self) {
item = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
menu = 0;
- menuVisible = false;
systray = sys;
imageCell = [[QNSImageView alloc] initWithParent:self];
[item setView: imageCell];
@@ -486,7 +480,6 @@ QT_END_NAMESPACE
selector:@selector(menuTrackingDone:)
name:NSMenuDidEndTrackingNotification
object:m];
- menuVisible = true;
[item popUpStatusItemMenu: m];
}
}
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 14defbd041..82b032e7d0 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -74,31 +74,6 @@ static bool isMouseEvent(NSEvent *ev)
}
}
-static void selectNextKeyWindow(NSWindow *currentKeyWindow)
-{
- if (!currentKeyWindow)
- return;
-
- const QCocoaAutoReleasePool pool;
-
- if ([[NSApplication sharedApplication] keyWindow] != currentKeyWindow)
- return;//currentKeyWindow is not a key window actually.
-
- NSArray *const windows = [[NSApplication sharedApplication] windows];
- bool startLookup = false;
- for (NSWindow *candidate in [windows reverseObjectEnumerator]) {
- if (!startLookup) {
- if (candidate == currentKeyWindow)
- startLookup = true;
- } else {
- if ([candidate isVisible] && [candidate canBecomeKeyWindow]) {
- [candidate makeKeyWindow];
- break;
- }
- }
- }
-}
-
@implementation QNSWindowHelper
@synthesize window = _window;
@@ -608,9 +583,6 @@ void QCocoaWindow::hide(bool becauseOfAncestor)
foreach (QCocoaWindow *childWindow, m_childWindows)
childWindow->hide(true);
- if (window()->transientParent() && m_nsWindow == [[NSApplication sharedApplication] keyWindow])
- selectNextKeyWindow(m_nsWindow); // Otherwise, Cocoa can do it wrong.
-
[m_nsWindow orderOut:nil];
}
@@ -816,7 +788,7 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
Qt::WindowType type = static_cast<Qt::WindowType>(int(flags & Qt::WindowType_Mask));
NSInteger styleMask = NSBorderlessWindowMask;
if (flags & Qt::FramelessWindowHint)
- return styleMask | NSResizableWindowMask;
+ return styleMask;
if ((type & Qt::Popup) == Qt::Popup) {
if (!windowIsPopupType(type))
styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask |
@@ -1522,10 +1494,20 @@ void QCocoaWindow::syncWindowState(Qt::WindowState newState)
}
Qt::WindowState predictedState = newState;
+ if ((m_synchedWindowState & Qt::WindowMaximized) != (newState & Qt::WindowMaximized)) {
+ const int styleMask = [m_nsWindow styleMask];
+ const bool usePerform = styleMask & NSResizableWindowMask;
+ [m_nsWindow setStyleMask:styleMask | NSResizableWindowMask];
+ if (usePerform)
+ [m_nsWindow performZoom : m_nsWindow]; // toggles
+ else
+ [m_nsWindow zoom : m_nsWindow]; // toggles
+ [m_nsWindow setStyleMask:styleMask];
+ }
if ((m_synchedWindowState & Qt::WindowMinimized) != (newState & Qt::WindowMinimized)) {
if (newState & Qt::WindowMinimized) {
- if (m_nsWindow.styleMask & NSMiniaturizableWindowMask)
+ if ([m_nsWindow styleMask] & NSMiniaturizableWindowMask)
[m_nsWindow performMiniaturize : m_nsWindow];
else
[m_nsWindow miniaturize : m_nsWindow];
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index fd989cb840..a27c93e23f 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -374,6 +374,8 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
// calles, which Qt and Qt applications do not excpect.
if (!m_platformWindow->m_inSetGeometry)
QWindowSystemInterface::flushWindowSystemEvents();
+ else
+ m_backingStore = QImage();
}
}
@@ -962,6 +964,7 @@ QT_WARNING_POP
if (m_window->flags() & Qt::WindowTransparentForInput)
return [super rightMouseDown:theEvent];
m_buttons |= Qt::RightButton;
+ m_sendUpAsRightButton = true;
[self handleMouseEvent:theEvent];
}
@@ -979,6 +982,7 @@ QT_WARNING_POP
if (m_window->flags() & Qt::WindowTransparentForInput)
return [super rightMouseUp:theEvent];
m_buttons &= ~Qt::RightButton;
+ m_sendUpAsRightButton = false;
[self handleMouseEvent:theEvent];
}
diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm
index 2ebd87f29c..037b28e91d 100644
--- a/src/plugins/platforms/ios/qiosinputcontext.mm
+++ b/src/plugins/platforms/ios/qiosinputcontext.mm
@@ -437,6 +437,9 @@ void QIOSInputContext::scrollToCursor()
if (!rootView)
return;
+ if (!focusView())
+ return;
+
if (rootView.window != focusView().window)
return;
@@ -576,7 +579,7 @@ void QIOSInputContext::focusWindowChanged(QWindow *focusWindow)
void QIOSInputContext::update(Qt::InputMethodQueries updatedProperties)
{
// Mask for properties that we are interested in and see if any of them changed
- updatedProperties &= (Qt::ImEnabled | Qt::ImHints | Qt::ImQueryInput | Qt::ImPlatformData);
+ updatedProperties &= (Qt::ImEnabled | Qt::ImHints | Qt::ImQueryInput | Qt::ImReturnKeyType | Qt::ImPlatformData);
qImDebug() << "fw =" << qApp->focusWindow() << "fo =" << qApp->focusObject();
diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm
index e395c832f1..7cd4280f5e 100644
--- a/src/plugins/platforms/ios/qiosintegration.mm
+++ b/src/plugins/platforms/ios/qiosintegration.mm
@@ -46,6 +46,7 @@
#include <QtGui/private/qguiapplication_p.h>
+#include <qoffscreensurface.h>
#include <qpa/qplatformoffscreensurface.h>
#include <QtPlatformSupport/private/qcoretextfontdatabase_p.h>
@@ -158,9 +159,22 @@ QPlatformOpenGLContext *QIOSIntegration::createPlatformOpenGLContext(QOpenGLCont
return new QIOSContext(context);
}
+class QIOSOffscreenSurface : public QPlatformOffscreenSurface
+{
+public:
+ QIOSOffscreenSurface(QOffscreenSurface *offscreenSurface) : QPlatformOffscreenSurface(offscreenSurface) {}
+
+ QSurfaceFormat format() const Q_DECL_OVERRIDE
+ {
+ Q_ASSERT(offscreenSurface());
+ return offscreenSurface()->requestedFormat();
+ }
+ bool isValid() const Q_DECL_OVERRIDE { return true; }
+};
+
QPlatformOffscreenSurface *QIOSIntegration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
{
- return new QPlatformOffscreenSurface(surface);
+ return new QIOSOffscreenSurface(surface);
}
QAbstractEventDispatcher *QIOSIntegration::createEventDispatcher() const
diff --git a/src/plugins/platforms/ios/qiosmenu.h b/src/plugins/platforms/ios/qiosmenu.h
index f65a90fb40..15f200bb27 100644
--- a/src/plugins/platforms/ios/qiosmenu.h
+++ b/src/plugins/platforms/ios/qiosmenu.h
@@ -88,7 +88,7 @@ public:
void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) Q_DECL_OVERRIDE;
void removeMenuItem(QPlatformMenuItem *menuItem) Q_DECL_OVERRIDE;
- void syncMenuItem(QPlatformMenuItem *) Q_DECL_OVERRIDE {}
+ void syncMenuItem(QPlatformMenuItem *) Q_DECL_OVERRIDE;
void syncSeparatorsCollapsible(bool) Q_DECL_OVERRIDE {}
void setTag(quintptr tag) Q_DECL_OVERRIDE;
diff --git a/src/plugins/platforms/ios/qiosmenu.mm b/src/plugins/platforms/ios/qiosmenu.mm
index dfab835579..08fc8a5e9c 100644
--- a/src/plugins/platforms/ios/qiosmenu.mm
+++ b/src/plugins/platforms/ios/qiosmenu.mm
@@ -60,24 +60,31 @@ static NSString *const kSelectorPrefix = @"_qtMenuItem_";
- (id)initWithVisibleMenuItems:(const QIOSMenuItemList &)visibleMenuItems
{
if (self = [super init]) {
- m_visibleMenuItems = visibleMenuItems;
- NSMutableArray *menuItemArray = [NSMutableArray arrayWithCapacity:m_visibleMenuItems.size()];
- // Create an array of UIMenuItems, one for each visible QIOSMenuItem. Each
- // UIMenuItem needs a callback assigned, so we assign one of the placeholder methods
- // added to UIWindow (QIOSMenuActionTargets) below. Each method knows its own index, which
- // corresponds to the index of the corresponding QIOSMenuItem in m_visibleMenuItems. When
- // triggered, menuItemActionCallback will end up being called.
- for (int i = 0; i < m_visibleMenuItems.count(); ++i) {
- QIOSMenuItem *item = m_visibleMenuItems.at(i);
- SEL sel = NSSelectorFromString([NSString stringWithFormat:@"%@%i:", kSelectorPrefix, i]);
- [menuItemArray addObject:[[[UIMenuItem alloc] initWithTitle:item->m_text.toNSString() action:sel] autorelease]];
- }
- [UIMenuController sharedMenuController].menuItems = menuItemArray;
+ [self setVisibleMenuItems:visibleMenuItems];
}
return self;
}
+- (void)setVisibleMenuItems:(const QIOSMenuItemList &)visibleMenuItems
+{
+ m_visibleMenuItems = visibleMenuItems;
+ NSMutableArray *menuItemArray = [NSMutableArray arrayWithCapacity:m_visibleMenuItems.size()];
+ // Create an array of UIMenuItems, one for each visible QIOSMenuItem. Each
+ // UIMenuItem needs a callback assigned, so we assign one of the placeholder methods
+ // added to UIWindow (QIOSMenuActionTargets) below. Each method knows its own index, which
+ // corresponds to the index of the corresponding QIOSMenuItem in m_visibleMenuItems. When
+ // triggered, menuItemActionCallback will end up being called.
+ for (int i = 0; i < m_visibleMenuItems.count(); ++i) {
+ QIOSMenuItem *item = m_visibleMenuItems.at(i);
+ SEL sel = NSSelectorFromString([NSString stringWithFormat:@"%@%i:", kSelectorPrefix, i]);
+ [menuItemArray addObject:[[[UIMenuItem alloc] initWithTitle:item->m_text.toNSString() action:sel] autorelease]];
+ }
+ [UIMenuController sharedMenuController].menuItems = menuItemArray;
+ if ([UIMenuController sharedMenuController].menuVisible)
+ [[UIMenuController sharedMenuController] setMenuVisible:YES animated:NO];
+}
+
- (id)targetForAction:(SEL)action withSender:(id)sender
{
Q_UNUSED(sender);
@@ -122,12 +129,9 @@ static NSString *const kSelectorPrefix = @"_qtMenuItem_";
- (id)initWithVisibleMenuItems:(const QIOSMenuItemList &)visibleMenuItems selectItem:(const QIOSMenuItem *)selectItem
{
if (self = [super init]) {
- self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
- m_visibleMenuItems = visibleMenuItems;
- m_selectedRow = visibleMenuItems.indexOf(const_cast<QIOSMenuItem *>(selectItem));
- if (m_selectedRow == -1)
- m_selectedRow = 0;
+ [self setVisibleMenuItems:visibleMenuItems selectItem:selectItem];
+ self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.toolbar = [[[UIToolbar alloc] init] autorelease];
self.toolbar.frame.size = [self.toolbar sizeThatFits:self.bounds.size];
self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
@@ -152,6 +156,15 @@ static NSString *const kSelectorPrefix = @"_qtMenuItem_";
return self;
}
+- (void)setVisibleMenuItems:(const QIOSMenuItemList &)visibleMenuItems selectItem:(const QIOSMenuItem *)selectItem
+{
+ m_visibleMenuItems = visibleMenuItems;
+ m_selectedRow = visibleMenuItems.indexOf(const_cast<QIOSMenuItem *>(selectItem));
+ if (m_selectedRow == -1)
+ m_selectedRow = 0;
+ [self reloadAllComponents];
+}
+
-(void)listenForKeyboardWillHideNotification:(BOOL)listen
{
if (listen) {
@@ -333,11 +346,30 @@ void QIOSMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *be
int index = m_menuItems.indexOf(static_cast<QIOSMenuItem *>(before)) + 1;
m_menuItems.insert(index, static_cast<QIOSMenuItem *>(menuItem));
}
+ if (m_currentMenu == this)
+ syncMenuItem(menuItem);
}
void QIOSMenu::removeMenuItem(QPlatformMenuItem *menuItem)
{
m_menuItems.removeOne(static_cast<QIOSMenuItem *>(menuItem));
+ if (m_currentMenu == this)
+ syncMenuItem(menuItem);
+}
+
+void QIOSMenu::syncMenuItem(QPlatformMenuItem *)
+{
+ if (m_currentMenu != this)
+ return;
+
+ switch (m_effectiveMenuType) {
+ case EditMenu:
+ [m_menuController setVisibleMenuItems:visibleMenuItems()];
+ break;
+ default:
+ [m_pickerView setVisibleMenuItems:visibleMenuItems() selectItem:m_targetItem];
+ break;
+ }
}
void QIOSMenu::setTag(quintptr tag)
diff --git a/src/plugins/platforms/ios/qiostextresponder.mm b/src/plugins/platforms/ios/qiostextresponder.mm
index 5d2a675f90..4f85fb7b55 100644
--- a/src/plugins/platforms/ios/qiostextresponder.mm
+++ b/src/plugins/platforms/ios/qiostextresponder.mm
@@ -170,9 +170,31 @@
QVariantMap platformData = m_configuredImeState->value(Qt::ImPlatformData).toMap();
Qt::InputMethodHints hints = Qt::InputMethodHints(m_configuredImeState->value(Qt::ImHints).toUInt());
- self.returnKeyType = platformData.value(kImePlatformDataReturnKeyType).isValid() ?
- UIReturnKeyType(platformData.value(kImePlatformDataReturnKeyType).toInt()) :
- (hints & Qt::ImhMultiLine) ? UIReturnKeyDefault : UIReturnKeyDone;
+ Qt::ReturnKeyType returnKeyType = Qt::ReturnKeyType(m_configuredImeState->value(Qt::ImReturnKeyType).toUInt());
+
+ switch (returnKeyType) {
+ case Qt::ReturnKeyEnter:
+ self.returnKeyType = UIReturnKeyDefault;
+ break;
+ case Qt::ReturnKeyDone:
+ self.returnKeyType = UIReturnKeyDone;
+ break;
+ case Qt::ReturnKeyGo:
+ self.returnKeyType = UIReturnKeyGo;
+ break;
+ case Qt::ReturnKeySend:
+ self.returnKeyType = UIReturnKeySend;
+ break;
+ case Qt::ReturnKeySearch:
+ self.returnKeyType = UIReturnKeySearch;
+ break;
+ case Qt::ReturnKeyNext:
+ self.returnKeyType = UIReturnKeyNext;
+ break;
+ default:
+ self.returnKeyType = (hints & Qt::ImhMultiLine) ? UIReturnKeyDefault : UIReturnKeyDone;
+ break;
+ }
self.secureTextEntry = BOOL(hints & Qt::ImhHiddenText);
self.autocorrectionType = (hints & Qt::ImhNoPredictiveText) ?
@@ -231,7 +253,7 @@
}
// Based on what we set up in initWithInputContext above
- updatedProperties &= (Qt::ImHints | Qt::ImPlatformData);
+ updatedProperties &= (Qt::ImHints | Qt::ImReturnKeyType | Qt::ImPlatformData);
if (!updatedProperties)
return NO;
@@ -657,7 +679,8 @@
[self sendEventToFocusObject:press];
[self sendEventToFocusObject:release];
- if (self.returnKeyType == UIReturnKeyDone)
+ if (self.returnKeyType == UIReturnKeyDone || self.returnKeyType == UIReturnKeyGo
+ || self.returnKeyType == UIReturnKeySend || self.returnKeyType == UIReturnKeySearch)
[self resignFirstResponder];
return;
diff --git a/src/plugins/platforms/ios/qiosviewcontroller.h b/src/plugins/platforms/ios/qiosviewcontroller.h
index 971a474673..dffbf7dc27 100644
--- a/src/plugins/platforms/ios/qiosviewcontroller.h
+++ b/src/plugins/platforms/ios/qiosviewcontroller.h
@@ -45,6 +45,7 @@ class QIOSScreen;
// UIViewController
@property (nonatomic, assign) BOOL prefersStatusBarHidden;
@property (nonatomic, assign) UIStatusBarAnimation preferredStatusBarUpdateAnimation;
+@property (nonatomic, assign) UIStatusBarStyle preferredStatusBarStyle;
@end
diff --git a/src/plugins/platforms/ios/qiosviewcontroller.mm b/src/plugins/platforms/ios/qiosviewcontroller.mm
index 9abd105d94..6667ec3dd8 100644
--- a/src/plugins/platforms/ios/qiosviewcontroller.mm
+++ b/src/plugins/platforms/ios/qiosviewcontroller.mm
@@ -245,6 +245,7 @@
// Status bar may be initially hidden at startup through Info.plist
self.prefersStatusBarHidden = infoPlistValue(@"UIStatusBarHidden", false);
self.preferredStatusBarUpdateAnimation = UIStatusBarAnimationNone;
+ self.preferredStatusBarStyle = UIStatusBarStyle(infoPlistValue(@"UIStatusBarStyle", UIStatusBarStyleDefault));
m_focusWindowChangeConnection = QObject::connect(qApp, &QGuiApplication::focusWindowChanged, [self]() {
[self updateProperties];
@@ -423,6 +424,22 @@
UIApplication *uiApplication = [UIApplication sharedApplication];
+ // -------------- Status bar style and visbility ---------------
+
+ UIStatusBarStyle oldStatusBarStyle = self.preferredStatusBarStyle;
+ if (focusWindow->flags() & Qt::MaximizeUsingFullscreenGeometryHint)
+ self.preferredStatusBarStyle = UIStatusBarStyleDefault;
+ else
+ self.preferredStatusBarStyle = QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_7_0 ?
+ UIStatusBarStyleLightContent : UIStatusBarStyleBlackTranslucent;
+
+ if (self.preferredStatusBarStyle != oldStatusBarStyle) {
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_7_0)
+ [self setNeedsStatusBarAppearanceUpdate];
+ else
+ [uiApplication setStatusBarStyle:self.preferredStatusBarStyle];
+ }
+
bool currentStatusBarVisibility = self.prefersStatusBarHidden;
self.prefersStatusBarHidden = focusWindow->windowState() == Qt::WindowFullScreen;
@@ -484,18 +501,5 @@
}
}
-#if QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__IPHONE_7_0)
-- (UIStatusBarStyle)preferredStatusBarStyle
-{
- // Since we don't place anything behind the status bare by default, we
- // end up with a black area, so we have to enable the white text mode
- // of the iOS7 statusbar.
- return UIStatusBarStyleLightContent;
-
- // FIXME: Try to detect the content underneath the statusbar and choose
- // an appropriate style, and/or expose Qt APIs to control the style.
-}
-#endif
-
@end
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index 95a4c28246..777a3c12c5 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -244,7 +244,8 @@ void QIOSWindow::setWindowState(Qt::WindowState state)
applyGeometry(m_normalGeometry);
break;
case Qt::WindowMaximized:
- applyGeometry(screen()->availableGeometry());
+ applyGeometry(window()->flags() & Qt::MaximizeUsingFullscreenGeometryHint ?
+ screen()->geometry() : screen()->availableGeometry());
break;
case Qt::WindowFullScreen:
applyGeometry(screen()->geometry());
diff --git a/src/plugins/platforms/windows/qtwindowsglobal.h b/src/plugins/platforms/windows/qtwindowsglobal.h
index f9a55c9940..63c083d233 100644
--- a/src/plugins/platforms/windows/qtwindowsglobal.h
+++ b/src/plugins/platforms/windows/qtwindowsglobal.h
@@ -57,7 +57,8 @@ enum
TouchEventFlag = 0x400000,
ClipboardEventFlag = 0x800000,
ApplicationEventFlag = 0x1000000,
- ThemingEventFlag = 0x2000000
+ ThemingEventFlag = 0x2000000,
+ GenericEventFlag = 0x4000000, // Misc
};
enum WindowsEventType // Simplify event types
@@ -108,6 +109,7 @@ enum WindowsEventType // Simplify event types
CompositionSettingsChanged = ThemingEventFlag + 2,
DisplayChangedEvent = 437,
SettingChangedEvent = DisplayChangedEvent + 1,
+ ScrollEvent = GenericEventFlag + 1,
ContextMenu = 123,
GestureEvent = 124,
UnknownEvent = 542
@@ -145,6 +147,8 @@ inline QtWindows::WindowsEventType windowsEventType(UINT message, WPARAM wParamI
return QtWindows::CursorEvent;
case WM_MOUSELEAVE:
return QtWindows::MouseEvent;
+ case WM_HSCROLL:
+ return QtWindows::ScrollEvent;
case WM_MOUSEWHEEL:
case WM_MOUSEHWHEEL:
return QtWindows::MouseWheelEvent;
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index fa355f6201..7d7ea031a5 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -225,8 +225,10 @@ bool QWindowsUser32DLL::initTouch()
QWindowsShell32DLL::QWindowsShell32DLL()
: sHCreateItemFromParsingName(0)
+ , sHGetKnownFolderIDList(0)
, sHGetStockIconInfo(0)
, sHGetImageList(0)
+ , sHCreateItemFromIDList(0)
{
}
@@ -234,8 +236,10 @@ void QWindowsShell32DLL::init()
{
QSystemLibrary library(QStringLiteral("shell32"));
sHCreateItemFromParsingName = (SHCreateItemFromParsingName)(library.resolve("SHCreateItemFromParsingName"));
+ sHGetKnownFolderIDList = (SHGetKnownFolderIDList)(library.resolve("SHGetKnownFolderIDList"));
sHGetStockIconInfo = (SHGetStockIconInfo)library.resolve("SHGetStockIconInfo");
sHGetImageList = (SHGetImageList)library.resolve("SHGetImageList");
+ sHCreateItemFromIDList = (SHCreateItemFromIDList)library.resolve("SHCreateItemFromIDList");
}
QWindowsShcoreDLL::QWindowsShcoreDLL()
@@ -1033,6 +1037,12 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message,
return true;
}
#endif
+ case QtWindows::ScrollEvent:
+#if !defined(Q_OS_WINCE) && !defined(QT_NO_SESSIONMANAGER)
+ return platformSessionManager()->isInteractionBlocked() ? true : d->m_mouseHandler.translateScrollEvent(platformWindow->window(), hwnd, msg, result);
+#else
+ return d->m_mouseHandler.translateScrollEvent(platformWindow->window(), hwnd, msg, result);
+#endif
case QtWindows::MouseWheelEvent:
case QtWindows::MouseEvent:
case QtWindows::LeaveEvent:
diff --git a/src/plugins/platforms/windows/qwindowscontext.h b/src/plugins/platforms/windows/qwindowscontext.h
index 81f4a36433..d2a3481b28 100644
--- a/src/plugins/platforms/windows/qwindowscontext.h
+++ b/src/plugins/platforms/windows/qwindowscontext.h
@@ -41,6 +41,10 @@
#include <QtCore/QSharedPointer>
#include <QtCore/QLoggingCategory>
+#define STRICT_TYPED_ITEMIDS
+#include <shlobj.h>
+#include <shlwapi.h>
+
struct IBindCtx;
struct _SHSTOCKICONINFO;
@@ -120,12 +124,16 @@ struct QWindowsShell32DLL
inline void init();
typedef HRESULT (WINAPI *SHCreateItemFromParsingName)(PCWSTR, IBindCtx *, const GUID&, void **);
+ typedef HRESULT (WINAPI *SHGetKnownFolderIDList)(const GUID &, DWORD, HANDLE, PIDLIST_ABSOLUTE *);
typedef HRESULT (WINAPI *SHGetStockIconInfo)(int , int , _SHSTOCKICONINFO *);
typedef HRESULT (WINAPI *SHGetImageList)(int, REFIID , void **);
+ typedef HRESULT (WINAPI *SHCreateItemFromIDList)(PCIDLIST_ABSOLUTE, REFIID, void **);
SHCreateItemFromParsingName sHCreateItemFromParsingName;
+ SHGetKnownFolderIDList sHGetKnownFolderIDList;
SHGetStockIconInfo sHGetStockIconInfo;
SHGetImageList sHGetImageList;
+ SHCreateItemFromIDList sHCreateItemFromIDList;
};
// Shell scaling library (Windows 8.1 onwards)
diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
index 3b47829402..3284795fc1 100644
--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
@@ -58,16 +58,14 @@
#include <QtCore/QExplicitlySharedDataPointer>
#include <QtCore/QMutex>
#include <QtCore/QMutexLocker>
+#include <QtCore/QUuid>
+#include <QtCore/QRegularExpression>
#include <QtCore/private/qsystemlibrary_p.h>
#include <algorithm>
#include "qtwindows_additional.h"
-#define STRICT_TYPED_ITEMIDS
-#include <shlobj.h>
-#include <shlwapi.h>
-
// #define USE_NATIVE_COLOR_DIALOG /* Testing purposes only */
#ifdef Q_CC_MINGW /* Add missing declarations for MinGW */
@@ -873,8 +871,8 @@ public:
virtual void setWindowTitle(const QString &title);
inline void setMode(QFileDialogOptions::FileMode mode, QFileDialogOptions::AcceptMode acceptMode, QFileDialogOptions::FileDialogOptions options);
- inline void setDirectory(const QString &directory);
- inline void updateDirectory() { setDirectory(m_data.directory().toLocalFile()); }
+ inline void setDirectory(const QUrl &directory);
+ inline void updateDirectory() { setDirectory(m_data.directory()); }
inline QString directory() const;
virtual void doExec(HWND owner = 0);
virtual void setNameFilters(const QStringList &f);
@@ -916,7 +914,7 @@ protected:
static QList<QUrl> libraryItemFolders(IShellItem *item);
static QString libraryItemDefaultSaveFolder(IShellItem *item);
static int itemPaths(IShellItemArray *items, QList<QUrl> *fileResult = 0);
- static IShellItem *shellItem(const QString &path);
+ static IShellItem *shellItem(const QUrl &url);
const QWindowsFileDialogSharedData &data() const { return m_data; }
QWindowsFileDialogSharedData &data() { return m_data; }
@@ -976,25 +974,58 @@ void QWindowsNativeFileDialogBase::setWindowTitle(const QString &title)
m_fileDialog->SetTitle(reinterpret_cast<const wchar_t *>(title.utf16()));
}
-IShellItem *QWindowsNativeFileDialogBase::shellItem(const QString &path)
+IShellItem *QWindowsNativeFileDialogBase::shellItem(const QUrl &url)
{
#ifndef Q_OS_WINCE
- if (QWindowsContext::shell32dll.sHCreateItemFromParsingName) {
- IShellItem *result = 0;
- const QString native = QDir::toNativeSeparators(path);
+ if (url.isLocalFile()) {
+ if (!QWindowsContext::shell32dll.sHCreateItemFromParsingName)
+ return Q_NULLPTR;
+ IShellItem *result = Q_NULLPTR;
+ const QString native = QDir::toNativeSeparators(url.toLocalFile());
const HRESULT hr =
- QWindowsContext::shell32dll.sHCreateItemFromParsingName(reinterpret_cast<const wchar_t *>(native.utf16()),
- NULL, IID_IShellItem,
- reinterpret_cast<void **>(&result));
- if (SUCCEEDED(hr))
- return result;
+ QWindowsContext::shell32dll.sHCreateItemFromParsingName(reinterpret_cast<const wchar_t *>(native.utf16()),
+ NULL, IID_IShellItem,
+ reinterpret_cast<void **>(&result));
+ if (FAILED(hr)) {
+ qErrnoWarning("%s: SHCreateItemFromParsingName(%s)) failed", __FUNCTION__, qPrintable(url.toString()));
+ return Q_NULLPTR;
+ }
+ return result;
+ } else if (url.scheme() == QLatin1String("clsid")) {
+ if (!QWindowsContext::shell32dll.sHGetKnownFolderIDList || !QWindowsContext::shell32dll.sHCreateItemFromIDList)
+ return Q_NULLPTR;
+ // Support for virtual folders via GUID
+ // (see https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx)
+ // specified as "clsid:<GUID>" (without '{', '}').
+ IShellItem *result = Q_NULLPTR;
+ const QUuid uuid(url.path());
+ if (uuid.isNull()) {
+ qWarning() << __FUNCTION__ << ": Invalid CLSID: " << url.path();
+ return Q_NULLPTR;
+ }
+ PIDLIST_ABSOLUTE idList;
+ HRESULT hr = QWindowsContext::shell32dll.sHGetKnownFolderIDList(uuid, 0, 0, &idList);
+ if (FAILED(hr)) {
+ qErrnoWarning("%s: SHGetKnownFolderIDList(%s)) failed", __FUNCTION__, qPrintable(url.toString()));
+ return Q_NULLPTR;
+ }
+ hr = QWindowsContext::shell32dll.sHCreateItemFromIDList(idList, IID_IShellItem, reinterpret_cast<void **>(&result));
+ CoTaskMemFree(idList);
+ if (FAILED(hr)) {
+ qErrnoWarning("%s: SHCreateItemFromIDList(%s)) failed", __FUNCTION__, qPrintable(url.toString()));
+ return Q_NULLPTR;
+ }
+ return result;
+ } else {
+ qWarning() << __FUNCTION__ << ": Unhandled scheme: " << url.scheme();
}
+#else // !Q_OS_WINCE
+ Q_UNUSED(url)
#endif
- qErrnoWarning("%s: SHCreateItemFromParsingName(%s)) failed", __FUNCTION__, qPrintable(path));
return 0;
}
-void QWindowsNativeFileDialogBase::setDirectory(const QString &directory)
+void QWindowsNativeFileDialogBase::setDirectory(const QUrl &directory)
{
if (!directory.isEmpty()) {
if (IShellItem *psi = QWindowsNativeFileDialogBase::shellItem(directory)) {
@@ -1284,9 +1315,20 @@ void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel
}
}
+static inline bool isClsid(const QString &s)
+{
+ // detect "374DE290-123F-4565-9164-39C4925E467B".
+ static const QRegularExpression pattern(QLatin1String("[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{8}"));
+ Q_ASSERT(pattern.isValid());
+ return pattern.match(s).hasMatch();
+}
+
void QWindowsNativeFileDialogBase::selectFile(const QString &fileName) const
{
- m_fileDialog->SetFileName((wchar_t*)fileName.utf16());
+ // Hack to prevent CLSIDs from being set as file name due to
+ // QFileDialogPrivate::initialSelection() being QString-based.
+ if (!isClsid(fileName))
+ m_fileDialog->SetFileName((wchar_t*)fileName.utf16());
}
// Return the index of the selected filter, accounting for QFileDialog
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
index d5708e4f9c..b979dc6c4e 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
@@ -303,8 +303,7 @@ namespace {
, m_referenceCount(0)
{
}
-
- ~DirectWriteFontFileStream()
+ virtual ~DirectWriteFontFileStream()
{
}
@@ -355,7 +354,7 @@ namespace {
OUT void **fragmentContext)
{
*fragmentContext = NULL;
- if (fragmentSize + fileOffset <= m_fontData.size()) {
+ if (fileOffset + fragmentSize <= quint64(m_fontData.size())) {
*fragmentStart = m_fontData.data() + fileOffset;
return S_OK;
} else {
@@ -384,8 +383,7 @@ namespace {
{
public:
DirectWriteFontFileLoader() : m_referenceCount(0) {}
-
- ~DirectWriteFontFileLoader()
+ virtual ~DirectWriteFontFileLoader()
{
}
@@ -1104,18 +1102,14 @@ QFontEngine *QWindowsFontDatabase::fontEngine(const QByteArray &fontData, qreal
GUID guid;
CoCreateGuid(&guid);
-#ifdef Q_CC_GNU
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_GCC("-Wstrict-aliasing")
QString uniqueFamilyName = QLatin1Char('f')
+ QString::number(guid.Data1, 36) + QLatin1Char('-')
+ QString::number(guid.Data2, 36) + QLatin1Char('-')
+ QString::number(guid.Data3, 36) + QLatin1Char('-')
+ QString::number(*reinterpret_cast<quint64 *>(guid.Data4), 36);
-#ifdef Q_CC_GNU
-# pragma GCC diagnostic pop
-#endif
+QT_WARNING_POP
QString actualFontName = font.changeFamilyName(uniqueFamilyName);
if (actualFontName.isEmpty()) {
diff --git a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
index 85cd92b234..75449e22ed 100644
--- a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
@@ -33,6 +33,10 @@
#ifndef QT_NO_DIRECTWRITE
+#if WINVER < 0x0600
+# undef WINVER
+# define WINVER 0x0600
+#endif
#if _WIN32_WINNT < 0x0600
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0600
@@ -61,10 +65,14 @@ namespace {
class GeometrySink: public IDWriteGeometrySink
{
public:
- GeometrySink(QPainterPath *path) : m_path(path), m_refCount(0)
+ GeometrySink(QPainterPath *path)
+ : m_refCount(0), m_path(path)
{
Q_ASSERT(m_path != 0);
}
+ virtual ~GeometrySink()
+ {
+ }
IFACEMETHOD_(void, AddBeziers)(const D2D1_BEZIER_SEGMENT *beziers, UINT bezierCount);
IFACEMETHOD_(void, AddLines)(const D2D1_POINT_2F *points, UINT pointCount);
diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.cpp b/src/plugins/platforms/windows/qwindowsinputcontext.cpp
index 689e06281f..0cce171340 100644
--- a/src/plugins/platforms/windows/qwindowsinputcontext.cpp
+++ b/src/plugins/platforms/windows/qwindowsinputcontext.cpp
@@ -189,7 +189,7 @@ void QWindowsInputContext::reset()
if (!m_compositionContext.hwnd)
return;
qCDebug(lcQpaInputMethods) << __FUNCTION__;
- if (m_compositionContext.isComposing && m_compositionContext.focusObject.isNull()) {
+ if (m_compositionContext.isComposing && !m_compositionContext.focusObject.isNull()) {
QInputMethodEvent event;
if (!m_compositionContext.composition.isEmpty())
event.setCommitString(m_compositionContext.composition);
diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.h b/src/plugins/platforms/windows/qwindowsinputcontext.h
index 2f87d7d677..83a39989f6 100644
--- a/src/plugins/platforms/windows/qwindowsinputcontext.h
+++ b/src/plugins/platforms/windows/qwindowsinputcontext.h
@@ -73,6 +73,7 @@ public:
bool startComposition(HWND hwnd);
bool composition(HWND hwnd, LPARAM lParam);
bool endComposition(HWND hwnd);
+ inline bool isComposing() const { return m_compositionContext.isComposing; }
int reconvertString(RECONVERTSTRING *reconv);
diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp
index 0e26a17223..d47c7df9e0 100644
--- a/src/plugins/platforms/windows/qwindowskeymapper.cpp
+++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp
@@ -36,6 +36,7 @@
#include "qwindowswindow.h"
#include "qwindowsguieventdispatcher.h"
#include "qwindowsscaling.h"
+#include "qwindowsinputcontext.h"
#include <QtGui/QWindow>
#include <qpa/qwindowsysteminterface.h>
@@ -877,7 +878,7 @@ bool QWindowsKeyMapper::translateKeyEventInternal(QWindow *window, const MSG &ms
const int msgType = msg.message;
const quint32 scancode = (msg.lParam >> 16) & scancodeBitmask;
- const quint32 vk_key = msg.wParam;
+ quint32 vk_key = msg.wParam;
quint32 nModifiers = 0;
QWindow *receiver = m_keyGrabber ? m_keyGrabber : window;
@@ -1071,6 +1072,8 @@ bool QWindowsKeyMapper::translateKeyEventInternal(QWindow *window, const MSG &ms
// results, if we map this virtual key-code directly (for eg '?' US layouts). So try
// to find the correct key using the current message parameters & keyboard state.
if (uch.isNull() && msgType == WM_IME_KEYDOWN) {
+ if (!QWindowsInputContext::instance()->isComposing())
+ vk_key = ImmGetVirtualKey((HWND)window->winId());
BYTE keyState[256];
wchar_t newKey[3] = {0};
GetKeyboardState(keyState);
diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp
index 13260edc82..d8ccccdf45 100644
--- a/src/plugins/platforms/windows/qwindowsmime.cpp
+++ b/src/plugins/platforms/windows/qwindowsmime.cpp
@@ -166,11 +166,6 @@ static bool qt_write_dibv5(QDataStream &s, QImage image)
if (s.status() != QDataStream::Ok)
return false;
- DWORD colorSpace[3] = {0x00ff0000,0x0000ff00,0x000000ff};
- d->write(reinterpret_cast<const char*>(colorSpace), sizeof(colorSpace));
- if (s.status() != QDataStream::Ok)
- return false;
-
if (image.format() != QImage::Format_ARGB32)
image = image.convertToFormat(QImage::Format_ARGB32);
@@ -255,10 +250,6 @@ static bool qt_read_dibv5(QDataStream &s, QImage &image)
}
image.setDotsPerMeterX(bi.bV5XPelsPerMeter);
image.setDotsPerMeterY(bi.bV5YPelsPerMeter);
- // read color table
- DWORD colorSpace[3];
- if (d->read((char *)colorSpace, sizeof(colorSpace)) != sizeof(colorSpace))
- return false;
red_shift = calc_shift(red_mask);
green_shift = calc_shift(green_mask);
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
index b1ced95a71..db635b602b 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
@@ -42,6 +42,7 @@
#include <QtGui/QGuiApplication>
#include <QtGui/QScreen>
#include <QtGui/QWindow>
+#include <QtGui/QCursor>
#include <QtCore/QDebug>
#include <QtCore/QScopedArrayPointer>
@@ -386,6 +387,31 @@ static bool isValidWheelReceiver(QWindow *candidate)
return false;
}
+static void redirectWheelEvent(QWindow *window, const QPoint &globalPos, int delta,
+ Qt::Orientation orientation, Qt::KeyboardModifiers mods)
+{
+ // Redirect wheel event to one of the following, in order of preference:
+ // 1) The window under mouse
+ // 2) The window receiving the event
+ // If a window is blocked by modality, it can't get the event.
+
+ QWindow *receiver = QWindowsScreen::windowAt(globalPos, CWP_SKIPINVISIBLE);
+ bool handleEvent = true;
+ if (!isValidWheelReceiver(receiver)) {
+ receiver = window;
+ if (!isValidWheelReceiver(receiver))
+ handleEvent = false;
+ }
+
+ if (handleEvent) {
+ const QPoint posDip = QWindowsGeometryHint::mapFromGlobal(receiver, globalPos) / QWindowsScaling::factor();
+ QWindowSystemInterface::handleWheelEvent(receiver,
+ posDip, globalPos / QWindowsScaling::factor(),
+ delta / QWindowsScaling::factor(),
+ orientation, mods);
+ }
+}
+
bool QWindowsMouseHandler::translateMouseWheelEvent(QWindow *window, HWND,
MSG msg, LRESULT *)
{
@@ -408,27 +434,40 @@ bool QWindowsMouseHandler::translateMouseWheelEvent(QWindow *window, HWND,
if (msg.message == WM_MOUSEHWHEEL)
delta = -delta;
- // Redirect wheel event to one of the following, in order of preference:
- // 1) The window under mouse
- // 2) The window receiving the event
- // If a window is blocked by modality, it can't get the event.
const QPoint globalPos(GET_X_LPARAM(msg.lParam), GET_Y_LPARAM(msg.lParam));
- QWindow *receiver = QWindowsScreen::windowAt(globalPos, CWP_SKIPINVISIBLE);
- bool handleEvent = true;
- if (!isValidWheelReceiver(receiver)) {
- receiver = window;
- if (!isValidWheelReceiver(receiver))
- handleEvent = false;
- }
+ redirectWheelEvent(window, globalPos, delta, orientation, mods);
- if (handleEvent) {
- const QPoint posDip = QWindowsGeometryHint::mapFromGlobal(receiver, globalPos) / QWindowsScaling::factor();
- QWindowSystemInterface::handleWheelEvent(receiver,
- posDip, globalPos / QWindowsScaling::factor(),
- delta / QWindowsScaling::factor(),
- orientation, mods);
+ return true;
+}
+
+bool QWindowsMouseHandler::translateScrollEvent(QWindow *window, HWND,
+ MSG msg, LRESULT *)
+{
+ // This is a workaround against some touchpads that send WM_HSCROLL instead of WM_MOUSEHWHEEL.
+ // We could also handle vertical scroll here but there's no reason to, there's no bug for vertical
+ // (broken vertical scroll would have been noticed long time ago), so lets keep the change small
+ // and minimize the chance for regressions.
+
+ int delta = 0;
+ switch (LOWORD(msg.wParam)) {
+ case SB_LINELEFT:
+ delta = 120;
+ break;
+ case SB_LINERIGHT:
+ delta = -120;
+ break;
+ case SB_PAGELEFT:
+ delta = 240;
+ break;
+ case SB_PAGERIGHT:
+ delta = -240;
+ break;
+ default:
+ return false;
}
+ redirectWheelEvent(window, QCursor::pos(), delta, Qt::Horizontal, Qt::NoModifier);
+
return true;
}
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.h b/src/plugins/platforms/windows/qwindowsmousehandler.h
index 1bd6fa325a..ce3e6b6fc4 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.h
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.h
@@ -59,6 +59,8 @@ public:
bool translateTouchEvent(QWindow *widget, HWND hwnd,
QtWindows::WindowsEventType t, MSG msg,
LRESULT *result);
+ bool translateScrollEvent(QWindow *window, HWND hwnd,
+ MSG msg, LRESULT *result);
static inline Qt::MouseButtons keyStateToMouseButtons(int);
static inline Qt::KeyboardModifiers keyStateToModifiers(int);
diff --git a/src/plugins/platforms/windows/qwindowsopengltester.cpp b/src/plugins/platforms/windows/qwindowsopengltester.cpp
index 67548a0836..f5065a22b8 100644
--- a/src/plugins/platforms/windows/qwindowsopengltester.cpp
+++ b/src/plugins/platforms/windows/qwindowsopengltester.cpp
@@ -208,15 +208,22 @@ static inline QString resolveBugListFile(const QString &fileName)
return QStandardPaths::locate(QStandardPaths::ConfigLocation, fileName);
}
+# ifndef QT_NO_OPENGL
typedef QHash<QOpenGLConfig::Gpu, QWindowsOpenGLTester::Renderers> SupportedRenderersCache;
Q_GLOBAL_STATIC(SupportedRenderersCache, supportedRenderersCache)
+# endif
#endif // !Q_OS_WINCE
QWindowsOpenGLTester::Renderers QWindowsOpenGLTester::detectSupportedRenderers(const GpuDescription &gpu, bool glesOnly)
{
Q_UNUSED(gpu)
-#ifndef Q_OS_WINCE
+ Q_UNUSED(glesOnly)
+#if defined(QT_NO_OPENGL)
+ return 0;
+#elif defined(Q_OS_WINCE)
+ return QWindowsOpenGLTester::Gles;
+#else
QOpenGLConfig::Gpu qgpu;
qgpu.deviceId = gpu.deviceId;
qgpu.vendorId = gpu.vendorId;
@@ -265,9 +272,7 @@ QWindowsOpenGLTester::Renderers QWindowsOpenGLTester::detectSupportedRenderers(c
srCache->insert(qgpu, result);
return result;
-#else // !Q_OS_WINCE
- return QWindowsOpenGLTester::Gles;
-#endif
+#endif // !Q_OS_WINCE && !QT_NO_OPENGL
}
QWindowsOpenGLTester::Renderers QWindowsOpenGLTester::supportedGlesRenderers()
@@ -288,7 +293,7 @@ QWindowsOpenGLTester::Renderers QWindowsOpenGLTester::supportedRenderers()
bool QWindowsOpenGLTester::testDesktopGL()
{
-#ifndef Q_OS_WINCE
+#if !defined(QT_NO_OPENGL) && !defined(Q_OS_WINCE)
HMODULE lib = 0;
HWND wnd = 0;
HDC dc = 0;
@@ -414,9 +419,9 @@ cleanup:
// No FreeLibrary. Some implementations, Mesa in particular, deadlock when trying to unload.
return result;
-#else // !Q_OS_WINCE
+#else
return false;
-#endif
+#endif // !QT_NO_OPENGL && !Q_OS_WINCE
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index fc389ecf15..6afa4e6591 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -918,7 +918,7 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const QWindowsWindowData &data)
setFlag(OpenGL_ES2);
}
#endif // QT_NO_OPENGL
- updateDropSite();
+ updateDropSite(window()->isTopLevel());
registerTouchWindow();
setWindowState(aWindow->windowState());
@@ -996,10 +996,10 @@ void QWindowsWindow::destroyWindow()
}
}
-void QWindowsWindow::updateDropSite()
+void QWindowsWindow::updateDropSite(bool topLevel)
{
bool enabled = false;
- if (window()->isTopLevel()) {
+ if (topLevel) {
switch (window()->type()) {
case Qt::Window:
case Qt::Dialog:
@@ -1285,7 +1285,7 @@ void QWindowsWindow::setParent_sys(const QPlatformWindow *parent)
if (wasTopLevel != isTopLevel) {
setDropSiteEnabled(false);
setWindowFlags_sys(window()->flags(), unsigned(isTopLevel ? WindowCreationData::ForceTopLevel : WindowCreationData::ForceChild));
- updateDropSite();
+ updateDropSite(isTopLevel);
}
}
}
@@ -1539,7 +1539,7 @@ void QWindowsWindow::setWindowFlags(Qt::WindowFlags flags)
m_data.flags = flags;
if (m_data.hwnd) {
m_data = setWindowFlags_sys(flags);
- updateDropSite();
+ updateDropSite(window()->isTopLevel());
}
}
// When switching to a frameless window, geometry
@@ -2265,6 +2265,7 @@ void QWindowsWindow::setCustomMargins(const QMargins &newCustomMargins)
void *QWindowsWindow::surface(void *nativeConfig, int *err)
{
#ifdef QT_NO_OPENGL
+ Q_UNUSED(nativeConfig)
return 0;
#else
if (!m_surface) {
@@ -2278,11 +2279,13 @@ void *QWindowsWindow::surface(void *nativeConfig, int *err)
void QWindowsWindow::invalidateSurface()
{
+#ifndef QT_NO_OPENGL
if (m_surface) {
if (QWindowsStaticOpenGLContext *staticOpenGLContext = QWindowsIntegration::staticOpenGLContext())
staticOpenGLContext->destroyWindowSurface(m_surface);
m_surface = 0;
}
+#endif // QT_NO_OPENGL
}
void QWindowsWindow::setTouchWindowTouchTypeStatic(QWindow *window, QWindowsWindowFunctions::TouchWindowTouchTypes touchTypes)
diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h
index 0089ad07a0..fff90b4b11 100644
--- a/src/plugins/platforms/windows/qwindowswindow.h
+++ b/src/plugins/platforms/windows/qwindowswindow.h
@@ -276,7 +276,7 @@ private:
void destroyWindow();
inline bool isDropSiteEnabled() const { return m_dropTarget != 0; }
void setDropSiteEnabled(bool enabled);
- void updateDropSite();
+ void updateDropSite(bool topLevel);
void handleGeometryChange();
void handleWindowStateChange(Qt::WindowState state);
inline void destroyIcon();
diff --git a/src/plugins/platforms/windows/windows.pri b/src/plugins/platforms/windows/windows.pri
index e3880a2646..a0460630a7 100644
--- a/src/plugins/platforms/windows/windows.pri
+++ b/src/plugins/platforms/windows/windows.pri
@@ -122,7 +122,7 @@ contains(QT_CONFIG,dynamicgl) {
contains(QT_CONFIG, freetype) {
DEFINES *= QT_NO_FONTCONFIG
- include($$QT_SOURCE_TREE/src/3rdparty/freetype.pri)
+ include($$QT_SOURCE_TREE/src/3rdparty/freetype_dependency.pri)
HEADERS += \
$$PWD/qwindowsfontdatabase_ft.h
SOURCES += \
diff --git a/src/plugins/platforms/winrt/qwinrtfiledialoghelper.cpp b/src/plugins/platforms/winrt/qwinrtfiledialoghelper.cpp
index 6cd99c38ef..417befeb63 100644
--- a/src/plugins/platforms/winrt/qwinrtfiledialoghelper.cpp
+++ b/src/plugins/platforms/winrt/qwinrtfiledialoghelper.cpp
@@ -298,42 +298,48 @@ bool QWinRTFileDialogHelper::show(Qt::WindowFlags windowFlags, Qt::WindowModalit
return false;
}
- ComPtr<IMap<HSTRING, IVector<HSTRING> *>> choices;
- hr = picker->get_FileTypeChoices(&choices);
- RETURN_FALSE_IF_FAILED("Failed to get file extension choices");
- foreach (const QString &namedFilter, dialogOptions->nameFilters()) {
- ComPtr<IVector<HSTRING>> entry = Make<WindowsStringVector>();
- foreach (const QString &filter, QPlatformFileDialogHelper::cleanFilterList(namedFilter)) {
- // Remove leading star
- const int offset = (filter.length() > 1 && filter.startsWith(QLatin1Char('*'))) ? 1 : 0;
- HStringReference filterRef(reinterpret_cast<const wchar_t *>(filter.utf16() + offset),
- filter.length() - offset);
- hr = entry->Append(filterRef.Get());
- if (FAILED(hr)) {
- qWarning("Failed to add named file filter \"%s\": %s",
- qPrintable(filter), qPrintable(qt_error_string(hr)));
+ if (!dialogOptions->nameFilters().isEmpty()) {
+ ComPtr<IMap<HSTRING, IVector<HSTRING> *>> choices;
+ hr = picker->get_FileTypeChoices(&choices);
+ RETURN_FALSE_IF_FAILED("Failed to get file extension choices");
+ foreach (const QString &namedFilter, dialogOptions->nameFilters()) {
+ ComPtr<IVector<HSTRING>> entry = Make<WindowsStringVector>();
+ foreach (const QString &filter, QPlatformFileDialogHelper::cleanFilterList(namedFilter)) {
+ // Remove leading star
+ const int offset = (filter.length() > 1 && filter.startsWith(QLatin1Char('*'))) ? 1 : 0;
+ HStringReference filterRef(reinterpret_cast<const wchar_t *>(filter.utf16() + offset),
+ filter.length() - offset);
+ hr = entry->Append(filterRef.Get());
+ if (FAILED(hr)) {
+ qWarning("Failed to add named file filter \"%s\": %s",
+ qPrintable(filter), qPrintable(qt_error_string(hr)));
+ }
}
+ const int offset = namedFilter.indexOf(QLatin1String(" ("));
+ const QString filterTitle = namedFilter.mid(0, offset);
+ HStringReference namedFilterRef(reinterpret_cast<const wchar_t *>(filterTitle.utf16()),
+ filterTitle.length());
+ boolean replaced;
+ hr = choices->Insert(namedFilterRef.Get(), entry.Get(), &replaced);
+ RETURN_FALSE_IF_FAILED("Failed to insert file extension choice entry");
}
- const int offset = namedFilter.indexOf(QLatin1String(" ("));
- const QString filterTitle = offset > 0 ? namedFilter.left(offset) : filterTitle;
- HStringReference namedFilterRef(reinterpret_cast<const wchar_t *>(filterTitle.utf16()),
- filterTitle.length());
- boolean replaced;
- hr = choices->Insert(namedFilterRef.Get(), entry.Get(), &replaced);
- RETURN_FALSE_IF_FAILED("Failed to insert file extension choice entry");
}
const QString suffix = dialogOptions->defaultSuffix();
- HStringReference nativeSuffix(reinterpret_cast<const wchar_t *>(suffix.utf16()),
- suffix.length());
- hr = picker->put_DefaultFileExtension(nativeSuffix.Get());
- RETURN_FALSE_IF_FAILED("Failed to set default file extension");
+ if (!suffix.isEmpty()) {
+ HStringReference nativeSuffix(reinterpret_cast<const wchar_t *>(suffix.utf16()),
+ suffix.length());
+ hr = picker->put_DefaultFileExtension(nativeSuffix.Get());
+ RETURN_FALSE_IF_FAILED("Failed to set default file extension");
+ }
const QString suggestedName = QFileInfo(d->saveFileName.toLocalFile()).fileName();
- HStringReference nativeSuggestedName(reinterpret_cast<const wchar_t *>(suggestedName.utf16()),
- suggestedName.length());
- hr = picker->put_SuggestedFileName(nativeSuggestedName.Get());
- RETURN_FALSE_IF_FAILED("Failed to set suggested file name");
+ if (!suggestedName.isEmpty()) {
+ HStringReference nativeSuggestedName(reinterpret_cast<const wchar_t *>(suggestedName.utf16()),
+ suggestedName.length());
+ hr = picker->put_SuggestedFileName(nativeSuggestedName.Get());
+ RETURN_FALSE_IF_FAILED("Failed to set suggested file name");
+ }
ComPtr<IAsyncOperation<StorageFile *>> op;
hr = picker->PickSaveFileAsync(&op);
diff --git a/src/plugins/platforms/winrt/qwinrtfileengine.cpp b/src/plugins/platforms/winrt/qwinrtfileengine.cpp
index f4e307eb07..719bb18dd6 100644
--- a/src/plugins/platforms/winrt/qwinrtfileengine.cpp
+++ b/src/plugins/platforms/winrt/qwinrtfileengine.cpp
@@ -70,7 +70,7 @@ class QWinRTFileEnginePrivate
{
public:
QWinRTFileEnginePrivate(const QString &fileName, IStorageItem *file)
- : fileName(fileName), file(file)
+ : fileName(fileName), file(file), openMode(QIODevice::NotOpen)
{
HRESULT hr;
hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Storage_Streams_Buffer).Get(),
@@ -101,6 +101,7 @@ public:
int firstDot;
ComPtr<IStorageItem> file;
ComPtr<IRandomAccessStream> stream;
+ QIODevice::OpenMode openMode;
qint64 pos;
@@ -203,6 +204,8 @@ bool QWinRTFileEngine::open(QIODevice::OpenMode openMode)
hr = QWinRTFunctions::await(op, d->stream.GetAddressOf());
RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::OpenError, false);
+ d->openMode = openMode;
+
return SUCCEEDED(hr);
}
@@ -220,9 +223,33 @@ bool QWinRTFileEngine::close()
hr = closable->Close();
RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::UnspecifiedError, false);
d->stream.Reset();
+ d->openMode = QIODevice::NotOpen;
return SUCCEEDED(hr);
}
+bool QWinRTFileEngine::flush()
+{
+ Q_D(QWinRTFileEngine);
+
+ if (!d->stream)
+ return false;
+
+ if (!(d->openMode & QIODevice::WriteOnly))
+ return true;
+
+ ComPtr<IOutputStream> stream;
+ HRESULT hr = d->stream.As(&stream);
+ RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, false);
+ ComPtr<IAsyncOperation<bool>> flushOp;
+ hr = stream->FlushAsync(&flushOp);
+ RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, false);
+ boolean flushed;
+ hr = QWinRTFunctions::await(flushOp, &flushed);
+ RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, false);
+
+ return true;
+}
+
qint64 QWinRTFileEngine::size() const
{
Q_D(const QWinRTFileEngine);
@@ -484,13 +511,6 @@ qint64 QWinRTFileEngine::write(const char *data, qint64 maxlen)
hr = QWinRTFunctions::await(op, &length);
RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, -1);
- ComPtr<IAsyncOperation<bool>> flushOp;
- hr = stream->FlushAsync(&flushOp);
- RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, -1);
- boolean flushed;
- hr = QWinRTFunctions::await(flushOp, &flushed);
- RETURN_AND_SET_ERROR_IF_FAILED(QFileDevice::WriteError, -1);
-
return qint64(length);
}
diff --git a/src/plugins/platforms/winrt/qwinrtfileengine.h b/src/plugins/platforms/winrt/qwinrtfileengine.h
index 30357759fb..983338f2e2 100644
--- a/src/plugins/platforms/winrt/qwinrtfileengine.h
+++ b/src/plugins/platforms/winrt/qwinrtfileengine.h
@@ -71,6 +71,7 @@ public:
bool open(QIODevice::OpenMode openMode) Q_DECL_OVERRIDE;
bool close() Q_DECL_OVERRIDE;
+ bool flush() Q_DECL_OVERRIDE;
qint64 size() const Q_DECL_OVERRIDE;
qint64 pos() const Q_DECL_OVERRIDE;
bool seek(qint64 pos) Q_DECL_OVERRIDE;
diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
index 347a3bb5cf..300cbf008d 100644
--- a/src/plugins/platforms/xcb/qxcbbackingstore.cpp
+++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
@@ -158,7 +158,7 @@ QXcbShmImage::QXcbShmImage(QXcbScreen *screen, const QSize &size, uint depth, QI
xcb_generic_error_t *error = NULL;
if (shm_present)
error = xcb_request_check(xcb_connection(), xcb_shm_attach_checked(xcb_connection(), m_shm_info.shmseg, m_shm_info.shmid, false));
- if (!shm_present || error) {
+ if (!shm_present || error || id == -1) {
free(error);
shmdt(m_shm_info.shmaddr);
@@ -304,21 +304,30 @@ QXcbBackingStore::~QXcbBackingStore()
QPaintDevice *QXcbBackingStore::paintDevice()
{
- return m_image ? m_image->image() : 0;
+ if (!m_image)
+ return 0;
+ return m_rgbImage.isNull() ? m_image->image() : &m_rgbImage;
}
void QXcbBackingStore::beginPaint(const QRegion &region)
{
if (!m_image)
return;
- const int dpr = int(m_image->image()->devicePixelRatio());
- QRegion xRegion = dpr == 1 ? region : QTransform::fromScale(dpr,dpr).map(region);
- m_image->preparePaint(xRegion);
+
+ int dpr = int(m_image->image()->devicePixelRatio());
+ const int windowDpr = int(window()->devicePixelRatio());
+ if (windowDpr != dpr) {
+ resize(window()->size(), QRegion());
+ dpr = int(m_image->image()->devicePixelRatio());
+ }
+
+ m_paintRegion = dpr == 1 ? region : QTransform::fromScale(dpr,dpr).map(region);
+ m_image->preparePaint(m_paintRegion);
if (m_image->image()->hasAlphaChannel()) {
- QPainter p(m_image->image());
+ QPainter p(paintDevice());
p.setCompositionMode(QPainter::CompositionMode_Source);
- const QVector<QRect> rects = xRegion.rects();
+ const QVector<QRect> rects = m_paintRegion.rects();
const QColor blank = Qt::transparent;
for (QVector<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it) {
p.fillRect(*it, blank);
@@ -326,6 +335,24 @@ void QXcbBackingStore::beginPaint(const QRegion &region)
}
}
+void QXcbBackingStore::endPaint()
+{
+ QXcbWindow *platformWindow = static_cast<QXcbWindow *>(window()->handle());
+ if (!platformWindow || !platformWindow->imageNeedsRgbSwap())
+ return;
+
+ // Slow path: the paint device was m_rgbImage. Now copy with swapping red
+ // and blue into m_image.
+ const QVector<QRect> rects = m_paintRegion.rects();
+ if (rects.isEmpty())
+ return;
+ QPainter p(m_image->image());
+ for (QVector<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it) {
+ const QRect rect = *it;
+ p.drawImage(rect.topLeft(), m_rgbImage.copy(rect).rgbSwapped());
+ }
+}
+
#ifndef QT_NO_OPENGL
QImage QXcbBackingStore::toImage() const
{
@@ -343,7 +370,19 @@ void QXcbBackingStore::flush(QWindow *window, const QRegion &region, const QPoin
if (!m_image || m_image->size().isEmpty())
return;
- QSize imageSize = m_image->size();
+ // Note on the qHighDpiToDeviceIndependentPixels call below: When scaling
+ // in QtGui is active this prevents xcb plugin from scalìng in addition
+ // by keeping "dpr" below at 1.
+ const int dpr = int(qHighDpiToDeviceIndependentPixels(window->devicePixelRatio(), window));
+
+
+#ifndef QT_NO_DEBUG
+ const int imageDpr = int(m_image->image()->devicePixelRatio());
+ if (dpr != imageDpr)
+ qWarning() << "QXcbBackingStore::flush() wrong devicePixelRatio for backingstore image" << dpr << imageDpr;
+#endif
+
+ QSize imageSize = m_image->size() / dpr; //because we multiply with the DPR later
QRegion clipped = region;
clipped &= qHighDpiToDevicePixels(QRect(0, 0, window->width(), window->height()));
@@ -362,11 +401,6 @@ void QXcbBackingStore::flush(QWindow *window, const QRegion &region, const QPoin
return;
}
- // Note on the qHighDpiToDeviceIndependentPixels call below: When scaling
- // in QtGui is active this prevents xcb plugin from scalìng in addition
- // by keeping "dpr" below at 1.
- const int dpr = int(qHighDpiToDeviceIndependentPixels(window->devicePixelRatio(), window));
-
QVector<QRect> rects = clipped.rects();
for (int i = 0; i < rects.size(); ++i) {
QRect rect = QRect(rects.at(i).topLeft() * dpr, rects.at(i).size() * dpr);
@@ -403,8 +437,7 @@ void QXcbBackingStore::resize(const QSize &size, const QRegion &)
{
const int dpr = int(qHighDpiToDeviceIndependentPixels(window()->devicePixelRatio(), window()));
const QSize xSize = size * dpr;
-
- if (m_image && xSize == m_image->size())
+ if (m_image && xSize == m_image->size() && dpr == m_image->image()->devicePixelRatio())
return;
Q_XCB_NOOP(connection());
@@ -419,6 +452,12 @@ void QXcbBackingStore::resize(const QSize &size, const QRegion &)
delete m_image;
m_image = new QXcbShmImage(screen, xSize, win->depth(), win->imageFormat());
m_image->image()->setDevicePixelRatio(dpr);
+ // Slow path for bgr888 VNC: Create an additional image, paint into that and
+ // swap R and B while copying to m_image after each paint.
+ if (win->imageNeedsRgbSwap()) {
+ m_rgbImage = QImage(xSize, win->imageFormat());
+ m_rgbImage.setDevicePixelRatio(dpr);
+ }
Q_XCB_NOOP(connection());
}
diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.h b/src/plugins/platforms/xcb/qxcbbackingstore.h
index 248542719b..b58a32d313 100644
--- a/src/plugins/platforms/xcb/qxcbbackingstore.h
+++ b/src/plugins/platforms/xcb/qxcbbackingstore.h
@@ -65,9 +65,12 @@ public:
bool scroll(const QRegion &area, int dx, int dy) Q_DECL_OVERRIDE;
void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
+ void endPaint() Q_DECL_OVERRIDE;
private:
QXcbShmImage *m_image;
+ QRegion m_paintRegion;
+ QImage m_rgbImage;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
index 2c0a7a11cc..248d1b4bbb 100644
--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
@@ -749,7 +749,8 @@ void QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_eve
m_xClipboard[mode]->reset();
}
emitChanged(mode);
- } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE)
+ } else if (event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE ||
+ event->subtype == XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY)
emitChanged(mode);
}
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
index 0ca141526e..706b9c8e48 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
@@ -306,71 +306,88 @@ void QXcbConnection::initializeScreens()
int connectedOutputCount = 0;
if (has_randr_extension) {
xcb_generic_error_t *error = NULL;
- xcb_randr_get_output_primary_cookie_t primaryCookie =
- xcb_randr_get_output_primary(xcb_connection(), xcbScreen->root);
- // TODO: RRGetScreenResources has to be called on each X display at least once before
- // RRGetScreenResourcesCurrent can be used - we can't know if we are the first application
- // to do so or not, so we always call the slower version here. Ideally we should share some
- // global flag (an atom on root window maybe) that at least other Qt apps would understand
- // and could call RRGetScreenResourcesCurrent here, speeding up start.
- xcb_randr_get_screen_resources_cookie_t resourcesCookie =
- xcb_randr_get_screen_resources(xcb_connection(), xcbScreen->root);
- QScopedPointer<xcb_randr_get_output_primary_reply_t, QScopedPointerPodDeleter> primary(
- xcb_randr_get_output_primary_reply(xcb_connection(), primaryCookie, &error));
- if (!primary || error) {
- qWarning("failed to get the primary output of the screen");
+ // RRGetScreenResourcesCurrent is fast but it may return nothing if the
+ // configuration is not initialized wrt to the hardware. We should call
+ // RRGetScreenResources in this case.
+ QScopedPointer<xcb_randr_get_screen_resources_reply_t, QScopedPointerPodDeleter> resources;
+ xcb_randr_get_screen_resources_current_cookie_t resourcesCookie =
+ xcb_randr_get_screen_resources_current(xcb_connection(), xcbScreen->root);
+ QScopedPointer<xcb_randr_get_screen_resources_current_reply_t, QScopedPointerPodDeleter> resources_current(
+ xcb_randr_get_screen_resources_current_reply(xcb_connection(), resourcesCookie, &error));
+ if (!resources_current || error) {
+ qWarning("failed to get the current screen resources");
free(error);
} else {
- QScopedPointer<xcb_randr_get_screen_resources_reply_t, QScopedPointerPodDeleter> resources(
- xcb_randr_get_screen_resources_reply(xcb_connection(), resourcesCookie, &error));
- if (!resources || error) {
- qWarning("failed to get the screen resources");
- free(error);
+ xcb_timestamp_t timestamp;
+ xcb_randr_output_t *outputs = Q_NULLPTR;
+ outputCount = xcb_randr_get_screen_resources_current_outputs_length(resources_current.data());
+ if (outputCount) {
+ timestamp = resources_current->config_timestamp;
+ outputs = xcb_randr_get_screen_resources_current_outputs(resources_current.data());
} else {
- xcb_timestamp_t timestamp = resources->config_timestamp;
- outputCount = xcb_randr_get_screen_resources_outputs_length(resources.data());
- xcb_randr_output_t *outputs = xcb_randr_get_screen_resources_outputs(resources.data());
-
- for (int i = 0; i < outputCount; i++) {
- QScopedPointer<xcb_randr_get_output_info_reply_t, QScopedPointerPodDeleter> output(
- xcb_randr_get_output_info_reply(xcb_connection(),
- xcb_randr_get_output_info_unchecked(xcb_connection(), outputs[i], timestamp), NULL));
-
- // Invalid, disconnected or disabled output
- if (output == NULL)
- continue;
-
- if (output->connection != XCB_RANDR_CONNECTION_CONNECTED) {
- qCDebug(lcQpaScreen, "Output %s is not connected", qPrintable(
- QString::fromUtf8((const char*)xcb_randr_get_output_info_name(output.data()),
- xcb_randr_get_output_info_name_length(output.data()))));
- continue;
- }
+ xcb_randr_get_screen_resources_cookie_t resourcesCookie =
+ xcb_randr_get_screen_resources(xcb_connection(), xcbScreen->root);
+ resources.reset(xcb_randr_get_screen_resources_reply(xcb_connection(), resourcesCookie, &error));
+ if (!resources || error) {
+ qWarning("failed to get the screen resources");
+ free(error);
+ } else {
+ timestamp = resources->config_timestamp;
+ outputCount = xcb_randr_get_screen_resources_outputs_length(resources.data());
+ outputs = xcb_randr_get_screen_resources_outputs(resources.data());
+ }
+ }
- if (output->crtc == XCB_NONE) {
- qCDebug(lcQpaScreen, "Output %s is not enabled", qPrintable(
- QString::fromUtf8((const char*)xcb_randr_get_output_info_name(output.data()),
- xcb_randr_get_output_info_name_length(output.data()))));
- continue;
- }
+ if (outputCount) {
+ xcb_randr_get_output_primary_cookie_t primaryCookie =
+ xcb_randr_get_output_primary(xcb_connection(), xcbScreen->root);
+ QScopedPointer<xcb_randr_get_output_primary_reply_t, QScopedPointerPodDeleter> primary(
+ xcb_randr_get_output_primary_reply(xcb_connection(), primaryCookie, &error));
+ if (!primary || error) {
+ qWarning("failed to get the primary output of the screen");
+ free(error);
+ } else {
+ for (int i = 0; i < outputCount; i++) {
+ QScopedPointer<xcb_randr_get_output_info_reply_t, QScopedPointerPodDeleter> output(
+ xcb_randr_get_output_info_reply(xcb_connection(),
+ xcb_randr_get_output_info_unchecked(xcb_connection(), outputs[i], timestamp), NULL));
+
+ // Invalid, disconnected or disabled output
+ if (output == NULL)
+ continue;
+
+ if (output->connection != XCB_RANDR_CONNECTION_CONNECTED) {
+ qCDebug(lcQpaScreen, "Output %s is not connected", qPrintable(
+ QString::fromUtf8((const char*)xcb_randr_get_output_info_name(output.data()),
+ xcb_randr_get_output_info_name_length(output.data()))));
+ continue;
+ }
+
+ if (output->crtc == XCB_NONE) {
+ qCDebug(lcQpaScreen, "Output %s is not enabled", qPrintable(
+ QString::fromUtf8((const char*)xcb_randr_get_output_info_name(output.data()),
+ xcb_randr_get_output_info_name_length(output.data()))));
+ continue;
+ }
- QXcbScreen *screen = createScreen(xcbScreenNumber, xcbScreen, outputs[i], output.data());
- siblings << screen;
- ++connectedOutputCount;
- hasOutputs = true;
- m_screens << screen;
-
- // There can be multiple outputs per screen, use either
- // the first or an exact match. An exact match isn't
- // always available if primary->output is XCB_NONE
- // or currently disconnected output.
- if (m_primaryScreenNumber == xcbScreenNumber) {
- if (!primaryScreen || (primary && outputs[i] == primary->output)) {
- if (primaryScreen)
- primaryScreen->setPrimary(false);
- primaryScreen = screen;
- primaryScreen->setPrimary(true);
- siblings.prepend(siblings.takeLast());
+ QXcbScreen *screen = createScreen(xcbScreenNumber, xcbScreen, outputs[i], output.data());
+ siblings << screen;
+ ++connectedOutputCount;
+ hasOutputs = true;
+ m_screens << screen;
+
+ // There can be multiple outputs per screen, use either
+ // the first or an exact match. An exact match isn't
+ // always available if primary->output is XCB_NONE
+ // or currently disconnected output.
+ if (m_primaryScreenNumber == xcbScreenNumber) {
+ if (!primaryScreen || (primary && outputs[i] == primary->output)) {
+ if (primaryScreen)
+ primaryScreen->setPrimary(false);
+ primaryScreen = screen;
+ primaryScreen->setPrimary(true);
+ siblings.prepend(siblings.takeLast());
+ }
}
}
}
@@ -1120,7 +1137,7 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
}
}
- if (!handled)
+ if (!handled && m_glIntegration)
handled = m_glIntegration->handleXcbEvent(event, response_type);
if (handled)
@@ -1463,6 +1480,7 @@ static const char * xcb_atomnames = {
"WM_STATE\0"
"WM_CHANGE_STATE\0"
"WM_CLASS\0"
+ "WM_NAME\0"
// Session management
"WM_CLIENT_LEADER\0"
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 4c014bc6e2..1190e7c2b0 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -107,6 +107,7 @@ namespace QXcbAtom {
WM_STATE,
WM_CHANGE_STATE,
WM_CLASS,
+ WM_NAME,
// Session management
WM_CLIENT_LEADER,
diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
index e3a04c1d7b..8dd27ec9c5 100644
--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
+++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
@@ -53,6 +53,12 @@ typedef int (*PtrXcursorLibrarySetTheme)(void *, const char *);
typedef int (*PtrXcursorLibraryGetDefaultSize)(void *);
#ifdef XCB_USE_XLIB
+#include <X11/Xlib.h>
+enum {
+ XCursorShape = CursorShape
+};
+#undef CursorShape
+
static PtrXcursorLibraryLoadCursor ptrXcursorLibraryLoadCursor = 0;
static PtrXcursorLibraryGetTheme ptrXcursorLibraryGetTheme = 0;
static PtrXcursorLibrarySetTheme ptrXcursorLibrarySetTheme = 0;
@@ -552,6 +558,12 @@ xcb_cursor_t QXcbCursor::createFontCursor(int cshape)
}
if (cursor)
return cursor;
+ if (!cursor && cursorId) {
+ cursor = XCreateFontCursor(DISPLAY_FROM_XCB(this), cursorId);
+ if (cursor)
+ return cursor;
+ }
+
#endif
// Non-standard X11 cursors are created from bitmaps
diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
index 258359d20f..2547e537a7 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
+++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
@@ -186,9 +186,9 @@ QXcbIntegration::~QXcbIntegration()
QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const
{
+ QXcbScreen *screen = static_cast<QXcbScreen *>(window->screen()->handle());
+ QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
if (window->type() != Qt::Desktop) {
- QXcbScreen *screen = static_cast<QXcbScreen *>(window->screen()->handle());
- QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
if (glIntegration) {
QXcbWindow *xcbWindow = glIntegration->createWindow(window);
xcbWindow->create();
@@ -196,7 +196,8 @@ QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const
}
}
- Q_ASSERT(window->type() == Qt::Desktop || !window->supportsOpenGL());
+ Q_ASSERT(window->type() == Qt::Desktop || !window->supportsOpenGL()
+ || (!glIntegration && window->surfaceType() == QSurface::RasterGLSurface)); // for VNC
QXcbWindow *xcbWindow = new QXcbWindow(window);
xcbWindow->create();
return xcbWindow;
@@ -374,6 +375,8 @@ QVariant QXcbIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
// X11 always has support for windows, but the
// window manager could prevent it (e.g. matchbox)
return false;
+ case QPlatformIntegration::ReplayMousePressOutsidePopup:
+ return false;
default:
break;
}
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 17578345cf..b50b6b8965 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -88,6 +88,7 @@
#include <qpa/qplatformbackingstore.h>
#include <qpa/qwindowsysteminterface.h>
+#include <QTextCodec>
#include <stdio.h>
#ifdef XCB_USE_XLIB
@@ -157,6 +158,11 @@ static inline QPoint dpr_ceil(const QPoint &p, int dpr)
return QPoint((p.x() + dpr - 1) / dpr, (p.y() + dpr - 1) / dpr);
}
+static inline QSize dpr_ceil(const QSize &s, int dpr)
+{
+ return QSize((s.width() + dpr - 1) / dpr, (s.height() + dpr - 1) / dpr);
+}
+
static inline QRect mapExposeFromNative(const QRect &xRect, int dpr)
{
return QRect(dpr_floor(xRect.topLeft(), dpr), dpr_ceil(xRect.bottomRight(), dpr));
@@ -164,7 +170,7 @@ static inline QRect mapExposeFromNative(const QRect &xRect, int dpr)
static inline QRect mapGeometryFromNative(const QRect &xRect, int dpr)
{
- return QRect(xRect.topLeft() / dpr, xRect.bottomRight() / dpr);
+ return QRect(xRect.topLeft() / dpr, dpr_ceil(xRect.size(), dpr));
}
// Returns \c true if we should set WM_TRANSIENT_FOR on \a w
@@ -179,8 +185,10 @@ static inline bool isTransient(const QWindow *w)
|| w->type() == Qt::Popup;
}
-static inline QImage::Format imageFormatForVisual(int depth, quint32 red_mask, quint32 blue_mask)
+static inline QImage::Format imageFormatForVisual(int depth, quint32 red_mask, quint32 blue_mask, bool *rgbSwap)
{
+ if (rgbSwap)
+ *rgbSwap = false;
switch (depth) {
case 32:
if (blue_mask == 0xff)
@@ -189,6 +197,11 @@ static inline QImage::Format imageFormatForVisual(int depth, quint32 red_mask, q
return QImage::Format_A2BGR30_Premultiplied;
if (blue_mask == 0x3ff)
return QImage::Format_A2RGB30_Premultiplied;
+ if (red_mask == 0xff) {
+ if (rgbSwap)
+ *rgbSwap = true;
+ return QImage::Format_ARGB32_Premultiplied;
+ }
break;
case 30:
if (red_mask == 0x3ff)
@@ -199,6 +212,11 @@ static inline QImage::Format imageFormatForVisual(int depth, quint32 red_mask, q
case 24:
if (blue_mask == 0xff)
return QImage::Format_RGB32;
+ if (red_mask == 0xff) {
+ if (rgbSwap)
+ *rgbSwap = true;
+ return QImage::Format_RGB32;
+ }
break;
case 16:
if (blue_mask == 0x1f)
@@ -228,6 +246,48 @@ static inline bool positionIncludesFrame(QWindow *w)
return qt_window_private(w)->positionPolicy == QWindowPrivate::WindowFrameInclusive;
}
+#ifdef XCB_USE_XLIB
+static inline XTextProperty* qstringToXTP(Display *dpy, const QString& s)
+{
+ #include <X11/Xatom.h>
+
+ static XTextProperty tp = { 0, 0, 0, 0 };
+ static bool free_prop = true; // we can't free tp.value in case it references
+ // the data of the static QByteArray below.
+ if (tp.value) {
+ if (free_prop)
+ XFree(tp.value);
+ tp.value = 0;
+ free_prop = true;
+ }
+
+ static const QTextCodec* mapper = QTextCodec::codecForLocale();
+ int errCode = 0;
+ if (mapper) {
+ QByteArray mapped = mapper->fromUnicode(s);
+ char* tl[2];
+ tl[0] = mapped.data();
+ tl[1] = 0;
+ errCode = XmbTextListToTextProperty(dpy, tl, 1, XStdICCTextStyle, &tp);
+ if (errCode < 0)
+ qDebug("XmbTextListToTextProperty result code %d", errCode);
+ }
+ if (!mapper || errCode < 0) {
+ mapper = QTextCodec::codecForName("latin1");
+ if (!mapper || !mapper->canEncode(s))
+ return Q_NULLPTR;
+ static QByteArray qcs;
+ qcs = s.toLatin1();
+ tp.value = (uchar*)qcs.data();
+ tp.encoding = XA_STRING;
+ tp.format = 8;
+ tp.nitems = qcs.length();
+ free_prop = false;
+ }
+ return &tp;
+}
+#endif // XCB_USE_XLIB
+
static const char *wm_window_type_property_id = "_q_xcb_wm_window_type";
QXcbWindow::QXcbWindow(QWindow *window)
@@ -293,16 +353,11 @@ void QXcbWindow::create()
m_depth = platformScreen->screen()->root_depth;
m_visualId = platformScreen->screen()->root_visual;
const xcb_visualtype_t *visual = platformScreen->visualForId(m_visualId);
- m_imageFormat = imageFormatForVisual(m_depth, visual->red_mask, visual->blue_mask);
+ m_imageFormat = imageFormatForVisual(m_depth, visual->red_mask, visual->blue_mask, &m_imageRgbSwap);
connection()->addWindowEventListener(m_window, this);
return;
}
- // Determine gravity from initial position. Do not change
- // later as it will cause the window to move uncontrollably.
- m_gravity = positionIncludesFrame(window()) ?
- XCB_GRAVITY_NORTH_WEST : XCB_GRAVITY_STATIC;
-
const quint32 mask = XCB_CW_BACK_PIXMAP | XCB_CW_OVERRIDE_REDIRECT | XCB_CW_SAVE_UNDER | XCB_CW_EVENT_MASK;
const quint32 values[] = {
// XCB_CW_BACK_PIXMAP
@@ -365,7 +420,7 @@ void QXcbWindow::create()
if (visualInfo) {
m_depth = visualInfo->depth;
- m_imageFormat = imageFormatForVisual(visualInfo->depth, visualInfo->red_mask, visualInfo->blue_mask);
+ m_imageFormat = imageFormatForVisual(visualInfo->depth, visualInfo->red_mask, visualInfo->blue_mask, &m_imageRgbSwap);
Colormap cmap = XCreateColormap(DISPLAY_FROM_XCB(this), xcb_parent_id, visualInfo->visual, AllocNone);
XSetWindowAttributes a;
@@ -418,7 +473,7 @@ void QXcbWindow::create()
}
const xcb_visualtype_t *visual = platformScreen->visualForId(m_visualId);
- m_imageFormat = imageFormatForVisual(m_depth, visual->red_mask, visual->blue_mask);
+ m_imageFormat = imageFormatForVisual(m_depth, visual->red_mask, visual->blue_mask, &m_imageRgbSwap);
Q_XCB_CALL(xcb_create_window(xcb_connection(),
m_depth,
@@ -724,6 +779,9 @@ void QXcbWindow::show()
xcb_set_wm_hints(xcb_connection(), m_window, &hints);
+ m_gravity = positionIncludesFrame(window()) ?
+ XCB_GRAVITY_NORTH_WEST : XCB_GRAVITY_STATIC;
+
// update WM_NORMAL_HINTS
propagateSizeHints();
@@ -1408,6 +1466,12 @@ void QXcbWindow::setWindowTitle(const QString &title)
8,
ba.length(),
ba.constData()));
+
+#ifdef XCB_USE_XLIB
+ XTextProperty *text = qstringToXTP(DISPLAY_FROM_XCB(this), title);
+ if (text)
+ XSetWMName(DISPLAY_FROM_XCB(this), m_window, text);
+#endif
xcb_flush(xcb_connection());
}
diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
index cd3c091973..2442e6c4e3 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.h
+++ b/src/plugins/platforms/xcb/qxcbwindow.h
@@ -114,6 +114,7 @@ public:
xcb_window_t xcb_window() const { return m_window; }
uint depth() const { return m_depth; }
QImage::Format imageFormat() const { return m_imageFormat; }
+ bool imageNeedsRgbSwap() const { return m_imageRgbSwap; }
bool handleGenericEvent(xcb_generic_event_t *event, long *result) Q_DECL_OVERRIDE;
@@ -205,6 +206,7 @@ protected:
uint m_depth;
QImage::Format m_imageFormat;
+ bool m_imageRgbSwap;
xcb_sync_int64_t m_syncValue;
xcb_sync_counter_t m_syncCounter;
diff --git a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
index 2ac31bf715..141056637e 100644
--- a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
+++ b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
@@ -34,7 +34,11 @@
#ifndef QGTK2DIALOGHELPERS_P_H
#define QGTK2DIALOGHELPERS_P_H
+#include <QtCore/qhash.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qurl.h>
#include <QtCore/qscopedpointer.h>
+#include <QtCore/qstring.h>
#include <qpa/qplatformdialoghelper.h>
typedef struct _GtkDialog GtkDialog;
@@ -43,6 +47,7 @@ typedef struct _GtkFileFilter GtkFileFilter;
QT_BEGIN_NAMESPACE
class QGtk2Dialog;
+class QColor;
class QGtk2ColorDialogHelper : public QPlatformColorDialogHelper
{
diff --git a/src/plugins/printsupport/cups/qppdprintdevice.h b/src/plugins/printsupport/cups/qppdprintdevice.h
index 0d618192fe..2437234d28 100644
--- a/src/plugins/printsupport/cups/qppdprintdevice.h
+++ b/src/plugins/printsupport/cups/qppdprintdevice.h
@@ -49,6 +49,10 @@
#ifndef QT_NO_PRINTER
+#include <QtCore/qbytearray.h>
+#include <QtCore/qhash.h>
+#include <QtCore/qmargins.h>
+
#include <cups/cups.h>
#include <cups/ppd.h>
diff --git a/src/plugins/printsupport/windows/qwindowsprintdevice.cpp b/src/plugins/printsupport/windows/qwindowsprintdevice.cpp
index 54bd9c5c72..af8e07edd2 100644
--- a/src/plugins/printsupport/windows/qwindowsprintdevice.cpp
+++ b/src/plugins/printsupport/windows/qwindowsprintdevice.cpp
@@ -39,14 +39,12 @@
# define DC_COLLATE 22
#endif
-#if defined (Q_CC_MINGW)
-# pragma GCC diagnostic ignored "-Wsign-compare"
-#endif
-
QT_BEGIN_NAMESPACE
#ifndef QT_NO_PRINTER
+QT_WARNING_DISABLE_GCC("-Wsign-compare")
+
extern qreal qt_pointMultiplier(QPageLayout::Unit unit);
static inline uint qwcsnlen(const wchar_t *str, uint maxlen)
@@ -248,8 +246,20 @@ QMarginsF QWindowsPrintDevice::printableMargins(const QPageSize &pageSize,
if (GetPrinter(m_hPrinter, 2, buffer.data(), needed, &needed)) {
PPRINTER_INFO_2 info = reinterpret_cast<PPRINTER_INFO_2>(buffer.data());
DEVMODE *devMode = info->pDevMode;
- if (!devMode)
- return margins;
+ bool separateDevMode = false;
+ if (!devMode) {
+ // GetPrinter() didn't include the DEVMODE. Get it a different way.
+ LONG result = DocumentProperties(NULL, m_hPrinter, (LPWSTR)m_id.utf16(),
+ NULL, NULL, 0);
+ devMode = (DEVMODE *)malloc(result);
+ separateDevMode = true;
+ result = DocumentProperties(NULL, m_hPrinter, (LPWSTR)m_id.utf16(),
+ devMode, NULL, DM_OUT_BUFFER);
+ if (result != IDOK) {
+ free(devMode);
+ return margins;
+ }
+ }
HDC pDC = CreateDC(NULL, (LPWSTR)m_id.utf16(), NULL, devMode);
if (pageSize.id() == QPageSize::Custom || pageSize.windowsId() <= 0 || pageSize.windowsId() > DMPAPER_LAST) {
@@ -275,6 +285,8 @@ QMarginsF QWindowsPrintDevice::printableMargins(const QPageSize &pageSize,
const qreal rightMargin = physicalWidth - leftMargin - printableWidth;
const qreal bottomMargin = physicalHeight - topMargin - printableHeight;
margins = QMarginsF(leftMargin, topMargin, rightMargin, bottomMargin);
+ if (separateDevMode)
+ free(devMode);
DeleteDC(pDC);
}
return margins;
diff --git a/src/printsupport/dialogs/qpagesetupdialog_win.cpp b/src/printsupport/dialogs/qpagesetupdialog_win.cpp
index 04698901f7..afe0268e55 100644
--- a/src/printsupport/dialogs/qpagesetupdialog_win.cpp
+++ b/src/printsupport/dialogs/qpagesetupdialog_win.cpp
@@ -134,6 +134,13 @@ int QPageSetupDialog::exec()
// copy from our temp DEVMODE struct
if (!engine->globalDevMode() && hDevMode) {
+ // Make sure memory is allocated
+ if (ep->ownsDevMode && ep->devMode)
+ free(ep->devMode);
+ ep->devMode = (DEVMODE *) malloc(devModeSize);
+ ep->ownsDevMode = true;
+
+ // Copy
void *src = GlobalLock(hDevMode);
memcpy(ep->devMode, src, devModeSize);
GlobalUnlock(hDevMode);
diff --git a/src/printsupport/kernel/qprintengine_win.cpp b/src/printsupport/kernel/qprintengine_win.cpp
index 5b3184a20d..910c6c1514 100644
--- a/src/printsupport/kernel/qprintengine_win.cpp
+++ b/src/printsupport/kernel/qprintengine_win.cpp
@@ -868,7 +868,8 @@ void QWin32PrintEnginePrivate::initialize()
txop = QTransform::TxNone;
- bool ok = OpenPrinter((LPWSTR)m_printDevice.id().utf16(), (LPHANDLE)&hPrinter, 0);
+ QString printerName = m_printDevice.id();
+ bool ok = OpenPrinter((LPWSTR)printerName.utf16(), (LPHANDLE)&hPrinter, 0);
if (!ok) {
qErrnoWarning("QWin32PrintEngine::initialize: OpenPrinter failed");
return;
@@ -889,7 +890,32 @@ void QWin32PrintEnginePrivate::initialize()
}
devMode = pInfo->pDevMode;
- hdc = CreateDC(NULL, reinterpret_cast<const wchar_t *>(m_printDevice.id().utf16()), 0, devMode);
+
+ if (!devMode) {
+ // pInfo->pDevMode == NULL for some printers and passing NULL
+ // into CreateDC leads to the printer doing nothing. In addition,
+ // the framework assumes that devMode isn't NULL, such as in
+ // QWin32PrintEngine::begin() and QPageSetupDialog::exec()
+ // Attempt to get the DEVMODE a different way.
+
+ // Allocate the required buffer
+ LONG result = DocumentProperties(NULL, hPrinter, (LPWSTR)printerName.utf16(),
+ NULL, NULL, 0);
+ devMode = (DEVMODE *) malloc(result);
+ ownsDevMode = true;
+
+ // Get the default DevMode
+ result = DocumentProperties(NULL, hPrinter, (LPWSTR)printerName.utf16(),
+ devMode, NULL, DM_OUT_BUFFER);
+ if (result != IDOK) {
+ qErrnoWarning("QWin32PrintEngine::initialize: Failed to obtain devMode");
+ free(devMode);
+ devMode = NULL;
+ ownsDevMode = false;
+ }
+ }
+
+ hdc = CreateDC(NULL, (LPCWSTR)printerName.utf16(), 0, devMode);
if (!hdc) {
qErrnoWarning("QWin32PrintEngine::initialize: CreateDC failed");
@@ -952,8 +978,7 @@ void QWin32PrintEnginePrivate::release()
{
if (globalDevMode) { // Devmode comes from print dialog
GlobalUnlock(globalDevMode);
- } else if (hMem) { // Devmode comes from initialize...
- // devMode is a part of the same memory block as pInfo so one free is enough...
+ } else if (hMem) {
GlobalUnlock(hMem);
GlobalFree(hMem);
}
@@ -962,11 +987,16 @@ void QWin32PrintEnginePrivate::release()
if (hdc)
DeleteDC(hdc);
+ // Check if devMode was allocated separately from pInfo / hMem.
+ if (ownsDevMode)
+ free(devMode);
+
hdc = 0;
hPrinter = 0;
pInfo = 0;
hMem = 0;
devMode = 0;
+ ownsDevMode = false;
}
void QWin32PrintEnginePrivate::doReinit()
@@ -1261,6 +1291,8 @@ void QWin32PrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &
}
case PPK_QPageSize: {
+ if (!d->devMode)
+ break;
// Get the page size from the printer if supported
const QPageSize pageSize = value.value<QPageSize>();
if (pageSize.isValid()) {
@@ -1331,7 +1363,10 @@ QVariant QWin32PrintEngine::property(PrintEnginePropertyKey key) const
break;
case PPK_CollateCopies:
- value = d->devMode->dmCollate == DMCOLLATE_TRUE;
+ if (!d->devMode)
+ value = false;
+ else
+ value = d->devMode->dmCollate == DMCOLLATE_TRUE;
break;
case PPK_ColorMode:
@@ -1541,6 +1576,10 @@ void QWin32PrintEngine::setGlobalDevMode(HGLOBAL globalDevNames, HGLOBAL globalD
DEVMODE *dm = (DEVMODE*) GlobalLock(globalDevMode);
d->release();
d->globalDevMode = globalDevMode;
+ if (d->ownsDevMode) {
+ free(d->devMode);
+ d->ownsDevMode = false;
+ }
d->devMode = dm;
d->hdc = CreateDC(NULL, reinterpret_cast<const wchar_t *>(d->m_printDevice.id().utf16()), 0, dm);
@@ -1571,6 +1610,8 @@ void QWin32PrintEnginePrivate::setPageSize(const QPageSize &pageSize)
if (!pageSize.isValid())
return;
+ Q_ASSERT(devMode);
+
// Use the printer page size if supported
const QPageSize printerPageSize = m_printDevice.supportedPageSize(pageSize);
const QPageSize usePageSize = printerPageSize.isValid() ? printerPageSize : pageSize;
@@ -1599,6 +1640,8 @@ void QWin32PrintEnginePrivate::setPageSize(const QPageSize &pageSize)
// Update the page layout after any changes made to devMode
void QWin32PrintEnginePrivate::updatePageLayout()
{
+ Q_ASSERT(devMode);
+
// Update orientation first as is needed to obtain printable margins when changing page size
m_pageLayout.setOrientation(devMode->dmOrientation == DMORIENT_LANDSCAPE ? QPageLayout::Landscape : QPageLayout::Portrait);
if (devMode->dmPaperSize >= DMPAPER_USER) {
diff --git a/src/printsupport/kernel/qprintengine_win_p.h b/src/printsupport/kernel/qprintengine_win_p.h
index 98a4cff1a8..c1d7b452f9 100644
--- a/src/printsupport/kernel/qprintengine_win_p.h
+++ b/src/printsupport/kernel/qprintengine_win_p.h
@@ -119,6 +119,7 @@ public:
pInfo(0),
hMem(0),
hdc(0),
+ ownsDevMode(false),
mode(QPrinter::ScreenResolution),
state(QPrinter::Idle),
resolution(0),
@@ -176,6 +177,9 @@ public:
HDC hdc;
+ // True if devMode was allocated separately from pInfo.
+ bool ownsDevMode;
+
QPrinter::PrinterMode mode;
// Print Device
diff --git a/src/src.pro b/src/src.pro
index 35270cebc5..9dad394a06 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -90,6 +90,9 @@ src_3rdparty_harfbuzzng.subdir = $$PWD/3rdparty/harfbuzz-ng
src_3rdparty_harfbuzzng.target = sub-3rdparty-harfbuzzng
src_3rdparty_harfbuzzng.depends = src_corelib # for the Qt atomics
+src_3rdparty_freetype.subdir = $$PWD/3rdparty/freetype
+src_3rdparty_freetype.target = sub-3rdparty-freetype
+
src_angle.subdir = $$PWD/angle
src_angle.target = sub-angle
@@ -156,6 +159,10 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent
SUBDIRS += src_angle
src_gui.depends += src_angle
}
+ contains(QT_CONFIG, freetype) {
+ SUBDIRS += src_3rdparty_freetype
+ src_platformsupport.depends += src_3rdparty_freetype
+ }
SUBDIRS += src_gui src_platformsupport src_platformheaders
contains(QT_CONFIG, opengl(es2)?):SUBDIRS += src_openglextensions
src_plugins.depends += src_gui src_platformsupport src_platformheaders
@@ -182,7 +189,7 @@ android:!android-no-sdk: SUBDIRS += src_android
TR_EXCLUDE = \
src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic src_tools_qlalr \
src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml \
- src_3rdparty_pcre src_3rdparty_harfbuzzng
+ src_3rdparty_pcre src_3rdparty_harfbuzzng src_3rdparty_freetype
sub-tools.depends = $$TOOLS
QMAKE_EXTRA_TARGETS = sub-tools
diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp
index bf795fcd68..52a9977bbf 100644
--- a/src/testlib/qtestblacklist.cpp
+++ b/src/testlib/qtestblacklist.cpp
@@ -39,6 +39,7 @@
#include <QtCore/qset.h>
#include <QtCore/qcoreapplication.h>
#include <QtCore/qvariant.h>
+#include <QtCore/QSysInfo>
#include <set>
@@ -128,6 +129,14 @@ static bool checkCondition(const QByteArray &condition)
static QSet<QByteArray> matchedConditions = keywords();
QList<QByteArray> conds = condition.split(' ');
+ QByteArray distributionName = QSysInfo::productType().toLower().toUtf8();
+ QByteArray distributionRelease = QSysInfo::productVersion().toLower().toUtf8();
+ if (!distributionName.isEmpty()) {
+ if (matchedConditions.find(distributionName) == matchedConditions.end())
+ matchedConditions.insert(distributionName);
+ matchedConditions.insert(distributionName + "-" + distributionRelease);
+ }
+
for (int i = 0; i < conds.size(); ++i) {
QByteArray c = conds.at(i);
bool result = c.startsWith('!');
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 222bdd3f39..e2f98c2f04 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -59,6 +59,9 @@
#include <QtTest/private/qbenchmark_p.h>
#include <QtTest/private/cycle_p.h>
#include <QtTest/private/qtestblacklist_p.h>
+#if defined(HAVE_XCTEST)
+#include <QtTest/private/qxctestlogger_p.h>
+#endif
#include <numeric>
#include <algorithm>
@@ -1530,6 +1533,11 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
QTestLog::LogMode logFormat = QTestLog::Plain;
const char *logFilename = 0;
+#if defined(Q_OS_MAC) && defined(HAVE_XCTEST)
+ if (QXcodeTestLogger::canLogTestProgress())
+ logFormat = QTestLog::XCTest;
+#endif
+
const char *testOptions =
" New-style logging options:\n"
" -o filename,format : Output results to file in the specified format\n"
@@ -1782,10 +1790,14 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, char *argv[], bool qml)
} else if (strcmp(argv[i], "-vb") == 0) {
QBenchmarkGlobalData::current->verboseOutput = true;
-#ifdef Q_OS_WINRT
+#if defined(Q_OS_WINRT)
} else if (strncmp(argv[i], "-ServerName:", 12) == 0 ||
strncmp(argv[i], "-qdevel", 7) == 0) {
continue;
+#elif defined(Q_OS_MAC) && defined(HAVE_XCTEST)
+ } else if (int skip = QXcodeTestLogger::parseCommandLineArgument(argv[i])) {
+ i += (skip - 1); // Eating argv[i] with a continue counts towards skips
+ continue;
#endif
} else if (argv[i][0] == '-') {
fprintf(stderr, "Unknown option: '%s'\n\n%s", argv[i], testOptions);
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
index 8a4afae447..59aeb27ffe 100644
--- a/src/testlib/qtestlog.cpp
+++ b/src/testlib/qtestlog.cpp
@@ -40,6 +40,10 @@
#include <QtTest/private/qcsvbenchmarklogger_p.h>
#include <QtTest/private/qxunittestlogger_p.h>
#include <QtTest/private/qxmltestlogger_p.h>
+#if defined(HAVE_XCTEST)
+#include <QtTest/private/qxctestlogger_p.h>
+#endif
+
#include <QtCore/qatomic.h>
#include <QtCore/qbytearray.h>
#include <QtCore/QVariant>
@@ -483,6 +487,11 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
case QTestLog::XunitXML:
logger = new QXunitTestLogger(filename);
break;
+#if defined(HAVE_XCTEST)
+ case QTestLog::XCTest:
+ logger = new QXcodeTestLogger;
+ break;
+#endif
}
QTEST_ASSERT(logger);
QTest::TestLoggers::addLogger(logger);
diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
index 75e39e8f3d..b4786b4904 100644
--- a/src/testlib/qtestlog_p.h
+++ b/src/testlib/qtestlog_p.h
@@ -55,7 +55,12 @@ class QRegularExpression;
class Q_TESTLIB_EXPORT QTestLog
{
public:
- enum LogMode { Plain = 0, XML, LightXML, XunitXML, CSV };
+ enum LogMode {
+ Plain = 0, XML, LightXML, XunitXML, CSV,
+#if defined(HAVE_XCTEST)
+ XCTest
+#endif
+ };
static void enterTestFunction(const char* function);
static void leaveTestFunction();
diff --git a/src/testlib/qxctestlogger.mm b/src/testlib/qxctestlogger.mm
new file mode 100644
index 0000000000..833e566af5
--- /dev/null
+++ b/src/testlib/qxctestlogger.mm
@@ -0,0 +1,502 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtTest module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxctestlogger_p.h"
+
+#include <QtCore/qstring.h>
+
+#include <QtTest/private/qtestlog_p.h>
+#include <QtTest/private/qtestresult_p.h>
+
+#import <XCTest/XCTest.h>
+
+// ---------------------------------------------------------
+
+@interface XCTestProbe (Private)
++ (BOOL)isTesting;
++ (void)runTests:(id)unusedArgument;
++ (NSString*)testScope;
++ (BOOL)isInverseTestScope;
+@end
+
+@interface XCTestDriver : NSObject
++ (XCTestDriver*)sharedTestDriver;
+@property (readonly, assign) NSObject *IDEConnection;
+@end
+
+@interface XCTest (Private)
+- (NSString *)nameForLegacyLogging;
+@end
+
+QT_WARNING_PUSH
+// Ignore XCTestProbe deprecation
+QT_WARNING_DISABLE_GCC("-Wdeprecated-declarations")
+
+// ---------------------------------------------------------
+
+@interface QtTestLibWrapper : XCTestCase
+@end
+
+@interface QtTestLibTests : XCTestSuite
++ (XCTestSuiteRun*)testRun;
+@end
+
+@interface QtTestLibTest : XCTestCase
+@property (nonatomic, retain) NSString* testObjectName;
+@property (nonatomic, retain) NSString* testFunctionName;
+@end
+
+// ---------------------------------------------------------
+
+class ThreadBarriers
+{
+public:
+ enum Barrier {
+ XCTestCanStartTesting,
+ XCTestHaveStarted,
+ QtTestsCanStartTesting,
+ QtTestsHaveCompleted,
+ XCTestsHaveCompleted,
+ BarrierCount
+ };
+
+ static ThreadBarriers *get()
+ {
+ static ThreadBarriers instance;
+ return &instance;
+ }
+
+ static void initialize() { get(); }
+
+ void wait(Barrier barrier) { dispatch_semaphore_wait(barriers[barrier], DISPATCH_TIME_FOREVER); }
+ void signal(Barrier barrier) { dispatch_semaphore_signal(barriers[barrier]); }
+
+private:
+ #define FOREACH_BARRIER(cmd) for (int i = 0; i < BarrierCount; ++i) { cmd }
+
+ ThreadBarriers() { FOREACH_BARRIER(barriers[i] = dispatch_semaphore_create(0);) }
+ ~ThreadBarriers() { FOREACH_BARRIER(dispatch_release(barriers[i]);) }
+
+ dispatch_semaphore_t barriers[BarrierCount];
+};
+
+#define WAIT_FOR_BARRIER(b) ThreadBarriers::get()->wait(ThreadBarriers::b);
+#define SIGNAL_BARRIER(b) ThreadBarriers::get()->signal(ThreadBarriers::b);
+
+// ---------------------------------------------------------
+
+@implementation QtTestLibWrapper
+
++ (void)load
+{
+ NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
+
+ if (![XCTestProbe isTesting])
+ return;
+
+ if (!([NSDate timeIntervalSinceReferenceDate] > 0))
+ qFatal("error: Device date '%s' is bad, likely set to update automatically. Please correct.",
+ [NSDate date].description.UTF8String);
+
+ XCTestDriver *testDriver = nil;
+ if ([QtTestLibWrapper usingTestManager])
+ testDriver = [XCTestDriver sharedTestDriver];
+
+ // Spawn off task to run test infrastructure on separate thread so that we can
+ // let main() execute like normal on the main thread. The queue will never be
+ // destroyed, so there's no point in trying to keep a proper retain count.
+ dispatch_async(dispatch_queue_create("io.qt.QTestLib.xctest-wrapper", DISPATCH_QUEUE_SERIAL), ^{
+ Q_ASSERT(![NSThread isMainThread]);
+ [XCTestProbe runTests:nil];
+ Q_UNREACHABLE();
+ });
+
+ // Initialize barriers before registering exit handler so that the
+ // semaphores stay alive until after the exit handler completes.
+ ThreadBarriers::initialize();
+
+ // We register an exit handler so that we can intercept when main() completes
+ // and let the XCTest thread finish up. For main() functions that never started
+ // testing using QtTestLib we also need to signal that xcTestsCanStart.
+ atexit_b(^{
+ Q_ASSERT([NSThread isMainThread]);
+
+ // In case not started by startLogging
+ SIGNAL_BARRIER(XCTestCanStartTesting);
+
+ // [XCTestProbe runTests:] ends up calling [XCTestProbe exitTests:] after
+ // all test suites have completed, which calls exit(). We use that to signal
+ // to the main thread that it's free to continue its exit handler.
+ atexit_b(^{
+ Q_ASSERT(![NSThread isMainThread]);
+ SIGNAL_BARRIER(XCTestsHaveCompleted);
+
+ // Block forever so that the main thread does all the cleanup
+ dispatch_semaphore_wait(dispatch_semaphore_create(0), DISPATCH_TIME_FOREVER);
+ });
+
+ SIGNAL_BARRIER(QtTestsHaveCompleted);
+
+ // Ensure XCTest complets the top level tests suite
+ WAIT_FOR_BARRIER(XCTestsHaveCompleted);
+ });
+
+ // Let test driver (Xcode) connection setup complete before continuing
+ if ([[[NSProcessInfo processInfo] arguments] containsObject:@"--use-testmanagerd"]) {
+ while (!testDriver.IDEConnection)
+ [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
+ }
+
+ // Wait for our QtTestLib test suite to run before running main
+ WAIT_FOR_BARRIER(QtTestsCanStartTesting);
+
+ // Prevent XCTestProbe from re-launching runTests on application startup
+ [[NSNotificationCenter defaultCenter] removeObserver:[XCTestProbe class]
+ name:[NSString stringWithFormat:@"%@DidFinishLaunchingNotification",
+ #if defined(Q_OS_OSX)
+ @"NSApplication"
+ #elif defined(Q_OS_IOS)
+ @"UIApplication"
+ #endif
+ ]
+ object:nil];
+
+ [autoreleasepool release];
+}
+
++ (id)defaultTestSuite
+{
+ return [[QtTestLibTests alloc] initWithName:@"QtTestLib"];
+}
+
++ (BOOL)usingTestManager
+{
+ return [[[NSProcessInfo processInfo] arguments] containsObject:@"--use-testmanagerd"];
+}
+
+@end
+
+// ---------------------------------------------------------
+
+static XCTestSuiteRun *s_qtTestSuiteRun = 0;
+
+@implementation QtTestLibTests
+
+- (void)performTest:(XCTestSuiteRun *)testSuiteRun
+{
+ Q_ASSERT(![NSThread isMainThread]);
+
+ Q_ASSERT(!s_qtTestSuiteRun);
+ s_qtTestSuiteRun = testSuiteRun;
+
+ SIGNAL_BARRIER(QtTestsCanStartTesting);
+
+ // Wait for main() to complete, or a QtTestLib test to start, so we
+ // know if we should start the QtTestLib test suite.
+ WAIT_FOR_BARRIER(XCTestCanStartTesting);
+
+ if (QXcodeTestLogger::isActive())
+ [testSuiteRun start];
+
+ SIGNAL_BARRIER(XCTestHaveStarted);
+
+ // All test reporting happens on main thread from now on. Wait until
+ // main() completes before allowing the XCTest thread to continue.
+ WAIT_FOR_BARRIER(QtTestsHaveCompleted);
+
+ if ([testSuiteRun startDate])
+ [testSuiteRun stop];
+}
+
++ (XCTestSuiteRun*)testRun
+{
+ return s_qtTestSuiteRun;
+}
+
+@end
+
+// ---------------------------------------------------------
+
+@implementation QtTestLibTest
+
+- (id)initWithInvocation:(NSInvocation *)invocation
+{
+ if (self = [super initWithInvocation:invocation]) {
+ // The test object name and function name are used by XCTest after QtTestLib has
+ // reset them, so we need to store them up front for each XCTestCase.
+ self.testObjectName = [NSString stringWithUTF8String:QTestResult::currentTestObjectName()];
+ self.testFunctionName = [NSString stringWithUTF8String:QTestResult::currentTestFunction()];
+ }
+
+ return self;
+}
+
+- (NSString *)testClassName
+{
+ return self.testObjectName;
+}
+
+- (NSString *)testMethodName
+{
+ return self.testFunctionName;
+}
+
+- (NSString *)nameForLegacyLogging
+{
+ NSString *name = [NSString stringWithFormat:@"%@::%@", [self testClassName], [self testMethodName]];
+ if (QTestResult::currentDataTag() || QTestResult::currentGlobalDataTag()) {
+ const char *currentDataTag = QTestResult::currentDataTag() ? QTestResult::currentDataTag() : "";
+ const char *globalDataTag = QTestResult::currentGlobalDataTag() ? QTestResult::currentGlobalDataTag() : "";
+ const char *filler = (currentDataTag[0] && globalDataTag[0]) ? ":" : "";
+ name = [name stringByAppendingString:[NSString stringWithFormat:@"(%s%s%s)",
+ globalDataTag, filler, currentDataTag]];
+ }
+
+ return name;
+}
+
+@end
+
+// ---------------------------------------------------------
+
+bool QXcodeTestLogger::canLogTestProgress()
+{
+ return [XCTestProbe isTesting]; // FIXME: Exclude xctool
+}
+
+int QXcodeTestLogger::parseCommandLineArgument(const char *argument)
+{
+ if (strncmp(argument, "-NS", 3) == 0 || strncmp(argument, "-Apple", 6) == 0)
+ return 2; // -NSTreatUnknownArgumentsAsOpen, -ApplePersistenceIgnoreState, etc, skip argument
+ else if (strcmp(argument, "--use-testmanagerd") == 0)
+ return 2; // Skip UID argument
+ else if (strncmp(argument, "-XCTest", 7) == 0)
+ return 2; // -XCTestInvertScope, -XCTest scope, etc, skip argument
+ else if (strcmp(argument + (strlen(argument) - 7), ".xctest") == 0)
+ return 1; // Skip test bundle
+ else
+ return 0;
+}
+
+// ---------------------------------------------------------
+
+QXcodeTestLogger *QXcodeTestLogger::s_currentTestLogger = 0;
+
+// ---------------------------------------------------------
+
+QXcodeTestLogger::QXcodeTestLogger()
+ : QAbstractTestLogger(0)
+ , m_testRuns([[NSMutableArray arrayWithCapacity:2] retain])
+
+{
+ Q_ASSERT(!s_currentTestLogger);
+ s_currentTestLogger = this;
+}
+
+QXcodeTestLogger::~QXcodeTestLogger()
+{
+ s_currentTestLogger = 0;
+ [m_testRuns release];
+}
+
+void QXcodeTestLogger::startLogging()
+{
+ SIGNAL_BARRIER(XCTestCanStartTesting);
+
+ static dispatch_once_t onceToken;
+ dispatch_once (&onceToken, ^{
+ WAIT_FOR_BARRIER(XCTestHaveStarted);
+ });
+
+ // Scope test object suite under top level QtTestLib test run
+ [m_testRuns addObject:[QtTestLibTests testRun]];
+
+ NSString *suiteName = [NSString stringWithUTF8String:QTestResult::currentTestObjectName()];
+ pushTestRunForTest([XCTestSuite testSuiteWithName:suiteName], true);
+}
+
+void QXcodeTestLogger::stopLogging()
+{
+ popTestRun();
+}
+
+static bool isTestFunctionInActiveScope(const char *function)
+{
+ static NSString *testScope = [XCTestProbe testScope];
+
+ enum TestScope { Unknown, All, None, Self, Selected };
+ static TestScope activeScope = Unknown;
+
+ if (activeScope == Unknown) {
+ if ([testScope isEqualToString:@"All"])
+ activeScope = All;
+ else if ([testScope isEqualToString:@"None"])
+ activeScope = None;
+ else if ([testScope isEqualToString:@"Self"])
+ activeScope = Self;
+ else
+ activeScope = Selected;
+ }
+
+ if (activeScope == All)
+ return true;
+ else if (activeScope == None)
+ return false;
+ else if (activeScope == Self)
+ return true; // Investigate
+
+ Q_ASSERT(activeScope == Selected);
+
+ static NSArray *forcedTests = [@[ @"initTestCase", @"initTestCase_data", @"cleanupTestCase" ] retain];
+ if ([forcedTests containsObject:[NSString stringWithUTF8String:function]])
+ return true;
+
+ static NSArray *testsInScope = [[testScope componentsSeparatedByString:@","] retain];
+ bool inScope = [testsInScope containsObject:[NSString stringWithFormat:@"%s/%s",
+ QTestResult::currentTestObjectName(), function]];
+
+ if ([XCTestProbe isInverseTestScope])
+ inScope = !inScope;
+
+ return inScope;
+}
+
+void QXcodeTestLogger::enterTestFunction(const char *function)
+{
+ if (!isTestFunctionInActiveScope(function))
+ QTestResult::setSkipCurrentTest(true);
+
+ XCTest *test = [QtTestLibTest testCaseWithInvocation:nil];
+ pushTestRunForTest(test, !QTestResult::skipCurrentTest());
+}
+
+void QXcodeTestLogger::leaveTestFunction()
+{
+ popTestRun();
+}
+
+void QXcodeTestLogger::addIncident(IncidentTypes type, const char *description,
+ const char *file, int line)
+{
+ XCTestRun *testRun = [m_testRuns lastObject];
+
+ // The 'expected' argument to recordFailureWithDescription refers to whether
+ // the failure was a regular failed assertion, or an unexpected exception,
+ // so in our case it's always 'YES', and we need to explicitly ignore XFail.
+ if (type == QAbstractTestLogger::XFail) {
+ QTestCharBuffer buf;
+ NSString *testCaseName = [[testRun test] nameForLegacyLogging];
+ QTest::qt_asprintf(&buf, "Test Case '%s' failed expectedly (%s).\n",
+ [testCaseName UTF8String], description);
+ outputString(buf.constData());
+ return;
+ }
+
+ if (type == QAbstractTestLogger::Pass) {
+ // We ignore non-data passes, as we're already reporting that as part of the
+ // normal test case start/stop cycle.
+ if (!(QTestResult::currentDataTag() || QTestResult::currentGlobalDataTag()))
+ return;
+
+ QTestCharBuffer buf;
+ NSString *testCaseName = [[testRun test] nameForLegacyLogging];
+ QTest::qt_asprintf(&buf, "Test Case '%s' passed.\n", [testCaseName UTF8String]);
+ outputString(buf.constData());
+ return;
+ }
+
+ // FIXME: Handle blacklisted tests
+
+ if (!file || !description)
+ return; // Or report?
+
+ [testRun recordFailureWithDescription:[NSString stringWithUTF8String:description]
+ inFile:[NSString stringWithUTF8String:file] atLine:line expected:YES];
+}
+
+void QXcodeTestLogger::addMessage(MessageTypes type, const QString &message,
+ const char *file, int line)
+{
+ QTestCharBuffer buf;
+
+ if (QTestLog::verboseLevel() > 0 && (file && line)) {
+ QTest::qt_asprintf(&buf, "%s:%d: ", file, line);
+ outputString(buf.constData());
+ }
+
+ if (type == QAbstractTestLogger::Skip) {
+ XCTestRun *testRun = [m_testRuns lastObject];
+ NSString *testCaseName = [[testRun test] nameForLegacyLogging];
+ QTest::qt_asprintf(&buf, "Test Case '%s' skipped (%s).\n",
+ [testCaseName UTF8String], message.toUtf8().constData());
+ } else {
+ QTest::qt_asprintf(&buf, "%s\n", message.toUtf8().constData());
+ }
+
+ outputString(buf.constData());
+}
+
+void QXcodeTestLogger::addBenchmarkResult(const QBenchmarkResult &result)
+{
+ Q_UNUSED(result);
+}
+
+void QXcodeTestLogger::pushTestRunForTest(XCTest *test, bool start)
+{
+ XCTestRun *testRun = [[test testRunClass] testRunWithTest:test];
+ [m_testRuns addObject:testRun];
+
+ if (start)
+ [testRun start];
+}
+
+XCTestRun *QXcodeTestLogger::popTestRun()
+{
+ XCTestRun *testRun = [[m_testRuns lastObject] retain];
+ [m_testRuns removeLastObject];
+
+ if ([testRun startDate])
+ [testRun stop];
+
+ [[m_testRuns lastObject] addTestRun:testRun];
+ [testRun release];
+
+ return testRun;
+}
+
+bool QXcodeTestLogger::isActive()
+{
+ return s_currentTestLogger;
+}
+
+QT_WARNING_POP
diff --git a/src/testlib/qxctestlogger_p.h b/src/testlib/qxctestlogger_p.h
new file mode 100644
index 0000000000..95ad1374bc
--- /dev/null
+++ b/src/testlib/qxctestlogger_p.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtTest module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCTESTLOGGER_P_H
+#define QXCTESTLOGGER_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtTest/private/qabstracttestlogger_p.h>
+
+#include <dispatch/dispatch.h>
+
+Q_FORWARD_DECLARE_OBJC_CLASS(XCTest);
+Q_FORWARD_DECLARE_OBJC_CLASS(XCTestRun);
+Q_FORWARD_DECLARE_OBJC_CLASS(NSMutableArray);
+
+QT_BEGIN_NAMESPACE
+
+class QXcodeTestLogger : public QAbstractTestLogger
+{
+public:
+ QXcodeTestLogger();
+ ~QXcodeTestLogger() Q_DECL_OVERRIDE;
+
+ void startLogging() Q_DECL_OVERRIDE;
+ void stopLogging() Q_DECL_OVERRIDE;
+
+ void enterTestFunction(const char *function) Q_DECL_OVERRIDE;
+ void leaveTestFunction() Q_DECL_OVERRIDE;
+
+ void addIncident(IncidentTypes type, const char *description,
+ const char *file = 0, int line = 0) Q_DECL_OVERRIDE;
+
+ void addMessage(MessageTypes type, const QString &message,
+ const char *file = 0, int line = 0) Q_DECL_OVERRIDE;
+
+ void addBenchmarkResult(const QBenchmarkResult &result) Q_DECL_OVERRIDE;
+
+ static bool canLogTestProgress();
+ static int parseCommandLineArgument(const char *argument);
+
+ static bool isActive();
+
+private:
+ void pushTestRunForTest(XCTest *test, bool start);
+ XCTestRun *popTestRun();
+
+ NSMutableArray *m_testRuns;
+
+ static QXcodeTestLogger *s_currentTestLogger;
+};
+
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/testlib/testlib.pro b/src/testlib/testlib.pro
index dbcc588d10..841d913105 100644
--- a/src/testlib/testlib.pro
+++ b/src/testlib/testlib.pro
@@ -76,6 +76,25 @@ wince*::LIBS += libcmt.lib \
mac {
LIBS += -framework Security
osx: LIBS += -framework ApplicationServices -framework IOKit
+
+ # XCTest support
+ !lessThan(QMAKE_XCODE_VERSION, "6.0") {
+ OBJECTIVE_SOURCES += qxctestlogger.mm
+ HEADERS += qxctestlogger_p.h
+
+ DEFINES += HAVE_XCTEST
+ LIBS += -framework Foundation
+
+ load(sdk)
+ platform_dev_frameworks_path = $${QMAKE_MAC_SDK_PLATFORM_PATH}/Developer/Library/Frameworks
+
+ # We can't put this path into LIBS (so that it propagates to the prl file), as we
+ # don't know yet if the target that links to testlib will build under Xcode or not.
+ # The corresponding flags for the target lives in xctest.prf, where we do know.
+ QMAKE_LFLAGS += -F$${platform_dev_frameworks_path} -weak_framework XCTest
+ QMAKE_OBJECTIVE_CFLAGS += -F$${platform_dev_frameworks_path}
+ MODULE_CONFIG += xctest
+ }
}
load(qt_module)
diff --git a/src/tools/qdoc/atom.cpp b/src/tools/qdoc/atom.cpp
index 745da21b30..ebbe685985 100644
--- a/src/tools/qdoc/atom.cpp
+++ b/src/tools/qdoc/atom.cpp
@@ -64,7 +64,7 @@ QT_BEGIN_NAMESPACE
\also Text
*/
-/*! \enum Atom::Type
+/*! \enum Atom::AtomType
\value AbstractLeft
\value AbstractRight
@@ -237,27 +237,27 @@ static const struct {
{ 0, 0 }
};
-/*! \fn Atom::Atom(Type type, const QString& string)
+/*! \fn Atom::Atom(AtomType type, const QString& string)
Constructs an atom of the specified \a type with the single
parameter \a string and does not put the new atom in a list.
*/
-/*! \fn Atom::Atom(Type type, const QString& p1, const QString& p2)
+/*! \fn Atom::Atom(AtomType type, const QString& p1, const QString& p2)
Constructs an atom of the specified \a type with the two
parameters \a p1 and \a p2 and does not put the new atom
in a list.
*/
-/*! \fn Atom(Atom *previous, Type type, const QString& string)
+/*! \fn Atom(Atom *previous, AtomType type, const QString& string)
Constructs an atom of the specified \a type with the single
parameter \a string and inserts the new atom into the list
after the \a previous atom.
*/
-/*! \fn Atom::Atom(Atom* previous, Type type, const QString& p1, const QString& p2)
+/*! \fn Atom::Atom(Atom* previous, AtomType type, const QString& p1, const QString& p2)
Constructs an atom of the specified \a type with the two
parameters \a p1 and \a p2 and inserts the new atom into
@@ -289,19 +289,19 @@ static const struct {
*/
/*!
- Return the next Atom in the list if it is of Type \a t.
+ Return the next Atom in the list if it is of AtomType \a t.
Otherwise return 0.
*/
-const Atom* Atom::next(Type t) const
+const Atom* Atom::next(AtomType t) const
{
return (next_ && (next_->type() == t)) ? next_ : 0;
}
/*!
- Return the next Atom in the list if it is of Type \a t
+ Return the next Atom in the list if it is of AtomType \a t
and its string part is \a s. Otherwise return 0.
*/
-const Atom* Atom::next(Type t, const QString& s) const
+const Atom* Atom::next(AtomType t, const QString& s) const
{
return (next_ && (next_->type() == t) && (next_->string() == s)) ? next_ : 0;
}
@@ -311,7 +311,7 @@ const Atom* Atom::next(Type t, const QString& s) const
\also type(), string()
*/
-/*! \fn Type Atom::type() const
+/*! \fn AtomType Atom::type() const
Return the type of this atom.
\also string(), next()
*/
diff --git a/src/tools/qdoc/atom.h b/src/tools/qdoc/atom.h
index ebbba8917e..dae106a742 100644
--- a/src/tools/qdoc/atom.h
+++ b/src/tools/qdoc/atom.h
@@ -46,7 +46,7 @@ class LinkAtom;
class Atom
{
public:
- enum Type {
+ enum AtomType {
AbstractLeft,
AbstractRight,
AnnotatedList,
@@ -143,13 +143,13 @@ public:
strs << string;
}
- Atom(Type type, const QString& string = "")
+ Atom(AtomType type, const QString& string = "")
: next_(0), type_(type)
{
strs << string;
}
- Atom(Type type, const QString& p1, const QString& p2)
+ Atom(AtomType type, const QString& p1, const QString& p2)
: next_(0), type_(type)
{
strs << p1;
@@ -157,14 +157,14 @@ public:
strs << p2;
}
- Atom(Atom* previous, Type type, const QString& string = "")
+ Atom(Atom* previous, AtomType type, const QString& string = "")
: next_(previous->next_), type_(type)
{
strs << string;
previous->next_ = this;
}
- Atom(Atom* previous, Type type, const QString& p1, const QString& p2)
+ Atom(Atom* previous, AtomType type, const QString& p1, const QString& p2)
: next_(previous->next_), type_(type)
{
strs << p1;
@@ -183,9 +183,9 @@ public:
void setNext(Atom* newNext) { next_ = newNext; }
const Atom* next() const { return next_; }
- const Atom* next(Type t) const;
- const Atom* next(Type t, const QString& s) const;
- Type type() const { return type_; }
+ const Atom* next(AtomType t) const;
+ const Atom* next(AtomType t, const QString& s) const;
+ AtomType type() const { return type_; }
QString typeString() const;
const QString& string() const { return strs[0]; }
const QString& string(int i) const { return strs[i]; }
@@ -197,14 +197,14 @@ public:
virtual Node::Genus genus() { return Node::DontCare; }
virtual bool specifiesDomain() { return false; }
virtual Tree* domain() { return 0; }
- virtual Node::Type goal() { return Node::NoType; }
+ virtual Node::NodeType goal() { return Node::NoType; }
virtual const QString& error() { return noError_; }
virtual void resolveSquareBracketParams() { }
protected:
static QString noError_;
Atom* next_;
- Type type_;
+ AtomType type_;
QStringList strs;
};
@@ -220,14 +220,14 @@ class LinkAtom : public Atom
virtual Node::Genus genus() Q_DECL_OVERRIDE { resolveSquareBracketParams(); return genus_; }
virtual bool specifiesDomain() Q_DECL_OVERRIDE { resolveSquareBracketParams(); return (domain_ != 0); }
virtual Tree* domain() Q_DECL_OVERRIDE { resolveSquareBracketParams(); return domain_; }
- virtual Node::Type goal() Q_DECL_OVERRIDE { resolveSquareBracketParams(); return goal_; }
+ virtual Node::NodeType goal() Q_DECL_OVERRIDE { resolveSquareBracketParams(); return goal_; }
virtual const QString& error() Q_DECL_OVERRIDE { return error_; }
virtual void resolveSquareBracketParams() Q_DECL_OVERRIDE;
protected:
bool resolved_;
Node::Genus genus_;
- Node::Type goal_;
+ Node::NodeType goal_;
Tree* domain_;
QString error_;
QString squareBracketParams_;
diff --git a/src/tools/qdoc/codemarker.h b/src/tools/qdoc/codemarker.h
index 7983aa532c..2dbbae3d5a 100644
--- a/src/tools/qdoc/codemarker.h
+++ b/src/tools/qdoc/codemarker.h
@@ -127,7 +127,7 @@ public:
virtual bool recognizeCode(const QString& code) = 0;
virtual bool recognizeExtension(const QString& ext) = 0;
virtual bool recognizeLanguage(const QString& lang) = 0;
- virtual Atom::Type atomType() const = 0;
+ virtual Atom::AtomType atomType() const = 0;
virtual QString markedUpCode(const QString& code,
const Node *relative,
const Location &location) = 0;
diff --git a/src/tools/qdoc/codeparser.cpp b/src/tools/qdoc/codeparser.cpp
index 4f35672f82..90823080ce 100644
--- a/src/tools/qdoc/codeparser.cpp
+++ b/src/tools/qdoc/codeparser.cpp
@@ -256,7 +256,7 @@ void CodeParser::processCommonMetaCommand(const Location& location,
qdb_->addToJsModule(arg.first, node);
}
else if (command == COMMAND_MAINCLASS) {
- node->setStatus(Node::Main);
+ node->doc().location().warning(tr("'\\mainclass' is deprecated. Consider '\\ingroup mainclasses'"));
}
else if (command == COMMAND_OBSOLETE) {
node->setStatus(Node::Obsolete);
@@ -426,21 +426,21 @@ void CodeParser::checkModuleInclusion(Node* n)
#if 0
case Node::Document:
if (n->access() != Node::Private && !n->doc().isEmpty()) {
- if (n->subType() == Node::HeaderFile) {
+ if (n->docSubtype() == Node::HeaderFile) {
#if 0
n->doc().location().warning(tr("Header file with title \"%1\" has no \\inmodule command; "
"using project name by default: %2")
.arg(n->title()).arg(Generator::defaultModuleName()));
#endif
}
- else if (n->subType() == Node::Page) {
+ else if (n->docSubtype() == Node::Page) {
#if 0
n->doc().location().warning(tr("Page with title \"%1\" has no \\inmodule command; "
"using project name by default: %2")
.arg(n->title()).arg(Generator::defaultModuleName()));
#endif
}
- else if (n->subType() == Node::Example) {
+ else if (n->docSubtype() == Node::Example) {
#if 0
n->doc().location().warning(tr("Example with title \"%1\" has no \\inmodule command; "
"using project name by default: %2")
diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp
index 1546b5226e..3bba9cc66f 100644
--- a/src/tools/qdoc/cppcodemarker.cpp
+++ b/src/tools/qdoc/cppcodemarker.cpp
@@ -103,7 +103,7 @@ bool CppCodeMarker::recognizeLanguage(const QString &lang)
/*!
Returns the type of atom used to represent C++ code in the documentation.
*/
-Atom::Type CppCodeMarker::atomType() const
+Atom::AtomType CppCodeMarker::atomType() const
{
return Atom::Code;
}
@@ -807,6 +807,21 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner,
}
++n;
}
+ if (inner->isNamespace()) {
+ const NamespaceNode* ns = static_cast<const NamespaceNode*>(inner);
+ if (!ns->orphans().isEmpty()) {
+ foreach (Node* n, ns->orphans()) {
+ // Use inner as a temporary parent when inserting orphans
+ InnerNode* p = n->parent();
+ n->setParent(const_cast<InnerNode*>(inner));
+ if (n->isClass())
+ insert(classes, n, style, status);
+ else if (n->isNamespace())
+ insert(namespaces, n, style, status);
+ n->setParent(p);
+ }
+ }
+ }
append(sections, namespaces);
append(sections, classes);
append(sections, types);
diff --git a/src/tools/qdoc/cppcodemarker.h b/src/tools/qdoc/cppcodemarker.h
index 509d130a27..4535a091be 100644
--- a/src/tools/qdoc/cppcodemarker.h
+++ b/src/tools/qdoc/cppcodemarker.h
@@ -53,7 +53,7 @@ public:
virtual bool recognizeCode(const QString& code) Q_DECL_OVERRIDE;
virtual bool recognizeExtension(const QString& ext) Q_DECL_OVERRIDE;
virtual bool recognizeLanguage(const QString& lang) Q_DECL_OVERRIDE;
- virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
+ virtual Atom::AtomType atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString& code,
const Node *relative,
const Location &location) Q_DECL_OVERRIDE;
diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp
index bc24ff5daa..af56f1fcb8 100644
--- a/src/tools/qdoc/cppcodeparser.cpp
+++ b/src/tools/qdoc/cppcodeparser.cpp
@@ -408,7 +408,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc,
this way to allow the writer to refer to the entity
without including the namespace qualifier.
*/
- Node::Type type = nodeTypeMap[command];
+ Node::NodeType type = nodeTypeMap[command];
QStringList paths = arg.first.split(QLatin1Char(' '));
QStringList path = paths[0].split("::");
Node *node = 0;
@@ -572,7 +572,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc,
QmlTypeNode* qmlType = qdb_->findQmlType(module, qmlTypeName);
if (qmlType) {
bool attached = false;
- Node::Type nodeType = Node::QmlMethod;
+ Node::NodeType nodeType = Node::QmlMethod;
if ((command == COMMAND_QMLSIGNAL) ||
(command == COMMAND_JSSIGNAL))
nodeType = Node::QmlSignal;
@@ -928,7 +928,7 @@ void CppCodeParser::processOtherMetaCommand(const Doc& doc,
"because its base function is private "
"or internal").arg(COMMAND_REIMP).arg(node->name()));
}
- func->setReimp(true);
+ func->setReimplemented(true);
}
else {
doc.location().warning(tr("Ignored '\\%1' in %2")
@@ -1051,7 +1051,7 @@ void CppCodeParser::reset()
tokenizer = 0;
tok = 0;
access = Node::Public;
- metaness = FunctionNode::Plain;
+ metaness_ = FunctionNode::Plain;
lastPath_.clear();
physicalModuleName.clear();
}
@@ -1373,7 +1373,7 @@ bool CppCodeParser::matchFunctionDecl(InnerNode *parent,
}
FunctionNode::Virtualness vir = FunctionNode::NonVirtual;
if (match(Tok_virtual)) {
- vir = FunctionNode::ImpureVirtual;
+ vir = FunctionNode::NormalVirtual;
if (matchCompat())
compat = true;
}
@@ -1511,7 +1511,7 @@ bool CppCodeParser::matchFunctionDecl(InnerNode *parent,
if (compat)
func->setStatus(Node::Compat);
- func->setMetaness(metaness);
+ func->setMetaness(metaness_);
if (parent) {
if (name == parent->name()) {
func->setMetaness(FunctionNode::Ctor);
@@ -1658,13 +1658,13 @@ bool CppCodeParser::matchClassDecl(InnerNode *parent,
Node::Access outerAccess = access;
access = isClass ? Node::Private : Node::Public;
- FunctionNode::Metaness outerMetaness = metaness;
- metaness = FunctionNode::Plain;
+ FunctionNode::Metaness outerMetaness = metaness_;
+ metaness_ = FunctionNode::Plain;
bool matches = (matchDeclList(classe) && match(Tok_RightBrace) &&
match(Tok_Semicolon));
access = outerAccess;
- metaness = outerMetaness;
+ metaness_ = outerMetaness;
return matches;
}
@@ -2025,28 +2025,28 @@ bool CppCodeParser::matchDeclList(InnerNode *parent)
case Tok_private:
readToken();
access = Node::Private;
- metaness = FunctionNode::Plain;
+ metaness_ = FunctionNode::Plain;
break;
case Tok_protected:
readToken();
access = Node::Protected;
- metaness = FunctionNode::Plain;
+ metaness_ = FunctionNode::Plain;
break;
case Tok_public:
readToken();
access = Node::Public;
- metaness = FunctionNode::Plain;
+ metaness_ = FunctionNode::Plain;
break;
case Tok_signals:
case Tok_Q_SIGNALS:
readToken();
access = Node::Public;
- metaness = FunctionNode::Signal;
+ metaness_ = FunctionNode::Signal;
break;
case Tok_slots:
case Tok_Q_SLOTS:
readToken();
- metaness = FunctionNode::Slot;
+ metaness_ = FunctionNode::Slot;
break;
case Tok_Q_OBJECT:
readToken();
@@ -2342,7 +2342,7 @@ bool CppCodeParser::makeFunctionNode(const QString& signature,
FunctionNode* CppCodeParser::makeFunctionNode(const Doc& doc,
const QString& sig,
InnerNode* parent,
- Node::Type type,
+ Node::NodeType type,
bool attached,
QString qdoctag)
{
@@ -2425,8 +2425,11 @@ void CppCodeParser::createExampleFileNodes(DocumentNode *dn)
proFileName,
userFriendlyFilePath);
if (fullPath.isEmpty()) {
- dn->location().warning(tr("Cannot find file '%1' or '%2'").arg(tmp).arg(proFileName));
- dn->location().warning(tr(" EXAMPLE PATH DOES NOT EXIST: %1").arg(examplePath));
+ QString details = QLatin1String("Example directories: ") + exampleDirs.join(QLatin1Char(' '));
+ if (!exampleFiles.isEmpty())
+ details += QLatin1String(", example files: ") + exampleFiles.join(QLatin1Char(' '));
+ dn->location().warning(tr("Cannot find file '%1' or '%2'").arg(tmp).arg(proFileName), details);
+ dn->location().warning(tr(" EXAMPLE PATH DOES NOT EXIST: %1").arg(examplePath), details);
return;
}
}
diff --git a/src/tools/qdoc/cppcodeparser.h b/src/tools/qdoc/cppcodeparser.h
index f9ddcab88c..4f364c4feb 100644
--- a/src/tools/qdoc/cppcodeparser.h
+++ b/src/tools/qdoc/cppcodeparser.h
@@ -53,11 +53,11 @@ class CppCodeParser : public CodeParser
struct ExtraFuncData {
InnerNode* root; // Used as the parent.
- Node::Type type; // The node type: Function, etc.
+ Node::NodeType type; // The node type: Function, etc.
bool isAttached; // If true, the method is attached.
bool isMacro; // If true, we are parsing a macro signature.
ExtraFuncData() : root(0), type(Node::Function), isAttached(false), isMacro(false) { }
- ExtraFuncData(InnerNode* r, Node::Type t, bool a)
+ ExtraFuncData(InnerNode* r, Node::NodeType t, bool a)
: root(r), type(t), isAttached(a), isMacro(false) { }
};
@@ -141,7 +141,7 @@ protected:
FunctionNode* makeFunctionNode(const Doc& doc,
const QString& sig,
InnerNode* parent,
- Node::Type type,
+ Node::NodeType type,
bool attached,
QString qdoctag);
void parseQiteratorDotH(const Location &location, const QString &filePath);
@@ -151,11 +151,11 @@ protected:
void createExampleFileNodes(DocumentNode *dn);
protected:
- QMap<QString, Node::Type> nodeTypeMap;
+ QMap<QString, Node::NodeType> nodeTypeMap;
Tokenizer *tokenizer;
int tok;
Node::Access access;
- FunctionNode::Metaness metaness;
+ FunctionNode::Metaness metaness_;
QString physicalModuleName;
QStringList lastPath_;
QRegExp varComment;
diff --git a/src/tools/qdoc/doc.cpp b/src/tools/qdoc/doc.cpp
index e911eed28b..bfe9cbe935 100644
--- a/src/tools/qdoc/doc.cpp
+++ b/src/tools/qdoc/doc.cpp
@@ -469,16 +469,16 @@ private:
void endSection(int unit, int endCmd);
void parseAlso();
void append(const QString &string);
- void append(Atom::Type type, const QString& string = QString());
- void append(Atom::Type type, const QString& p1, const QString& p2);
+ void append(Atom::AtomType type, const QString& string = QString());
+ void append(Atom::AtomType type, const QString& p1, const QString& p2);
void append(const QString& p1, const QString& p2);
void appendChar(QChar ch);
void appendWord(const QString &word);
void appendToCode(const QString &code);
- void appendToCode(const QString &code, Atom::Type defaultType);
+ void appendToCode(const QString &code, Atom::AtomType defaultType);
void startNewPara();
- void enterPara(Atom::Type leftType = Atom::ParaLeft,
- Atom::Type rightType = Atom::ParaRight,
+ void enterPara(Atom::AtomType leftType = Atom::ParaLeft,
+ Atom::AtomType rightType = Atom::ParaRight,
const QString& string = QString());
void leavePara();
void leaveValue();
@@ -525,8 +525,8 @@ private:
bool inTableRow;
bool inTableItem;
bool indexStartedPara; // ### rename
- Atom::Type pendingParaLeftType;
- Atom::Type pendingParaRightType;
+ Atom::AtomType pendingParaLeftType;
+ Atom::AtomType pendingParaRightType;
QString pendingParaString;
int braceDepth;
@@ -1984,9 +1984,9 @@ void DocParser::parseAlso()
}
}
-void DocParser::append(Atom::Type type, const QString &string)
+void DocParser::append(Atom::AtomType type, const QString &string)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
priv->text << Atom(type, string);
@@ -1994,15 +1994,15 @@ void DocParser::append(Atom::Type type, const QString &string)
void DocParser::append(const QString &string)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
priv->text << Atom(string); // The Atom type is Link.
}
-void DocParser::append(Atom::Type type, const QString& p1, const QString& p2)
+void DocParser::append(Atom::AtomType type, const QString& p1, const QString& p2)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
priv->text << Atom(type, p1, p2);
@@ -2010,7 +2010,7 @@ void DocParser::append(Atom::Type type, const QString& p1, const QString& p2)
void DocParser::append(const QString& p1, const QString& p2)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
if (p2.isEmpty())
@@ -2043,15 +2043,15 @@ void DocParser::appendWord(const QString &word)
void DocParser::appendToCode(const QString& markedCode)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if (lastType != Atom::Qml && lastType != Atom::Code && lastType != Atom::JavaScript)
append(Atom::Qml);
priv->text.lastAtom()->appendString(markedCode);
}
-void DocParser::appendToCode(const QString &markedCode, Atom::Type defaultType)
+void DocParser::appendToCode(const QString &markedCode, Atom::AtomType defaultType)
{
- Atom::Type lastType = priv->text.lastAtom()->type();
+ Atom::AtomType lastType = priv->text.lastAtom()->type();
if (lastType != Atom::Qml && lastType != Atom::Code && lastType != Atom::JavaScript)
append(defaultType, markedCode);
else
@@ -2064,8 +2064,8 @@ void DocParser::startNewPara()
enterPara();
}
-void DocParser::enterPara(Atom::Type leftType,
- Atom::Type rightType,
+void DocParser::enterPara(Atom::AtomType leftType,
+ Atom::AtomType rightType,
const QString& string)
{
if (paraState == OutsideParagraph) {
@@ -3305,7 +3305,10 @@ CodeMarker *Doc::quoteFromFile(const Location &location,
DocParser::exampleDirs,
fileName, userFriendlyFilePath);
if (filePath.isEmpty()) {
- location.warning(tr("Cannot find file to quote from: '%1'").arg(fileName));
+ QString details = QLatin1String("Example directories: ") + DocParser::exampleDirs.join(QLatin1Char(' '));
+ if (!DocParser::exampleFiles.isEmpty())
+ details += QLatin1String(", example files: ") + DocParser::exampleFiles.join(QLatin1Char(' '));
+ location.warning(tr("Cannot find file to quote from: '%1'").arg(fileName), details);
}
else {
QFile inFile(filePath);
diff --git a/src/tools/qdoc/doc/qdoc-manual-cmdindex.qdoc b/src/tools/qdoc/doc/qdoc-manual-cmdindex.qdoc
index 1a68347682..87416fcd14 100644
--- a/src/tools/qdoc/doc/qdoc-manual-cmdindex.qdoc
+++ b/src/tools/qdoc/doc/qdoc-manual-cmdindex.qdoc
@@ -40,7 +40,7 @@
\li \l {a-command} {\\a}
\li \l {abstract-command} {\\abstract}
\li \l {annotatedlist-command} {\\annotatedlist}
- \li \l {b-command} {\\b} \span {class="newStuff"}
+ \li \l {b-command} {\\b}
\li \l {b-command} {\\bold} \span {class="newStuff"} {(deprecated, use \\b)}
\li \l {brief-command} {\\brief}
\li \l {c-command} {\\c}
@@ -52,10 +52,9 @@
\li \l {compat-command} {\\compat}
\li \l {contentspage-command} {\\contentspage}
\li \l {default-command} {\\default}
- \li \l {ditamap-command} {\\ditamap} \span {class="newStuff"}
\li \l {div-command} {\\div}
\li \l {dots-command} {\\dots}
- \li \l {e-command} {\\e} \span {class="newStuff"}
+ \li \l {e-command} {\\e}
\li \l {else-command} {\\else}
\li \l {endif-command} {\\endif}
\li \l {enum-command} {\\enum}
@@ -77,16 +76,14 @@
\li \l {inlineimage-command} {\\inlineimage}
\li \l {inmodule-command} {\\inmodule}
\li \l {inqmlmodule-command} {\\inqmlmodule}
- \li \l {instantiates-command} {\\instantiates} \span {class="newStuff"} {(new 27/7/2012)}
+ \li \l {instantiates-command} {\\instantiates}
\li \l {internal-command} {\\internal}
\li \l {keyword-command} {\\keyword}
\li \l {l-command} {\\l}
\li \l {legalese-command} {\\legalese}
- \li \l {li-command} {\\li} \span {class="newStuff"}
+ \li \l {li-command} {\\li}
\li \l {list-command} {\\list}
\li \l {macro-command} {\\macro}
- \li \l {mainclass-command} {\\mainclass}
- \li \l {mapref-command} {\\mapref} \span {class="newStuff"}
\li \l {meta-command} {\\meta}
\li \l {module-command} {\\module}
\li \l {namespace-command} {\\namespace}
@@ -113,7 +110,7 @@
\li \l {qmlattachedsignal-command} {\\qmlattachedsignal}
\li \l {qmlbasictype-command} {\\qmlbasictype}
\li \l {qmlclass-command} {\\qmlclass} \span {class="newStuff"} {(deprecated, use \\qmltype)}
- \li \l {qmltype-command} {\\qmltype} \span {class="newStuff"}
+ \li \l {qmltype-command} {\\qmltype}
\li \l {qmlmethod-command} {\\qmlmethod}
\li \l {qmlproperty-command} {\\qmlproperty}
\li \l {qmlsignal-command} {\\qmlsignal}
@@ -121,7 +118,7 @@
\li \l {quotation-command} {\\quotation}
\li \l {quotefile-command} {\\quotefile}
\li \l {quotefromfile-command} {\\quotefromfile}
- \li \l {raw-command} {\\raw} \span {class="newStuff"} {(avoid)}
+ \li \l {raw-command} {\\raw}
\li \l {reentrant-command} {\\reentrant}
\li \l {reimp-command} {\\reimp}
\li \l {relates-command} {\\relates}
@@ -131,7 +128,6 @@
\li \l {sectionTwo-command} {\\section2}
\li \l {sectionThree-command} {\\section3}
\li \l {sectionFour-command} {\\section4}
- \li \l {service-command} {\\service}
\li \l {since-command} {\\since}
\li \l {skipline-command} {\\skipline}
\li \l {skipto-command} {\\skipto}
@@ -147,7 +143,6 @@
\li \l {target-command} {\\target}
\li \l {threadsafe-command} {\\threadsafe}
\li \l {title-command} {\\title}
- \li \l {topicref-command} {\\topicref} \span {class="newStuff"}
\li \l {tt-command} {\\tt}
\li \l {typedef-command} {\\typedef}
\li \l {uicontrol-command} {\\uicontrol}
diff --git a/src/tools/qdoc/doc/qdoc-manual-contextcmds.qdoc b/src/tools/qdoc/doc/qdoc-manual-contextcmds.qdoc
index 98321f9a39..77987d6d95 100644
--- a/src/tools/qdoc/doc/qdoc-manual-contextcmds.qdoc
+++ b/src/tools/qdoc/doc/qdoc-manual-contextcmds.qdoc
@@ -53,7 +53,6 @@
\li \l {inherits-command}{\\inherits},
\li \l {inmodule-command}{\\inmodule},
\li \l {internal-command}{\\internal},
- \li \l {mainclass-command}{\\mainclass},
\li \l {nextpage-command}{\\nextpage},
\li \l {nonreentrant-command}{\\nonreentrant},
\li \l {obsolete-command}{\\obsolete},
@@ -542,7 +541,6 @@
\reentrant
\ingroup i18n
\ingroup text
- \mainclass
QLocale is initialized with a language/country pair in its
constructor and offers number-to-string and string-to-number
@@ -887,38 +885,6 @@
\section1 Commands
- \target mainclass-command
- \section2 \\mainclass
-
- The \\mainclass command relates the documented class to
- a group called mainclasses.
-
- The command must stand on its own line.
-
- \code
- / *!
- \class QWidget qwidget.h
- \brief The QWidget class is the base class of
- all user interface objects.
-
- \mainclass
-
- ...
- * /
- \endcode
-
- This will include the QWidget class in the \e mainclasses
- group, which means, for example, that the class will appear on the
- list created by calling the \l {generatelist-command}
- {\\generatelist} command with the \c mainclasses argument:
-
- \l http://doc.qt.digia.com/4.0/mainclasses.html
-
- \note The Qt documentation no longer includes the \e mainclasses
- page.
-
- See also \l {generatelist-command} {\\generatelist}.
-
\target ingroup-command
\section2 \\ingroup
diff --git a/src/tools/qdoc/doc/qdoc-manual-markupcmds.qdoc b/src/tools/qdoc/doc/qdoc-manual-markupcmds.qdoc
index f341699ee8..d9b5a6f659 100644
--- a/src/tools/qdoc/doc/qdoc-manual-markupcmds.qdoc
+++ b/src/tools/qdoc/doc/qdoc-manual-markupcmds.qdoc
@@ -2109,7 +2109,6 @@
\ingroup tools
\ingroup misc
\ingroup shared
- \mainclass
\keyword regular expression
@@ -3549,16 +3548,6 @@
* /
\endcode
- \section2 \c mainclasses
-
- The \c mainclasses argument tells QDoc to generate an alphabetical
- list of the main classes. A class is marked as a main class by
- including a \l {mainclass-command} {\\mainclass} command in the
- \\class comment.
-
- \note The Qt documentation no longer includes a main classes page,
- but you can generate one for your main classes if you want it.
-
\section2 \c overviews
The \c overviews argument is used to tell QDoc to generate a list
@@ -3607,18 +3596,6 @@
\ingroup qt-basic-concepts
\endcode
- \section2 \c service
-
- The \c service argument tells QDoc to generate an alphabetical
- list of the services. Each service name is a link to the service's
- reference documentation.
-
- A service is identified with the \l {service-command} {\\service}
- command.
-
- \note This command and the \l {service-command} {\\service}
- command are not used in the Qt documentation.
-
\target if-command
\section1 \\if
diff --git a/src/tools/qdoc/doc/qdoc-manual-topiccmds.qdoc b/src/tools/qdoc/doc/qdoc-manual-topiccmds.qdoc
index 93cd25610d..4ebe0e6cb0 100644
--- a/src/tools/qdoc/doc/qdoc-manual-topiccmds.qdoc
+++ b/src/tools/qdoc/doc/qdoc-manual-topiccmds.qdoc
@@ -1054,28 +1054,6 @@
\l{QWidget::height} {height}, and \l{QWidget::size} {size}.
\endquotation
- \target service-command
- \section1 \\service
-
- The \\service command tells QDoc that a class is a service class
- and names the service. The command takes two arguments, the name
- of the class and the name of the service. Currently, this command
- is not used in the Qt documentation.
-
- \code
- / *!
- \service TimeService Time
- ...
- * /
- class TimeService : public QCopObjectService
- {
- ...
- }
- \endcode
-
- See also \l {class-command} {\\class} and \l
- {generatelist-command} {\\generatelist}.
-
\target qmlattachedproperty-command
\section1 \\qmlattachedproperty
diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp
index 0ecd5ed6e3..42870b3070 100644
--- a/src/tools/qdoc/generator.cpp
+++ b/src/tools/qdoc/generator.cpp
@@ -697,12 +697,12 @@ void Generator::generateBody(const Node *node, CodeMarker *marker)
if (node->type() == Node::Document) {
const DocumentNode *dn = static_cast<const DocumentNode *>(node);
- if ((dn->subType() == Node::File) || (dn->subType() == Node::Image)) {
+ if ((dn->docSubtype() == Node::File) || (dn->docSubtype() == Node::Image)) {
quiet = true;
}
}
if (node->doc().isEmpty()) {
- if (!node->isWrapper() && !quiet && !node->isReimp()) { // ### might be unnecessary
+ if (!node->isWrapper() && !quiet && !node->isReimplemented()) { // ### might be unnecessary
node->location().warning(tr("No documentation for '%1'").arg(node->plainFullName()));
}
}
@@ -714,7 +714,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker)
}
if (!generateText(node->doc().body(), node, marker)) {
- if (node->isReimp())
+ if (node->isReimplemented())
return;
}
@@ -800,7 +800,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker)
}
}
}
- if (needWarning && !func->isReimp())
+ if (needWarning && !func->isReimplemented())
node->doc().location().warning(
tr("Undocumented parameter '%1' in %2")
.arg(*a).arg(node->plainFullName()));
@@ -826,7 +826,7 @@ void Generator::generateBody(const Node *node, CodeMarker *marker)
if (dn->isExample()) {
generateExampleFiles(dn, marker);
}
- else if (dn->subType() == Node::File) {
+ else if (dn->docSubtype() == Node::File) {
Text text;
Quoter quoter;
Doc::quoteFromFile(dn->doc().location(), quoter, dn->name());
@@ -867,7 +867,7 @@ void Generator::generateCollectionNode(CollectionNode* , CodeMarker* )
*/
void Generator::generateFileList(const DocumentNode* dn,
CodeMarker* marker,
- Node::SubType subtype,
+ Node::DocSubtype subtype,
const QString& tag)
{
int count = 0;
@@ -878,7 +878,7 @@ void Generator::generateFileList(const DocumentNode* dn,
<< Atom(Atom::ListLeft, openedList.styleString());
foreach (const Node* child, dn->childNodes()) {
- if (child->subType() == subtype) {
+ if (child->docSubtype() == subtype) {
++count;
QString file = child->name();
if (subtype == Node::Image) {
@@ -892,16 +892,10 @@ void Generator::generateFileList(const DocumentNode* dn,
exampleImgExts,
userFriendlyFilePath);
userFriendlyFilePath.truncate(userFriendlyFilePath.lastIndexOf('/'));
-
QString imgOutDir = outDir_ + "/images/used-in-examples/" + userFriendlyFilePath;
if (!dirInfo.mkpath(imgOutDir))
- dn->location().fatal(tr("Cannot create output directory '%1'")
- .arg(imgOutDir));
-
- QString imgOutName = Config::copyFile(dn->location(),
- srcPath,
- file,
- imgOutDir);
+ dn->location().fatal(tr("Cannot create output directory '%1'").arg(imgOutDir));
+ Config::copyFile(dn->location(), srcPath, file, imgOutDir);
}
}
@@ -988,11 +982,11 @@ void Generator::generateInnerNode(InnerNode* node)
if (node->isDocumentNode()) {
DocumentNode* docNode = static_cast<DocumentNode*>(node);
- if (docNode->subType() == Node::ExternalPage)
+ if (docNode->docSubtype() == Node::ExternalPage)
return;
- if (docNode->subType() == Node::Image)
+ if (docNode->docSubtype() == Node::Image)
return;
- if (docNode->subType() == Node::Page) {
+ if (docNode->docSubtype() == Node::Page) {
if (node->count() > 0)
qDebug("PAGE %s HAS CHILDREN", qPrintable(docNode->title()));
}
@@ -1006,7 +1000,8 @@ void Generator::generateInnerNode(InnerNode* node)
CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath());
if (node->parent() != 0) {
- if (node->isNamespace() || node->isClass()) {
+ if ((node->isNamespace() && node->status() != Node::Intermediate)
+ || node->isClass()) {
beginSubPage(node, fileName(node));
generateClassLikeNode(node, marker);
endSubPage();
@@ -1196,8 +1191,8 @@ void Generator::generateStatus(const Node *node, CodeMarker *marker)
Text text;
switch (node->status()) {
- case Node::Commendable:
- case Node::Main:
+ case Node::Active:
+ // Do nothing.
break;
case Node::Preliminary:
text << Atom::ParaLeft
@@ -1556,12 +1551,6 @@ void Generator::initialize(const Config &config)
if (!dirInfo.exists(outDir_ + "/images") && !dirInfo.mkdir(outDir_ + "/images"))
config.lastLocation().fatal(tr("Cannot create images directory '%1'").arg(outDir_ + "/images"));
- if (!dirInfo.exists(outDir_ + "/images/used-in-examples") && !dirInfo.mkdir(outDir_ + "/images/used-in-examples"))
- config.lastLocation().fatal(tr("Cannot create images used in examples directory '%1'").arg(outDir_ + "/images/used-in-examples"));
- if (!dirInfo.exists(outDir_ + "/scripts") && !dirInfo.mkdir(outDir_ + "/scripts"))
- config.lastLocation().fatal(tr("Cannot create scripts directory '%1'").arg(outDir_ + "/scripts"));
- if (!dirInfo.exists(outDir_ + "/style") && !dirInfo.mkdir(outDir_ + "/style"))
- config.lastLocation().fatal(tr("Cannot create style directory '%1'").arg(outDir_ + "/style"));
}
imageFiles = config.getCanonicalPathList(CONFIG_IMAGES);
@@ -1600,23 +1589,41 @@ void Generator::initialize(const Config &config)
// Documentation template handling
QStringList scripts = config.getCanonicalPathList((*g)->format()+Config::dot+CONFIG_SCRIPTS, true);
- e = scripts.constBegin();
- while (e != scripts.constEnd()) {
- QString filePath = *e;
- if (!filePath.isEmpty())
- Config::copyFile(config.lastLocation(), filePath, filePath,
- (*g)->outputDir() + "/scripts");
- ++e;
+ if (!scripts.isEmpty()) {
+ QDir dirInfo;
+ if (!dirInfo.exists(outDir_ + "/scripts") && !dirInfo.mkdir(outDir_ + "/scripts")) {
+ config.lastLocation().fatal(tr("Cannot create scripts directory '%1'")
+ .arg(outDir_ + "/scripts"));
+ }
+ else {
+ e = scripts.constBegin();
+ while (e != scripts.constEnd()) {
+ QString filePath = *e;
+ if (!filePath.isEmpty())
+ Config::copyFile(config.lastLocation(), filePath, filePath,
+ (*g)->outputDir() + "/scripts");
+ ++e;
+ }
+ }
}
QStringList styles = config.getCanonicalPathList((*g)->format()+Config::dot+CONFIG_STYLESHEETS, true);
- e = styles.constBegin();
- while (e != styles.constEnd()) {
- QString filePath = *e;
- if (!filePath.isEmpty())
- Config::copyFile(config.lastLocation(), filePath, filePath,
- (*g)->outputDir() + "/style");
- ++e;
+ if (!styles.isEmpty()) {
+ QDir dirInfo;
+ if (!dirInfo.exists(outDir_ + "/style") && !dirInfo.mkdir(outDir_ + "/style")) {
+ config.lastLocation().fatal(tr("Cannot create style directory '%1'")
+ .arg(outDir_ + "/style"));
+ }
+ else {
+ e = styles.constBegin();
+ while (e != styles.constEnd()) {
+ QString filePath = *e;
+ if (!filePath.isEmpty())
+ Config::copyFile(config.lastLocation(), filePath, filePath,
+ (*g)->outputDir() + "/style");
+ ++e;
+ }
+ }
}
}
++g;
@@ -1698,7 +1705,7 @@ void Generator::initializeGenerator(const Config& config)
singleExec_ = config.getBool(CONFIG_SINGLEEXEC);
}
-bool Generator::matchAhead(const Atom *atom, Atom::Type expectedAtomType)
+bool Generator::matchAhead(const Atom *atom, Atom::AtomType expectedAtomType)
{
return atom->next() != 0 && atom->next()->type() == expectedAtomType;
}
@@ -1845,7 +1852,7 @@ void Generator::singularPlural(Text& text, const NodeList& nodes)
text << " are";
}
-int Generator::skipAtoms(const Atom *atom, Atom::Type type) const
+int Generator::skipAtoms(const Atom *atom, Atom::AtomType type) const
{
int skipAhead = 0;
atom = atom->next();
@@ -1937,7 +1944,6 @@ void Generator::terminate()
imageFiles.clear();
imageDirs.clear();
outDir_.clear();
- QmlTypeNode::terminate();
}
void Generator::terminateGenerator()
diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h
index 3165e8d449..b64cfc2824 100644
--- a/src/tools/qdoc/generator.h
+++ b/src/tools/qdoc/generator.h
@@ -130,10 +130,10 @@ protected:
const QString& qmlName);
virtual bool generateText(const Text& text, const Node *relative, CodeMarker *marker);
virtual QString imageFileName(const Node *relative, const QString& fileBase);
- virtual int skipAtoms(const Atom *atom, Atom::Type type) const;
+ virtual int skipAtoms(const Atom *atom, Atom::AtomType type) const;
virtual QString typeString(const Node *node);
- static bool matchAhead(const Atom *atom, Atom::Type expectedAtomType);
+ static bool matchAhead(const Atom *atom, Atom::AtomType expectedAtomType);
static QString outputPrefix(const QString &nodeType);
static void singularPlural(Text& text, const NodeList& nodes);
static void supplementAlsoList(const Node *node, QList<Text> &alsoList);
@@ -152,7 +152,7 @@ protected:
void generateExampleFiles(const DocumentNode *dn, CodeMarker *marker);
void generateFileList(const DocumentNode* dn,
CodeMarker* marker,
- Node::SubType subtype,
+ Node::DocSubtype subtype,
const QString& tag);
void generateSince(const Node *node, CodeMarker *marker);
void generateStatus(const Node *node, CodeMarker *marker);
diff --git a/src/tools/qdoc/helpprojectwriter.cpp b/src/tools/qdoc/helpprojectwriter.cpp
index 2ae952a962..2a9b243d70 100644
--- a/src/tools/qdoc/helpprojectwriter.cpp
+++ b/src/tools/qdoc/helpprojectwriter.cpp
@@ -122,7 +122,7 @@ void HelpProjectWriter::reset(const Config &config,
void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList &selectors)
{
- QHash<QString, Node::Type> typeHash;
+ QHash<QString, Node::NodeType> typeHash;
typeHash["namespace"] = Node::Namespace;
typeHash["class"] = Node::Class;
typeHash["fake"] = Node::Document;
@@ -142,14 +142,14 @@ void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList
typeHash["qmlclass"] = Node::QmlType;
typeHash["qmlbasictype"] = Node::QmlBasicType;
- QHash<QString, Node::SubType> subTypeHash;
- subTypeHash["example"] = Node::Example;
- subTypeHash["headerfile"] = Node::HeaderFile;
- subTypeHash["file"] = Node::File;
- subTypeHash["page"] = Node::Page;
- subTypeHash["externalpage"] = Node::ExternalPage;
+ QHash<QString, Node::DocSubtype> docSubtypeHash;
+ docSubtypeHash["example"] = Node::Example;
+ docSubtypeHash["headerfile"] = Node::HeaderFile;
+ docSubtypeHash["file"] = Node::File;
+ docSubtypeHash["page"] = Node::Page;
+ docSubtypeHash["externalpage"] = Node::ExternalPage;
- QSet<Node::SubType> allSubTypes = QSet<Node::SubType>::fromList(subTypeHash.values());
+ QSet<Node::DocSubtype> allSubTypes = QSet<Node::DocSubtype>::fromList(docSubtypeHash.values());
foreach (const QString &selector, selectors) {
QStringList pieces = selector.split(QLatin1Char(':'));
@@ -161,13 +161,13 @@ void HelpProjectWriter::readSelectors(SubProject &subproject, const QStringList
QString lower = pieces[0].toLower();
pieces = pieces[1].split(QLatin1Char(','));
if (typeHash.contains(lower)) {
- QSet<Node::SubType> subTypes;
+ QSet<Node::DocSubtype> docSubtypes;
for (int i = 0; i < pieces.size(); ++i) {
QString lower = pieces[i].toLower();
- if (subTypeHash.contains(lower))
- subTypes.insert(subTypeHash[lower]);
+ if (docSubtypeHash.contains(lower))
+ docSubtypes.insert(docSubtypeHash[lower]);
}
- subproject.selectors[typeHash[lower]] = subTypes;
+ subproject.selectors[typeHash[lower]] = docSubtypes;
}
}
}
@@ -274,8 +274,8 @@ bool HelpProjectWriter::generateSection(HelpProject &project,
// Accept only fake nodes with subtypes contained in the selector's
// mask.
const DocumentNode *docNode = static_cast<const DocumentNode *>(node);
- if (subproject.selectors[node->type()].contains(docNode->subType()) &&
- docNode->subType() != Node::ExternalPage &&
+ if (subproject.selectors[node->type()].contains(docNode->docSubtype()) &&
+ docNode->docSubtype() != Node::ExternalPage &&
!docNode->fullTitle().isEmpty()) {
project.subprojects[i].nodes[objName] = node;
@@ -417,11 +417,11 @@ bool HelpProjectWriter::generateSection(HelpProject &project,
// attributes.
case Node::Document: {
const DocumentNode *docNode = static_cast<const DocumentNode*>(node);
- if (docNode->subType() != Node::ExternalPage &&
- docNode->subType() != Node::Image &&
+ if (docNode->docSubtype() != Node::ExternalPage &&
+ docNode->docSubtype() != Node::Image &&
!docNode->fullTitle().isEmpty()) {
- if (docNode->subType() != Node::File) {
+ if (docNode->docSubtype() != Node::File) {
if (docNode->doc().hasKeywords()) {
foreach (const Atom *keyword, docNode->doc().keywords()) {
if (!keyword->string().isEmpty()) {
@@ -467,7 +467,7 @@ void HelpProjectWriter::generateSections(HelpProject &project,
/*
Don't include index nodes in the help file. Or DITA map nodes.
*/
- if (node->isIndexNode() || node->subType() == Node::DitaMap)
+ if (node->isIndexNode() || node->docSubtype() == Node::DitaMap)
return;
if (!generateSection(project, writer, node))
return;
@@ -626,7 +626,7 @@ void HelpProjectWriter::writeNode(HelpProject &project, QXmlStreamWriter &writer
writer.writeAttribute("ref", href);
writer.writeAttribute("title", docNode->fullTitle());
- if (docNode->subType() == Node::HeaderFile)
+ if (docNode->docSubtype() == Node::HeaderFile)
addMembers(project, writer, node);
writer.writeEndElement(); // section
diff --git a/src/tools/qdoc/helpprojectwriter.h b/src/tools/qdoc/helpprojectwriter.h
index 8f21238c2a..7b3e8b1e75 100644
--- a/src/tools/qdoc/helpprojectwriter.h
+++ b/src/tools/qdoc/helpprojectwriter.h
@@ -50,7 +50,7 @@ struct SubProject
{
QString title;
QString indexTitle;
- QHash<Node::Type, QSet<DocumentNode::SubType> > selectors;
+ QHash<Node::NodeType, QSet<DocumentNode::DocSubtype> > selectors;
bool sortPages;
QString type;
QHash<QString, const Node *> nodes;
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index 00a292b17f..8c8e56ba97 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -705,11 +705,6 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
else if (atom->string() == "classhierarchy") {
generateClassHierarchy(relative, qdb_->getCppClasses());
}
- else if (atom->string() == "compatclasses") {
- // "compatclasses" is no longer used. Delete this at some point.
- // mws 03/10/2013
- generateCompactList(Generic, relative, qdb_->getCompatibilityClasses(), false, QStringLiteral("Q"));
- }
else if (atom->string() == "obsoleteclasses") {
generateCompactList(Generic, relative, qdb_->getObsoleteClasses(), false, QStringLiteral("Q"));
}
@@ -728,16 +723,6 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
else if (atom->string() == "legalese") {
generateLegaleseList(relative, marker);
}
- else if (atom->string() == "mainclasses") {
- // "mainclasses" is no longer used. Delete this at some point.
- // mws 03/10/2013
- generateCompactList(Generic, relative, qdb_->getMainClasses(), true, QStringLiteral("Q"));
- }
- else if (atom->string() == "services") {
- // "services" is no longer used. Delete this at some point.
- // mws 03/10/2013
- generateCompactList(Generic, relative, qdb_->getServiceClasses(), false, QStringLiteral("Q"));
- }
else if (atom->string() == "overviews") {
generateList(relative, marker, "overviews");
}
@@ -1659,7 +1644,7 @@ void HtmlGenerator::generateDocumentNode(DocumentNode* dn, CodeMarker* marker)
is DITA map page, write the node's contents as a dita
map and return without doing anything else.
*/
- if (dn->subType() == Node::Page && dn->pageType() == Node::DitaMapPage) {
+ if (dn->docSubtype() == Node::Page && dn->pageType() == Node::DitaMapPage) {
const DitaMapNode* dmn = static_cast<const DitaMapNode*>(dn);
writeDitaMap(dmn);
return;
@@ -1685,7 +1670,7 @@ void HtmlGenerator::generateDocumentNode(DocumentNode* dn, CodeMarker* marker)
dn,
marker);
- if (dn->subType() == Node::HeaderFile) {
+ if (dn->docSubtype() == Node::HeaderFile) {
// Generate brief text and status for modules.
generateBrief(dn, marker);
generateStatus(dn, marker);
@@ -1772,23 +1757,23 @@ void HtmlGenerator::generateCollectionNode(CollectionNode* cn, CodeMarker* marke
generateStatus(cn, marker);
generateSince(cn, marker);
- NodeMap nm;
- cn->getMemberNamespaces(nm);
- if (!nm.isEmpty()) {
+ NodeMultiMap nmm;
+ cn->getMemberNamespaces(nmm);
+ if (!nmm.isEmpty()) {
ref = registerRef("namespaces");
out() << "<a name=\"" << ref << "\"></a>" << divNavTop << '\n';
out() << "<h2 id=\"" << ref << "\">Namespaces</h2>\n";
- generateAnnotatedList(cn, marker, nm);
+ generateAnnotatedList(cn, marker, nmm);
}
- nm.clear();
- cn->getMemberClasses(nm);
- if (!nm.isEmpty()) {
+ nmm.clear();
+ cn->getMemberClasses(nmm);
+ if (!nmm.isEmpty()) {
ref = registerRef("classes");
out() << "<a name=\"" << ref << "\"></a>" << divNavTop << '\n';
out() << "<h2 id=\"" << ref << "\">Classes</h2>\n";
- generateAnnotatedList(cn, marker, nm);
+ generateAnnotatedList(cn, marker, nmm);
}
- nm.clear();
+ nmm.clear();
}
sections = marker->sections(cn, CodeMarker::Summary, CodeMarker::Okay);
@@ -2262,9 +2247,9 @@ void HtmlGenerator::generateQmlRequisites(QmlTypeNode *qcn, CodeMarker *marker)
QString logicalModuleVersion;
CollectionNode* collection = 0;
if (qcn->isJsNode())
- qdb_->findJsModule(qcn->logicalModuleName());
+ collection = qdb_->findJsModule(qcn->logicalModuleName());
else
- qdb_->findQmlModule(qcn->logicalModuleName());
+ collection = qdb_->findQmlModule(qcn->logicalModuleName());
if (collection)
logicalModuleVersion = collection->logicalModuleVersion();
else
@@ -2837,11 +2822,11 @@ void HtmlGenerator::generateClassHierarchy(const Node *relative, NodeMap& classM
*/
void HtmlGenerator::generateAnnotatedList(const Node* relative,
CodeMarker* marker,
- const NodeMap& nodeMap)
+ const NodeMultiMap& nmm)
{
- if (nodeMap.isEmpty())
+ if (nmm.isEmpty())
return;
- generateAnnotatedList(relative, marker, nodeMap.values());
+ generateAnnotatedList(relative, marker, nmm.values());
}
/*!
@@ -2850,19 +2835,19 @@ void HtmlGenerator::generateAnnotatedList(const Node *relative,
CodeMarker *marker,
const NodeList& unsortedNodes)
{
- NodeMap nm;
+ NodeMultiMap nmm;
bool allInternal = true;
foreach (Node* node, unsortedNodes) {
if (!node->isInternal() && !node->isObsolete()) {
allInternal = false;
- nm.insert(node->fullName(relative), node);
+ nmm.insert(node->fullName(relative), node);
}
}
if (allInternal)
return;
out() << "<div class=\"table\"><table class=\"annotated\">\n";
int row = 0;
- NodeList nodes = nm.values();
+ NodeList nodes = nmm.values();
foreach (const Node* node, nodes) {
if (++row % 2 == 1)
out() << "<tr class=\"odd topAlign\">";
@@ -2901,20 +2886,21 @@ void HtmlGenerator::generateAnnotatedList(const Node *relative,
/*!
This function finds the common prefix of the names of all
- the classes in \a classMap and then generates a compact
- list of the class names alphabetized on the part of the
- name not including the common prefix. You can tell the
- function to use \a comonPrefix as the common prefix, but
- normally you let it figure it out itself by looking at
- the name of the first and last classes in \a classMap.
+ the classes in the class map \a nmm and then generates a
+ compact list of the class names alphabetized on the part
+ of the name not including the common prefix. You can tell
+ the function to use \a comonPrefix as the common prefix,
+ but normally you let it figure it out itself by looking at
+ the name of the first and last classes in the class map
+ \a nmm.
*/
void HtmlGenerator::generateCompactList(ListType listType,
const Node *relative,
- const NodeMap &classMap,
+ const NodeMultiMap &nmm,
bool includeAlphabet,
QString commonPrefix)
{
- if (classMap.isEmpty())
+ if (nmm.isEmpty())
return;
const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_'
@@ -2924,14 +2910,14 @@ void HtmlGenerator::generateCompactList(ListType listType,
Divide the data into 37 paragraphs: 0, ..., 9, A, ..., Z,
underscore (_). QAccel will fall in paragraph 10 (A) and
QXtWidget in paragraph 33 (X). This is the only place where we
- assume that NumParagraphs is 37. Each paragraph is a NodeMap.
+ assume that NumParagraphs is 37. Each paragraph is a NodeMultiMap.
*/
- NodeMap paragraph[NumParagraphs+1];
+ NodeMultiMap paragraph[NumParagraphs+1];
QString paragraphName[NumParagraphs+1];
QSet<char> usedParagraphNames;
- NodeMap::ConstIterator c = classMap.constBegin();
- while (c != classMap.constEnd()) {
+ NodeMultiMap::ConstIterator c = nmm.constBegin();
+ while (c != nmm.constEnd()) {
QStringList pieces = c.key().split("::");
QString key;
int idx = commonPrefixLen;
@@ -2991,8 +2977,10 @@ void HtmlGenerator::generateCompactList(ListType listType,
int curParNr = 0;
int curParOffset = 0;
+ QString previousName;
+ bool multipleOccurrences = false;
- for (int i=0; i<classMap.count(); i++) {
+ for (int i=0; i<nmm.count(); i++) {
while ((curParNr < NumParagraphs) &&
(curParOffset == paragraph[curParNr].count())) {
++curParNr;
@@ -3026,7 +3014,8 @@ void HtmlGenerator::generateCompactList(ListType listType,
out() << "<dd>";
if ((curParNr < NumParagraphs) &&
!paragraphName[curParNr].isEmpty()) {
- NodeMap::Iterator it;
+ NodeMultiMap::Iterator it;
+ NodeMultiMap::Iterator next;
it = paragraph[curParNr].begin();
for (int i=0; i<curParOffset; i++)
++it;
@@ -3049,8 +3038,20 @@ void HtmlGenerator::generateCompactList(ListType listType,
}
QStringList pieces;
- if (it.value()->isQmlType() || it.value()->isJsType())
- pieces << it.value()->name();
+ if (it.value()->isQmlType() || it.value()->isJsType()) {
+ QString name = it.value()->name();
+ next = it;
+ ++next;
+ if (name != previousName)
+ multipleOccurrences = false;
+ if ((next != paragraph[curParNr].end()) && (name == next.value()->name())) {
+ multipleOccurrences = true;
+ previousName = name;
+ }
+ if (multipleOccurrences)
+ name += ": " + it.value()->tree()->camelCaseModuleName();
+ pieces << name;
+ }
else
pieces = it.value()->fullName(relative).split("::");
out() << protectEnc(pieces.last());
@@ -3064,7 +3065,7 @@ void HtmlGenerator::generateCompactList(ListType listType,
out() << "</dd>\n";
curParOffset++;
}
- if (classMap.count() > 0)
+ if (nmm.count() > 0)
out() << "</dl>\n";
out() << "</div>\n";
@@ -3743,9 +3744,9 @@ QString HtmlGenerator::fileBase(const Node *node) const
QString HtmlGenerator::fileName(const Node *node)
{
if (node->type() == Node::Document) {
- if (static_cast<const DocumentNode *>(node)->subType() == Node::ExternalPage)
+ if (static_cast<const DocumentNode *>(node)->docSubtype() == Node::ExternalPage)
return node->name();
- if (static_cast<const DocumentNode *>(node)->subType() == Node::Image)
+ if (static_cast<const DocumentNode *>(node)->docSubtype() == Node::Image)
return node->name();
}
return Generator::fileName(node);
@@ -3870,7 +3871,7 @@ QString HtmlGenerator::getAutoLink(const Atom *atom, const Node *relative, const
QString link = (*node)->url();
if (link.isEmpty()) {
link = linkForNode(*node, relative);
- if ((*node)->subType() == Node::Image)
+ if ((*node)->docSubtype() == Node::Image)
link = "images/used-in-examples/" + link;
if (!ref.isEmpty())
link += QLatin1Char('#') + ref;
@@ -4510,7 +4511,7 @@ void HtmlGenerator::generateManifestFile(const QString &manifest, const QString
writer.writeAttribute("docUrl", docUrl);
QStringList proFiles;
foreach (const Node* child, en->childNodes()) {
- if (child->subType() == Node::File) {
+ if (child->docSubtype() == Node::File) {
QString file = child->name();
if (file.endsWith(".pro") || file.endsWith(".qmlproject")) {
proFiles << file;
@@ -4616,7 +4617,7 @@ void HtmlGenerator::generateManifestFile(const QString &manifest, const QString
QString ename = en->name().mid(en->name().lastIndexOf('/')+1);
QMap<int, const Node*> filesToOpen;
foreach (const Node* child, en->childNodes()) {
- if (child->subType() == Node::File) {
+ if (child->docSubtype() == Node::File) {
QFileInfo fileInfo(child->name());
QString fileName = fileInfo.fileName().toLower();
// open .qml, .cpp and .h files with a
@@ -4737,7 +4738,7 @@ void HtmlGenerator::reportOrphans(const InnerNode* parent)
case Node::QmlModule:
break;
case Node::Document:
- switch (child->subType()) {
+ switch (child->docSubtype()) {
case Node::Example:
break;
case Node::HeaderFile:
diff --git a/src/tools/qdoc/htmlgenerator.h b/src/tools/qdoc/htmlgenerator.h
index 0c7a4af5ff..efd38ea104 100644
--- a/src/tools/qdoc/htmlgenerator.h
+++ b/src/tools/qdoc/htmlgenerator.h
@@ -159,11 +159,11 @@ private:
CodeMarker *marker,
CodeMarker::Status status);
void generateClassHierarchy(const Node *relative, NodeMap &classMap);
- void generateAnnotatedList(const Node* relative, CodeMarker* marker, const NodeMap& nodeMap);
+ void generateAnnotatedList(const Node* relative, CodeMarker* marker, const NodeMultiMap& nodeMap);
void generateAnnotatedList(const Node* relative, CodeMarker* marker, const NodeList& nodes);
void generateCompactList(ListType listType,
const Node *relative,
- const NodeMap &classMap,
+ const NodeMultiMap &classMap,
bool includeAlphabet,
QString commonPrefix);
void generateFunctionIndex(const Node *relative);
diff --git a/src/tools/qdoc/jscodemarker.cpp b/src/tools/qdoc/jscodemarker.cpp
index 2538b46433..5373283572 100644
--- a/src/tools/qdoc/jscodemarker.cpp
+++ b/src/tools/qdoc/jscodemarker.cpp
@@ -95,7 +95,7 @@ bool JsCodeMarker::recognizeLanguage(const QString &language)
/*!
Returns the type of atom used to represent JavaScript code in the documentation.
*/
-Atom::Type JsCodeMarker::atomType() const
+Atom::AtomType JsCodeMarker::atomType() const
{
return Atom::JavaScript;
}
diff --git a/src/tools/qdoc/jscodemarker.h b/src/tools/qdoc/jscodemarker.h
index d9f6eb5a10..ccba2ca4c7 100644
--- a/src/tools/qdoc/jscodemarker.h
+++ b/src/tools/qdoc/jscodemarker.h
@@ -53,7 +53,7 @@ public:
virtual bool recognizeCode(const QString &code) Q_DECL_OVERRIDE;
virtual bool recognizeExtension(const QString &ext) Q_DECL_OVERRIDE;
virtual bool recognizeLanguage(const QString &language) Q_DECL_OVERRIDE;
- virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
+ virtual Atom::AtomType atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString &code,
const Node *relative,
diff --git a/src/tools/qdoc/main.cpp b/src/tools/qdoc/main.cpp
index 4a99ec39de..a521daadbb 100644
--- a/src/tools/qdoc/main.cpp
+++ b/src/tools/qdoc/main.cpp
@@ -341,17 +341,16 @@ static void processQdocconfFile(const QString &fileName)
Location outputFormatsLocation = config.lastLocation();
qdb->clearSearchOrder();
- QString p = config.getString(CONFIG_PROJECT).toLower();
if (!Generator::singleExec()) {
Generator::debug(" loading index files");
loadIndexFiles(config);
Generator::debug(" done loading index files");
- qdb->newPrimaryTree(p);
+ qdb->newPrimaryTree(project);
}
else if (Generator::preparing())
- qdb->newPrimaryTree(p);
+ qdb->newPrimaryTree(project);
else
- qdb->setPrimaryTree(p);
+ qdb->setPrimaryTree(project);
dependModules = config.getStringList(CONFIG_DEPENDS);
dependModules.removeDuplicates();
@@ -776,6 +775,7 @@ int main(int argc, char **argv)
}
translators.clear();
#endif
+ QmlTypeNode::terminate();
#ifdef DEBUG_SHUTDOWN_CRASH
qDebug() << "main(): Delete qdoc database";
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp
index b2f93cc131..99adf1b233 100644
--- a/src/tools/qdoc/node.cpp
+++ b/src/tools/qdoc/node.cpp
@@ -44,16 +44,16 @@ QT_BEGIN_NAMESPACE
int Node::propertyGroupCount_ = 0;
QStringMap Node::operators_;
-QMap<QString,Node::Type> Node::goals_;
+QMap<QString,Node::NodeType> Node::goals_;
/*!
Initialize the map of search goals. This is called once
by QDocDatabase::initializeDB(). The map key is a string
- representing a value in the enum Node::Type. The map value
+ representing a value in the enum Node::NodeType. The map value
is the enum value.
There should be an entry in the map for each value in the
- Type enum.
+ NodeType enum.
*/
void Node::initialize()
{
@@ -149,13 +149,8 @@ QString Node::plainFullName(const Node* relative) const
*/
QString Node::fullName(const Node* relative) const
{
- if (isDocumentNode())
+ if ((isDocumentNode() || isGroup()) && !title().isEmpty())
return title();
- else if (isClass()) {
- const ClassNode* cn = static_cast<const ClassNode*>(this);
- if (!cn->serviceName().isEmpty())
- return cn->serviceName();
- }
return plainFullName(relative);
}
@@ -165,8 +160,8 @@ QString Node::fullName(const Node* relative) const
match is found, return false.
\a types is a list of type/subtype pairs, where the first
- value in the pair is a Node::Type, and the second value is
- a Node::SubType. The second value is used in the match if
+ value in the pair is a Node::NodeType, and the second value is
+ a Node::DocSubtype. The second value is used in the match if
this node's type is Node::Document.
*/
bool Node::match(const NodeTypeList& types) const
@@ -174,7 +169,7 @@ bool Node::match(const NodeTypeList& types) const
for (int i=0; i<types.size(); ++i) {
if (type() == types.at(i).first) {
if (type() == Node::Document) {
- if (subType() == types.at(i).second)
+ if (docSubtype() == types.at(i).second)
return true;
}
else
@@ -205,12 +200,12 @@ void Node::setDoc(const Doc& doc, bool replace)
given \a parent and \a name. The new node is added to the
parent's child list.
*/
-Node::Node(Type type, InnerNode *parent, const QString& name)
+Node::Node(NodeType type, InnerNode *parent, const QString& name)
: nodeType_((unsigned char) type),
access_((unsigned char) Public),
safeness_((unsigned char) UnspecifiedSafeness),
pageType_((unsigned char) NoPageType),
- status_((unsigned char) Commendable),
+ status_((unsigned char) Active),
indexNodeFlag_(false),
parent_(parent),
relatesTo_(0),
@@ -325,7 +320,7 @@ QString Node::nodeTypeString() const
*/
QString Node::nodeTypeString(unsigned char t)
{
- switch ((Type)t) {
+ switch ((NodeType)t) {
case Namespace:
return "namespace";
case Class:
@@ -375,7 +370,7 @@ QString Node::nodeTypeString(unsigned char t)
*/
QString Node::nodeSubtypeString() const
{
- return nodeSubtypeString(subType());
+ return nodeSubtypeString(docSubtype());
}
/*!
@@ -385,7 +380,7 @@ QString Node::nodeSubtypeString() const
*/
QString Node::nodeSubtypeString(unsigned char t)
{
- switch ((SubType)t) {
+ switch ((DocSubtype)t) {
case Example:
return "example";
case HeaderFile:
@@ -400,7 +395,7 @@ QString Node::nodeSubtypeString(unsigned char t)
return "external page";
case DitaMap:
return "ditamap";
- case NoSubType:
+ case NoSubtype:
default:
break;
}
@@ -563,7 +558,7 @@ QString RelatedClass::accessString() const
*/
Node::Status Node::inheritedStatus() const
{
- Status parentStatus = Commendable;
+ Status parentStatus = Active;
if (parent_)
parentStatus = parent_->inheritedStatus();
return (Status)qMin((int)status_, (int)parentStatus);
@@ -778,7 +773,7 @@ void InnerNode::findChildren(const QString& name, NodeList& nodes) const
with the specified \a name is found but it is not of the
specified \a type, 0 is returned.
*/
-Node* InnerNode::findChildNode(const QString& name, Type type)
+Node* InnerNode::findChildNode(const QString& name, NodeType type)
{
if (type == Function)
return primaryFunctionMap.value(name);
@@ -857,14 +852,14 @@ QStringList InnerNode::secondaryKeys()
/*!
*/
-void InnerNode::setOverload(FunctionNode *func, bool overlode)
+void InnerNode::setOverload(FunctionNode *func, bool b)
{
Node *node = (Node *) func;
Node *&primary = primaryFunctionMap[func->name()];
if (secondaryFunctionMap.contains(func->name())) {
NodeList& secs = secondaryFunctionMap[func->name()];
- if (overlode) {
+ if (b) {
if (primary == node) {
primary = secs.first();
secs.erase(secs.begin());
@@ -888,12 +883,14 @@ void InnerNode::setOverload(FunctionNode *func, bool overlode)
/*!
Mark all child nodes that have no documentation as having
private access and internal status. qdoc will then ignore
- them for documentation purposes.
+ them for documentation purposes. Some nodes have an
+ Intermediate status, meaning that they should be ignored,
+ but not their children.
*/
void InnerNode::makeUndocumentedChildrenInternal()
{
foreach (Node *child, childNodes()) {
- if (child->doc().isEmpty()) {
+ if (child->doc().isEmpty() && child->status() != Node::Intermediate) {
child->setAccess(Node::Private);
child->setStatus(Node::Internal);
}
@@ -908,8 +905,7 @@ void InnerNode::normalizeOverloads()
while (p1 != primaryFunctionMap.end()) {
FunctionNode *primaryFunc = (FunctionNode *) *p1;
if (secondaryFunctionMap.contains(primaryFunc->name()) &&
- (primaryFunc->status() != Commendable ||
- primaryFunc->access() == Private)) {
+ (primaryFunc->status() != Active || primaryFunc->access() == Private)) {
NodeList& secs = secondaryFunctionMap[primaryFunc->name()];
NodeList::ConstIterator s = secs.constBegin();
@@ -920,8 +916,7 @@ void InnerNode::normalizeOverloads()
// (i.e, visible functions) are preferable to the primary
// function.
- if (secondaryFunc->status() == Commendable &&
- secondaryFunc->access() != Private) {
+ if (secondaryFunc->status() == Active && secondaryFunc->access() != Private) {
*p1 = secondaryFunc;
int index = secondaryFunctionMap[primaryFunc->name()].indexOf(secondaryFunc);
@@ -938,14 +933,14 @@ void InnerNode::normalizeOverloads()
while (p != primaryFunctionMap.constEnd()) {
FunctionNode *primaryFunc = (FunctionNode *) *p;
if (primaryFunc->isOverload())
- primaryFunc->ove = false;
+ primaryFunc->overload_ = false;
if (secondaryFunctionMap.contains(primaryFunc->name())) {
NodeList& secs = secondaryFunctionMap[primaryFunc->name()];
NodeList::ConstIterator s = secs.constBegin();
while (s != secs.constEnd()) {
FunctionNode *secondaryFunc = (FunctionNode *) *s;
if (!secondaryFunc->isOverload())
- secondaryFunc->ove = true;
+ secondaryFunc->overload_ = true;
++s;
}
}
@@ -1045,7 +1040,7 @@ NodeList InnerNode::overloads(const QString &funcName) const
Construct an inner node (i.e., not a leaf node) of the
given \a type and having the given \a parent and \a name.
*/
-InnerNode::InnerNode(Type type, InnerNode *parent, const QString& name)
+InnerNode::InnerNode(NodeType type, InnerNode *parent, const QString& name)
: Node(type, parent, name)
{
switch (type) {
@@ -1322,7 +1317,7 @@ QmlPropertyNode* InnerNode::hasQmlProperty(const QString& n, bool attached) cons
Constructs a leaf node named \a name of the specified
\a type. The new leaf node becomes a child of \a parent.
*/
-LeafNode::LeafNode(Type type, InnerNode *parent, const QString& name)
+LeafNode::LeafNode(NodeType type, InnerNode *parent, const QString& name)
: Node(type, parent, name)
{
switch (type) {
@@ -1349,7 +1344,7 @@ LeafNode::LeafNode(Type type, InnerNode *parent, const QString& name)
documentation case where a \e{qmlproperty} command is used
to override the QML definition of a QML property.
*/
-LeafNode::LeafNode(InnerNode* parent, Type type, const QString& name)
+LeafNode::LeafNode(InnerNode* parent, NodeType type, const QString& name)
: Node(type, 0, name)
{
setParent(parent);
@@ -1587,7 +1582,7 @@ QmlTypeNode* ClassNode::findQmlBaseNode()
which specifies the type of DocumentNode. The page type for
the page index is set here.
*/
-DocumentNode::DocumentNode(InnerNode* parent, const QString& name, SubType subtype, Node::PageType ptype)
+DocumentNode::DocumentNode(InnerNode* parent, const QString& name, DocSubtype subtype, Node::PageType ptype)
: InnerNode(Document, parent, name), nodeSubtype_(subtype)
{
setGenus(Node::DOC);
@@ -1621,7 +1616,7 @@ void DocumentNode::setTitle(const QString &title)
/*!
Returns the document node's full title, which is usually
- just title(), but for some SubType values is different
+ just title(), but for some DocSubtype values is different
from title()
*/
QString DocumentNode::fullTitle() const
@@ -1673,7 +1668,7 @@ QString DocumentNode::subTitle() const
has a \a parent class and an enum type \a name.
*/
EnumNode::EnumNode(InnerNode *parent, const QString& name)
- : LeafNode(Enum, parent, name), ft(0)
+ : LeafNode(Enum, parent, name), flagsType_(0)
{
setGenus(Node::CPP);
}
@@ -1683,8 +1678,8 @@ EnumNode::EnumNode(InnerNode *parent, const QString& name)
*/
void EnumNode::addItem(const EnumItem& item)
{
- itms.append(item);
- names.insert(item.name());
+ items_.append(item);
+ names_.insert(item.name());
}
/*!
@@ -1704,7 +1699,7 @@ Node::Access EnumNode::itemAccess(const QString &name) const
*/
QString EnumNode::itemValue(const QString &name) const
{
- foreach (const EnumItem &item, itms) {
+ foreach (const EnumItem &item, items_) {
if (item.name() == name)
return item.value();
}
@@ -1718,7 +1713,7 @@ QString EnumNode::itemValue(const QString &name) const
/*!
*/
TypedefNode::TypedefNode(InnerNode *parent, const QString& name)
- : LeafNode(Typedef, parent, name), ae(0)
+ : LeafNode(Typedef, parent, name), associatedEnum_(0)
{
setGenus(Node::CPP);
}
@@ -1727,7 +1722,7 @@ TypedefNode::TypedefNode(InnerNode *parent, const QString& name)
*/
void TypedefNode::setAssociatedEnum(const EnumNode *enume)
{
- ae = enume;
+ associatedEnum_ = enume;
}
/*!
@@ -1748,7 +1743,7 @@ Parameter::Parameter(const QString& leftType,
const QString& rightType,
const QString& name,
const QString& defaultValue)
- : lef(leftType), rig(rightType), nam(name), def(defaultValue)
+ : leftType_(leftType), rightType_(rightType), name_(name), defaultValue_(defaultValue)
{
}
@@ -1756,7 +1751,7 @@ Parameter::Parameter(const QString& leftType,
The standard copy constructor copies the strings from \a p.
*/
Parameter::Parameter(const Parameter& p)
- : lef(p.lef), rig(p.rig), nam(p.nam), def(p.def)
+ : leftType_(p.leftType_), rightType_(p.rightType_), name_(p.name_), defaultValue_(p.defaultValue_)
{
}
@@ -1766,10 +1761,10 @@ Parameter::Parameter(const Parameter& p)
*/
Parameter& Parameter::operator=(const Parameter& p)
{
- lef = p.lef;
- rig = p.rig;
- nam = p.nam;
- def = p.def;
+ leftType_ = p.leftType_;
+ rightType_ = p.rightType_;
+ name_ = p.name_;
+ defaultValue_ = p.defaultValue_;
return *this;
}
@@ -1780,12 +1775,12 @@ Parameter& Parameter::operator=(const Parameter& p)
*/
QString Parameter::reconstruct(bool value) const
{
- QString p = lef + rig;
+ QString p = leftType_ + rightType_;
if (!p.endsWith(QChar('*')) && !p.endsWith(QChar('&')) && !p.endsWith(QChar(' ')))
p += QLatin1Char(' ');
- p += nam;
- if (value && !def.isEmpty())
- p += " = " + def;
+ p += name_;
+ if (value && !defaultValue_.isEmpty())
+ p += " = " + defaultValue_;
return p;
}
@@ -1800,15 +1795,15 @@ QString Parameter::reconstruct(bool value) const
*/
FunctionNode::FunctionNode(InnerNode *parent, const QString& name)
: LeafNode(Function, parent, name),
- met(Plain),
- vir(NonVirtual),
- con(false),
- sta(false),
- ove(false),
- reimp(false),
+ metaness_(Plain),
+ virtualness_(NonVirtual),
+ const_(false),
+ static_(false),
+ overload_(false),
+ reimplemented_(false),
attached_(false),
- rf(0),
- ap(0)
+ reimplementedFrom_(0),
+ associatedProperty_(0)
{
setGenus(Node::CPP);
}
@@ -1818,17 +1813,17 @@ FunctionNode::FunctionNode(InnerNode *parent, const QString& name)
by \a type. It's parent is \a parent, and it's name is \a name.
If \a attached is true, it is an attached method or signal.
*/
-FunctionNode::FunctionNode(Type type, InnerNode *parent, const QString& name, bool attached)
+FunctionNode::FunctionNode(NodeType type, InnerNode *parent, const QString& name, bool attached)
: LeafNode(type, parent, name),
- met(Plain),
- vir(NonVirtual),
- con(false),
- sta(false),
- ove(false),
- reimp(false),
+ metaness_(Plain),
+ virtualness_(NonVirtual),
+ const_(false),
+ static_(false),
+ overload_(false),
+ reimplemented_(false),
attached_(attached),
- rf(0),
- ap(0)
+ reimplementedFrom_(0),
+ associatedProperty_(0)
{
setGenus(Node::QML);
if (type == QmlMethod || type == QmlSignal) {
@@ -1844,32 +1839,31 @@ FunctionNode::FunctionNode(Type type, InnerNode *parent, const QString& name, bo
is PureVirtual, and if the parent() is a ClassNode, set the parent's
\e abstract flag to true.
*/
-void FunctionNode::setVirtualness(Virtualness virtualness)
+void FunctionNode::setVirtualness(Virtualness v)
{
- vir = virtualness;
- if ((virtualness == PureVirtual) && parent() &&
- (parent()->type() == Node::Class))
+ virtualness_ = v;
+ if ((v == PureVirtual) && parent() && (parent()->type() == Node::Class))
parent()->setAbstract(true);
}
/*!
*/
-void FunctionNode::setOverload(bool overlode)
+void FunctionNode::setOverload(bool b)
{
- parent()->setOverload(this, overlode);
- ove = overlode;
+ parent()->setOverload(this, b);
+ overload_ = b;
}
/*!
- Sets the function node's reimplementation flag to \a r.
- When \a r is true, it is supposed to mean that this function
+ Sets the function node's reimplementation flag to \a b.
+ When \a b is true, it is supposed to mean that this function
is a reimplementation of a virtual function in a base class,
- but it really just means the \e reimp command was seen in the
- qdoc comment.
+ but it really just means the \e {\\reimp} command was seen in
+ the qdoc comment.
*/
-void FunctionNode::setReimp(bool r)
+void FunctionNode::setReimplemented(bool b)
{
- reimp = r;
+ reimplemented_ = b;
}
/*!
@@ -1877,16 +1871,16 @@ void FunctionNode::setReimp(bool r)
*/
void FunctionNode::addParameter(const Parameter& parameter)
{
- params.append(parameter);
+ parameters_.append(parameter);
}
/*!
*/
void FunctionNode::borrowParameterNames(const FunctionNode *source)
{
- QList<Parameter>::Iterator t = params.begin();
- QList<Parameter>::ConstIterator s = source->params.constBegin();
- while (s != source->params.constEnd() && t != params.end()) {
+ QList<Parameter>::Iterator t = parameters_.begin();
+ QList<Parameter>::ConstIterator s = source->parameters_.constBegin();
+ while (s != source->parameters_.constEnd() && t != parameters_.end()) {
if (!(*s).name().isEmpty())
(*t).setName((*s).name());
++s;
@@ -1898,19 +1892,19 @@ void FunctionNode::borrowParameterNames(const FunctionNode *source)
If this function is a reimplementation, \a from points
to the FunctionNode of the function being reimplemented.
*/
-void FunctionNode::setReimplementedFrom(FunctionNode *from)
+void FunctionNode::setReimplementedFrom(FunctionNode *f)
{
- rf = from;
- from->rb.append(this);
+ reimplementedFrom_ = f;
+ f->reimplementedBy_.append(this);
}
/*!
Sets the "associated" property to \a property. The function
might be the setter or getter for a property, for example.
*/
-void FunctionNode::setAssociatedProperty(PropertyNode *property)
+void FunctionNode::setAssociatedProperty(PropertyNode *p)
{
- ap = property;
+ associatedProperty_ = p;
}
/*!
@@ -1958,15 +1952,15 @@ QString FunctionNode::rawParameters(bool names, bool values) const
Returns the list of reconstructed parameters. If \a values
is true, the default values are included, if any are present.
*/
-QStringList FunctionNode::reconstructParams(bool values) const
+QStringList FunctionNode::reconstructParameters(bool values) const
{
- QStringList params;
+ QStringList reconstructedParameters;
QList<Parameter>::ConstIterator p = parameters().constBegin();
while (p != parameters().constEnd()) {
- params << (*p).reconstruct(values);
+ reconstructedParameters << (*p).reconstruct(values);
++p;
}
- return params;
+ return reconstructedParameters;
}
/*!
@@ -1980,11 +1974,11 @@ QString FunctionNode::signature(bool values) const
if (!returnType().isEmpty())
s = returnType() + QLatin1Char(' ');
s += name() + QLatin1Char('(');
- QStringList params = reconstructParams(values);
- int p = params.size();
+ QStringList reconstructedParameters = reconstructParameters(values);
+ int p = reconstructedParameters.size();
if (p > 0) {
for (int i=0; i<p; i++) {
- s += params[i];
+ s += reconstructedParameters[i];
if (i < (p-1))
s += ", ";
}
@@ -1998,8 +1992,8 @@ QString FunctionNode::signature(bool values) const
*/
void FunctionNode::debug() const
{
- qDebug("QML METHOD %s rt %s pp %s",
- qPrintable(name()), qPrintable(rt), qPrintable(pp.join(' ')));
+ qDebug("QML METHOD %s returnType_ %s parentPath_ %s",
+ qPrintable(name()), qPrintable(returnType_), qPrintable(parentPath_.join(' ')));
}
/*!
@@ -2019,10 +2013,10 @@ PropertyNode::PropertyNode(InnerNode *parent, const QString& name)
scriptable_(FlagValueDefault),
writable_(FlagValueDefault),
user_(FlagValueDefault),
- cst(false),
- fnl(false),
- rev(-1),
- overrides(0)
+ const_(false),
+ final_(false),
+ revision_(-1),
+ overrides_(0)
{
setGenus(Node::CPP);
}
@@ -2040,8 +2034,8 @@ PropertyNode::PropertyNode(InnerNode *parent, const QString& name)
void PropertyNode::setOverriddenFrom(const PropertyNode* baseProperty)
{
for (int i = 0; i < NumFunctionRoles; ++i) {
- if (funcs[i].isEmpty())
- funcs[i] = baseProperty->funcs[i];
+ if (functions_[i].isEmpty())
+ functions_[i] = baseProperty->functions_[i];
}
if (stored_ == FlagValueDefault)
stored_ = baseProperty->stored_;
@@ -2053,7 +2047,7 @@ void PropertyNode::setOverriddenFrom(const PropertyNode* baseProperty)
writable_ = baseProperty->writable_;
if (user_ == FlagValueDefault)
user_ = baseProperty->user_;
- overrides = baseProperty;
+ overrides_ = baseProperty;
}
/*!
@@ -2127,9 +2121,10 @@ void QmlTypeNode::terminate()
*/
void QmlTypeNode::addInheritedBy(const QString& base, Node* sub)
{
- if (inheritedBy.constFind(base,sub) == inheritedBy.constEnd()) {
+ if (sub->isInternal())
+ return;
+ if (inheritedBy.constFind(base,sub) == inheritedBy.constEnd())
inheritedBy.insert(base,sub);
- }
}
/*!
@@ -2574,7 +2569,7 @@ QString Node::idForNode() const
str = "js-method-" + parent_->name().toLower() + "-" + func->name();
else if (parent_->type() == Document) {
qDebug() << "qdoc internal error: Node subtype not handled:"
- << parent_->subType() << func->name();
+ << parent_->docSubtype() << func->name();
}
else
qDebug() << "qdoc internal error: Node type not handled:"
@@ -2599,7 +2594,7 @@ QString Node::idForNode() const
break;
case Node::Document:
{
- switch (subType()) {
+ switch (docSubtype()) {
case Node::Page:
case Node::HeaderFile:
str = title();
@@ -2620,7 +2615,7 @@ QString Node::idForNode() const
break;
default:
qDebug() << "ERROR: A case was not handled in Node::idForNode():"
- << "subType():" << subType() << "type():" << type();
+ << "docSubtype():" << docSubtype() << "type():" << type();
break;
}
}
@@ -2690,12 +2685,12 @@ QString Node::idForNode() const
break;
default:
qDebug() << "ERROR: A case was not handled in Node::idForNode():"
- << "type():" << type() << "subType():" << subType();
+ << "type():" << type() << "docSubtype():" << docSubtype();
break;
}
if (str.isEmpty()) {
qDebug() << "ERROR: A link text was empty in Node::idForNode():"
- << "type():" << type() << "subType():" << subType()
+ << "type():" << type() << "docSubtype():" << docSubtype()
<< "name():" << name()
<< "title():" << title();
}
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index 7dd868c3c0..f8f21f44db 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -71,7 +71,7 @@ class Node
Q_DECLARE_TR_FUNCTIONS(QDoc::Node)
public:
- enum Type {
+ enum NodeType {
NoType,
Namespace,
Class,
@@ -94,8 +94,8 @@ public:
LastType
};
- enum SubType {
- NoSubType,
+ enum DocSubtype {
+ NoSubtype,
Example,
HeaderFile,
File,
@@ -115,9 +115,9 @@ public:
Obsolete,
Deprecated,
Preliminary,
- Commendable,
- Main,
- Internal
+ Active,
+ Internal,
+ Intermediate
}; // don't reorder this enum
enum ThreadSafeness {
@@ -132,13 +132,7 @@ public:
NextLink,
PreviousLink,
ContentsLink,
- IndexLink /*,
- GlossaryLink,
- CopyrightLink,
- ChapterLink,
- SectionLink,
- SubsectionLink,
- AppendixLink */
+ IndexLink
};
enum PageType {
@@ -172,20 +166,20 @@ public:
Node::Genus genus() const { return (Genus) genus_; }
void setGenus(Genus t) { genus_ = (unsigned char) t; }
- void setAccess(Access access) { access_ = (unsigned char) access; }
+ void setAccess(Access t) { access_ = (unsigned char) t; }
void setLocation(const Location& location) { loc_ = location; }
void setDoc(const Doc& doc, bool replace = false);
- void setStatus(Status status) {
- if (status_ == (unsigned char) Obsolete && status == Deprecated)
+ void setStatus(Status t) {
+ if (status_ == (unsigned char) Obsolete && t == Deprecated)
return;
- status_ = (unsigned char) status;
+ status_ = (unsigned char) t;
}
- void setThreadSafeness(ThreadSafeness safeness) { safeness_ = (unsigned char) safeness; }
+ void setThreadSafeness(ThreadSafeness t) { safeness_ = (unsigned char) t; }
void setSince(const QString &since);
void setRelates(InnerNode* pseudoParent);
void setPhysicalModuleName(const QString &name) { physicalModuleName_ = name; }
void setUrl(const QString& url) { url_ = url; }
- void setTemplateStuff(const QString &templateStuff) { templateStuff_ = templateStuff; }
+ void setTemplateStuff(const QString &t) { templateStuff_ = t; }
void setReconstitutedBrief(const QString &t) { reconstitutedBrief_ = t; }
void setPageType(PageType t) { pageType_ = (unsigned char) t; }
void setPageType(const QString& t);
@@ -212,7 +206,7 @@ public:
virtual bool isExampleFile() const { return false; }
virtual bool isHeaderFile() const { return false; }
virtual bool isLeaf() const { return false; }
- virtual bool isReimp() const { return false; }
+ virtual bool isReimplemented() const { return false; }
virtual bool isFunction() const { return false; }
virtual bool isNamespace() const { return false; }
virtual bool isClass() const { return false; }
@@ -253,15 +247,15 @@ public:
virtual bool isInternal() const;
virtual void setDataType(const QString& ) { }
virtual void setReadOnly(bool ) { }
- virtual Node* disambiguate(Type , SubType ) { return this; }
+ virtual Node* disambiguate(NodeType , DocSubtype ) { return this; }
virtual bool wasSeen() const { return false; }
virtual void appendGroupName(const QString& ) { }
virtual QString element() const { return QString(); }
virtual Tree* tree() const;
virtual void findChildren(const QString& , NodeList& nodes) const { nodes.clear(); }
bool isIndexNode() const { return indexNodeFlag_; }
- Type type() const { return (Type) nodeType_; }
- virtual SubType subType() const { return NoSubType; }
+ NodeType type() const { return (NodeType) nodeType_; }
+ virtual DocSubtype docSubtype() const { return NoSubtype; }
bool match(const NodeTypeList& types) const;
InnerNode* parent() const { return parent_; }
const Node* root() const;
@@ -333,10 +327,10 @@ public:
static int incPropertyGroupCount();
static void clearPropertyGroupCount();
static void initialize();
- static Type goal(const QString& t) { return goals_.value(t); }
+ static NodeType goal(const QString& t) { return goals_.value(t); }
protected:
- Node(Type type, InnerNode* parent, const QString& name);
+ Node(NodeType type, InnerNode* parent, const QString& name);
private:
@@ -364,7 +358,7 @@ private:
QString outSubDir_;
static QStringMap operators_;
static int propertyGroupCount_;
- static QMap<QString,Node::Type> goals_;
+ static QMap<QString,Node::NodeType> goals_;
};
class InnerNode : public Node
@@ -373,7 +367,7 @@ public:
virtual ~InnerNode();
Node* findChildNode(const QString& name, Node::Genus genus) const;
- Node* findChildNode(const QString& name, Type type);
+ Node* findChildNode(const QString& name, NodeType type);
virtual void findChildren(const QString& name, NodeList& nodes) const Q_DECL_OVERRIDE;
FunctionNode* findFunctionNode(const QString& name) const;
FunctionNode* findFunctionNode(const FunctionNode* clone) const;
@@ -413,7 +407,7 @@ public:
virtual void setOutputSubdirectory(const QString& t);
protected:
- InnerNode(Type type, InnerNode* parent, const QString& name);
+ InnerNode(NodeType type, InnerNode* parent, const QString& name);
private:
friend class Node;
@@ -443,8 +437,8 @@ public:
virtual bool isLeaf() const Q_DECL_OVERRIDE { return true; }
protected:
- LeafNode(Type type, InnerNode* parent, const QString& name);
- LeafNode(InnerNode* parent, Type type, const QString& name);
+ LeafNode(NodeType type, InnerNode* parent, const QString& name);
+ LeafNode(InnerNode* parent, NodeType type, const QString& name);
};
class NamespaceNode : public InnerNode
@@ -459,10 +453,13 @@ public:
void markSeen() { seen_ = true; }
void markNotSeen() { seen_ = false; }
void setTree(Tree* t) { tree_ = t; }
+ const NodeList& orphans() const { return orphans_; }
+ void addOrphan(Node* child) { orphans_.append(child); }
private:
bool seen_;
Tree* tree_;
+ NodeList orphans_;
};
struct RelatedClass
@@ -523,8 +520,6 @@ public:
const QList<RelatedClass> &ignoredBaseClasses() const { return ignoredBases_; }
const QList<UsingClause>& usingClauses() const { return usingClauses_; }
- QString serviceName() const { return sname; }
- void setServiceName(const QString& value) { sname = value; }
QmlTypeNode* qmlElement() { return qmlelement; }
void setQmlElement(QmlTypeNode* qcn) { qmlelement = qcn; }
virtual bool isAbstract() const Q_DECL_OVERRIDE { return abstract_; }
@@ -539,7 +534,6 @@ private:
QList<UsingClause> usingClauses_;
bool abstract_;
bool wrapper_;
- QString sname;
QString obsoleteLink_;
QmlTypeNode* qmlelement;
};
@@ -550,7 +544,7 @@ public:
DocumentNode(InnerNode* parent,
const QString& name,
- SubType subType,
+ DocSubtype docSubtype,
PageType ptype);
virtual ~DocumentNode() { }
@@ -558,7 +552,7 @@ public:
virtual void setTitle(const QString &title) Q_DECL_OVERRIDE;
virtual void setSubTitle(const QString &subTitle) Q_DECL_OVERRIDE { subtitle_ = subTitle; }
- SubType subType() const Q_DECL_OVERRIDE { return nodeSubtype_; }
+ DocSubtype docSubtype() const Q_DECL_OVERRIDE { return nodeSubtype_; }
virtual QString title() const Q_DECL_OVERRIDE { return title_; }
virtual QString fullTitle() const Q_DECL_OVERRIDE;
virtual QString subTitle() const Q_DECL_OVERRIDE;
@@ -566,13 +560,13 @@ public:
virtual QString nameForLists() const Q_DECL_OVERRIDE { return title(); }
virtual void setImageFileName(const QString& ) { }
- virtual bool isHeaderFile() const Q_DECL_OVERRIDE { return (subType() == Node::HeaderFile); }
- virtual bool isExample() const Q_DECL_OVERRIDE { return (subType() == Node::Example); }
+ virtual bool isHeaderFile() const Q_DECL_OVERRIDE { return (docSubtype() == Node::HeaderFile); }
+ virtual bool isExample() const Q_DECL_OVERRIDE { return (docSubtype() == Node::Example); }
virtual bool isExampleFile() const Q_DECL_OVERRIDE { return (parent() && parent()->isExample()); }
virtual bool isExternalPage() const Q_DECL_OVERRIDE { return nodeSubtype_ == ExternalPage; }
protected:
- SubType nodeSubtype_;
+ DocSubtype nodeSubtype_;
QString title_;
QString subtitle_;
};
@@ -760,14 +754,14 @@ class EnumItem
public:
EnumItem() { }
EnumItem(const QString& name, const QString& value)
- : nam(name), val(value) { }
+ : name_(name), value_(value) { }
- const QString& name() const { return nam; }
- const QString& value() const { return val; }
+ const QString& name() const { return name_; }
+ const QString& value() const { return value_; }
private:
- QString nam;
- QString val;
+ QString name_;
+ QString value_;
};
class EnumNode : public LeafNode
@@ -778,17 +772,17 @@ public:
void addItem(const EnumItem& item);
void setFlagsType(TypedefNode* typedeff);
- bool hasItem(const QString &name) const { return names.contains(name); }
+ bool hasItem(const QString &name) const { return names_.contains(name); }
- const QList<EnumItem>& items() const { return itms; }
+ const QList<EnumItem>& items() const { return items_; }
Access itemAccess(const QString& name) const;
- const TypedefNode* flagsType() const { return ft; }
+ const TypedefNode* flagsType() const { return flagsType_; }
QString itemValue(const QString &name) const;
private:
- QList<EnumItem> itms;
- QSet<QString> names;
- const TypedefNode* ft;
+ QList<EnumItem> items_;
+ QSet<QString> names_;
+ const TypedefNode* flagsType_;
};
class TypedefNode : public LeafNode
@@ -797,20 +791,20 @@ public:
TypedefNode(InnerNode* parent, const QString& name);
virtual ~TypedefNode() { }
- const EnumNode* associatedEnum() const { return ae; }
+ const EnumNode* associatedEnum() const { return associatedEnum_; }
private:
- void setAssociatedEnum(const EnumNode* enume);
+ void setAssociatedEnum(const EnumNode* t);
friend class EnumNode;
- const EnumNode* ae;
+ const EnumNode* associatedEnum_;
};
-inline void EnumNode::setFlagsType(TypedefNode* typedeff)
+inline void EnumNode::setFlagsType(TypedefNode* t)
{
- ft = typedeff;
- typedeff->setAssociatedEnum(this);
+ flagsType_ = t;
+ t->setAssociatedEnum(this);
}
@@ -826,21 +820,21 @@ public:
Parameter& operator=(const Parameter& p);
- void setName(const QString& name) { nam = name; }
+ void setName(const QString& name) { name_ = name; }
- bool hasType() const { return lef.length() + rig.length() > 0; }
- const QString& leftType() const { return lef; }
- const QString& rightType() const { return rig; }
- const QString& name() const { return nam; }
- const QString& defaultValue() const { return def; }
+ bool hasType() const { return leftType_.length() + rightType_.length() > 0; }
+ const QString& leftType() const { return leftType_; }
+ const QString& rightType() const { return rightType_; }
+ const QString& name() const { return name_; }
+ const QString& defaultValue() const { return defaultValue_; }
QString reconstruct(bool value = false) const;
private:
- QString lef;
- QString rig;
- QString nam;
- QString def;
+ QString leftType_;
+ QString rightType_;
+ QString name_;
+ QString defaultValue_;
};
class FunctionNode : public LeafNode
@@ -855,35 +849,35 @@ public:
MacroWithParams,
MacroWithoutParams,
Native };
- enum Virtualness { NonVirtual, ImpureVirtual, PureVirtual };
+ enum Virtualness { NonVirtual, NormalVirtual, PureVirtual };
FunctionNode(InnerNode* parent, const QString &name);
- FunctionNode(Type type, InnerNode* parent, const QString &name, bool attached);
+ FunctionNode(NodeType type, InnerNode* parent, const QString &name, bool attached);
virtual ~FunctionNode() { }
- void setReturnType(const QString& returnType) { rt = returnType; }
- void setParentPath(const QStringList& parentPath) { pp = parentPath; }
- void setMetaness(Metaness metaness) { met = metaness; }
- void setVirtualness(Virtualness virtualness);
- void setConst(bool conste) { con = conste; }
- void setStatic(bool statique) { sta = statique; }
- void setOverload(bool overlode);
- void setReimp(bool r);
+ void setReturnType(const QString& t) { returnType_ = t; }
+ void setParentPath(const QStringList& p) { parentPath_ = p; }
+ void setMetaness(Metaness t) { metaness_ = t; }
+ void setVirtualness(Virtualness v);
+ void setConst(bool b) { const_ = b; }
+ void setStatic(bool b) { static_ = b; }
+ void setOverload(bool b);
+ void setReimplemented(bool b);
void addParameter(const Parameter& parameter);
inline void setParameters(const QList<Parameter>& parameters);
void borrowParameterNames(const FunctionNode* source);
void setReimplementedFrom(FunctionNode* from);
- const QString& returnType() const { return rt; }
- Metaness metaness() const { return met; }
+ const QString& returnType() const { return returnType_; }
+ Metaness metaness() const { return metaness_; }
bool isMacro() const {
- return met == MacroWithParams || met == MacroWithoutParams;
+ return metaness_ == MacroWithParams || metaness_ == MacroWithoutParams;
}
- Virtualness virtualness() const { return vir; }
- bool isConst() const { return con; }
- bool isStatic() const { return sta; }
- bool isOverload() const { return ove; }
- bool isReimp() const Q_DECL_OVERRIDE { return reimp; }
+ Virtualness virtualness() const { return virtualness_; }
+ bool isConst() const { return const_; }
+ bool isStatic() const { return static_; }
+ bool isOverload() const { return overload_; }
+ bool isReimplemented() const Q_DECL_OVERRIDE { return reimplemented_; }
bool isFunction() const Q_DECL_OVERRIDE { return true; }
virtual bool isQmlSignal() const Q_DECL_OVERRIDE {
return (type() == Node::QmlSignal) && (genus() == Node::QML);
@@ -904,16 +898,16 @@ public:
return (type() == Node::QmlMethod) && (genus() == Node::JS);
}
int overloadNumber() const;
- const QList<Parameter>& parameters() const { return params; }
- void clearParams() { params.clear(); }
+ const QList<Parameter>& parameters() const { return parameters_; }
+ void clearParams() { parameters_.clear(); }
QStringList parameterNames() const;
QString rawParameters(bool names = false, bool values = false) const;
- const FunctionNode* reimplementedFrom() const { return rf; }
- const QList<FunctionNode*> &reimplementedBy() const { return rb; }
- const PropertyNode* associatedProperty() const { return ap; }
- const QStringList& parentPath() const { return pp; }
+ const FunctionNode* reimplementedFrom() const { return reimplementedFrom_; }
+ const QList<FunctionNode*> &reimplementedBy() const { return reimplementedBy_; }
+ const PropertyNode* associatedProperty() const { return associatedProperty_; }
+ const QStringList& parentPath() const { return parentPath_; }
- QStringList reconstructParams(bool values = false) const;
+ QStringList reconstructParameters(bool values = false) const;
QString signature(bool values = false) const;
virtual QString element() const Q_DECL_OVERRIDE { return parent()->name(); }
virtual bool isAttached() const Q_DECL_OVERRIDE { return attached_; }
@@ -937,19 +931,19 @@ private:
friend class InnerNode;
friend class PropertyNode;
- QString rt;
- QStringList pp;
- Metaness met;
- Virtualness vir;
- bool con : 1;
- bool sta : 1;
- bool ove : 1;
- bool reimp: 1;
+ QString returnType_;
+ QStringList parentPath_;
+ Metaness metaness_;
+ Virtualness virtualness_;
+ bool const_ : 1;
+ bool static_ : 1;
+ bool overload_ : 1;
+ bool reimplemented_: 1;
bool attached_: 1;
- QList<Parameter> params;
- const FunctionNode* rf;
- const PropertyNode* ap;
- QList<FunctionNode*> rb;
+ QList<Parameter> parameters_;
+ const FunctionNode* reimplementedFrom_;
+ const PropertyNode* associatedProperty_;
+ QList<FunctionNode*> reimplementedBy_;
};
class PropertyNode : public LeafNode
@@ -971,16 +965,16 @@ public:
void setWritable(bool writable) { writable_ = toFlagValue(writable); }
void setUser(bool user) { user_ = toFlagValue(user); }
void setOverriddenFrom(const PropertyNode* baseProperty);
- void setRuntimeDesFunc(const QString& rdf) { runtimeDesFunc = rdf; }
- void setRuntimeScrFunc(const QString& scrf) { runtimeScrFunc = scrf; }
- void setConstant() { cst = true; }
- void setFinal() { fnl = true; }
- void setRevision(int revision) { rev = revision; }
+ void setRuntimeDesFunc(const QString& rdf) { runtimeDesFunc_ = rdf; }
+ void setRuntimeScrFunc(const QString& scrf) { runtimeScrFunc_ = scrf; }
+ void setConstant() { const_ = true; }
+ void setFinal() { final_ = true; }
+ void setRevision(int revision) { revision_ = revision; }
const QString &dataType() const { return type_; }
QString qualifiedDataType() const;
NodeList functions() const;
- NodeList functions(FunctionRole role) const { return funcs[(int)role]; }
+ NodeList functions(FunctionRole role) const { return functions_[(int)role]; }
NodeList getters() const { return functions(Getter); }
NodeList setters() const { return functions(Setter); }
NodeList resetters() const { return functions(Resetter); }
@@ -988,13 +982,13 @@ public:
bool isStored() const { return fromFlagValue(stored_, storedDefault()); }
bool isDesignable() const { return fromFlagValue(designable_, designableDefault()); }
bool isScriptable() const { return fromFlagValue(scriptable_, scriptableDefault()); }
- const QString& runtimeDesignabilityFunction() const { return runtimeDesFunc; }
- const QString& runtimeScriptabilityFunction() const { return runtimeScrFunc; }
+ const QString& runtimeDesignabilityFunction() const { return runtimeDesFunc_; }
+ const QString& runtimeScriptabilityFunction() const { return runtimeScrFunc_; }
bool isWritable() const { return fromFlagValue(writable_, writableDefault()); }
bool isUser() const { return fromFlagValue(user_, userDefault()); }
- bool isConstant() const { return cst; }
- bool isFinal() const { return fnl; }
- const PropertyNode* overriddenFrom() const { return overrides; }
+ bool isConstant() const { return const_; }
+ bool isFinal() const { return final_; }
+ const PropertyNode* overriddenFrom() const { return overrides_; }
bool storedDefault() const { return true; }
bool userDefault() const { return false; }
@@ -1004,34 +998,34 @@ public:
private:
QString type_;
- QString runtimeDesFunc;
- QString runtimeScrFunc;
- NodeList funcs[NumFunctionRoles];
+ QString runtimeDesFunc_;
+ QString runtimeScrFunc_;
+ NodeList functions_[NumFunctionRoles];
FlagValue stored_;
FlagValue designable_;
FlagValue scriptable_;
FlagValue writable_;
FlagValue user_;
- bool cst;
- bool fnl;
- int rev;
- const PropertyNode* overrides;
+ bool const_;
+ bool final_;
+ int revision_;
+ const PropertyNode* overrides_;
};
-inline void FunctionNode::setParameters(const QList<Parameter> &parameters)
+inline void FunctionNode::setParameters(const QList<Parameter> &p)
{
- params = parameters;
+ parameters_ = p;
}
inline void PropertyNode::addFunction(FunctionNode* function, FunctionRole role)
{
- funcs[(int)role].append(function);
+ functions_[(int)role].append(function);
function->setAssociatedProperty(this);
}
inline void PropertyNode::addSignal(FunctionNode* function, FunctionRole role)
{
- funcs[(int)role].append(function);
+ functions_[(int)role].append(function);
function->setAssociatedProperty(this);
}
@@ -1039,7 +1033,7 @@ inline NodeList PropertyNode::functions() const
{
NodeList list;
for (int i = 0; i < NumFunctionRoles; ++i)
- list += funcs[i];
+ list += functions_[i];
return list;
}
@@ -1049,23 +1043,23 @@ public:
VariableNode(InnerNode* parent, const QString &name);
virtual ~VariableNode() { }
- void setLeftType(const QString &leftType) { lt = leftType; }
- void setRightType(const QString &rightType) { rt = rightType; }
- void setStatic(bool statique) { sta = statique; }
+ void setLeftType(const QString &leftType) { lrftType_ = leftType; }
+ void setRightType(const QString &rightType) { rightType_ = rightType; }
+ void setStatic(bool b) { static_ = b; }
- const QString &leftType() const { return lt; }
- const QString &rightType() const { return rt; }
- QString dataType() const { return lt + rt; }
- bool isStatic() const { return sta; }
+ const QString &leftType() const { return lrftType_; }
+ const QString &rightType() const { return rightType_; }
+ QString dataType() const { return lrftType_ + rightType_; }
+ bool isStatic() const { return static_; }
private:
- QString lt;
- QString rt;
- bool sta;
+ QString lrftType_;
+ QString rightType_;
+ bool static_;
};
inline VariableNode::VariableNode(InnerNode* parent, const QString &name)
- : LeafNode(Variable, parent, name), sta(false)
+ : LeafNode(Variable, parent, name), static_(false)
{
setGenus(Node::CPP);
}
@@ -1083,7 +1077,7 @@ public:
class CollectionNode : public InnerNode
{
public:
- CollectionNode(Type type,
+ CollectionNode(NodeType type,
InnerNode* parent,
const QString& name,
Genus genus) : InnerNode(type, parent, name), seen_(false)
diff --git a/src/tools/qdoc/plaincodemarker.cpp b/src/tools/qdoc/plaincodemarker.cpp
index 94561c3f48..09afb84ee6 100644
--- a/src/tools/qdoc/plaincodemarker.cpp
+++ b/src/tools/qdoc/plaincodemarker.cpp
@@ -58,7 +58,7 @@ bool PlainCodeMarker::recognizeLanguage( const QString& /* lang */ )
return false;
}
-Atom::Type PlainCodeMarker::atomType() const
+Atom::AtomType PlainCodeMarker::atomType() const
{
return Atom::Code;
}
diff --git a/src/tools/qdoc/plaincodemarker.h b/src/tools/qdoc/plaincodemarker.h
index 6d41b3dd81..fcaa926f8e 100644
--- a/src/tools/qdoc/plaincodemarker.h
+++ b/src/tools/qdoc/plaincodemarker.h
@@ -51,7 +51,7 @@ public:
bool recognizeCode( const QString& code ) Q_DECL_OVERRIDE;
bool recognizeExtension( const QString& ext ) Q_DECL_OVERRIDE;
bool recognizeLanguage( const QString& lang ) Q_DECL_OVERRIDE;
- Atom::Type atomType() const Q_DECL_OVERRIDE;
+ Atom::AtomType atomType() const Q_DECL_OVERRIDE;
QString markedUpCode( const QString& code, const Node *relative, const Location &location ) Q_DECL_OVERRIDE;
QString markedUpSynopsis( const Node *node, const Node *relative,
SynopsisStyle style ) Q_DECL_OVERRIDE;
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp
index 30d4d28a17..e97145458f 100644
--- a/src/tools/qdoc/qdocdatabase.cpp
+++ b/src/tools/qdoc/qdocdatabase.cpp
@@ -138,8 +138,9 @@ Tree* QDocForest::nextTree()
*/
void QDocForest::setPrimaryTree(const QString& t)
{
- primaryTree_ = findTree(t);
- forest_.remove(t);
+ QString T = t.toLower();
+ primaryTree_ = findTree(T);
+ forest_.remove(T);
if (!primaryTree_)
qDebug() << "ERROR: Could not set primary tree to:" << t;
}
@@ -841,7 +842,7 @@ TextToNodeMap& QDocDatabase::getLegaleseTexts()
have not already been constructed. Returns a reference to
the map of C++ classes with obsolete members.
*/
-NodeMap& QDocDatabase::getClassesWithObsoleteMembers()
+NodeMultiMap& QDocDatabase::getClassesWithObsoleteMembers()
{
if (obsoleteClasses_.isEmpty() && obsoleteQmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllObsoleteThings);
@@ -853,7 +854,7 @@ NodeMap& QDocDatabase::getClassesWithObsoleteMembers()
have not already been constructed. Returns a reference to
the map of obsolete QML types.
*/
-NodeMap& QDocDatabase::getObsoleteQmlTypes()
+NodeMultiMap& QDocDatabase::getObsoleteQmlTypes()
{
if (obsoleteClasses_.isEmpty() && obsoleteQmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllObsoleteThings);
@@ -865,38 +866,24 @@ NodeMap& QDocDatabase::getObsoleteQmlTypes()
have not already been constructed. Returns a reference to
the map of QML types with obsolete members.
*/
-NodeMap& QDocDatabase::getQmlTypesWithObsoleteMembers()
+NodeMultiMap& QDocDatabase::getQmlTypesWithObsoleteMembers()
{
if (obsoleteClasses_.isEmpty() && obsoleteQmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllObsoleteThings);
return qmlTypesWithObsoleteMembers_;
}
-/*! \fn NodeMap& QDocDatabase::getNamespaces()
+/*! \fn NodeMultiMap& QDocDatabase::getNamespaces()
Returns a reference to the map of all namespace nodes.
This function must not be called in the -prepare phase.
*/
/*!
- Construct the C++ class data structures, if they have not
- already been constructed. Returns a reference to the map
- of C++ service clases.
-
- \note This is currently not used.
- */
-NodeMap& QDocDatabase::getServiceClasses()
-{
- if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
- processForest(&QDocDatabase::findAllClasses);
- return serviceClasses_;
-}
-
-/*!
Construct the data structures for QML basic types, if they
have not already been constructed. Returns a reference to
the map of QML basic types.
*/
-NodeMap& QDocDatabase::getQmlBasicTypes()
+NodeMultiMap& QDocDatabase::getQmlBasicTypes()
{
if (cppClasses_.isEmpty() && qmlBasicTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
@@ -906,9 +893,9 @@ NodeMap& QDocDatabase::getQmlBasicTypes()
/*!
Construct the data structures for obsolete things, if they
have not already been constructed. Returns a reference to
- the map of obsolete QML types.
+ the multimap of QML types.
*/
-NodeMap& QDocDatabase::getQmlTypes()
+NodeMultiMap& QDocDatabase::getQmlTypes()
{
if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
@@ -920,7 +907,7 @@ NodeMap& QDocDatabase::getQmlTypes()
have not already been constructed. Returns a reference to
the map of obsolete C++ clases.
*/
-NodeMap& QDocDatabase::getObsoleteClasses()
+NodeMultiMap& QDocDatabase::getObsoleteClasses()
{
if (obsoleteClasses_.isEmpty() && obsoleteQmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllObsoleteThings);
@@ -930,36 +917,9 @@ NodeMap& QDocDatabase::getObsoleteClasses()
/*!
Construct the C++ class data structures, if they have not
already been constructed. Returns a reference to the map
- of compatibility C++ clases.
- */
-NodeMap& QDocDatabase::getCompatibilityClasses()
-{
- if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
- processForest(&QDocDatabase::findAllClasses);
- return compatClasses_;
-}
-
-/*!
- Construct the C++ class data structures, if they have not
- already been constructed. Returns a reference to the map
- of main C++ clases.
-
- \note The main C++ classes data structure is currently not
- used.
- */
-NodeMap& QDocDatabase::getMainClasses()
-{
- if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
- processForest(&QDocDatabase::findAllClasses);
- return mainClasses_;
-}
-
-/*!
- Construct the C++ class data structures, if they have not
- already been constructed. Returns a reference to the map
of all C++ classes.
*/
-NodeMap& QDocDatabase::getCppClasses()
+NodeMultiMap& QDocDatabase::getCppClasses()
{
if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
@@ -974,7 +934,8 @@ void QDocDatabase::findAllClasses(InnerNode* node)
{
NodeList::const_iterator c = node->childNodes().constBegin();
while (c != node->childNodes().constEnd()) {
- if ((*c)->access() != Node::Private && (!(*c)->isInternal() || showInternal_)) {
+ if ((*c)->access() != Node::Private && (!(*c)->isInternal() || showInternal_) &&
+ (*c)->tree()->camelCaseModuleName() != QString("QDoc")) {
if ((*c)->type() == Node::Class && !(*c)->doc().isEmpty()) {
QString className = (*c)->name();
if ((*c)->parent() &&
@@ -982,19 +943,7 @@ void QDocDatabase::findAllClasses(InnerNode* node)
!(*c)->parent()->name().isEmpty())
className = (*c)->parent()->name()+"::"+className;
- if ((*c)->status() == Node::Compat) {
- compatClasses_.insert(className, *c);
- }
- else {
- cppClasses_.insert(className, *c);
- if ((*c)->status() == Node::Main)
- mainClasses_.insert(className, *c);
- }
-
- QString serviceName = (static_cast<const ClassNode *>(*c))->serviceName();
- if (!serviceName.isEmpty()) {
- serviceClasses_.insert(serviceName, *c);
- }
+ cppClasses_.insert(className, *c);
}
else if (((*c)->isQmlType() || (*c)->isQmlBasicType() ||
(*c)->isJsType() || (*c)->isJsBasicType()) && !(*c)->doc().isEmpty()) {
@@ -1299,7 +1248,7 @@ const NodeMap& QDocDatabase::getQmlTypeMap(const QString& key)
a reference to the value, which is a NodeMultiMap. If \a key
is not found, return a reference to an empty NodeMultiMap.
*/
-const NodeMultiMap& QDocDatabase::getSinceMap(const QString& key)
+const NodeMap& QDocDatabase::getSinceMap(const QString& key)
{
if (newSinceMaps_.isEmpty() && newClassMaps_.isEmpty() && newQmlTypeMaps_.isEmpty())
processForest(&QDocDatabase::findAllSince);
@@ -1361,11 +1310,24 @@ void QDocDatabase::resolveNamespaces()
foreach (Node* n, nodes) {
if (n->isNamespace()) {
NamespaceNode* NS = static_cast<NamespaceNode*>(n);
- if (NS != ns) {
- while (!NS->childNodes().isEmpty()) {
- Node* child = NS->childNodes().first();
- NS->removeChild(child);
- ns->addChild(child);
+ if ((NS != ns) && !NS->childNodes().isEmpty()) {
+ const NodeList& children = NS->childNodes();
+ int i = children.size() - 1;
+ while (i >= 0) {
+ Node* child = children.at(i--);
+ if (!child)
+ continue;
+ if (!child->isClass()
+ && !child->isQmlType()
+ && !child->isNamespace()) {
+ NS->removeChild(child);
+ ns->addChild(child);
+ }
+ else {
+ NS->setStatus(Node::Intermediate);
+ NS->setAccess(Node::Public);
+ ns->addOrphan(child);
+ }
}
}
}
@@ -1553,7 +1515,7 @@ FunctionNode* QDocDatabase::findNodeInOpenNamespace(const QStringList& parentPat
This function only searches in the current primary tree.
*/
-Node* QDocDatabase::findNodeInOpenNamespace(QStringList& path, Node::Type type)
+Node* QDocDatabase::findNodeInOpenNamespace(QStringList& path, Node::NodeType type)
{
if (path.isEmpty())
return 0;
@@ -1664,7 +1626,7 @@ const Node* QDocDatabase::findNodeForAtom(const Atom* a, const Node* relative, Q
Tree* domain = 0;
Node::Genus genus = Node::DontCare;
// Reserved for future use
- //Node::Type goal = Node::NoType;
+ //Node::NodeType goal = Node::NoType;
if (atom->isLinkAtom()) {
domain = atom->domain();
diff --git a/src/tools/qdoc/qdocdatabase.h b/src/tools/qdoc/qdocdatabase.h
index d0c59d731c..9d3b757eec 100644
--- a/src/tools/qdoc/qdocdatabase.h
+++ b/src/tools/qdoc/qdocdatabase.h
@@ -103,7 +103,7 @@ class QDocForest
return 0;
}
- Node* findNodeByNameAndType(const QStringList& path, Node::Type type) {
+ Node* findNodeByNameAndType(const QStringList& path, Node::NodeType type) {
foreach (Tree* t, searchOrder()) {
Node* n = t->findNodeByNameAndType(path, type);
if (n)
@@ -271,22 +271,19 @@ class QDocDatabase
/*******************************************************************
special collection access functions
********************************************************************/
- NodeMap& getCppClasses();
- NodeMap& getMainClasses();
- NodeMap& getCompatibilityClasses();
- NodeMap& getObsoleteClasses();
- NodeMap& getClassesWithObsoleteMembers();
- NodeMap& getObsoleteQmlTypes();
- NodeMap& getQmlTypesWithObsoleteMembers();
- NodeMap& getNamespaces() { resolveNamespaces(); return namespaceIndex_; }
- NodeMap& getServiceClasses();
- NodeMap& getQmlBasicTypes();
- NodeMap& getQmlTypes();
+ NodeMultiMap& getCppClasses();
+ NodeMultiMap& getObsoleteClasses();
+ NodeMultiMap& getClassesWithObsoleteMembers();
+ NodeMultiMap& getObsoleteQmlTypes();
+ NodeMultiMap& getQmlTypesWithObsoleteMembers();
+ NodeMultiMap& getNamespaces() { resolveNamespaces(); return namespaceIndex_; }
+ NodeMultiMap& getQmlBasicTypes();
+ NodeMultiMap& getQmlTypes();
NodeMapMap& getFunctionIndex();
TextToNodeMap& getLegaleseTexts();
const NodeMap& getClassMap(const QString& key);
const NodeMap& getQmlTypeMap(const QString& key);
- const NodeMultiMap& getSinceMap(const QString& key);
+ const NodeMap& getSinceMap(const QString& key);
/*******************************************************************
Many of these will be either eliminated or replaced.
@@ -300,7 +297,7 @@ class QDocDatabase
void insertTarget(const QString& name,
const QString& title,
- TargetRec::Type type,
+ TargetRec::TargetType type,
Node* node,
int priority) {
primaryTree()->insertTarget(name, title, type, node, priority);
@@ -313,7 +310,7 @@ class QDocDatabase
return primaryTree()->findFunctionNode(parentPath, clone);
}
FunctionNode* findNodeInOpenNamespace(const QStringList& parentPath, const FunctionNode* clone);
- Node* findNodeInOpenNamespace(QStringList& path, Node::Type type);
+ Node* findNodeInOpenNamespace(QStringList& path, Node::NodeType type);
const Node* checkForCollision(const QString& name) {
return primaryTree()->checkForCollision(name);
}
@@ -339,7 +336,7 @@ class QDocDatabase
const DocumentNode* findDocumentNodeByTitle(const QString& title) {
return forest_.findDocumentNodeByTitle(title);
}
- Node* findNodeByNameAndType(const QStringList& path, Node::Type type) {
+ Node* findNodeByNameAndType(const QStringList& path, Node::NodeType type) {
return forest_.findNodeByNameAndType(path, type);
}
@@ -438,18 +435,15 @@ class QDocDatabase
QString version_;
QDocForest forest_;
- NodeMap cppClasses_;
- NodeMap mainClasses_; // MWS: not needed, should be delete
- NodeMap compatClasses_;
- NodeMap obsoleteClasses_;
- NodeMap classesWithObsoleteMembers_;
- NodeMap obsoleteQmlTypes_;
- NodeMap qmlTypesWithObsoleteMembers_;
- NodeMap namespaceIndex_;
+ NodeMultiMap cppClasses_;
+ NodeMultiMap obsoleteClasses_;
+ NodeMultiMap classesWithObsoleteMembers_;
+ NodeMultiMap obsoleteQmlTypes_;
+ NodeMultiMap qmlTypesWithObsoleteMembers_;
+ NodeMultiMap namespaceIndex_;
NodeMultiMap nmm_;
- NodeMap serviceClasses_; // MWS: not needed, should be deleted
- NodeMap qmlBasicTypes_;
- NodeMap qmlTypes_;
+ NodeMultiMap qmlBasicTypes_;
+ NodeMultiMap qmlTypes_;
NodeMapMap newClassMaps_;
NodeMapMap newQmlTypeMaps_;
NodeMultiMapMap newSinceMaps_;
diff --git a/src/tools/qdoc/qdocindexfiles.cpp b/src/tools/qdoc/qdocindexfiles.cpp
index 026c64b587..b921d0947d 100644
--- a/src/tools/qdoc/qdocindexfiles.cpp
+++ b/src/tools/qdoc/qdocindexfiles.cpp
@@ -342,7 +342,7 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
else if ((element.nodeName() == "qmlmethod") ||
(element.nodeName() == "qmlsignal") ||
(element.nodeName() == "qmlsignalhandler")) {
- Node::Type t = Node::QmlMethod;
+ Node::NodeType t = Node::QmlMethod;
if (element.nodeName() == "qmlsignal")
t = Node::QmlSignal;
else if (element.nodeName() == "qmlsignalhandler")
@@ -354,7 +354,7 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
else if ((element.nodeName() == "jsmethod") ||
(element.nodeName() == "jssignal") ||
(element.nodeName() == "jssignalhandler")) {
- Node::Type t = Node::QmlMethod;
+ Node::NodeType t = Node::QmlMethod;
if (element.nodeName() == "jssignal")
t = Node::QmlSignal;
else if (element.nodeName() == "jssignalhandler")
@@ -405,7 +405,7 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
node = cn;
}
else if (element.nodeName() == "page") {
- Node::SubType subtype;
+ Node::DocSubtype subtype;
Node::PageType ptype = Node::NoPageType;
QString attr = element.attribute("subtype");
if (attr == "example") {
@@ -486,8 +486,8 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
QString t = element.attribute("virtual");
if (t == "non")
virt = FunctionNode::NonVirtual;
- else if (t == "impure")
- virt = FunctionNode::ImpureVirtual;
+ else if (t == "virtual")
+ virt = FunctionNode::NormalVirtual;
else if (t == "pure")
virt = FunctionNode::PureVirtual;
else
@@ -613,14 +613,12 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
node->setStatus(Node::Obsolete);
else if (status == "preliminary")
node->setStatus(Node::Preliminary);
- else if (status == "commendable")
- node->setStatus(Node::Commendable);
+ else if (status == "active")
+ node->setStatus(Node::Active);
else if (status == "internal")
node->setStatus(Node::Internal);
- else if (status == "main")
- node->setStatus(Node::Main);
else
- node->setStatus(Node::Commendable);
+ node->setStatus(Node::Active);
QString physicalModuleName = element.attribute("module");
if (!physicalModuleName.isEmpty())
@@ -728,7 +726,7 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
/*
Don't include index nodes in a new index file. Or DITA map nodes.
*/
- if (node->isIndexNode() || node->subType() == Node::DitaMap)
+ if (node->isIndexNode() || node->docSubtype() == Node::DitaMap)
return false;
QString nodeName;
@@ -887,13 +885,12 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
case Node::Preliminary:
status = "preliminary";
break;
- case Node::Commendable:
- status = "commendable";
+ case Node::Active:
+ status = "active";
break;
case Node::Internal:
status = "internal";
break;
- case Node::Main:
default:
status = "main";
break;
@@ -1022,7 +1019,7 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
*/
bool writeModuleName = false;
const DocumentNode* docNode = static_cast<const DocumentNode*>(node);
- switch (docNode->subType()) {
+ switch (docNode->docSubtype()) {
case Node::Example:
writer.writeAttribute("subtype", "example");
writeModuleName = true;
@@ -1142,8 +1139,8 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
case FunctionNode::NonVirtual:
writer.writeAttribute("virtual", "non");
break;
- case FunctionNode::ImpureVirtual:
- writer.writeAttribute("virtual", "impure");
+ case FunctionNode::NormalVirtual:
+ writer.writeAttribute("virtual", "virtual");
break;
case FunctionNode::PureVirtual:
writer.writeAttribute("virtual", "pure");
@@ -1319,7 +1316,7 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
bool external = false;
if (node->type() == Node::Document) {
const DocumentNode* docNode = static_cast<const DocumentNode*>(node);
- if (docNode->subType() == Node::ExternalPage)
+ if (docNode->docSubtype() == Node::ExternalPage)
external = true;
}
foreach (const Atom* target, node->doc().targets()) {
diff --git a/src/tools/qdoc/qdoctagfiles.cpp b/src/tools/qdoc/qdoctagfiles.cpp
index 778df33048..a0eb46f312 100644
--- a/src/tools/qdoc/qdoctagfiles.cpp
+++ b/src/tools/qdoc/qdoctagfiles.cpp
@@ -268,7 +268,7 @@ void QDocTagFiles::generateTagFileMembers(QXmlStreamWriter& writer, const InnerN
case FunctionNode::NonVirtual:
writer.writeAttribute("virtualness", "non");
break;
- case FunctionNode::ImpureVirtual:
+ case FunctionNode::NormalVirtual:
writer.writeAttribute("virtualness", "virtual");
break;
case FunctionNode::PureVirtual:
diff --git a/src/tools/qdoc/qmlcodemarker.cpp b/src/tools/qdoc/qmlcodemarker.cpp
index 86fc79be66..17067bebe6 100644
--- a/src/tools/qdoc/qmlcodemarker.cpp
+++ b/src/tools/qdoc/qmlcodemarker.cpp
@@ -96,7 +96,7 @@ bool QmlCodeMarker::recognizeLanguage(const QString &language)
/*!
Returns the type of atom used to represent QML code in the documentation.
*/
-Atom::Type QmlCodeMarker::atomType() const
+Atom::AtomType QmlCodeMarker::atomType() const
{
return Atom::Qml;
}
diff --git a/src/tools/qdoc/qmlcodemarker.h b/src/tools/qdoc/qmlcodemarker.h
index 805229e366..dabb0d8233 100644
--- a/src/tools/qdoc/qmlcodemarker.h
+++ b/src/tools/qdoc/qmlcodemarker.h
@@ -54,7 +54,7 @@ public:
virtual bool recognizeCode(const QString &code) Q_DECL_OVERRIDE;
virtual bool recognizeExtension(const QString &ext) Q_DECL_OVERRIDE;
virtual bool recognizeLanguage(const QString &language) Q_DECL_OVERRIDE;
- virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
+ virtual Atom::AtomType atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString &code,
const Node *relative,
const Location &location) Q_DECL_OVERRIDE;
diff --git a/src/tools/qdoc/text.cpp b/src/tools/qdoc/text.cpp
index b4eebe4c75..fa105a8344 100644
--- a/src/tools/qdoc/text.cpp
+++ b/src/tools/qdoc/text.cpp
@@ -72,7 +72,7 @@ Text& Text::operator=(const Text& text)
return *this;
}
-Text& Text::operator<<(Atom::Type atomType)
+Text& Text::operator<<(Atom::AtomType atomType)
{
return operator<<(Atom(atomType));
}
@@ -177,7 +177,7 @@ QString Text::toString() const
return str;
}
-Text Text::subText(Atom::Type left, Atom::Type right, const Atom* from, bool inclusive) const
+Text Text::subText(Atom::AtomType left, Atom::AtomType right, const Atom* from, bool inclusive) const
{
const Atom* begin = from ? from : firstAtom();
const Atom* end;
diff --git a/src/tools/qdoc/text.h b/src/tools/qdoc/text.h
index 7f4eeb3ec2..40ecf3eddc 100644
--- a/src/tools/qdoc/text.h
+++ b/src/tools/qdoc/text.h
@@ -54,7 +54,7 @@ public:
Atom *firstAtom() { return first; }
Atom *lastAtom() { return last; }
- Text& operator<<(Atom::Type atomType);
+ Text& operator<<(Atom::AtomType atomType);
Text& operator<<(const QString& string);
Text& operator<<(const Atom& atom);
Text& operator<<(const LinkAtom& atom);
@@ -66,7 +66,7 @@ public:
QString toString() const;
const Atom *firstAtom() const { return first; }
const Atom *lastAtom() const { return last; }
- Text subText(Atom::Type left, Atom::Type right, const Atom *from = 0, bool inclusive = false) const;
+ Text subText(Atom::AtomType left, Atom::AtomType right, const Atom *from = 0, bool inclusive = false) const;
void dump() const;
void clear();
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index d36003c665..41382be3f1 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -64,12 +64,17 @@ QT_BEGIN_NAMESPACE
Constructs a Tree. \a qdb is the pointer to the singleton
qdoc database that is constructing the tree. This might not
be necessary, and it might be removed later.
+
+ \a camelCaseModuleName is the project name for this tree,
+ which was obtained from the qdocconf file via the Config
+ singleton.
*/
-Tree::Tree(const QString& physicalModuleName, QDocDatabase* qdb)
+Tree::Tree(const QString& camelCaseModuleName, QDocDatabase* qdb)
: treeHasBeenAnalyzed_(false),
docsHaveBeenGenerated_(false),
linkCount_(0),
- physicalModuleName_(physicalModuleName),
+ camelCaseModuleName_(camelCaseModuleName),
+ physicalModuleName_(camelCaseModuleName.toLower()),
qdb_(qdb),
root_(0, QString()),
targetListMap_(0)
@@ -296,8 +301,8 @@ static const NodeTypeList& relatesTypes()
{
if (t.isEmpty()) {
t.reserve(3);
- t.append(NodeTypePair(Node::Class, Node::NoSubType));
- t.append(NodeTypePair(Node::Namespace, Node::NoSubType));
+ t.append(NodeTypePair(Node::Class, Node::NoSubtype));
+ t.append(NodeTypePair(Node::Namespace, Node::NoSubtype));
t.append(NodeTypePair(Node::Document, Node::HeaderFile));
}
return t;
@@ -416,7 +421,7 @@ void Tree::resolveInheritanceHelper(int pass, ClassNode* cn)
FunctionNode* from = findVirtualFunctionInBaseClasses(cn, func);
if (from != 0) {
if (func->virtualness() == FunctionNode::NonVirtual)
- func->setVirtualness(FunctionNode::ImpureVirtual);
+ func->setVirtualness(FunctionNode::NormalVirtual);
func->setReimplementedFrom(from);
}
}
@@ -581,7 +586,7 @@ NodeList Tree::allBaseClasses(const ClassNode* classNode) const
search at the tree root. \a subtype is not used unless
\a type is \c{Document}.
*/
-Node* Tree::findNodeByNameAndType(const QStringList& path, Node::Type type) const
+Node* Tree::findNodeByNameAndType(const QStringList& path, Node::NodeType type) const
{
return findNodeRecursive(path, 0, root(), type);
}
@@ -605,7 +610,7 @@ Node* Tree::findNodeByNameAndType(const QStringList& path, Node::Type type) cons
Node* Tree::findNodeRecursive(const QStringList& path,
int pathIndex,
const Node* start,
- Node::Type type) const
+ Node::NodeType type) const
{
if (!start || path.isEmpty())
return 0; // no place to start, or nothing to search for.
@@ -974,7 +979,7 @@ QString Tree::getRef(const QString& target, const Node* node) const
*/
void Tree::insertTarget(const QString& name,
const QString& title,
- TargetRec::Type type,
+ TargetRec::TargetType type,
Node* node,
int priority)
{
@@ -999,7 +1004,7 @@ void Tree::resolveTargets(InnerNode* root)
bool alreadyThere = false;
if (!nodes.empty()) {
for (int i=0; i< nodes.size(); ++i) {
- if (nodes[i]->subType() == Node::ExternalPage) {
+ if (nodes[i]->docSubtype() == Node::ExternalPage) {
if (node->name() == nodes[i]->name()) {
alreadyThere = true;
break;
@@ -1246,7 +1251,7 @@ CollectionNode* Tree::findCollection(const QString& name, Node::Genus genus)
CNMap::const_iterator i = m->find(name);
if (i != m->end())
return i.value();
- Node::Type t = Node::NoType;
+ Node::NodeType t = Node::NoType;
switch (genus) {
case Node::DOC:
t = Node::Group;
diff --git a/src/tools/qdoc/tree.h b/src/tools/qdoc/tree.h
index 67063ef86a..28832cc038 100644
--- a/src/tools/qdoc/tree.h
+++ b/src/tools/qdoc/tree.h
@@ -49,11 +49,11 @@ class QDocDatabase;
struct TargetRec
{
public:
- enum Type { Unknown, Target, Keyword, Contents, Class, Function, Page, Subtitle };
+ enum TargetType { Unknown, Target, Keyword, Contents, Class, Function, Page, Subtitle };
TargetRec(const QString& name,
const QString& title,
- TargetRec::Type type,
+ TargetRec::TargetType type,
Node* node,
int priority)
: node_(node), ref_(name), title_(title), priority_(priority), type_(type) { }
@@ -64,7 +64,7 @@ struct TargetRec
QString ref_;
QString title_;
int priority_;
- Type type_;
+ TargetType type_;
};
struct TargetLoc
@@ -95,7 +95,7 @@ class Tree
typedef QMap<PropertyNode::FunctionRole, QString> RoleMap;
typedef QMap<PropertyNode*, RoleMap> PropertyMap;
- Tree(const QString& module, QDocDatabase* qdb);
+ Tree(const QString& camelCaseModuleName, QDocDatabase* qdb);
~Tree();
Node* findNodeForInclude(const QStringList& path) const;
@@ -107,7 +107,7 @@ class Tree
Node* findNodeRecursive(const QStringList& path,
int pathIndex,
const Node* start,
- Node::Type type) const;
+ Node::NodeType type) const;
Node* findNodeRecursive(const QStringList& path,
int pathIndex,
Node* start,
@@ -134,12 +134,12 @@ class Tree
QmlTypeNode* findQmlTypeNode(const QStringList& path);
- Node* findNodeByNameAndType(const QStringList& path, Node::Type type) const;
+ Node* findNodeByNameAndType(const QStringList& path, Node::NodeType type) const;
InnerNode* findRelatesNode(const QStringList& path);
QString getRef(const QString& target, const Node* node) const;
void insertTarget(const QString& name,
const QString& title,
- TargetRec::Type type,
+ TargetRec::TargetType type,
Node* node,
int priority);
void resolveTargets(InnerNode* root);
@@ -212,6 +212,7 @@ class Tree
QStringList getTargetListKeys() { return targetListMap_->keys(); }
public:
+ const QString& camelCaseModuleName() const { return camelCaseModuleName_; }
const QString& physicalModuleName() const { return physicalModuleName_; }
const QString& indexFileName() const { return indexFileName_; }
long incrementLinkCount() { return --linkCount_; }
@@ -222,6 +223,7 @@ private:
bool treeHasBeenAnalyzed_;
bool docsHaveBeenGenerated_;
long linkCount_;
+ QString camelCaseModuleName_;
QString physicalModuleName_;
QString indexFileName_;
QDocDatabase* qdb_;
diff --git a/src/widgets/dialogs/qerrormessage.cpp b/src/widgets/dialogs/qerrormessage.cpp
index 4c3a5497d4..855bae3c9f 100644
--- a/src/widgets/dialogs/qerrormessage.cpp
+++ b/src/widgets/dialogs/qerrormessage.cpp
@@ -47,9 +47,10 @@
#include "qpixmap.h"
#include "qmetaobject.h"
#include "qthread.h"
-#include "qqueue.h"
#include "qset.h"
+#include <queue>
+
#include <stdio.h>
#include <stdlib.h>
@@ -68,16 +69,18 @@ public:
QCheckBox * again;
QTextEdit * errors;
QLabel * icon;
- QQueue<QPair<QString, QString> > pending;
+ std::queue<QPair<QString, QString> > pending;
QSet<QString> doNotShow;
QSet<QString> doNotShowType;
QString currentMessage;
QString currentType;
+ bool isMessageToBeShown(const QString &message, const QString &type) const;
bool nextPending();
void retranslateStrings();
};
+namespace {
class QErrorMessageTextView : public QTextEdit
{
public:
@@ -87,6 +90,7 @@ public:
virtual QSize minimumSizeHint() const Q_DECL_OVERRIDE;
virtual QSize sizeHint() const Q_DECL_OVERRIDE;
};
+} // unnamed namespace
QSize QErrorMessageTextView::minimumSizeHint() const
{
@@ -217,29 +221,32 @@ QErrorMessage::QErrorMessage(QWidget * parent)
: QDialog(*new QErrorMessagePrivate, parent)
{
Q_D(QErrorMessage);
- QGridLayout * grid = new QGridLayout(this);
+
d->icon = new QLabel(this);
-#ifndef QT_NO_MESSAGEBOX
- d->icon->setPixmap(QMessageBox::standardIcon(QMessageBox::Information));
- d->icon->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
-#endif
- grid->addWidget(d->icon, 0, 0, Qt::AlignTop);
d->errors = new QErrorMessageTextView(this);
- grid->addWidget(d->errors, 0, 1);
d->again = new QCheckBox(this);
- d->again->setChecked(true);
- grid->addWidget(d->again, 1, 1, Qt::AlignTop);
d->ok = new QPushButton(this);
+ QGridLayout * grid = new QGridLayout(this);
+
+ connect(d->ok, SIGNAL(clicked()), this, SLOT(accept()));
+ grid->addWidget(d->icon, 0, 0, Qt::AlignTop);
+ grid->addWidget(d->errors, 0, 1);
+ grid->addWidget(d->again, 1, 1, Qt::AlignTop);
+ grid->addWidget(d->ok, 2, 0, 1, 2, Qt::AlignCenter);
+ grid->setColumnStretch(1, 42);
+ grid->setRowStretch(0, 42);
+#ifndef QT_NO_MESSAGEBOX
+ d->icon->setPixmap(QMessageBox::standardIcon(QMessageBox::Information));
+ d->icon->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
+#endif
+ d->again->setChecked(true);
#if defined(Q_OS_WINCE)
d->ok->setFixedSize(0,0);
#endif
- connect(d->ok, SIGNAL(clicked()), this, SLOT(accept()));
d->ok->setFocus();
- grid->addWidget(d->ok, 2, 0, 1, 2, Qt::AlignCenter);
- grid->setColumnStretch(1, 42);
- grid->setRowStretch(0, 42);
+
d->retranslateStrings();
}
@@ -265,11 +272,13 @@ QErrorMessage::~QErrorMessage()
void QErrorMessage::done(int a)
{
Q_D(QErrorMessage);
- if (!d->again->isChecked() && !d->currentMessage.isEmpty() && d->currentType.isEmpty()) {
- d->doNotShow.insert(d->currentMessage);
- }
- if (!d->again->isChecked() && !d->currentType.isEmpty()) {
- d->doNotShowType.insert(d->currentType);
+ if (!d->again->isChecked()) {
+ if (d->currentType.isEmpty()) {
+ if (!d->currentMessage.isEmpty())
+ d->doNotShow.insert(d->currentMessage);
+ } else {
+ d->doNotShowType.insert(d->currentType);
+ }
}
d->currentMessage.clear();
d->currentType.clear();
@@ -301,20 +310,27 @@ QErrorMessage * QErrorMessage::qtHandler()
/*! \internal */
+bool QErrorMessagePrivate::isMessageToBeShown(const QString &message, const QString &type) const
+{
+ return !message.isEmpty()
+ && (type.isEmpty() ? !doNotShow.contains(message) : !doNotShowType.contains(type));
+}
+
bool QErrorMessagePrivate::nextPending()
{
- while (!pending.isEmpty()) {
- QPair<QString,QString> pendingMessage = pending.dequeue();
- QString message = pendingMessage.first;
- QString type = pendingMessage.second;
- if (!message.isEmpty() && ((type.isEmpty() && !doNotShow.contains(message)) || (!type.isEmpty() && !doNotShowType.contains(type)))) {
+ while (!pending.empty()) {
+ QPair<QString,QString> &pendingMessage = pending.front();
+ QString message = qMove(pendingMessage.first);
+ QString type = qMove(pendingMessage.second);
+ pending.pop();
+ if (isMessageToBeShown(message, type)) {
#ifndef QT_NO_TEXTHTMLPARSER
errors->setHtml(message);
#else
errors->setPlainText(message);
#endif
- currentMessage = message;
- currentType = type;
+ currentMessage = qMove(message);
+ currentType = qMove(type);
return true;
}
}
@@ -333,12 +349,7 @@ bool QErrorMessagePrivate::nextPending()
void QErrorMessage::showMessage(const QString &message)
{
- Q_D(QErrorMessage);
- if (d->doNotShow.contains(message))
- return;
- d->pending.enqueue(qMakePair(message,QString()));
- if (!isVisible() && d->nextPending())
- show();
+ showMessage(message, QString());
}
/*!
@@ -358,9 +369,9 @@ void QErrorMessage::showMessage(const QString &message)
void QErrorMessage::showMessage(const QString &message, const QString &type)
{
Q_D(QErrorMessage);
- if (d->doNotShow.contains(message) && d->doNotShowType.contains(type))
+ if (!d->isMessageToBeShown(message, type))
return;
- d->pending.push_back(qMakePair(message,type));
+ d->pending.push(qMakePair(message, type));
if (!isVisible() && d->nextPending())
show();
}
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
index 455111225e..6a1374e3ee 100644
--- a/src/widgets/dialogs/qfiledialog.cpp
+++ b/src/widgets/dialogs/qfiledialog.cpp
@@ -976,6 +976,16 @@ QDir QFileDialog::directory() const
\note The non-native QFileDialog supports only local files.
+ \note On Windows, it is possible to pass URLs representing
+ one of the \e {virtual folders}, such as "Computer" or "Network".
+ This is done by passing a QUrl using the scheme \c clsid followed
+ by the CLSID value with the curly braces removed. For example the URL
+ \c clsid:374DE290-123F-4565-9164-39C4925E467B denotes the download
+ location. For a complete list of possible values, see the MSDN documentation on
+ \l{https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457.aspx}{KNOWNFOLDERID}.
+ This feature was added in Qt 5.5.
+
+ \sa QUuid
\since 5.2
*/
void QFileDialog::setDirectoryUrl(const QUrl &directory)
diff --git a/src/widgets/doc/src/modelview.qdoc b/src/widgets/doc/src/modelview.qdoc
index e3a569e8ac..2cdf724ae8 100644
--- a/src/widgets/doc/src/modelview.qdoc
+++ b/src/widgets/doc/src/modelview.qdoc
@@ -576,7 +576,7 @@
problem.
Qt Labs provides software called
- \l{http://wiki.qt.io/?title=Model_Test}{ModelTest},
+ \l{http://wiki.qt.io/Model_Test}{ModelTest},
which checks models while your programming is running. Every time the model
is changed, ModelTest scans the model and reports errors with an assert.
This is especially important for tree models, since their hierarchical
diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp
index 533564c1dc..eaa5cb99e4 100644
--- a/src/widgets/graphicsview/qgraphicsitem.cpp
+++ b/src/widgets/graphicsview/qgraphicsitem.cpp
@@ -736,7 +736,6 @@
#include "qgraphicsproxywidget.h"
#include "qgraphicsscenebsptreeindex_p.h"
#include <QtCore/qbitarray.h>
-#include <QtCore/qdebug.h>
#include <QtCore/qpoint.h>
#include <QtCore/qstack.h>
#include <QtCore/qtimer.h>
@@ -761,6 +760,7 @@
#include <private/qwidget_p.h>
#include <private/qapplication_p.h>
#include <private/qgesturemanager_p.h>
+#include <private/qdebug_p.h>
QT_BEGIN_NAMESPACE
@@ -11283,8 +11283,24 @@ QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QP
#endif //QT_NO_GRAPHICSEFFECT
#ifndef QT_NO_DEBUG_STREAM
+static void formatGraphicsItemHelper(QDebug debug, const QGraphicsItem *item)
+{
+ if (const QGraphicsItem *parent = item->parentItem())
+ debug << ", parent=" << static_cast<const void *>(parent);
+ debug << ", pos=";
+ QtDebugUtils::formatQPoint(debug, item->pos());
+ if (const qreal z = item->zValue())
+ debug << ", z=" << item->zValue();
+ if (item->flags())
+ debug << ", flags=" << item->flags();
+}
+
+// FIXME: Qt 6: Make this QDebug operator<<(QDebug debug, const QGraphicsItem *item)
QDebug operator<<(QDebug debug, QGraphicsItem *item)
{
+ QDebugStateSaver saver(debug);
+ debug.nospace();
+
if (!item) {
debug << "QGraphicsItem(0)";
return debug;
@@ -11294,29 +11310,40 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item)
debug << o->metaObject()->className();
else
debug << "QGraphicsItem";
- debug << "(this =" << (void*)item
- << ", parent =" << (void*)item->parentItem()
- << ", pos =" << item->pos()
- << ", z =" << item->zValue() << ", flags = "
- << item->flags() << ")";
+ debug << '(' << static_cast<const void *>(item);
+ if (const QGraphicsProxyWidget *pw = qgraphicsitem_cast<const QGraphicsProxyWidget *>(item)) {
+ debug << ", widget=";
+ if (const QWidget *w = pw->widget()) {
+ debug << w->metaObject()->className() << '(' << static_cast<const void *>(w);
+ if (!w->objectName().isEmpty())
+ debug << ", name=" << w->objectName();
+ debug << ')';
+ } else {
+ debug << "QWidget(0)";
+ }
+ }
+ formatGraphicsItemHelper(debug, item);
+ debug << ')';
return debug;
}
+// FIXME: Qt 6: Make this QDebug operator<<(QDebug debug, const QGraphicsObject *item)
QDebug operator<<(QDebug debug, QGraphicsObject *item)
{
+ QDebugStateSaver saver(debug);
+ debug.nospace();
+
if (!item) {
debug << "QGraphicsObject(0)";
return debug;
}
- debug.nospace() << item->metaObject()->className() << '(' << (void*)item;
+ debug << item->metaObject()->className() << '(' << static_cast<const void *>(item);
if (!item->objectName().isEmpty())
- debug << ", name = " << item->objectName();
- debug.nospace() << ", parent = " << ((void*)item->parentItem())
- << ", pos = " << item->pos()
- << ", z = " << item->zValue() << ", flags = "
- << item->flags() << ')';
- return debug.space();
+ debug << ", name=" << item->objectName();
+ formatGraphicsItemHelper(debug, item);
+ debug << ')';
+ return debug;
}
QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemChange change)
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index 78c842f7e1..00f590ebc2 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -978,8 +978,7 @@ bool QApplication::compressEvent(QEvent *event, QObject *receiver, QPostEventLis
|| event->type() == QEvent::LayoutRequest
|| event->type() == QEvent::Resize
|| event->type() == QEvent::Move
- || event->type() == QEvent::LanguageChange
- || event->type() == QEvent::InputMethod)) {
+ || event->type() == QEvent::LanguageChange)) {
for (QPostEventList::const_iterator it = postedEvents->constBegin(); it != postedEvents->constEnd(); ++it) {
const QPostEvent &cur = *it;
if (cur.receiver != receiver || cur.event == 0 || cur.event->type() != event->type())
@@ -993,8 +992,6 @@ bool QApplication::compressEvent(QEvent *event, QObject *receiver, QPostEventLis
((QMoveEvent *)(cur.event))->p = ((QMoveEvent *)event)->p;
} else if (cur.event->type() == QEvent::LanguageChange) {
;
- } else if ( cur.event->type() == QEvent::InputMethod ) {
- *(QInputMethodEvent *)(cur.event) = *(QInputMethodEvent *)event;
} else {
continue;
}
diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp
index 822690942e..dcacea4777 100644
--- a/src/widgets/kernel/qlayout.cpp
+++ b/src/widgets/kernel/qlayout.cpp
@@ -1175,13 +1175,12 @@ QLayoutItem *QLayout::replaceWidget(QWidget *from, QWidget *to, Qt::FindChildOpt
if (index == -1)
return 0;
+ addChildWidget(to);
QLayoutItem *newitem = new QWidgetItem(to);
newitem->setAlignment(item->alignment());
QLayoutItem *r = d->replaceAt(index, newitem);
if (!r)
delete newitem;
- else
- addChildWidget(to);
return r;
}
diff --git a/src/widgets/kernel/qlayoutitem.cpp b/src/widgets/kernel/qlayoutitem.cpp
index 0e69bbc8ae..b21925e1d4 100644
--- a/src/widgets/kernel/qlayoutitem.cpp
+++ b/src/widgets/kernel/qlayoutitem.cpp
@@ -850,9 +850,10 @@ int QWidgetItemV2::heightForWidth(int width) const
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QSizePolicy &p)
{
+ QDebugStateSaver saver(dbg);
dbg.nospace() << "QSizePolicy(horizontalPolicy = " << p.horizontalPolicy()
<< ", verticalPolicy = " << p.verticalPolicy() << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp
index 8c60818819..9a0584bea9 100644
--- a/src/widgets/kernel/qopenglwidget.cpp
+++ b/src/widgets/kernel/qopenglwidget.cpp
@@ -46,6 +46,7 @@
#include <QtGui/private/qopenglextensions_p.h>
#include <QtGui/private/qfont_p.h>
#include <QtGui/private/qopenglpaintdevice_p.h>
+#include <QtGui/private/qopenglcontext_p.h>
#include <QtWidgets/private/qwidget_p.h>
QT_BEGIN_NAMESPACE
@@ -435,6 +436,23 @@ QT_BEGIN_NAMESPACE
each frame. To restore the preserved behavior, call setUpdateBehavior() with
\c PartialUpdate.
+ \section1 Alternatives
+
+ Adding a QOpenGLWidget into a window turns on OpenGL-based
+ compositing for the entire window. In some special cases this may
+ not be ideal, and the old QGLWidget-style behavior with a separate,
+ native child window is desired. Desktop applications that understand
+ the limitations of this approach (for example when it comes to
+ overlaps, transparency, scroll views and MDI areas), can use
+ QOpenGLWindow with QWidget::createWindowContainer(). This is a
+ modern alternative to QGLWidget and is faster than QOpenGLWidget due
+ to the lack of the additional composition step. It is strongly
+ recommended to limit the usage of this approach to cases where there
+ is no other choice. Note that this option is not suitable for most
+ embedded and mobile platforms, and it is known to have issues on
+ certain desktop platforms (e.g. OS X) too. The stable,
+ cross-platform solution is always QOpenGLWidget.
+
\e{OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other
countries.}
@@ -775,11 +793,18 @@ void QOpenGLWidgetPrivate::resolveSamples()
void QOpenGLWidgetPrivate::invokeUserPaint()
{
Q_Q(QOpenGLWidget);
- QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions();
+
+ QOpenGLContext *ctx = QOpenGLContext::currentContext();
+ Q_ASSERT(ctx && fbo);
+
+ QOpenGLFunctions *f = ctx->functions();
+ QOpenGLContextPrivate::get(ctx)->defaultFboRedirect = fbo->handle();
f->glViewport(0, 0, q->width() * q->devicePixelRatio(), q->height() * q->devicePixelRatio());
q->paintGL();
flushPending = true;
+
+ QOpenGLContextPrivate::get(ctx)->defaultFboRedirect = 0;
}
void QOpenGLWidgetPrivate::render()
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 2d76cee008..321cf0641c 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -6116,8 +6116,15 @@ QIcon QWidget::windowIcon() const
void QWidgetPrivate::setWindowIcon_helper()
{
+ Q_Q(QWidget);
QEvent e(QEvent::WindowIconChange);
- QApplication::sendEvent(q_func(), &e);
+
+ // Do not send the event if the widget is a top level.
+ // In that case, setWindowIcon_sys does it, and event propagation from
+ // QWidgetWindow to the top level QWidget ensures that the event reaches
+ // the top level anyhow
+ if (!q->windowHandle())
+ QApplication::sendEvent(q, &e);
for (int i = 0; i < children.size(); ++i) {
QWidget *w = qobject_cast<QWidget *>(children.at(i));
if (w && !w->isWindow())
@@ -8049,28 +8056,13 @@ void QWidget::setVisible(bool visible)
&& !parentWidget()->testAttribute(Qt::WA_WState_Created))
parentWidget()->window()->d_func()->createRecursively();
- //we have to at least create toplevels before applyX11SpecificCommandLineArguments
- //but not children of non-visible parents
+ //create toplevels but not children of non-visible parents
QWidget *pw = parentWidget();
if (!testAttribute(Qt::WA_WState_Created)
&& (isWindow() || pw->testAttribute(Qt::WA_WState_Created))) {
create();
}
- // Handling of the -qwindowgeometry, -geometry command line arguments
- if (windowType() == Qt::Window && windowHandle()) {
- static bool done = false;
- if (!done) {
- done = true;
- const QRect oldGeometry = frameGeometry();
- const QRect geometry = QGuiApplicationPrivate::applyWindowGeometrySpecification(oldGeometry, windowHandle());
- if (oldGeometry.size() != geometry.size())
- resize(geometry.size());
- if (geometry.topLeft() != oldGeometry.topLeft())
- move(geometry.topLeft());
- } // done
- }
-
bool wasResized = testAttribute(Qt::WA_Resized);
Qt::WindowStates initialWindowState = windowState();
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index 12f5d4b8b0..efe7d9415b 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -161,7 +161,7 @@ bool QWidgetWindow::event(QEvent *event)
if (m_widget->testAttribute(Qt::WA_DontShowOnScreen)) {
// \a event is uninteresting for QWidgetWindow, the event was probably
// generated before WA_DontShowOnScreen was set
- return m_widget->event(event);
+ return QCoreApplication::sendEvent(m_widget, event);
}
switch (event->type()) {
@@ -303,7 +303,7 @@ bool QWidgetWindow::event(QEvent *event)
break;
}
- if (m_widget->event(event) && event->type() != QEvent::Timer)
+ if (QCoreApplication::sendEvent(m_widget, event) && event->type() != QEvent::Timer)
return true;
return QWindow::event(event);
@@ -465,7 +465,8 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event)
}
if (qApp->activePopupWidget() != activePopupWidget
- && qt_replay_popup_mouse_event) {
+ && qt_replay_popup_mouse_event
+ && QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::ReplayMousePressOutsidePopup).toBool()) {
if (m_widget->windowType() != Qt::Popup)
qt_button_down = 0;
if (event->type() == QEvent::MouseButtonPress) {
diff --git a/src/widgets/styles/qandroidstyle.cpp b/src/widgets/styles/qandroidstyle.cpp
index f1d5eca90b..c73908d0a5 100644
--- a/src/widgets/styles/qandroidstyle.cpp
+++ b/src/widgets/styles/qandroidstyle.cpp
@@ -1811,6 +1811,10 @@ QRect QAndroidStyle::AndroidSpinnerControl::subControlRect(const QStyleOptionCom
{
if (sc == QStyle::SC_ComboBoxListBoxPopup)
return option->rect;
+ if (sc == QStyle::SC_ComboBoxArrow) {
+ const QRect editField = subControlRect(option, QStyle::SC_ComboBoxEditField, widget);
+ return QRect(editField.topRight(), QSize(option->rect.width() - editField.width(), option->rect.height()));
+ }
return AndroidControl::subControlRect(option, sc, widget);
}
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
index 1f7a87e23d..6d722c680b 100644
--- a/src/widgets/styles/qfusionstyle.cpp
+++ b/src/widgets/styles/qfusionstyle.cpp
@@ -209,7 +209,10 @@ static QPixmap colorizedImage(const QString &fileName, const QColor &color, int
unsigned char green = gray + qt_div_255(sourceGreen * colorDiff);
unsigned char blue = gray + qt_div_255(sourceBlue * colorDiff);
unsigned char alpha = qt_div_255(qAlpha(col) * qAlpha(source));
- data[x] = qRgba(red, green, blue, alpha);
+ data[x] = qRgba(std::min(alpha, red),
+ std::min(alpha, green),
+ std::min(alpha, blue),
+ alpha);
}
}
if (rotation != 0) {
@@ -3608,6 +3611,11 @@ int QFusionStyle::styleHint(StyleHint hint, const QStyleOption *option, const QW
case SH_Menu_SupportsSections:
return 1;
+#if defined(Q_OS_IOS)
+ case SH_ComboBox_UseNativePopup:
+ return 1;
+#endif
+
case SH_ToolBox_SelectedPageTitleBold:
case SH_ScrollView_FrameOnlyAroundContents:
case SH_Menu_AllowActiveAndDisabled:
diff --git a/src/widgets/styles/qproxystyle.cpp b/src/widgets/styles/qproxystyle.cpp
index 4b1c58dc50..61f836b23c 100644
--- a/src/widgets/styles/qproxystyle.cpp
+++ b/src/widgets/styles/qproxystyle.cpp
@@ -101,8 +101,8 @@ void QProxyStylePrivate::ensureBaseStyle() const
/*!
Constructs a QProxyStyle object for overriding behavior in the
- specified base \a style, or in the current \l{QApplication::style()}
- {application style} if base \a style is not specified.
+ specified \a style, or in the default native \l{QApplication::style()}
+ {style} if \a style is not specified.
Ownership of \a style is transferred to QProxyStyle.
*/
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index 4993457b32..86b5632d2e 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -2393,6 +2393,13 @@ static bool unstylable(const QWidget *w)
return true;
}
#endif
+
+#ifndef QT_NO_TABBAR
+ if (w->metaObject() == &QWidget::staticMetaObject
+ && qobject_cast<const QTabBar*>(w->parentWidget()))
+ return true; // The moving tab of a QTabBar
+#endif
+
return false;
}
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index ab4c7bfff6..76f923904d 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -53,6 +53,7 @@
#include <qmath.h>
#include <qmetaobject.h>
#include <qabstractproxymodel.h>
+#include <qstylehints.h>
#include <private/qguiapplication_p.h>
#include <private/qapplication_p.h>
#include <private/qcombobox_p.h>
@@ -93,12 +94,22 @@ QComboBoxPrivate::QComboBoxPrivate()
hoverControl(QStyle::SC_None),
autoCompletionCaseSensitivity(Qt::CaseInsensitive),
indexBeforeChange(-1)
+#ifdef Q_OS_MAC
+ , m_platformMenu(0)
+#endif
#ifndef QT_NO_COMPLETER
, completer(0)
#endif
{
}
+QComboBoxPrivate::~QComboBoxPrivate()
+{
+#ifdef Q_OS_MAC
+ cleanupNativePopup();
+#endif
+}
+
QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
@@ -215,6 +226,7 @@ void QComboBoxPrivate::_q_modelReset()
}
if (currentIndex.row() != indexBeforeChange)
_q_emitCurrentIndexChanged(currentIndex);
+ modelChanged();
q->update();
}
@@ -2078,8 +2090,11 @@ void QComboBoxPrivate::setCurrentIndex(const QModelIndex &mi)
currentIndex = QPersistentModelIndex(normalized);
if (lineEdit) {
const QString newText = itemText(normalized);
- if (lineEdit->text() != newText)
+ if (lineEdit->text() != newText) {
lineEdit->setText(newText);
+ if (lineEdit->completer())
+ lineEdit->completer()->setCompletionPrefix(newText);
+ }
updateLineEditGeometry();
}
if (indexChanged) {
@@ -2398,7 +2413,7 @@ QSize QComboBox::sizeHint() const
return d->recomputeSizeHint(d->sizeHint);
}
-#ifdef Q_OS_OSX
+#ifdef Q_OS_MAC
namespace {
struct IndexSetter {
@@ -2409,6 +2424,19 @@ struct IndexSetter {
};
}
+void QComboBoxPrivate::cleanupNativePopup()
+{
+ if (!m_platformMenu)
+ return;
+
+ int count = int(m_platformMenu->tag());
+ for (int i = 0; i < count; ++i)
+ m_platformMenu->menuItemAt(i)->deleteLater();
+
+ delete m_platformMenu;
+ m_platformMenu = 0;
+}
+
/*!
* \internal
*
@@ -2419,60 +2447,62 @@ bool QComboBoxPrivate::showNativePopup()
{
Q_Q(QComboBox);
- QPlatformTheme *theme = QGuiApplicationPrivate::instance()->platformTheme();
- if (QPlatformMenu *menu = theme->createPlatformMenu()) {
- int itemsCount = q->count();
-
- QList<QPlatformMenuItem *> items;
- items.reserve(itemsCount);
- QPlatformMenuItem *currentItem = 0;
- int currentIndex = q->currentIndex();
-
- for (int i = 0; i < itemsCount; ++i) {
- QPlatformMenuItem *item = theme->createPlatformMenuItem();
- QModelIndex rowIndex = model->index(i, modelColumn, root);
- QVariant textVariant = model->data(rowIndex, Qt::EditRole);
- item->setText(textVariant.toString());
- QVariant iconVariant = model->data(rowIndex, Qt::DecorationRole);
- if (iconVariant.canConvert<QIcon>())
- item->setIcon(iconVariant.value<QIcon>());
- item->setCheckable(true);
- item->setChecked(i == currentIndex);
- if (!currentItem || i == currentIndex)
- currentItem = item;
-
- IndexSetter setter = { i, q };
- QObject::connect(item, &QPlatformMenuItem::activated, setter);
-
- menu->insertMenuItem(item, 0);
- menu->syncMenuItem(item);
- }
+ cleanupNativePopup();
- QWindow *tlw = q->window()->windowHandle();
- menu->setFont(q->font());
- menu->setMinimumWidth(q->rect().width());
- QPoint offset = QPoint(0, 7);
- if (q->testAttribute(Qt::WA_MacSmallSize))
- offset = QPoint(-1, 7);
- else if (q->testAttribute(Qt::WA_MacMiniSize))
- offset = QPoint(-2, 6);
- menu->showPopup(tlw, QRect(tlw->mapFromGlobal(q->mapToGlobal(offset)), QSize()), currentItem);
- menu->deleteLater();
- Q_FOREACH (QPlatformMenuItem *item, items)
- item->deleteLater();
-
- // The Cocoa popup will swallow any mouse release event.
- // We need to fake one here to un-press the button.
- QMouseEvent mouseReleased(QEvent::MouseButtonRelease, q->pos(), Qt::LeftButton,
- Qt::MouseButtons(Qt::LeftButton), Qt::KeyboardModifiers());
- qApp->sendEvent(q, &mouseReleased);
+ QPlatformTheme *theme = QGuiApplicationPrivate::instance()->platformTheme();
+ m_platformMenu = theme->createPlatformMenu();
+ if (!m_platformMenu)
+ return false;
+
+ int itemsCount = q->count();
+ m_platformMenu->setTag(quintptr(itemsCount));
+
+ QPlatformMenuItem *currentItem = 0;
+ int currentIndex = q->currentIndex();
+
+ for (int i = 0; i < itemsCount; ++i) {
+ QPlatformMenuItem *item = theme->createPlatformMenuItem();
+ QModelIndex rowIndex = model->index(i, modelColumn, root);
+ QVariant textVariant = model->data(rowIndex, Qt::EditRole);
+ item->setText(textVariant.toString());
+ QVariant iconVariant = model->data(rowIndex, Qt::DecorationRole);
+ if (iconVariant.canConvert<QIcon>())
+ item->setIcon(iconVariant.value<QIcon>());
+ item->setCheckable(true);
+ item->setChecked(i == currentIndex);
+ if (!currentItem || i == currentIndex)
+ currentItem = item;
+
+ IndexSetter setter = { i, q };
+ QObject::connect(item, &QPlatformMenuItem::activated, setter);
+
+ m_platformMenu->insertMenuItem(item, 0);
+ m_platformMenu->syncMenuItem(item);
+ }
+
+ QWindow *tlw = q->window()->windowHandle();
+ m_platformMenu->setFont(q->font());
+ m_platformMenu->setMinimumWidth(q->rect().width());
+ QPoint offset = QPoint(0, 7);
+ if (q->testAttribute(Qt::WA_MacSmallSize))
+ offset = QPoint(-1, 7);
+ else if (q->testAttribute(Qt::WA_MacMiniSize))
+ offset = QPoint(-2, 6);
+
+ m_platformMenu->showPopup(tlw, QRect(tlw->mapFromGlobal(q->mapToGlobal(offset)), QSize()), currentItem);
- return true;
- }
+#ifdef Q_OS_OSX
+ // The Cocoa popup will swallow any mouse release event.
+ // We need to fake one here to un-press the button.
+ QMouseEvent mouseReleased(QEvent::MouseButtonRelease, q->pos(), Qt::LeftButton,
+ Qt::MouseButtons(Qt::LeftButton), Qt::KeyboardModifiers());
+ qApp->sendEvent(q, &mouseReleased);
+#endif
- return false;
+ return true;
}
-#endif // Q_OS_OSX
+
+#endif // Q_OS_MAC
/*!
Displays the list of items in the combobox. If the list is empty
@@ -2494,7 +2524,7 @@ void QComboBox::showPopup()
initStyleOption(&opt);
const bool usePopup = style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this);
-#ifdef Q_OS_OSX
+#ifdef Q_OS_MAC
if (usePopup
&& (!d->container
|| (view()->metaObject()->className() == QByteArray("QComboBoxListView")
@@ -2502,7 +2532,7 @@ void QComboBox::showPopup()
&& style->styleHint(QStyle::SH_ComboBox_UseNativePopup, &opt, this)
&& d->showNativePopup())
return;
-#endif // Q_OS_OSX
+#endif // Q_OS_MAC
#ifdef QT_KEYPAD_NAVIGATION
#ifndef QT_NO_COMPLETER
@@ -2989,39 +3019,51 @@ bool QComboBox::event(QEvent *event)
void QComboBox::mousePressEvent(QMouseEvent *e)
{
Q_D(QComboBox);
+ if (!QGuiApplication::styleHints()->setFocusOnTouchRelease())
+ d->showPopupFromMouseEvent(e);
+}
+
+/*!
+ \reimp
+*/
+void QComboBoxPrivate::showPopupFromMouseEvent(QMouseEvent *e)
+{
+ Q_Q(QComboBox);
QStyleOptionComboBox opt;
- initStyleOption(&opt);
- QStyle::SubControl sc = style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, e->pos(),
- this);
- if (e->button() == Qt::LeftButton && (sc == QStyle::SC_ComboBoxArrow || !isEditable())
- && !d->viewContainer()->isVisible()) {
+ q->initStyleOption(&opt);
+ QStyle::SubControl sc = q->style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, e->pos(), q);
+
+ if (e->button() == Qt::LeftButton
+ && sc != QStyle::SC_None
+ && (sc == QStyle::SC_ComboBoxArrow || !q->isEditable())
+ && !viewContainer()->isVisible()) {
if (sc == QStyle::SC_ComboBoxArrow)
- d->updateArrow(QStyle::State_Sunken);
+ updateArrow(QStyle::State_Sunken);
#ifdef QT_KEYPAD_NAVIGATION
//if the container already exists, then d->viewContainer() is safe to call
- if (d->container) {
+ if (container) {
#endif
// We've restricted the next couple of lines, because by not calling
// viewContainer(), we avoid creating the QComboBoxPrivateContainer.
- d->viewContainer()->blockMouseReleaseTimer.start(QApplication::doubleClickInterval());
- d->viewContainer()->initialClickPosition = mapToGlobal(e->pos());
+ viewContainer()->blockMouseReleaseTimer.start(QApplication::doubleClickInterval());
+ viewContainer()->initialClickPosition = q->mapToGlobal(e->pos());
#ifdef QT_KEYPAD_NAVIGATION
}
#endif
- showPopup();
+ q->showPopup();
// The code below ensures that regular mousepress and pick item still works
// If it was not called the viewContainer would ignore event since it didn't have
// a mousePressEvent first.
- if (d->viewContainer())
- d->viewContainer()->maybeIgnoreMouseButtonRelease = false;
+ if (viewContainer())
+ viewContainer()->maybeIgnoreMouseButtonRelease = false;
} else {
#ifdef QT_KEYPAD_NAVIGATION
- if (QApplication::keypadNavigationEnabled() && sc == QStyle::SC_ComboBoxEditField && d->lineEdit) {
- d->lineEdit->event(e); //so lineedit can move cursor, etc
+ if (QApplication::keypadNavigationEnabled() && sc == QStyle::SC_ComboBoxEditField && lineEdit) {
+ lineEdit->event(e); //so lineedit can move cursor, etc
return;
}
#endif
- QWidget::mousePressEvent(e);
+ e->ignore();
}
}
@@ -3031,8 +3073,9 @@ void QComboBox::mousePressEvent(QMouseEvent *e)
void QComboBox::mouseReleaseEvent(QMouseEvent *e)
{
Q_D(QComboBox);
- Q_UNUSED(e);
d->updateArrow(QStyle::State_None);
+ if (QGuiApplication::styleHints()->setFocusOnTouchRelease() && hasFocus())
+ d->showPopupFromMouseEvent(e);
}
/*!
diff --git a/src/widgets/widgets/qcombobox_p.h b/src/widgets/widgets/qcombobox_p.h
index 5ee7d72e8e..3fdfdcc22f 100644
--- a/src/widgets/widgets/qcombobox_p.h
+++ b/src/widgets/widgets/qcombobox_p.h
@@ -71,6 +71,7 @@
QT_BEGIN_NAMESPACE
class QAction;
+class QPlatformMenu;
class QComboBoxListView : public QListView
{
@@ -252,6 +253,7 @@ private:
QElapsedTimer popupTimer;
friend class QComboBox;
+ friend class QComboBoxPrivate;
};
class Q_AUTOTEST_EXPORT QComboMenuDelegate : public QAbstractItemDelegate
@@ -331,7 +333,7 @@ class Q_AUTOTEST_EXPORT QComboBoxPrivate : public QWidgetPrivate
Q_DECLARE_PUBLIC(QComboBox)
public:
QComboBoxPrivate();
- ~QComboBoxPrivate() {}
+ ~QComboBoxPrivate();
void init();
QComboBoxPrivateContainer* viewContainer();
void updateLineEditGeometry();
@@ -371,8 +373,10 @@ public:
void modelChanged();
void updateViewContainerPaletteAndOpacity();
void updateFocusPolicy();
+ void showPopupFromMouseEvent(QMouseEvent *e);
-#ifdef Q_OS_OSX
+#ifdef Q_OS_MAC
+ void cleanupNativePopup();
bool showNativePopup();
#endif
@@ -401,6 +405,9 @@ public:
QPersistentModelIndex root;
Qt::CaseSensitivity autoCompletionCaseSensitivity;
int indexBeforeChange;
+#ifdef Q_OS_MAC
+ QPlatformMenu *m_platformMenu;
+#endif
#ifndef QT_NO_COMPLETER
QPointer<QCompleter> completer;
#endif
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp
index 20dd4c976c..af0f2515fe 100644
--- a/src/widgets/widgets/qdockarealayout.cpp
+++ b/src/widgets/widgets/qdockarealayout.cpp
@@ -2244,6 +2244,22 @@ QRect QDockAreaLayoutInfo::tabContentRect() const
return result;
}
+
+int QDockAreaLayoutInfo::tabIndexToListIndex(int tabIndex) const
+{
+ Q_ASSERT(tabbed && tabBar);
+ quintptr data = qvariant_cast<quintptr>(tabBar->tabData(tabIndex));
+ for (int i = 0; i < item_list.count(); ++i) {
+ if (tabId(item_list.at(i)) == data)
+ return i;
+ }
+ return -1;
+}
+
+void QDockAreaLayoutInfo::moveTab(int from, int to)
+{
+ item_list.move(tabIndexToListIndex(from), tabIndexToListIndex(to));
+}
#endif // QT_NO_TABBAR
/******************************************************************************
@@ -2681,6 +2697,8 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
ver_struct_list[i].sizeHint
= qMax(ver_struct_list[i].sizeHint, ver_struct_list[i].minimumSize);
}
+ if (have_central && ver_struct_list[0].empty && ver_struct_list[2].empty)
+ ver_struct_list[1].maximumSize = QWIDGETSIZE_MAX;
}
if (_hor_struct_list != 0) {
@@ -2740,6 +2758,9 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
hor_struct_list[i].sizeHint
= qMax(hor_struct_list[i].sizeHint, hor_struct_list[i].minimumSize);
}
+ if (have_central && hor_struct_list[0].empty && hor_struct_list[2].empty)
+ hor_struct_list[1].maximumSize = QWIDGETSIZE_MAX;
+
}
}
diff --git a/src/widgets/widgets/qdockarealayout_p.h b/src/widgets/widgets/qdockarealayout_p.h
index 7c67466c7b..64fae7ebf6 100644
--- a/src/widgets/widgets/qdockarealayout_p.h
+++ b/src/widgets/widgets/qdockarealayout_p.h
@@ -208,6 +208,9 @@ public:
QSize tabBarSizeHint() const;
QSet<QTabBar*> usedTabBars() const;
+
+ int tabIndexToListIndex(int) const;
+ void moveTab(int from, int to);
#endif // QT_NO_TABBAR
};
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index 046666f571..3620aa04fc 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1280,7 +1280,9 @@ QTabBar *QMainWindowLayout::getTabBar()
result->setDrawBase(true);
result->setElideMode(Qt::ElideRight);
result->setDocumentMode(_documentMode);
+ result->setMovable(true);
connect(result, SIGNAL(currentChanged(int)), this, SLOT(tabChanged()));
+ connect(result, &QTabBar::tabMoved, this, &QMainWindowLayout::tabMoved);
}
usedTabBars.insert(result);
@@ -1316,6 +1318,16 @@ void QMainWindowLayout::tabChanged()
if (QWidget *w = centralWidget())
w->raise();
}
+
+void QMainWindowLayout::tabMoved(int from, int to)
+{
+ QTabBar *tb = qobject_cast<QTabBar*>(sender());
+ Q_ASSERT(tb);
+ QDockAreaLayoutInfo *info = layoutState.dockAreaLayout.info(tb);
+ Q_ASSERT(info);
+
+ info->moveTab(from, to);
+}
#endif // QT_NO_TABBAR
bool QMainWindowLayout::startSeparatorMove(const QPoint &pos)
diff --git a/src/widgets/widgets/qmainwindowlayout_p.h b/src/widgets/widgets/qmainwindowlayout_p.h
index 9f84ee95db..8ccb4d303f 100644
--- a/src/widgets/widgets/qmainwindowlayout_p.h
+++ b/src/widgets/widgets/qmainwindowlayout_p.h
@@ -286,6 +286,7 @@ private Q_SLOTS:
#ifndef QT_NO_DOCKWIDGET
#ifndef QT_NO_TABBAR
void tabChanged();
+ void tabMoved(int from, int to);
#endif
#endif
private:
diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp
index cab60f75ec..1808030639 100644
--- a/src/widgets/widgets/qmdisubwindow.cpp
+++ b/src/widgets/widgets/qmdisubwindow.cpp
@@ -3058,6 +3058,9 @@ void QMdiSubWindow::leaveEvent(QEvent * /*leaveEvent*/)
/*!
\reimp
+
+ \warning When maximizing or restoring a subwindow, the resulting call to this function
+ may have an invalid QResizeEvent::oldSize().
*/
void QMdiSubWindow::resizeEvent(QResizeEvent *resizeEvent)
{
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp
index 02c34d9ef6..b2973bd8b3 100644
--- a/src/widgets/widgets/qtabbar.cpp
+++ b/src/widgets/widgets/qtabbar.cpp
@@ -2031,10 +2031,14 @@ void QTabBar::keyPressEvent(QKeyEvent *event)
#ifndef QT_NO_WHEELEVENT
void QTabBar::wheelEvent(QWheelEvent *event)
{
+#ifndef Q_OS_MAC
Q_D(QTabBar);
int offset = event->delta() > 0 ? -1 : 1;
d->setCurrentNextEnabledIndex(offset);
QWidget::wheelEvent(event);
+#else
+ Q_UNUSED(event)
+#endif
}
#endif //QT_NO_WHEELEVENT
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp
index f259f7e3a4..759e41a5fa 100644
--- a/src/widgets/widgets/qwidgetlinecontrol.cpp
+++ b/src/widgets/widgets/qwidgetlinecontrol.cpp
@@ -936,7 +936,7 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields)
delete [] m_maskData;
m_maskData = 0;
m_maxLength = 32767;
- internalSetText(QString());
+ internalSetText(QString(), -1, false);
}
return;
}
@@ -1022,7 +1022,7 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields)
}
}
}
- internalSetText(m_text);
+ internalSetText(m_text, -1, false);
}
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 01952aac3c..a46b8af4ff 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -32,7 +32,7 @@ cross_compile: SUBDIRS -= tools
# Disable the QtDBus tests if we can't connect to the session bus
qtHaveModule(dbus) {
- !system("dbus-send --type=signal / local.AutotestCheck.Hello"): {
+ !system("dbus-send --session --type=signal / local.AutotestCheck.Hello"): {
warning("QtDBus is enabled but session bus is not available. Please check the installation.")
SUBDIRS -= dbus
}
diff --git a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp
index 30c1f2be59..f756588e80 100644
--- a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp
+++ b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp
@@ -58,6 +58,7 @@ private slots:
void readLine2();
void peekBug();
+ void readAllKeepPosition();
};
void tst_QIODevice::initTestCase()
@@ -584,5 +585,48 @@ void tst_QIODevice::peekBug()
}
+class SequentialReadBuffer : public QIODevice
+{
+public:
+ SequentialReadBuffer(const char *data) : QIODevice(), buf(data), offset(0) { }
+
+ bool isSequential() const Q_DECL_OVERRIDE { return true; }
+ const QByteArray &buffer() const { return buf; }
+
+protected:
+ qint64 readData(char *data, qint64 maxSize) Q_DECL_OVERRIDE
+ {
+ maxSize = qMin(maxSize, qint64(buf.size() - offset));
+ memcpy(data, buf.constData() + offset, maxSize);
+ offset += maxSize;
+ return maxSize;
+ }
+ qint64 writeData(const char * /* data */, qint64 /* maxSize */) Q_DECL_OVERRIDE
+ {
+ return -1;
+ }
+
+private:
+ QByteArray buf;
+ int offset;
+};
+
+// Test readAll() on position change for sequential device
+void tst_QIODevice::readAllKeepPosition()
+{
+ SequentialReadBuffer buffer("Hello world!");
+ buffer.open(QIODevice::ReadOnly);
+ char c;
+
+ QVERIFY(buffer.getChar(&c));
+ QCOMPARE(buffer.pos(), qint64(0));
+ buffer.ungetChar(c);
+ QCOMPARE(buffer.pos(), qint64(0));
+
+ QByteArray resultArray = buffer.readAll();
+ QCOMPARE(buffer.pos(), qint64(0));
+ QCOMPARE(resultArray, buffer.buffer());
+}
+
QTEST_MAIN(tst_QIODevice)
#include "tst_qiodevice.moc"
diff --git a/tests/auto/corelib/io/qipaddress/tst_qipaddress.cpp b/tests/auto/corelib/io/qipaddress/tst_qipaddress.cpp
index 6d0a65da92..3e16d3b871 100644
--- a/tests/auto/corelib/io/qipaddress/tst_qipaddress.cpp
+++ b/tests/auto/corelib/io/qipaddress/tst_qipaddress.cpp
@@ -209,6 +209,12 @@ void tst_QIpAddress::invalidParseIp4_data()
// bad hex
QTest::newRow("0x1g") << "0x1g";
+ // negative numbers
+ QTest::newRow("-1") << "-1";
+ QTest::newRow("-1.1") << "-1.1";
+ QTest::newRow("1.-1") << "1.-1";
+ QTest::newRow("1.1.1.-1") << "1.1.1.-1";
+
// letters
QTest::newRow("abc") << "abc";
QTest::newRow("1.2.3a.4") << "1.2.3a.4";
diff --git a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
index 2c86f0f19c..5796636b92 100644
--- a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
+++ b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
@@ -119,6 +119,14 @@ void tst_QSaveFile::transactionalWrite()
QFile reader(targetFile);
QVERIFY(reader.open(QIODevice::ReadOnly));
QCOMPARE(QString::fromLatin1(reader.readAll()), QString::fromLatin1("Hello"));
+
+ // check that permissions are the same as for QFile
+ const QString otherFile = dir.path() + QString::fromLatin1("/otherfile");
+ QFile::remove(otherFile);
+ QFile other(otherFile);
+ other.open(QIODevice::WriteOnly);
+ other.close();
+ QCOMPARE(QFile::permissions(targetFile), QFile::permissions(otherFile));
}
void tst_QSaveFile::saveTwice()
diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
index e969724117..a0edf29607 100644
--- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
+++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
@@ -460,6 +460,7 @@ void tst_QMimeDatabase::mimeTypeForData_data()
QTest::newRow("tnef data, needs smi >= 0.20") << QByteArray("\x78\x9f\x3e\x22") << "application/vnd.ms-tnef";
QTest::newRow("PDF magic") << QByteArray("%PDF-") << "application/pdf";
QTest::newRow("PHP, High-priority rule") << QByteArray("<?php") << "application/x-php";
+ QTest::newRow("diff\\t") << QByteArray("diff\t") << "text/x-patch";
QTest::newRow("unknown") << QByteArray("\001abc?}") << "application/octet-stream";
}
diff --git a/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro b/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro
index 7acddc22ce..e3d5bff5ff 100644
--- a/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro
+++ b/tests/auto/corelib/plugin/qpluginloader/machtest/machtest.pro
@@ -3,11 +3,14 @@ OTHER_FILES += \
ppcconverter.pl \
generate-bad.pl
+# Needs explicit load()ing due to aux template. Relies on QT being non-empty.
+load(qt)
+
i386.target = good.i386.dylib
-i386.commands = $(CXX) $(CXXFLAGS) -shared -arch i386 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
+i386.commands = $(CXX) $(CXXFLAGS) -shared -arch i386 -o $@ -I$(INCPATH) $<
i386.depends += $$PWD/../fakeplugin.cpp
x86_64.target = good.x86_64.dylib
-x86_64.commands = $(CXX) $(CXXFLAGS) -shared -arch x86_64 -o $@ -I$$[QT_INSTALL_HEADERS/get] $<
+x86_64.commands = $(CXX) $(CXXFLAGS) -shared -arch x86_64 -o $@ -I$(INCPATH) $<
x86_64.depends += $$PWD/../fakeplugin.cpp
# Current Mac OS X toolchains have no compiler for PPC anymore
diff --git a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp
index 8f37b265f6..f31aed6976 100644
--- a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp
+++ b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp
@@ -260,19 +260,33 @@ void tst_QUuid::generate()
void tst_QUuid::less()
{
- QVERIFY( !(uuidA < uuidB) );
+ QVERIFY( uuidB < uuidA);
+ QVERIFY( uuidB <= uuidA);
+ QVERIFY(!(uuidA < uuidB) );
+ QVERIFY(!(uuidA <= uuidB));
QUuid null_uuid;
QVERIFY(null_uuid < uuidA); // Null uuid is always less than a valid one
+ QVERIFY(null_uuid <= uuidA);
+
+ QVERIFY(null_uuid <= null_uuid);
+ QVERIFY(uuidA <= uuidA);
}
void tst_QUuid::more()
{
- QVERIFY( uuidA > uuidB );
+ QVERIFY( uuidA > uuidB);
+ QVERIFY( uuidA >= uuidB);
+ QVERIFY(!(uuidB > uuidA));
+ QVERIFY(!(uuidB >= uuidA));
QUuid null_uuid;
- QVERIFY( !(null_uuid > uuidA) ); // Null uuid is always less than a valid one
+ QVERIFY(!(null_uuid > uuidA)); // Null uuid is always less than a valid one
+ QVERIFY(!(null_uuid >= uuidA));
+
+ QVERIFY(null_uuid >= null_uuid);
+ QVERIFY(uuidA >= uuidA);
}
diff --git a/tests/auto/corelib/tools/qalgorithms/tst_qalgorithms.cpp b/tests/auto/corelib/tools/qalgorithms/tst_qalgorithms.cpp
index 9bce948140..99e5c4c85d 100644..100755
--- a/tests/auto/corelib/tools/qalgorithms/tst_qalgorithms.cpp
+++ b/tests/auto/corelib/tools/qalgorithms/tst_qalgorithms.cpp
@@ -31,6 +31,7 @@
**
****************************************************************************/
+#include "../../../../../src/corelib/tools/qalgorithms.h"
#include <QtTest/QtTest>
#include <iostream>
@@ -80,6 +81,24 @@ private slots:
void popCount32() { popCount_impl<quint32>(); }
void popCount64() { popCount_impl<quint64>(); }
+ void countTrailing08_data() { countTrailing_data_impl(sizeof(quint8 )); }
+ void countTrailing16_data() { countTrailing_data_impl(sizeof(quint16)); }
+ void countTrailing32_data() { countTrailing_data_impl(sizeof(quint32)); }
+ void countTrailing64_data() { countTrailing_data_impl(sizeof(quint64)); }
+ void countTrailing08() { countTrailing_impl<quint8 >(); }
+ void countTrailing16() { countTrailing_impl<quint16>(); }
+ void countTrailing32() { countTrailing_impl<quint32>(); }
+ void countTrailing64() { countTrailing_impl<quint64>(); }
+
+ void countLeading08_data() { countLeading_data_impl(sizeof(quint8 )); }
+ void countLeading16_data() { countLeading_data_impl(sizeof(quint16)); }
+ void countLeading32_data() { countLeading_data_impl(sizeof(quint32)); }
+ void countLeading64_data() { countLeading_data_impl(sizeof(quint64)); }
+ void countLeading08() { countLeading_impl<quint8 >(); }
+ void countLeading16() { countLeading_impl<quint16>(); }
+ void countLeading32() { countLeading_impl<quint32>(); }
+ void countLeading64() { countLeading_impl<quint64>(); }
+
private:
#if Q_TEST_PERFORMANCE
void performance();
@@ -87,6 +106,14 @@ private:
void popCount_data_impl(size_t sizeof_T_Int);
template <typename T_Int>
void popCount_impl();
+
+ void countTrailing_data_impl(size_t sizeof_T_Int);
+ template <typename T_Int>
+ void countTrailing_impl();
+
+ void countLeading_data_impl(size_t sizeof_T_Int);
+ template <typename T_Int>
+ void countLeading_impl();
};
class TestInt
@@ -1084,6 +1111,86 @@ void tst_QAlgorithms::popCount_impl()
QCOMPARE(qPopulationCount(value), expected);
}
+void tst_QAlgorithms::countTrailing_data_impl(size_t sizeof_T_Int)
+{
+ using namespace QTest;
+ addColumn<quint64>("input");
+ addColumn<uint>("expected");
+
+ int nibs = sizeof_T_Int*2;
+
+ newRow(("0x"+QByteArray::number(0,16).rightJustified(nibs,'0')).constData()) << Q_UINT64_C(0) << uint(sizeof_T_Int*8);
+ for (uint i = 0; i < sizeof_T_Int*8; ++i) {
+ const quint64 input = Q_UINT64_C(1) << i;
+ newRow(("0x"+QByteArray::number(input,16).rightJustified(nibs,'0')).constData()) << input << i;
+ }
+
+ quint64 type_mask;
+ if (sizeof_T_Int>=8)
+ type_mask = ~Q_UINT64_C(0);
+ else
+ type_mask = (Q_UINT64_C(1) << (sizeof_T_Int*8))-1;
+
+ // and some random ones:
+ for (uint i = 0; i < sizeof_T_Int*8; ++i) {
+ for (uint j = 0; j < sizeof_T_Int*3; ++j) { // 3 is arbitrary
+ const quint64 r = quint64(qrand()) << 32 | quint32(qrand());
+ const quint64 b = Q_UINT64_C(1) << i;
+ const quint64 mask = ((~(b-1)) ^ b) & type_mask;
+ const quint64 input = (r&mask) | b;
+ newRow(("0x"+QByteArray::number(input,16).rightJustified(nibs,'0')).constData()) << input << i;
+ }
+ }
+}
+
+template <typename T_Int>
+void tst_QAlgorithms::countTrailing_impl()
+{
+ QFETCH(quint64, input);
+ QFETCH(uint, expected);
+
+ const T_Int value = static_cast<T_Int>(input);
+
+ QCOMPARE(qCountTrailingZeroBits(value), expected);
+}
+
+void tst_QAlgorithms::countLeading_data_impl(size_t sizeof_T_Int)
+{
+ using namespace QTest;
+ addColumn<quint64>("input");
+ addColumn<uint>("expected");
+
+ int nibs = sizeof_T_Int*2;
+
+ newRow(("0x"+QByteArray::number(0,16).rightJustified(nibs,'0')).constData()) << Q_UINT64_C(0) << uint(sizeof_T_Int*8);
+ for (uint i = 0; i < sizeof_T_Int*8; ++i) {
+ const quint64 input = Q_UINT64_C(1) << i;
+ newRow(("0x"+QByteArray::number(input,16).rightJustified(nibs,'0')).constData()) << input << uint(sizeof_T_Int*8-i-1);
+ }
+
+ // and some random ones:
+ for (uint i = 0; i < sizeof_T_Int*8; ++i) {
+ for (uint j = 0; j < sizeof_T_Int*3; ++j) { // 3 is arbitrary
+ const quint64 r = quint64(qrand()) << 32 | quint32(qrand());
+ const quint64 b = Q_UINT64_C(1) << i;
+ const quint64 mask = b-1;
+ const quint64 input = (r&mask) | b;
+ newRow(("0x"+QByteArray::number(input,16).rightJustified(nibs,'0')).constData()) << input << uint(sizeof_T_Int*8-i-1);
+ }
+ }
+}
+
+template <typename T_Int>
+void tst_QAlgorithms::countLeading_impl()
+{
+ QFETCH(quint64, input);
+ QFETCH(uint, expected);
+
+ const T_Int value = static_cast<T_Int>(input);
+
+ QCOMPARE(qCountLeadingZeroBits(value), expected);
+}
+
QTEST_APPLESS_MAIN(tst_QAlgorithms)
#include "tst_qalgorithms.moc"
diff --git a/tests/auto/corelib/tools/qchar/data/NormalizationTest.txt b/tests/auto/corelib/tools/qchar/data/NormalizationTest.txt
index 2dc2bd7aa3..23c1e51d5f 100644
--- a/tests/auto/corelib/tools/qchar/data/NormalizationTest.txt
+++ b/tests/auto/corelib/tools/qchar/data/NormalizationTest.txt
@@ -1,5 +1,5 @@
-# NormalizationTest-6.3.0.txt
-# Date: 2012-12-20, 22:18:30 GMT [MD]
+# NormalizationTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:41 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2013 Unicode, Inc.
@@ -2402,9 +2402,15 @@
33FD;33FD;33FD;0033 0030 65E5;0033 0030 65E5; # (㏽; ㏽; ㏽; 30日; 30日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
33FE;33FE;33FE;0033 0031 65E5;0033 0031 65E5; # (㏾; ㏾; ㏾; 31日; 31日; ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
33FF;33FF;33FF;0067 0061 006C;0067 0061 006C; # (㏿; ㏿; ㏿; gal; gal; ) SQUARE GAL
+A69C;A69C;A69C;044A;044A; # (ꚜ; ꚜ; ꚜ; ъ; ъ; ) MODIFIER LETTER CYRILLIC HARD SIGN
+A69D;A69D;A69D;044C;044C; # (ꚝ; ꚝ; ꚝ; ь; ь; ) MODIFIER LETTER CYRILLIC SOFT SIGN
A770;A770;A770;A76F;A76F; # (ꝰ; ꝰ; ꝰ; ꝯ; ꝯ; ) MODIFIER LETTER US
A7F8;A7F8;A7F8;0126;0126; # (ꟸ; ꟸ; ꟸ; Ħ; Ħ; ) MODIFIER LETTER CAPITAL H WITH STROKE
A7F9;A7F9;A7F9;0153;0153; # (ꟹ; ꟹ; ꟹ; œ; œ; ) MODIFIER LETTER SMALL LIGATURE OE
+AB5C;AB5C;AB5C;A727;A727; # (ꭜ; ꭜ; ꭜ; ꜧ; ꜧ; ) MODIFIER LETTER SMALL HENG
+AB5D;AB5D;AB5D;AB37;AB37; # (ꭝ; ꭝ; ꭝ; ꬷ; ꬷ; ) MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E;AB5E;AB5E;026B;026B; # (ꭞ; ꭞ; ꭞ; ɫ; ɫ; ) MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F;AB5F;AB5F;AB52;AB52; # (ꭟ; ꭟ; ꭟ; ꭒ; ꭒ; ) MODIFIER LETTER SMALL U WITH LEFT HOOK
AC00;AC00;1100 1161;AC00;1100 1161; # (가; 가; 가; 가; 가; ) HANGUL SYLLABLE GA
AC01;AC01;1100 1161 11A8;AC01;1100 1161 11A8; # (각; 각; 각; 각; 각; ) HANGUL SYLLABLE GAG
AC02;AC02;1100 1161 11A9;AC02;1100 1161 11A9; # (갂; 갂; 갂; 갂; 갂; ) HANGUL SYLLABLE GAGG
@@ -15121,6 +15127,13 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
110AB;110AB;110A5 110BA;110AB;110A5 110BA; # (𑂫; 𑂫; 𑂥◌𑂺; 𑂫; 𑂥◌𑂺; ) KAITHI LETTER VA
1112E;1112E;11131 11127;1112E;11131 11127; # (◌𑄮; ◌𑄮; ◌𑄱◌𑄧; ◌𑄮; ◌𑄱◌𑄧; ) CHAKMA VOWEL SIGN O
1112F;1112F;11132 11127;1112F;11132 11127; # (◌𑄯; ◌𑄯; ◌𑄲◌𑄧; ◌𑄯; ◌𑄲◌𑄧; ) CHAKMA VOWEL SIGN AU
+1134B;1134B;11347 1133E;1134B;11347 1133E; # (𑍋; 𑍋; 𑍋; 𑍋; 𑍋; ) GRANTHA VOWEL SIGN OO
+1134C;1134C;11347 11357;1134C;11347 11357; # (𑍌; 𑍌; 𑍌; 𑍌; 𑍌; ) GRANTHA VOWEL SIGN AU
+114BB;114BB;114B9 114BA;114BB;114B9 114BA; # (𑒻; 𑒻; 𑒹◌𑒺; 𑒻; 𑒹◌𑒺; ) TIRHUTA VOWEL SIGN AI
+114BC;114BC;114B9 114B0;114BC;114B9 114B0; # (𑒼; 𑒼; 𑒼; 𑒼; 𑒼; ) TIRHUTA VOWEL SIGN O
+114BE;114BE;114B9 114BD;114BE;114B9 114BD; # (𑒾; 𑒾; 𑒾; 𑒾; 𑒾; ) TIRHUTA VOWEL SIGN AU
+115BA;115BA;115B8 115AF;115BA;115B8 115AF; # (𑖺; 𑖺; 𑖺; 𑖺; 𑖺; ) SIDDHAM VOWEL SIGN O
+115BB;115BB;115B9 115AF;115BB;115B9 115AF; # (𑖻; 𑖻; 𑖻; 𑖻; 𑖻; ) SIDDHAM VOWEL SIGN AU
1D15E;1D157 1D165;1D157 1D165;1D157 1D165;1D157 1D165; # (𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; ) MUSICAL SYMBOL HALF NOTE
1D15F;1D158 1D165;1D158 1D165;1D158 1D165;1D158 1D165; # (𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; ) MUSICAL SYMBOL QUARTER NOTE
1D160;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E; # (𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; ) MUSICAL SYMBOL EIGHTH NOTE
@@ -17564,6 +17577,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 08FD 0315 0300 05AE 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062;0061 05AE 08FD 0300 0315 0062; # (a◌ࣽ◌̕◌̀◌֮b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; a◌֮◌ࣽ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC RIGHT ARROWHEAD ABOVE WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 08FE 0062;00E0 05AE 08FE 0315 0062;0061 05AE 0300 08FE 0315 0062;00E0 05AE 08FE 0315 0062;0061 05AE 0300 08FE 0315 0062; # (a◌̕◌̀◌֮◌ࣾb; à◌֮◌ࣾ◌̕b; a◌֮◌̀◌ࣾ◌̕b; à◌֮◌ࣾ◌̕b; a◌֮◌̀◌ࣾ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC DAMMA WITH DOT, LATIN SMALL LETTER B
0061 08FE 0315 0300 05AE 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062; # (a◌ࣾ◌̕◌̀◌֮b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC DAMMA WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 08FF 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 0315 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 0315 0062; # (a◌̕◌̀◌֮◌ࣿb; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, ARABIC MARK SIDEWAYS NOON GHUNNA, LATIN SMALL LETTER B
+0061 08FF 0315 0300 05AE 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062; # (a◌ࣿ◌̕◌̀◌֮b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; ) LATIN SMALL LETTER A, ARABIC MARK SIDEWAYS NOON GHUNNA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 3099 093C 0334 093C 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062; # (a◌゙◌़◌̴◌़b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER B
0061 093C 3099 093C 0334 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062; # (a◌़◌゙◌़◌̴b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062; # (a◌ְ◌्◌゙◌्b; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN VIRAMA, LATIN SMALL LETTER B
@@ -17726,6 +17741,34 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1A7C 0315 0300 05AE 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062; # (a◌᩼◌̕◌̀◌֮b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; a◌֮◌᩼◌̀◌̕b; ) LATIN SMALL LETTER A, TAI THAM SIGN KHUEN-LUE KARAN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 059A 0316 302A 1A7F 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062; # (a◌֚◌̖◌〪◌᩿b; a◌〪◌̖◌᩿◌֚b; a◌〪◌̖◌᩿◌֚b; a◌〪◌̖◌᩿◌֚b; a◌〪◌̖◌᩿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, TAI THAM COMBINING CRYPTOGRAMMIC DOT, LATIN SMALL LETTER B
0061 1A7F 059A 0316 302A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062; # (a◌᩿◌֚◌̖◌〪b; a◌〪◌᩿◌̖◌֚b; a◌〪◌᩿◌̖◌֚b; a◌〪◌᩿◌̖◌֚b; a◌〪◌᩿◌̖◌֚b; ) LATIN SMALL LETTER A, TAI THAM COMBINING CRYPTOGRAMMIC DOT, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB0 0062;00E0 05AE 1AB0 0315 0062;0061 05AE 0300 1AB0 0315 0062;00E0 05AE 1AB0 0315 0062;0061 05AE 0300 1AB0 0315 0062; # (a◌̕◌̀◌֮◌᪰b; à◌֮◌᪰◌̕b; a◌֮◌̀◌᪰◌̕b; à◌֮◌᪰◌̕b; a◌֮◌̀◌᪰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLED CIRCUMFLEX ACCENT, LATIN SMALL LETTER B
+0061 1AB0 0315 0300 05AE 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062;0061 05AE 1AB0 0300 0315 0062; # (a◌᪰◌̕◌̀◌֮b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; a◌֮◌᪰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLED CIRCUMFLEX ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB1 0062;00E0 05AE 1AB1 0315 0062;0061 05AE 0300 1AB1 0315 0062;00E0 05AE 1AB1 0315 0062;0061 05AE 0300 1AB1 0315 0062; # (a◌̕◌̀◌֮◌᪱b; à◌֮◌᪱◌̕b; a◌֮◌̀◌᪱◌̕b; à◌֮◌᪱◌̕b; a◌֮◌̀◌᪱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DIAERESIS-RING, LATIN SMALL LETTER B
+0061 1AB1 0315 0300 05AE 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062;0061 05AE 1AB1 0300 0315 0062; # (a◌᪱◌̕◌̀◌֮b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; a◌֮◌᪱◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DIAERESIS-RING, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB2 0062;00E0 05AE 1AB2 0315 0062;0061 05AE 0300 1AB2 0315 0062;00E0 05AE 1AB2 0315 0062;0061 05AE 0300 1AB2 0315 0062; # (a◌̕◌̀◌֮◌᪲b; à◌֮◌᪲◌̕b; a◌֮◌̀◌᪲◌̕b; à◌֮◌᪲◌̕b; a◌֮◌̀◌᪲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING INFINITY, LATIN SMALL LETTER B
+0061 1AB2 0315 0300 05AE 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062;0061 05AE 1AB2 0300 0315 0062; # (a◌᪲◌̕◌̀◌֮b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; a◌֮◌᪲◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING INFINITY, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB3 0062;00E0 05AE 1AB3 0315 0062;0061 05AE 0300 1AB3 0315 0062;00E0 05AE 1AB3 0315 0062;0061 05AE 0300 1AB3 0315 0062; # (a◌̕◌̀◌֮◌᪳b; à◌֮◌᪳◌̕b; a◌֮◌̀◌᪳◌̕b; à◌֮◌᪳◌̕b; a◌֮◌̀◌᪳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOWNWARDS ARROW, LATIN SMALL LETTER B
+0061 1AB3 0315 0300 05AE 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062;0061 05AE 1AB3 0300 0315 0062; # (a◌᪳◌̕◌̀◌֮b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; a◌֮◌᪳◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOWNWARDS ARROW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1AB4 0062;00E0 05AE 1AB4 0315 0062;0061 05AE 0300 1AB4 0315 0062;00E0 05AE 1AB4 0315 0062;0061 05AE 0300 1AB4 0315 0062; # (a◌̕◌̀◌֮◌᪴b; à◌֮◌᪴◌̕b; a◌֮◌̀◌᪴◌̕b; à◌֮◌᪴◌̕b; a◌֮◌̀◌᪴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING TRIPLE DOT, LATIN SMALL LETTER B
+0061 1AB4 0315 0300 05AE 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062;0061 05AE 1AB4 0300 0315 0062; # (a◌᪴◌̕◌̀◌֮b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; a◌֮◌᪴◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING TRIPLE DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AB5 0062;0061 302A 0316 1AB5 059A 0062;0061 302A 0316 1AB5 059A 0062;0061 302A 0316 1AB5 059A 0062;0061 302A 0316 1AB5 059A 0062; # (a◌֚◌̖◌〪◌᪵b; a◌〪◌̖◌᪵◌֚b; a◌〪◌̖◌᪵◌֚b; a◌〪◌̖◌᪵◌֚b; a◌〪◌̖◌᪵◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING X-X BELOW, LATIN SMALL LETTER B
+0061 1AB5 059A 0316 302A 0062;0061 302A 1AB5 0316 059A 0062;0061 302A 1AB5 0316 059A 0062;0061 302A 1AB5 0316 059A 0062;0061 302A 1AB5 0316 059A 0062; # (a◌᪵◌֚◌̖◌〪b; a◌〪◌᪵◌̖◌֚b; a◌〪◌᪵◌̖◌֚b; a◌〪◌᪵◌̖◌֚b; a◌〪◌᪵◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING X-X BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AB6 0062;0061 302A 0316 1AB6 059A 0062;0061 302A 0316 1AB6 059A 0062;0061 302A 0316 1AB6 059A 0062;0061 302A 0316 1AB6 059A 0062; # (a◌֚◌̖◌〪◌᪶b; a◌〪◌̖◌᪶◌֚b; a◌〪◌̖◌᪶◌֚b; a◌〪◌̖◌᪶◌֚b; a◌〪◌̖◌᪶◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING WIGGLY LINE BELOW, LATIN SMALL LETTER B
+0061 1AB6 059A 0316 302A 0062;0061 302A 1AB6 0316 059A 0062;0061 302A 1AB6 0316 059A 0062;0061 302A 1AB6 0316 059A 0062;0061 302A 1AB6 0316 059A 0062; # (a◌᪶◌֚◌̖◌〪b; a◌〪◌᪶◌̖◌֚b; a◌〪◌᪶◌̖◌֚b; a◌〪◌᪶◌̖◌֚b; a◌〪◌᪶◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING WIGGLY LINE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AB7 0062;0061 302A 0316 1AB7 059A 0062;0061 302A 0316 1AB7 059A 0062;0061 302A 0316 1AB7 059A 0062;0061 302A 0316 1AB7 059A 0062; # (a◌֚◌̖◌〪◌᪷b; a◌〪◌̖◌᪷◌֚b; a◌〪◌̖◌᪷◌֚b; a◌〪◌̖◌᪷◌֚b; a◌〪◌̖◌᪷◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING OPEN MARK BELOW, LATIN SMALL LETTER B
+0061 1AB7 059A 0316 302A 0062;0061 302A 1AB7 0316 059A 0062;0061 302A 1AB7 0316 059A 0062;0061 302A 1AB7 0316 059A 0062;0061 302A 1AB7 0316 059A 0062; # (a◌᪷◌֚◌̖◌〪b; a◌〪◌᪷◌̖◌֚b; a◌〪◌᪷◌̖◌֚b; a◌〪◌᪷◌̖◌֚b; a◌〪◌᪷◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING OPEN MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AB8 0062;0061 302A 0316 1AB8 059A 0062;0061 302A 0316 1AB8 059A 0062;0061 302A 0316 1AB8 059A 0062;0061 302A 0316 1AB8 059A 0062; # (a◌֚◌̖◌〪◌᪸b; a◌〪◌̖◌᪸◌֚b; a◌〪◌̖◌᪸◌֚b; a◌〪◌̖◌᪸◌֚b; a◌〪◌̖◌᪸◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING DOUBLE OPEN MARK BELOW, LATIN SMALL LETTER B
+0061 1AB8 059A 0316 302A 0062;0061 302A 1AB8 0316 059A 0062;0061 302A 1AB8 0316 059A 0062;0061 302A 1AB8 0316 059A 0062;0061 302A 1AB8 0316 059A 0062; # (a◌᪸◌֚◌̖◌〪b; a◌〪◌᪸◌̖◌֚b; a◌〪◌᪸◌̖◌֚b; a◌〪◌᪸◌̖◌֚b; a◌〪◌᪸◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING DOUBLE OPEN MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AB9 0062;0061 302A 0316 1AB9 059A 0062;0061 302A 0316 1AB9 059A 0062;0061 302A 0316 1AB9 059A 0062;0061 302A 0316 1AB9 059A 0062; # (a◌֚◌̖◌〪◌᪹b; a◌〪◌̖◌᪹◌֚b; a◌〪◌̖◌᪹◌֚b; a◌〪◌̖◌᪹◌֚b; a◌〪◌̖◌᪹◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING LIGHT CENTRALIZATION STROKE BELOW, LATIN SMALL LETTER B
+0061 1AB9 059A 0316 302A 0062;0061 302A 1AB9 0316 059A 0062;0061 302A 1AB9 0316 059A 0062;0061 302A 1AB9 0316 059A 0062;0061 302A 1AB9 0316 059A 0062; # (a◌᪹◌֚◌̖◌〪b; a◌〪◌᪹◌̖◌֚b; a◌〪◌᪹◌̖◌֚b; a◌〪◌᪹◌̖◌֚b; a◌〪◌᪹◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGHT CENTRALIZATION STROKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1ABA 0062;0061 302A 0316 1ABA 059A 0062;0061 302A 0316 1ABA 059A 0062;0061 302A 0316 1ABA 059A 0062;0061 302A 0316 1ABA 059A 0062; # (a◌֚◌̖◌〪◌᪺b; a◌〪◌̖◌᪺◌֚b; a◌〪◌̖◌᪺◌֚b; a◌〪◌̖◌᪺◌֚b; a◌〪◌̖◌᪺◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING STRONG CENTRALIZATION STROKE BELOW, LATIN SMALL LETTER B
+0061 1ABA 059A 0316 302A 0062;0061 302A 1ABA 0316 059A 0062;0061 302A 1ABA 0316 059A 0062;0061 302A 1ABA 0316 059A 0062;0061 302A 1ABA 0316 059A 0062; # (a◌᪺◌֚◌̖◌〪b; a◌〪◌᪺◌̖◌֚b; a◌〪◌᪺◌̖◌֚b; a◌〪◌᪺◌̖◌֚b; a◌〪◌᪺◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING STRONG CENTRALIZATION STROKE BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ABB 0062;00E0 05AE 1ABB 0315 0062;0061 05AE 0300 1ABB 0315 0062;00E0 05AE 1ABB 0315 0062;0061 05AE 0300 1ABB 0315 0062; # (a◌̕◌̀◌֮◌᪻b; à◌֮◌᪻◌̕b; a◌֮◌̀◌᪻◌̕b; à◌֮◌᪻◌̕b; a◌֮◌̀◌᪻◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING PARENTHESES ABOVE, LATIN SMALL LETTER B
+0061 1ABB 0315 0300 05AE 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062;0061 05AE 1ABB 0300 0315 0062; # (a◌᪻◌̕◌̀◌֮b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; a◌֮◌᪻◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING PARENTHESES ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1ABC 0062;00E0 05AE 1ABC 0315 0062;0061 05AE 0300 1ABC 0315 0062;00E0 05AE 1ABC 0315 0062;0061 05AE 0300 1ABC 0315 0062; # (a◌̕◌̀◌֮◌᪼b; à◌֮◌᪼◌̕b; a◌֮◌̀◌᪼◌̕b; à◌֮◌᪼◌̕b; a◌֮◌̀◌᪼◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOUBLE PARENTHESES ABOVE, LATIN SMALL LETTER B
+0061 1ABC 0315 0300 05AE 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062; # (a◌᪼◌̕◌̀◌֮b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOUBLE PARENTHESES ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 302A 1ABD 0062;0061 302A 0316 1ABD 059A 0062;0061 302A 0316 1ABD 059A 0062;0061 302A 0316 1ABD 059A 0062;0061 302A 0316 1ABD 059A 0062; # (a◌֚◌̖◌〪◌᪽b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING PARENTHESES BELOW, LATIN SMALL LETTER B
+0061 1ABD 059A 0316 302A 0062;0061 302A 1ABD 0316 059A 0062;0061 302A 1ABD 0316 059A 0062;0061 302A 1ABD 0316 059A 0062;0061 302A 1ABD 0316 059A 0062; # (a◌᪽◌֚◌̖◌〪b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING PARENTHESES BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 3099 093C 0334 1B34 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062; # (a◌゙◌़◌̴◌᬴b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BALINESE SIGN REREKAN, LATIN SMALL LETTER B
0061 1B34 3099 093C 0334 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062; # (a◌᬴◌゙◌़◌̴b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; ) LATIN SMALL LETTER A, BALINESE SIGN REREKAN, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062; # (a◌ְ◌्◌゙᭄b; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BALINESE ADEG ADEG, LATIN SMALL LETTER B
@@ -17810,6 +17853,10 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1CED 059A 0316 302A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062; # (a◌᳭◌֚◌̖◌〪b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; ) LATIN SMALL LETTER A, VEDIC SIGN TIRYAK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 0315 0300 05AE 1CF4 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 0315 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 0315 0062; # (a◌̕◌̀◌֮◌᳴b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE CANDRA ABOVE, LATIN SMALL LETTER B
0061 1CF4 0315 0300 05AE 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062;0061 05AE 1CF4 0300 0315 0062; # (a◌᳴◌̕◌̀◌֮b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; a◌֮◌᳴◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE CANDRA ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CF8 0062;00E0 05AE 1CF8 0315 0062;0061 05AE 0300 1CF8 0315 0062;00E0 05AE 1CF8 0315 0062;0061 05AE 0300 1CF8 0315 0062; # (a◌̕◌̀◌֮◌᳸b; à◌֮◌᳸◌̕b; a◌֮◌̀◌᳸◌̕b; à◌֮◌᳸◌̕b; a◌֮◌̀◌᳸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE RING ABOVE, LATIN SMALL LETTER B
+0061 1CF8 0315 0300 05AE 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062;0061 05AE 1CF8 0300 0315 0062; # (a◌᳸◌̕◌̀◌֮b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; a◌֮◌᳸◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1CF9 0062;00E0 05AE 1CF9 0315 0062;0061 05AE 0300 1CF9 0315 0062;00E0 05AE 1CF9 0315 0062;0061 05AE 0300 1CF9 0315 0062; # (a◌̕◌̀◌֮◌᳹b; à◌֮◌᳹◌̕b; a◌֮◌̀◌᳹◌̕b; à◌֮◌᳹◌̕b; a◌֮◌̀◌᳹◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, VEDIC TONE DOUBLE RING ABOVE, LATIN SMALL LETTER B
+0061 1CF9 0315 0300 05AE 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062;0061 05AE 1CF9 0300 0315 0062; # (a◌᳹◌̕◌̀◌֮b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; a◌֮◌᳹◌̀◌̕b; ) LATIN SMALL LETTER A, VEDIC TONE DOUBLE RING ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1DC0 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062; # (a◌̕◌̀◌֮◌᷀b; à◌֮◌᷀◌̕b; a◌֮◌̀◌᷀◌̕b; à◌֮◌᷀◌̕b; a◌֮◌̀◌᷀◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOTTED GRAVE ACCENT, LATIN SMALL LETTER B
0061 1DC0 0315 0300 05AE 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062; # (a◌᷀◌̕◌̀◌֮b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; a◌֮◌᷀◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING DOTTED GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1DC1 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062; # (a◌̕◌̀◌֮◌᷁b; à◌֮◌᷁◌̕b; a◌֮◌̀◌᷁◌̕b; à◌֮◌᷁◌̕b; a◌֮◌̀◌᷁◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING DOTTED ACUTE ACCENT, LATIN SMALL LETTER B
@@ -17888,6 +17935,36 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1DE5 0315 0300 05AE 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062; # (a◌ᷥ◌̕◌̀◌֮b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; a◌֮◌ᷥ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER LONG S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1DE6 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062; # (a◌̕◌̀◌֮◌ᷦb; à◌֮◌ᷦ◌̕b; a◌֮◌̀◌ᷦ◌̕b; à◌֮◌ᷦ◌̕b; a◌֮◌̀◌ᷦ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER Z, LATIN SMALL LETTER B
0061 1DE6 0315 0300 05AE 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062; # (a◌ᷦ◌̕◌̀◌֮b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; a◌֮◌ᷦ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER Z, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE7 0062;00E0 05AE 1DE7 0315 0062;0061 05AE 0300 1DE7 0315 0062;00E0 05AE 1DE7 0315 0062;0061 05AE 0300 1DE7 0315 0062; # (a◌̕◌̀◌֮◌ᷧb; à◌֮◌ᷧ◌̕b; a◌֮◌̀◌ᷧ◌̕b; à◌֮◌ᷧ◌̕b; a◌֮◌̀◌ᷧ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER ALPHA, LATIN SMALL LETTER B
+0061 1DE7 0315 0300 05AE 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062;0061 05AE 1DE7 0300 0315 0062; # (a◌ᷧ◌̕◌̀◌֮b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; a◌֮◌ᷧ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER ALPHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE8 0062;00E0 05AE 1DE8 0315 0062;0061 05AE 0300 1DE8 0315 0062;00E0 05AE 1DE8 0315 0062;0061 05AE 0300 1DE8 0315 0062; # (a◌̕◌̀◌֮◌ᷨb; à◌֮◌ᷨ◌̕b; a◌֮◌̀◌ᷨ◌̕b; à◌֮◌ᷨ◌̕b; a◌֮◌̀◌ᷨ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER B, LATIN SMALL LETTER B
+0061 1DE8 0315 0300 05AE 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062;0061 05AE 1DE8 0300 0315 0062; # (a◌ᷨ◌̕◌̀◌֮b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; a◌֮◌ᷨ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DE9 0062;00E0 05AE 1DE9 0315 0062;0061 05AE 0300 1DE9 0315 0062;00E0 05AE 1DE9 0315 0062;0061 05AE 0300 1DE9 0315 0062; # (a◌̕◌̀◌֮◌ᷩb; à◌֮◌ᷩ◌̕b; a◌֮◌̀◌ᷩ◌̕b; à◌֮◌ᷩ◌̕b; a◌֮◌̀◌ᷩ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER BETA, LATIN SMALL LETTER B
+0061 1DE9 0315 0300 05AE 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062;0061 05AE 1DE9 0300 0315 0062; # (a◌ᷩ◌̕◌̀◌֮b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; a◌֮◌ᷩ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER BETA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEA 0062;00E0 05AE 1DEA 0315 0062;0061 05AE 0300 1DEA 0315 0062;00E0 05AE 1DEA 0315 0062;0061 05AE 0300 1DEA 0315 0062; # (a◌̕◌̀◌֮◌ᷪb; à◌֮◌ᷪ◌̕b; a◌֮◌̀◌ᷪ◌̕b; à◌֮◌ᷪ◌̕b; a◌֮◌̀◌ᷪ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER SCHWA, LATIN SMALL LETTER B
+0061 1DEA 0315 0300 05AE 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062;0061 05AE 1DEA 0300 0315 0062; # (a◌ᷪ◌̕◌̀◌֮b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; a◌֮◌ᷪ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER SCHWA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEB 0062;00E0 05AE 1DEB 0315 0062;0061 05AE 0300 1DEB 0315 0062;00E0 05AE 1DEB 0315 0062;0061 05AE 0300 1DEB 0315 0062; # (a◌̕◌̀◌֮◌ᷫb; à◌֮◌ᷫ◌̕b; a◌֮◌̀◌ᷫ◌̕b; à◌֮◌ᷫ◌̕b; a◌֮◌̀◌ᷫ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER F, LATIN SMALL LETTER B
+0061 1DEB 0315 0300 05AE 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062;0061 05AE 1DEB 0300 0315 0062; # (a◌ᷫ◌̕◌̀◌֮b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; a◌֮◌ᷫ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER F, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEC 0062;00E0 05AE 1DEC 0315 0062;0061 05AE 0300 1DEC 0315 0062;00E0 05AE 1DEC 0315 0062;0061 05AE 0300 1DEC 0315 0062; # (a◌̕◌̀◌֮◌ᷬb; à◌֮◌ᷬ◌̕b; a◌֮◌̀◌ᷬ◌̕b; à◌֮◌ᷬ◌̕b; a◌֮◌̀◌ᷬ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE, LATIN SMALL LETTER B
+0061 1DEC 0315 0300 05AE 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062;0061 05AE 1DEC 0300 0315 0062; # (a◌ᷬ◌̕◌̀◌֮b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; a◌֮◌ᷬ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DED 0062;00E0 05AE 1DED 0315 0062;0061 05AE 0300 1DED 0315 0062;00E0 05AE 1DED 0315 0062;0061 05AE 0300 1DED 0315 0062; # (a◌̕◌̀◌֮◌ᷭb; à◌֮◌ᷭ◌̕b; a◌֮◌̀◌ᷭ◌̕b; à◌֮◌ᷭ◌̕b; a◌֮◌̀◌ᷭ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE, LATIN SMALL LETTER B
+0061 1DED 0315 0300 05AE 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062;0061 05AE 1DED 0300 0315 0062; # (a◌ᷭ◌̕◌̀◌֮b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; a◌֮◌ᷭ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEE 0062;00E0 05AE 1DEE 0315 0062;0061 05AE 0300 1DEE 0315 0062;00E0 05AE 1DEE 0315 0062;0061 05AE 0300 1DEE 0315 0062; # (a◌̕◌̀◌֮◌ᷮb; à◌֮◌ᷮ◌̕b; a◌֮◌̀◌ᷮ◌̕b; à◌֮◌ᷮ◌̕b; a◌֮◌̀◌ᷮ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER P, LATIN SMALL LETTER B
+0061 1DEE 0315 0300 05AE 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062;0061 05AE 1DEE 0300 0315 0062; # (a◌ᷮ◌̕◌̀◌֮b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; a◌֮◌ᷮ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER P, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DEF 0062;00E0 05AE 1DEF 0315 0062;0061 05AE 0300 1DEF 0315 0062;00E0 05AE 1DEF 0315 0062;0061 05AE 0300 1DEF 0315 0062; # (a◌̕◌̀◌֮◌ᷯb; à◌֮◌ᷯ◌̕b; a◌֮◌̀◌ᷯ◌̕b; à◌֮◌ᷯ◌̕b; a◌֮◌̀◌ᷯ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER ESH, LATIN SMALL LETTER B
+0061 1DEF 0315 0300 05AE 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062;0061 05AE 1DEF 0300 0315 0062; # (a◌ᷯ◌̕◌̀◌֮b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; a◌֮◌ᷯ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER ESH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF0 0062;00E0 05AE 1DF0 0315 0062;0061 05AE 0300 1DF0 0315 0062;00E0 05AE 1DF0 0315 0062;0061 05AE 0300 1DF0 0315 0062; # (a◌̕◌̀◌֮◌ᷰb; à◌֮◌ᷰ◌̕b; a◌֮◌̀◌ᷰ◌̕b; à◌֮◌ᷰ◌̕b; a◌֮◌̀◌ᷰ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE, LATIN SMALL LETTER B
+0061 1DF0 0315 0300 05AE 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062;0061 05AE 1DF0 0300 0315 0062; # (a◌ᷰ◌̕◌̀◌֮b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; a◌֮◌ᷰ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF1 0062;00E0 05AE 1DF1 0315 0062;0061 05AE 0300 1DF1 0315 0062;00E0 05AE 1DF1 0315 0062;0061 05AE 0300 1DF1 0315 0062; # (a◌̕◌̀◌֮◌ᷱb; à◌֮◌ᷱ◌̕b; a◌֮◌̀◌ᷱ◌̕b; à◌֮◌ᷱ◌̕b; a◌֮◌̀◌ᷱ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER W, LATIN SMALL LETTER B
+0061 1DF1 0315 0300 05AE 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062;0061 05AE 1DF1 0300 0315 0062; # (a◌ᷱ◌̕◌̀◌֮b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; a◌֮◌ᷱ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER W, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF2 0062;00E0 05AE 1DF2 0315 0062;0061 05AE 0300 1DF2 0315 0062;00E0 05AE 1DF2 0315 0062;0061 05AE 0300 1DF2 0315 0062; # (a◌̕◌̀◌֮◌ᷲb; à◌֮◌ᷲ◌̕b; a◌֮◌̀◌ᷲ◌̕b; à◌֮◌ᷲ◌̕b; a◌֮◌̀◌ᷲ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF2 0315 0300 05AE 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062;0061 05AE 1DF2 0300 0315 0062; # (a◌ᷲ◌̕◌̀◌֮b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; a◌֮◌ᷲ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER A WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF3 0062;00E0 05AE 1DF3 0315 0062;0061 05AE 0300 1DF3 0315 0062;00E0 05AE 1DF3 0315 0062;0061 05AE 0300 1DF3 0315 0062; # (a◌̕◌̀◌֮◌ᷳb; à◌֮◌ᷳ◌̕b; a◌֮◌̀◌ᷳ◌̕b; à◌֮◌ᷳ◌̕b; a◌֮◌̀◌ᷳ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF3 0315 0300 05AE 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062;0061 05AE 1DF3 0300 0315 0062; # (a◌ᷳ◌̕◌̀◌֮b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; a◌֮◌ᷳ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER O WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF4 0062;00E0 05AE 1DF4 0315 0062;0061 05AE 0300 1DF4 0315 0062;00E0 05AE 1DF4 0315 0062;0061 05AE 0300 1DF4 0315 0062; # (a◌̕◌̀◌֮◌ᷴb; à◌֮◌ᷴ◌̕b; a◌֮◌̀◌ᷴ◌̕b; à◌֮◌ᷴ◌̕b; a◌֮◌̀◌ᷴ◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER B
+0061 1DF4 0315 0300 05AE 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062;0061 05AE 1DF4 0300 0315 0062; # (a◌ᷴ◌̕◌̀◌֮b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; a◌֮◌ᷴ◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING LATIN SMALL LETTER U WITH DIAERESIS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1DF5 0062;00E0 05AE 1DF5 0315 0062;0061 05AE 0300 1DF5 0315 0062;00E0 05AE 1DF5 0315 0062;0061 05AE 0300 1DF5 0315 0062; # (a◌̕◌̀◌֮◌᷵b; à◌֮◌᷵◌̕b; a◌֮◌̀◌᷵◌̕b; à◌֮◌᷵◌̕b; a◌֮◌̀◌᷵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING UP TACK ABOVE, LATIN SMALL LETTER B
+0061 1DF5 0315 0300 05AE 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062;0061 05AE 1DF5 0300 0315 0062; # (a◌᷵◌̕◌̀◌֮b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; a◌֮◌᷵◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING UP TACK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 035D 035C 0315 1DFC 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062; # (a◌͝◌͜◌̕◌᷼b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; a◌̕◌͜◌᷼◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING DOUBLE INVERTED BREVE BELOW, LATIN SMALL LETTER B
0061 1DFC 035D 035C 0315 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062; # (a◌᷼◌͝◌͜◌̕b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; a◌̕◌᷼◌͜◌͝b; ) LATIN SMALL LETTER A, COMBINING DOUBLE INVERTED BREVE BELOW, COMBINING DOUBLE BREVE, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, LATIN SMALL LETTER B
0061 059A 0316 302A 1DFD 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062; # (a◌֚◌̖◌〪◌᷽b; a◌〪◌̖◌᷽◌֚b; a◌〪◌̖◌᷽◌֚b; a◌〪◌̖◌᷽◌֚b; a◌〪◌̖◌᷽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING ALMOST EQUAL TO BELOW, LATIN SMALL LETTER B
@@ -18154,8 +18231,34 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 FE25 0315 0300 05AE 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062; # (a◌︥◌̕◌̀◌֮b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; a◌֮◌︥◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING MACRON RIGHT HALF, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE FE26 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062; # (a◌̕◌̀◌֮◌︦b; à◌֮◌︦◌̕b; a◌֮◌̀◌︦◌̕b; à◌֮◌︦◌̕b; a◌֮◌̀◌︦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CONJOINING MACRON, LATIN SMALL LETTER B
0061 FE26 0315 0300 05AE 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062; # (a◌︦◌̕◌̀◌֮b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; a◌֮◌︦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CONJOINING MACRON, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 302A FE27 0062;0061 302A 0316 FE27 059A 0062;0061 302A 0316 FE27 059A 0062;0061 302A 0316 FE27 059A 0062;0061 302A 0316 FE27 059A 0062; # (a◌֚◌̖◌〪◌︧b; a◌〪◌̖◌︧◌֚b; a◌〪◌̖◌︧◌֚b; a◌〪◌̖◌︧◌֚b; a◌〪◌̖◌︧◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING LIGATURE LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE27 059A 0316 302A 0062;0061 302A FE27 0316 059A 0062;0061 302A FE27 0316 059A 0062;0061 302A FE27 0316 059A 0062;0061 302A FE27 0316 059A 0062; # (a◌︧◌֚◌̖◌〪b; a◌〪◌︧◌̖◌֚b; a◌〪◌︧◌̖◌֚b; a◌〪◌︧◌̖◌֚b; a◌〪◌︧◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGATURE LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE28 0062;0061 302A 0316 FE28 059A 0062;0061 302A 0316 FE28 059A 0062;0061 302A 0316 FE28 059A 0062;0061 302A 0316 FE28 059A 0062; # (a◌֚◌̖◌〪◌︨b; a◌〪◌̖◌︨◌֚b; a◌〪◌̖◌︨◌֚b; a◌〪◌̖◌︨◌֚b; a◌〪◌̖◌︨◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING LIGATURE RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE28 059A 0316 302A 0062;0061 302A FE28 0316 059A 0062;0061 302A FE28 0316 059A 0062;0061 302A FE28 0316 059A 0062;0061 302A FE28 0316 059A 0062; # (a◌︨◌֚◌̖◌〪b; a◌〪◌︨◌̖◌֚b; a◌〪◌︨◌̖◌֚b; a◌〪◌︨◌̖◌֚b; a◌〪◌︨◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING LIGATURE RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE29 0062;0061 302A 0316 FE29 059A 0062;0061 302A 0316 FE29 059A 0062;0061 302A 0316 FE29 059A 0062;0061 302A 0316 FE29 059A 0062; # (a◌֚◌̖◌〪◌︩b; a◌〪◌̖◌︩◌֚b; a◌〪◌̖◌︩◌֚b; a◌〪◌̖◌︩◌֚b; a◌〪◌̖◌︩◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING TILDE LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE29 059A 0316 302A 0062;0061 302A FE29 0316 059A 0062;0061 302A FE29 0316 059A 0062;0061 302A FE29 0316 059A 0062;0061 302A FE29 0316 059A 0062; # (a◌︩◌֚◌̖◌〪b; a◌〪◌︩◌̖◌֚b; a◌〪◌︩◌̖◌֚b; a◌〪◌︩◌̖◌֚b; a◌〪◌︩◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TILDE LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE2A 0062;0061 302A 0316 FE2A 059A 0062;0061 302A 0316 FE2A 059A 0062;0061 302A 0316 FE2A 059A 0062;0061 302A 0316 FE2A 059A 0062; # (a◌֚◌̖◌〪◌︪b; a◌〪◌̖◌︪◌֚b; a◌〪◌̖◌︪◌֚b; a◌〪◌̖◌︪◌֚b; a◌〪◌̖◌︪◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING TILDE RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2A 059A 0316 302A 0062;0061 302A FE2A 0316 059A 0062;0061 302A FE2A 0316 059A 0062;0061 302A FE2A 0316 059A 0062;0061 302A FE2A 0316 059A 0062; # (a◌︪◌֚◌̖◌〪b; a◌〪◌︪◌̖◌֚b; a◌〪◌︪◌̖◌֚b; a◌〪◌︪◌̖◌֚b; a◌〪◌︪◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING TILDE RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE2B 0062;0061 302A 0316 FE2B 059A 0062;0061 302A 0316 FE2B 059A 0062;0061 302A 0316 FE2B 059A 0062;0061 302A 0316 FE2B 059A 0062; # (a◌֚◌̖◌〪◌︫b; a◌〪◌̖◌︫◌֚b; a◌〪◌̖◌︫◌֚b; a◌〪◌̖◌︫◌֚b; a◌〪◌̖◌︫◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING MACRON LEFT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2B 059A 0316 302A 0062;0061 302A FE2B 0316 059A 0062;0061 302A FE2B 0316 059A 0062;0061 302A FE2B 0316 059A 0062;0061 302A FE2B 0316 059A 0062; # (a◌︫◌֚◌̖◌〪b; a◌〪◌︫◌̖◌֚b; a◌〪◌︫◌̖◌֚b; a◌〪◌︫◌̖◌֚b; a◌〪◌︫◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MACRON LEFT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE2C 0062;0061 302A 0316 FE2C 059A 0062;0061 302A 0316 FE2C 059A 0062;0061 302A 0316 FE2C 059A 0062;0061 302A 0316 FE2C 059A 0062; # (a◌֚◌̖◌〪◌︬b; a◌〪◌̖◌︬◌֚b; a◌〪◌̖◌︬◌֚b; a◌〪◌̖◌︬◌֚b; a◌〪◌̖◌︬◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING MACRON RIGHT HALF BELOW, LATIN SMALL LETTER B
+0061 FE2C 059A 0316 302A 0062;0061 302A FE2C 0316 059A 0062;0061 302A FE2C 0316 059A 0062;0061 302A FE2C 0316 059A 0062;0061 302A FE2C 0316 059A 0062; # (a◌︬◌֚◌̖◌〪b; a◌〪◌︬◌̖◌֚b; a◌〪◌︬◌̖◌֚b; a◌〪◌︬◌̖◌֚b; a◌〪◌︬◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING MACRON RIGHT HALF BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A FE2D 0062;0061 302A 0316 FE2D 059A 0062;0061 302A 0316 FE2D 059A 0062;0061 302A 0316 FE2D 059A 0062;0061 302A 0316 FE2D 059A 0062; # (a◌֚◌̖◌〪◌︭b; a◌〪◌̖◌︭◌֚b; a◌〪◌̖◌︭◌֚b; a◌〪◌̖◌︭◌֚b; a◌〪◌̖◌︭◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COMBINING CONJOINING MACRON BELOW, LATIN SMALL LETTER B
+0061 FE2D 059A 0316 302A 0062;0061 302A FE2D 0316 059A 0062;0061 302A FE2D 0316 059A 0062;0061 302A FE2D 0316 059A 0062;0061 302A FE2D 0316 059A 0062; # (a◌︭◌֚◌̖◌〪b; a◌〪◌︭◌̖◌֚b; a◌〪◌︭◌̖◌֚b; a◌〪◌︭◌̖◌֚b; a◌〪◌︭◌̖◌֚b; ) LATIN SMALL LETTER A, COMBINING CONJOINING MACRON BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 059A 0316 302A 101FD 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062; # (a◌֚◌̖◌〪◌𐇽b; a◌〪◌̖◌𐇽◌֚b; a◌〪◌̖◌𐇽◌֚b; a◌〪◌̖◌𐇽◌֚b; a◌〪◌̖◌𐇽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE, LATIN SMALL LETTER B
0061 101FD 059A 0316 302A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062; # (a◌𐇽◌֚◌̖◌〪b; a◌〪◌𐇽◌̖◌֚b; a◌〪◌𐇽◌̖◌֚b; a◌〪◌𐇽◌̖◌֚b; a◌〪◌𐇽◌̖◌֚b; ) LATIN SMALL LETTER A, PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 102E0 0062;0061 302A 0316 102E0 059A 0062;0061 302A 0316 102E0 059A 0062;0061 302A 0316 102E0 059A 0062;0061 302A 0316 102E0 059A 0062; # (a◌֚◌̖◌〪◌𐋠b; a◌〪◌̖◌𐋠◌֚b; a◌〪◌̖◌𐋠◌֚b; a◌〪◌̖◌𐋠◌֚b; a◌〪◌̖◌𐋠◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, COPTIC EPACT THOUSANDS MARK, LATIN SMALL LETTER B
+0061 102E0 059A 0316 302A 0062;0061 302A 102E0 0316 059A 0062;0061 302A 102E0 0316 059A 0062;0061 302A 102E0 0316 059A 0062;0061 302A 102E0 0316 059A 0062; # (a◌𐋠◌֚◌̖◌〪b; a◌〪◌𐋠◌̖◌֚b; a◌〪◌𐋠◌̖◌֚b; a◌〪◌𐋠◌̖◌֚b; a◌〪◌𐋠◌̖◌֚b; ) LATIN SMALL LETTER A, COPTIC EPACT THOUSANDS MARK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10376 0062;00E0 05AE 10376 0315 0062;0061 05AE 0300 10376 0315 0062;00E0 05AE 10376 0315 0062;0061 05AE 0300 10376 0315 0062; # (a◌̕◌̀◌֮◌𐍶b; à◌֮◌𐍶◌̕b; a◌֮◌̀◌𐍶◌̕b; à◌֮◌𐍶◌̕b; a◌֮◌̀◌𐍶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER AN, LATIN SMALL LETTER B
+0061 10376 0315 0300 05AE 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062;0061 05AE 10376 0300 0315 0062; # (a◌𐍶◌̕◌̀◌֮b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; a◌֮◌𐍶◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER AN, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10377 0062;00E0 05AE 10377 0315 0062;0061 05AE 0300 10377 0315 0062;00E0 05AE 10377 0315 0062;0061 05AE 0300 10377 0315 0062; # (a◌̕◌̀◌֮◌𐍷b; à◌֮◌𐍷◌̕b; a◌֮◌̀◌𐍷◌̕b; à◌֮◌𐍷◌̕b; a◌֮◌̀◌𐍷◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER DOI, LATIN SMALL LETTER B
+0061 10377 0315 0300 05AE 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062;0061 05AE 10377 0300 0315 0062; # (a◌𐍷◌̕◌̀◌֮b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; a◌֮◌𐍷◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER DOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10378 0062;00E0 05AE 10378 0315 0062;0061 05AE 0300 10378 0315 0062;00E0 05AE 10378 0315 0062;0061 05AE 0300 10378 0315 0062; # (a◌̕◌̀◌֮◌𐍸b; à◌֮◌𐍸◌̕b; a◌֮◌̀◌𐍸◌̕b; à◌֮◌𐍸◌̕b; a◌֮◌̀◌𐍸◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER ZATA, LATIN SMALL LETTER B
+0061 10378 0315 0300 05AE 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062;0061 05AE 10378 0300 0315 0062; # (a◌𐍸◌̕◌̀◌֮b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; a◌֮◌𐍸◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER ZATA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10379 0062;00E0 05AE 10379 0315 0062;0061 05AE 0300 10379 0315 0062;00E0 05AE 10379 0315 0062;0061 05AE 0300 10379 0315 0062; # (a◌̕◌̀◌֮◌𐍹b; à◌֮◌𐍹◌̕b; a◌֮◌̀◌𐍹◌̕b; à◌֮◌𐍹◌̕b; a◌֮◌̀◌𐍹◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER NENOE, LATIN SMALL LETTER B
+0061 10379 0315 0300 05AE 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062;0061 05AE 10379 0300 0315 0062; # (a◌𐍹◌̕◌̀◌֮b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; a◌֮◌𐍹◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER NENOE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1037A 0062;00E0 05AE 1037A 0315 0062;0061 05AE 0300 1037A 0315 0062;00E0 05AE 1037A 0315 0062;0061 05AE 0300 1037A 0315 0062; # (a◌̕◌̀◌֮◌𐍺b; à◌֮◌𐍺◌̕b; a◌֮◌̀◌𐍺◌̕b; à◌֮◌𐍺◌̕b; a◌֮◌̀◌𐍺◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING OLD PERMIC LETTER SII, LATIN SMALL LETTER B
+0061 1037A 0315 0300 05AE 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062;0061 05AE 1037A 0300 0315 0062; # (a◌𐍺◌̕◌̀◌֮b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; a◌֮◌𐍺◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING OLD PERMIC LETTER SII, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 059A 0316 302A 10A0D 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062; # (a◌֚◌̖◌〪◌𐨍b; a◌〪◌̖◌𐨍◌֚b; a◌〪◌̖◌𐨍◌֚b; a◌〪◌̖◌𐨍◌֚b; a◌〪◌̖◌𐨍◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, KHAROSHTHI SIGN DOUBLE RING BELOW, LATIN SMALL LETTER B
0061 10A0D 059A 0316 302A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062; # (a◌𐨍◌֚◌̖◌〪b; a◌〪◌𐨍◌̖◌֚b; a◌〪◌𐨍◌̖◌֚b; a◌〪◌𐨍◌̖◌֚b; a◌〪◌𐨍◌̖◌֚b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN DOUBLE RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 0315 0300 05AE 10A0F 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062; # (a◌̕◌̀◌֮◌𐨏b; à◌֮◌𐨏◌̕b; a◌֮◌̀◌𐨏◌̕b; à◌֮◌𐨏◌̕b; a◌֮◌̀◌𐨏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, KHAROSHTHI SIGN VISARGA, LATIN SMALL LETTER B
@@ -18168,8 +18271,14 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 10A3A 059A 0316 302A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062; # (a◌𐨺◌֚◌̖◌〪b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 10A3F 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062; # (a◌ְ◌्◌゙◌𐨿b; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHAROSHTHI VIRAMA, LATIN SMALL LETTER B
0061 10A3F 05B0 094D 3099 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062; # (a◌𐨿◌ְ◌्◌゙b; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; a◌゙◌𐨿◌्◌ְb; ) LATIN SMALL LETTER A, KHAROSHTHI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10AE5 0062;00E0 05AE 10AE5 0315 0062;0061 05AE 0300 10AE5 0315 0062;00E0 05AE 10AE5 0315 0062;0061 05AE 0300 10AE5 0315 0062; # (a◌̕◌̀◌֮◌𐫥b; à◌֮◌𐫥◌̕b; a◌֮◌̀◌𐫥◌̕b; à◌֮◌𐫥◌̕b; a◌֮◌̀◌𐫥◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, MANICHAEAN ABBREVIATION MARK ABOVE, LATIN SMALL LETTER B
+0061 10AE5 0315 0300 05AE 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062;0061 05AE 10AE5 0300 0315 0062; # (a◌𐫥◌̕◌̀◌֮b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; a◌֮◌𐫥◌̀◌̕b; ) LATIN SMALL LETTER A, MANICHAEAN ABBREVIATION MARK ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 302A 10AE6 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062;0061 302A 0316 10AE6 059A 0062; # (a◌֚◌̖◌〪◌𐫦b; a◌〪◌̖◌𐫦◌֚b; a◌〪◌̖◌𐫦◌֚b; a◌〪◌̖◌𐫦◌֚b; a◌〪◌̖◌𐫦◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MANICHAEAN ABBREVIATION MARK BELOW, LATIN SMALL LETTER B
+0061 10AE6 059A 0316 302A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062;0061 302A 10AE6 0316 059A 0062; # (a◌𐫦◌֚◌̖◌〪b; a◌〪◌𐫦◌̖◌֚b; a◌〪◌𐫦◌̖◌֚b; a◌〪◌𐫦◌̖◌֚b; a◌〪◌𐫦◌̖◌֚b; ) LATIN SMALL LETTER A, MANICHAEAN ABBREVIATION MARK BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 11046 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062; # (a◌ְ◌्◌゙◌𑁆b; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; a◌゙◌्◌𑁆◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BRAHMI VIRAMA, LATIN SMALL LETTER B
0061 11046 05B0 094D 3099 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062; # (a◌𑁆◌ְ◌्◌゙b; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; a◌゙◌𑁆◌्◌ְb; ) LATIN SMALL LETTER A, BRAHMI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1107F 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062;0061 3099 094D 1107F 05B0 0062; # (a◌ְ◌्◌゙◌𑁿b; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; a◌゙◌्◌𑁿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, BRAHMI NUMBER JOINER, LATIN SMALL LETTER B
+0061 1107F 05B0 094D 3099 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062; # (a◌𑁿◌ְ◌्◌゙b; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; ) LATIN SMALL LETTER A, BRAHMI NUMBER JOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 110B9 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062; # (a◌ְ◌्◌゙◌𑂹b; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAITHI SIGN VIRAMA, LATIN SMALL LETTER B
0061 110B9 05B0 094D 3099 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062; # (a◌𑂹◌ְ◌्◌゙b; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; ) LATIN SMALL LETTER A, KAITHI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 3099 093C 0334 110BA 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062; # (a◌゙◌़◌̴◌𑂺b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, KAITHI SIGN NUKTA, LATIN SMALL LETTER B
@@ -18184,12 +18293,86 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 11133 05B0 094D 3099 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062; # (a◌𑄳◌ְ◌्◌゙b; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; ) LATIN SMALL LETTER A, CHAKMA VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 11134 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062; # (a◌ְ◌्◌゙◌𑄴b; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, CHAKMA MAAYYAA, LATIN SMALL LETTER B
0061 11134 05B0 094D 3099 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062; # (a◌𑄴◌ְ◌्◌゙b; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; ) LATIN SMALL LETTER A, CHAKMA MAAYYAA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 0334 11173 0062;0061 0334 093C 11173 3099 0062;0061 0334 093C 11173 3099 0062;0061 0334 093C 11173 3099 0062;0061 0334 093C 11173 3099 0062; # (a◌゙◌़◌̴◌𑅳b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, MAHAJANI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11173 3099 093C 0334 0062;0061 0334 11173 093C 3099 0062;0061 0334 11173 093C 3099 0062;0061 0334 11173 093C 3099 0062;0061 0334 11173 093C 3099 0062; # (a◌𑅳◌゙◌़◌̴b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; ) LATIN SMALL LETTER A, MAHAJANI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
0061 05B0 094D 3099 111C0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062; # (a◌ְ◌्◌゙𑇀b; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SHARADA SIGN VIRAMA, LATIN SMALL LETTER B
0061 111C0 05B0 094D 3099 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062; # (a𑇀◌ְ◌्◌゙b; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; ) LATIN SMALL LETTER A, SHARADA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11235 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062; # (a◌ְ◌्◌゙𑈵b; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHOJKI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 11235 05B0 094D 3099 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062; # (a𑈵◌ְ◌्◌゙b; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; ) LATIN SMALL LETTER A, KHOJKI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 0334 11236 0062;0061 0334 093C 11236 3099 0062;0061 0334 093C 11236 3099 0062;0061 0334 093C 11236 3099 0062;0061 0334 093C 11236 3099 0062; # (a◌゙◌़◌̴◌𑈶b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, KHOJKI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11236 3099 093C 0334 0062;0061 0334 11236 093C 3099 0062;0061 0334 11236 093C 3099 0062;0061 0334 11236 093C 3099 0062;0061 0334 11236 093C 3099 0062; # (a◌𑈶◌゙◌़◌̴b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; ) LATIN SMALL LETTER A, KHOJKI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 0334 112E9 0062;0061 0334 093C 112E9 3099 0062;0061 0334 093C 112E9 3099 0062;0061 0334 093C 112E9 3099 0062;0061 0334 093C 112E9 3099 0062; # (a◌゙◌़◌̴◌𑋩b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, KHUDAWADI SIGN NUKTA, LATIN SMALL LETTER B
+0061 112E9 3099 093C 0334 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062; # (a◌𑋩◌゙◌़◌̴b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; ) LATIN SMALL LETTER A, KHUDAWADI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05B0 094D 3099 112EA 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062; # (a◌ְ◌्◌゙◌𑋪b; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KHUDAWADI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 112EA 05B0 094D 3099 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062; # (a◌𑋪◌ְ◌्◌゙b; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; ) LATIN SMALL LETTER A, KHUDAWADI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 0334 1133C 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062; # (a◌゙◌़◌̴◌𑌼b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, GRANTHA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1133C 3099 093C 0334 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062; # (a◌𑌼◌゙◌़◌̴b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; ) LATIN SMALL LETTER A, GRANTHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1134D 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062; # (a◌ְ◌्◌゙𑍍b; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GRANTHA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1134D 05B0 094D 3099 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062; # (a𑍍◌ְ◌्◌゙b; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; ) LATIN SMALL LETTER A, GRANTHA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11366 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 0315 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 0315 0062; # (a◌̕◌̀◌֮◌𑍦b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT ZERO, LATIN SMALL LETTER B
+0061 11366 0315 0300 05AE 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062;0061 05AE 11366 0300 0315 0062; # (a◌𑍦◌̕◌̀◌֮b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; a◌֮◌𑍦◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT ZERO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11367 0062;00E0 05AE 11367 0315 0062;0061 05AE 0300 11367 0315 0062;00E0 05AE 11367 0315 0062;0061 05AE 0300 11367 0315 0062; # (a◌̕◌̀◌֮◌𑍧b; à◌֮◌𑍧◌̕b; a◌֮◌̀◌𑍧◌̕b; à◌֮◌𑍧◌̕b; a◌֮◌̀◌𑍧◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT ONE, LATIN SMALL LETTER B
+0061 11367 0315 0300 05AE 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062;0061 05AE 11367 0300 0315 0062; # (a◌𑍧◌̕◌̀◌֮b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; a◌֮◌𑍧◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT ONE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11368 0062;00E0 05AE 11368 0315 0062;0061 05AE 0300 11368 0315 0062;00E0 05AE 11368 0315 0062;0061 05AE 0300 11368 0315 0062; # (a◌̕◌̀◌֮◌𑍨b; à◌֮◌𑍨◌̕b; a◌֮◌̀◌𑍨◌̕b; à◌֮◌𑍨◌̕b; a◌֮◌̀◌𑍨◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT TWO, LATIN SMALL LETTER B
+0061 11368 0315 0300 05AE 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062;0061 05AE 11368 0300 0315 0062; # (a◌𑍨◌̕◌̀◌֮b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; a◌֮◌𑍨◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT TWO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11369 0062;00E0 05AE 11369 0315 0062;0061 05AE 0300 11369 0315 0062;00E0 05AE 11369 0315 0062;0061 05AE 0300 11369 0315 0062; # (a◌̕◌̀◌֮◌𑍩b; à◌֮◌𑍩◌̕b; a◌֮◌̀◌𑍩◌̕b; à◌֮◌𑍩◌̕b; a◌֮◌̀◌𑍩◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT THREE, LATIN SMALL LETTER B
+0061 11369 0315 0300 05AE 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062;0061 05AE 11369 0300 0315 0062; # (a◌𑍩◌̕◌̀◌֮b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; a◌֮◌𑍩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT THREE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136A 0062;00E0 05AE 1136A 0315 0062;0061 05AE 0300 1136A 0315 0062;00E0 05AE 1136A 0315 0062;0061 05AE 0300 1136A 0315 0062; # (a◌̕◌̀◌֮◌𑍪b; à◌֮◌𑍪◌̕b; a◌֮◌̀◌𑍪◌̕b; à◌֮◌𑍪◌̕b; a◌֮◌̀◌𑍪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT FOUR, LATIN SMALL LETTER B
+0061 1136A 0315 0300 05AE 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062;0061 05AE 1136A 0300 0315 0062; # (a◌𑍪◌̕◌̀◌֮b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; a◌֮◌𑍪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT FOUR, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136B 0062;00E0 05AE 1136B 0315 0062;0061 05AE 0300 1136B 0315 0062;00E0 05AE 1136B 0315 0062;0061 05AE 0300 1136B 0315 0062; # (a◌̕◌̀◌֮◌𑍫b; à◌֮◌𑍫◌̕b; a◌֮◌̀◌𑍫◌̕b; à◌֮◌𑍫◌̕b; a◌֮◌̀◌𑍫◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT FIVE, LATIN SMALL LETTER B
+0061 1136B 0315 0300 05AE 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062;0061 05AE 1136B 0300 0315 0062; # (a◌𑍫◌̕◌̀◌֮b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; a◌֮◌𑍫◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT FIVE, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1136C 0062;00E0 05AE 1136C 0315 0062;0061 05AE 0300 1136C 0315 0062;00E0 05AE 1136C 0315 0062;0061 05AE 0300 1136C 0315 0062; # (a◌̕◌̀◌֮◌𑍬b; à◌֮◌𑍬◌̕b; a◌֮◌̀◌𑍬◌̕b; à◌֮◌𑍬◌̕b; a◌֮◌̀◌𑍬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA DIGIT SIX, LATIN SMALL LETTER B
+0061 1136C 0315 0300 05AE 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062;0061 05AE 1136C 0300 0315 0062; # (a◌𑍬◌̕◌̀◌֮b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; a◌֮◌𑍬◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA DIGIT SIX, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11370 0062;00E0 05AE 11370 0315 0062;0061 05AE 0300 11370 0315 0062;00E0 05AE 11370 0315 0062;0061 05AE 0300 11370 0315 0062; # (a◌̕◌̀◌֮◌𑍰b; à◌֮◌𑍰◌̕b; a◌֮◌̀◌𑍰◌̕b; à◌֮◌𑍰◌̕b; a◌֮◌̀◌𑍰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER A, LATIN SMALL LETTER B
+0061 11370 0315 0300 05AE 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062;0061 05AE 11370 0300 0315 0062; # (a◌𑍰◌̕◌̀◌֮b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; a◌֮◌𑍰◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11371 0062;00E0 05AE 11371 0315 0062;0061 05AE 0300 11371 0315 0062;00E0 05AE 11371 0315 0062;0061 05AE 0300 11371 0315 0062; # (a◌̕◌̀◌֮◌𑍱b; à◌֮◌𑍱◌̕b; a◌֮◌̀◌𑍱◌̕b; à◌֮◌𑍱◌̕b; a◌֮◌̀◌𑍱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER KA, LATIN SMALL LETTER B
+0061 11371 0315 0300 05AE 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062;0061 05AE 11371 0300 0315 0062; # (a◌𑍱◌̕◌̀◌֮b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; a◌֮◌𑍱◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER KA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11372 0062;00E0 05AE 11372 0315 0062;0061 05AE 0300 11372 0315 0062;00E0 05AE 11372 0315 0062;0061 05AE 0300 11372 0315 0062; # (a◌̕◌̀◌֮◌𑍲b; à◌֮◌𑍲◌̕b; a◌֮◌̀◌𑍲◌̕b; à◌֮◌𑍲◌̕b; a◌֮◌̀◌𑍲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER NA, LATIN SMALL LETTER B
+0061 11372 0315 0300 05AE 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062;0061 05AE 11372 0300 0315 0062; # (a◌𑍲◌̕◌̀◌֮b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; a◌֮◌𑍲◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER NA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11373 0062;00E0 05AE 11373 0315 0062;0061 05AE 0300 11373 0315 0062;00E0 05AE 11373 0315 0062;0061 05AE 0300 11373 0315 0062; # (a◌̕◌̀◌֮◌𑍳b; à◌֮◌𑍳◌̕b; a◌֮◌̀◌𑍳◌̕b; à◌֮◌𑍳◌̕b; a◌֮◌̀◌𑍳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER VI, LATIN SMALL LETTER B
+0061 11373 0315 0300 05AE 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062;0061 05AE 11373 0300 0315 0062; # (a◌𑍳◌̕◌̀◌֮b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; a◌֮◌𑍳◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER VI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 11374 0062;00E0 05AE 11374 0315 0062;0061 05AE 0300 11374 0315 0062;00E0 05AE 11374 0315 0062;0061 05AE 0300 11374 0315 0062; # (a◌̕◌̀◌֮◌𑍴b; à◌֮◌𑍴◌̕b; a◌֮◌̀◌𑍴◌̕b; à◌֮◌𑍴◌̕b; a◌֮◌̀◌𑍴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GRANTHA LETTER PA, LATIN SMALL LETTER B
+0061 11374 0315 0300 05AE 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062; # (a◌𑍴◌̕◌̀◌֮b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GRANTHA LETTER PA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 05B0 094D 3099 114C2 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062; # (a◌ְ◌्◌゙◌𑓂b; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TIRHUTA SIGN VIRAMA, LATIN SMALL LETTER B
+0061 114C2 05B0 094D 3099 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062; # (a◌𑓂◌ְ◌्◌゙b; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; ) LATIN SMALL LETTER A, TIRHUTA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 0334 114C3 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062; # (a◌゙◌़◌̴◌𑓃b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, TIRHUTA SIGN NUKTA, LATIN SMALL LETTER B
+0061 114C3 3099 093C 0334 0062;0061 0334 114C3 093C 3099 0062;0061 0334 114C3 093C 3099 0062;0061 0334 114C3 093C 3099 0062;0061 0334 114C3 093C 3099 0062; # (a◌𑓃◌゙◌़◌̴b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; ) LATIN SMALL LETTER A, TIRHUTA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05B0 094D 3099 115BF 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062; # (a◌ְ◌्◌゙◌𑖿b; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, SIDDHAM SIGN VIRAMA, LATIN SMALL LETTER B
+0061 115BF 05B0 094D 3099 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062; # (a◌𑖿◌ְ◌्◌゙b; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; ) LATIN SMALL LETTER A, SIDDHAM SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 0334 115C0 0062;0061 0334 093C 115C0 3099 0062;0061 0334 093C 115C0 3099 0062;0061 0334 093C 115C0 3099 0062;0061 0334 093C 115C0 3099 0062; # (a◌゙◌़◌̴◌𑗀b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, SIDDHAM SIGN NUKTA, LATIN SMALL LETTER B
+0061 115C0 3099 093C 0334 0062;0061 0334 115C0 093C 3099 0062;0061 0334 115C0 093C 3099 0062;0061 0334 115C0 093C 3099 0062;0061 0334 115C0 093C 3099 0062; # (a◌𑗀◌゙◌़◌̴b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; ) LATIN SMALL LETTER A, SIDDHAM SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1163F 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062; # (a◌ְ◌्◌゙◌𑘿b; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, MODI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 1163F 05B0 094D 3099 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062; # (a◌𑘿◌ְ◌्◌゙b; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; ) LATIN SMALL LETTER A, MODI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 116B6 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062; # (a◌ְ◌्◌゙𑚶b; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, TAKRI SIGN VIRAMA, LATIN SMALL LETTER B
0061 116B6 05B0 094D 3099 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062; # (a𑚶◌ְ◌्◌゙b; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; ) LATIN SMALL LETTER A, TAKRI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 3099 093C 0334 116B7 0062;0061 0334 093C 116B7 3099 0062;0061 0334 093C 116B7 3099 0062;0061 0334 093C 116B7 3099 0062;0061 0334 093C 116B7 3099 0062; # (a◌゙◌़◌̴◌𑚷b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, TAKRI SIGN NUKTA, LATIN SMALL LETTER B
0061 116B7 3099 093C 0334 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062; # (a◌𑚷◌゙◌़◌̴b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; ) LATIN SMALL LETTER A, TAKRI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 0334 16AF0 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062; # (a◌़◌̴◌𖫰b; a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH TONE, LATIN SMALL LETTER B
+0061 16AF0 093C 0334 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062; # (a◌𖫰◌़◌̴b; a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 0334 16AF1 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062; # (a◌़◌̴◌𖫱b; a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW TONE, LATIN SMALL LETTER B
+0061 16AF1 093C 0334 0062;0061 16AF1 0334 093C 0062;0061 16AF1 0334 093C 0062;0061 16AF1 0334 093C 0062;0061 16AF1 0334 093C 0062; # (a◌𖫱◌़◌̴b; a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING LOW TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 0334 16AF2 0062;0061 0334 16AF2 093C 0062;0061 0334 16AF2 093C 0062;0061 0334 16AF2 093C 0062;0061 0334 16AF2 093C 0062; # (a◌़◌̴◌𖫲b; a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING MID TONE, LATIN SMALL LETTER B
+0061 16AF2 093C 0334 0062;0061 16AF2 0334 093C 0062;0061 16AF2 0334 093C 0062;0061 16AF2 0334 093C 0062;0061 16AF2 0334 093C 0062; # (a◌𖫲◌़◌̴b; a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING MID TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 0334 16AF3 0062;0061 0334 16AF3 093C 0062;0061 0334 16AF3 093C 0062;0061 0334 16AF3 093C 0062;0061 0334 16AF3 093C 0062; # (a◌़◌̴◌𖫳b; a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW-MID TONE, LATIN SMALL LETTER B
+0061 16AF3 093C 0334 0062;0061 16AF3 0334 093C 0062;0061 16AF3 0334 093C 0062;0061 16AF3 0334 093C 0062;0061 16AF3 0334 093C 0062; # (a◌𖫳◌़◌̴b; a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING LOW-MID TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 0334 16AF4 0062;0061 0334 16AF4 093C 0062;0061 0334 16AF4 093C 0062;0061 0334 16AF4 093C 0062;0061 0334 16AF4 093C 0062; # (a◌़◌̴◌𖫴b; a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH-LOW TONE, LATIN SMALL LETTER B
+0061 16AF4 093C 0334 0062;0061 16AF4 0334 093C 0062;0061 16AF4 0334 093C 0062;0061 16AF4 0334 093C 0062;0061 16AF4 0334 093C 0062; # (a◌𖫴◌़◌̴b; a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH-LOW TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B30 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 0315 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 0315 0062; # (a◌̕◌̀◌֮◌𖬰b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM TUB, LATIN SMALL LETTER B
+0061 16B30 0315 0300 05AE 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062; # (a◌𖬰◌̕◌̀◌֮b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM TUB, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B31 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 0315 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 0315 0062; # (a◌̕◌̀◌֮◌𖬱b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM SO, LATIN SMALL LETTER B
+0061 16B31 0315 0300 05AE 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062;0061 05AE 16B31 0300 0315 0062; # (a◌𖬱◌̕◌̀◌֮b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; a◌֮◌𖬱◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM SO, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B32 0062;00E0 05AE 16B32 0315 0062;0061 05AE 0300 16B32 0315 0062;00E0 05AE 16B32 0315 0062;0061 05AE 0300 16B32 0315 0062; # (a◌̕◌̀◌֮◌𖬲b; à◌֮◌𖬲◌̕b; a◌֮◌̀◌𖬲◌̕b; à◌֮◌𖬲◌̕b; a◌֮◌̀◌𖬲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM KES, LATIN SMALL LETTER B
+0061 16B32 0315 0300 05AE 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062;0061 05AE 16B32 0300 0315 0062; # (a◌𖬲◌̕◌̀◌֮b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; a◌֮◌𖬲◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM KES, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B33 0062;00E0 05AE 16B33 0315 0062;0061 05AE 0300 16B33 0315 0062;00E0 05AE 16B33 0315 0062;0061 05AE 0300 16B33 0315 0062; # (a◌̕◌̀◌֮◌𖬳b; à◌֮◌𖬳◌̕b; a◌֮◌̀◌𖬳◌̕b; à◌֮◌𖬳◌̕b; a◌֮◌̀◌𖬳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM KHAV, LATIN SMALL LETTER B
+0061 16B33 0315 0300 05AE 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062;0061 05AE 16B33 0300 0315 0062; # (a◌𖬳◌̕◌̀◌֮b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; a◌֮◌𖬳◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM KHAV, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B34 0062;00E0 05AE 16B34 0315 0062;0061 05AE 0300 16B34 0315 0062;00E0 05AE 16B34 0315 0062;0061 05AE 0300 16B34 0315 0062; # (a◌̕◌̀◌֮◌𖬴b; à◌֮◌𖬴◌̕b; a◌֮◌̀◌𖬴◌̕b; à◌֮◌𖬴◌̕b; a◌֮◌̀◌𖬴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM SUAM, LATIN SMALL LETTER B
+0061 16B34 0315 0300 05AE 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062;0061 05AE 16B34 0300 0315 0062; # (a◌𖬴◌̕◌̀◌֮b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; a◌֮◌𖬴◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM SUAM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B35 0062;00E0 05AE 16B35 0315 0062;0061 05AE 0300 16B35 0315 0062;00E0 05AE 16B35 0315 0062;0061 05AE 0300 16B35 0315 0062; # (a◌̕◌̀◌֮◌𖬵b; à◌֮◌𖬵◌̕b; a◌֮◌̀◌𖬵◌̕b; à◌֮◌𖬵◌̕b; a◌֮◌̀◌𖬵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM HOM, LATIN SMALL LETTER B
+0061 16B35 0315 0300 05AE 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062; # (a◌𖬵◌̕◌̀◌֮b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM HOM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 16B36 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 0315 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 0315 0062; # (a◌̕◌̀◌֮◌𖬶b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, PAHAWH HMONG MARK CIM TAUM, LATIN SMALL LETTER B
+0061 16B36 0315 0300 05AE 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062; # (a◌𖬶◌̕◌̀◌֮b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; ) LATIN SMALL LETTER A, PAHAWH HMONG MARK CIM TAUM, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 093C 0334 1BC9E 0062;0061 0334 1BC9E 093C 0062;0061 0334 1BC9E 093C 0062;0061 0334 1BC9E 093C 0062;0061 0334 1BC9E 093C 0062; # (a◌़◌̴◌𛲞b; a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, DUPLOYAN DOUBLE MARK, LATIN SMALL LETTER B
+0061 1BC9E 093C 0334 0062;0061 1BC9E 0334 093C 0062;0061 1BC9E 0334 093C 0062;0061 1BC9E 0334 093C 0062;0061 1BC9E 0334 093C 0062; # (a◌𛲞◌़◌̴b; a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; ) LATIN SMALL LETTER A, DUPLOYAN DOUBLE MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
0061 302A 031B 1DCE 1D165 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062; # (a◌〪◌̛◌᷎𝅥b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; ) LATIN SMALL LETTER A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING STEM, LATIN SMALL LETTER B
0061 1D165 302A 031B 1DCE 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062; # (a𝅥◌〪◌̛◌᷎b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL COMBINING STEM, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
0061 302A 031B 1DCE 1D166 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062; # (a◌〪◌̛◌᷎𝅦b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; ) LATIN SMALL LETTER A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL SYMBOL COMBINING SPRECHGESANG STEM, LATIN SMALL LETTER B
@@ -18256,6 +18439,20 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1D243 0315 0300 05AE 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062; # (a◌𝉃◌̕◌̀◌֮b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; a◌֮◌𝉃◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK MUSICAL TETRASEME, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1D244 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062; # (a◌̕◌̀◌֮◌𝉄b; à◌֮◌𝉄◌̕b; a◌֮◌̀◌𝉄◌̕b; à◌֮◌𝉄◌̕b; a◌֮◌̀◌𝉄◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GREEK MUSICAL PENTASEME, LATIN SMALL LETTER B
0061 1D244 0315 0300 05AE 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062; # (a◌𝉄◌̕◌̀◌֮b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; a◌֮◌𝉄◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GREEK MUSICAL PENTASEME, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D0 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062; # (a◌֚◌̖◌〪◌𞣐b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B
+0061 1E8D0 059A 0316 302A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062; # (a◌𞣐◌֚◌̖◌〪b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D1 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062; # (a◌֚◌̖◌〪◌𞣑b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B
+0061 1E8D1 059A 0316 302A 0062;0061 302A 1E8D1 0316 059A 0062;0061 302A 1E8D1 0316 059A 0062;0061 302A 1E8D1 0316 059A 0062;0061 302A 1E8D1 0316 059A 0062; # (a◌𞣑◌֚◌̖◌〪b; a◌〪◌𞣑◌̖◌֚b; a◌〪◌𞣑◌̖◌֚b; a◌〪◌𞣑◌̖◌֚b; a◌〪◌𞣑◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D2 0062;0061 302A 0316 1E8D2 059A 0062;0061 302A 0316 1E8D2 059A 0062;0061 302A 0316 1E8D2 059A 0062;0061 302A 0316 1E8D2 059A 0062; # (a◌֚◌̖◌〪◌𞣒b; a◌〪◌̖◌𞣒◌֚b; a◌〪◌̖◌𞣒◌֚b; a◌〪◌̖◌𞣒◌֚b; a◌〪◌̖◌𞣒◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER HUNDREDS, LATIN SMALL LETTER B
+0061 1E8D2 059A 0316 302A 0062;0061 302A 1E8D2 0316 059A 0062;0061 302A 1E8D2 0316 059A 0062;0061 302A 1E8D2 0316 059A 0062;0061 302A 1E8D2 0316 059A 0062; # (a◌𞣒◌֚◌̖◌〪b; a◌〪◌𞣒◌̖◌֚b; a◌〪◌𞣒◌̖◌֚b; a◌〪◌𞣒◌̖◌֚b; a◌〪◌𞣒◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER HUNDREDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D3 0062;0061 302A 0316 1E8D3 059A 0062;0061 302A 0316 1E8D3 059A 0062;0061 302A 0316 1E8D3 059A 0062;0061 302A 0316 1E8D3 059A 0062; # (a◌֚◌̖◌〪◌𞣓b; a◌〪◌̖◌𞣓◌֚b; a◌〪◌̖◌𞣓◌֚b; a◌〪◌̖◌𞣓◌֚b; a◌〪◌̖◌𞣓◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D3 059A 0316 302A 0062;0061 302A 1E8D3 0316 059A 0062;0061 302A 1E8D3 0316 059A 0062;0061 302A 1E8D3 0316 059A 0062;0061 302A 1E8D3 0316 059A 0062; # (a◌𞣓◌֚◌̖◌〪b; a◌〪◌𞣓◌̖◌֚b; a◌〪◌𞣓◌̖◌֚b; a◌〪◌𞣓◌̖◌֚b; a◌〪◌𞣓◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D4 0062;0061 302A 0316 1E8D4 059A 0062;0061 302A 0316 1E8D4 059A 0062;0061 302A 0316 1E8D4 059A 0062;0061 302A 0316 1E8D4 059A 0062; # (a◌֚◌̖◌〪◌𞣔b; a◌〪◌̖◌𞣔◌֚b; a◌〪◌̖◌𞣔◌֚b; a◌〪◌̖◌𞣔◌֚b; a◌〪◌̖◌𞣔◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D4 059A 0316 302A 0062;0061 302A 1E8D4 0316 059A 0062;0061 302A 1E8D4 0316 059A 0062;0061 302A 1E8D4 0316 059A 0062;0061 302A 1E8D4 0316 059A 0062; # (a◌𞣔◌֚◌̖◌〪b; a◌〪◌𞣔◌̖◌֚b; a◌〪◌𞣔◌̖◌֚b; a◌〪◌𞣔◌̖◌֚b; a◌〪◌𞣔◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D5 0062;0061 302A 0316 1E8D5 059A 0062;0061 302A 0316 1E8D5 059A 0062;0061 302A 0316 1E8D5 059A 0062;0061 302A 0316 1E8D5 059A 0062; # (a◌֚◌̖◌〪◌𞣕b; a◌〪◌̖◌𞣕◌֚b; a◌〪◌̖◌𞣕◌֚b; a◌〪◌̖◌𞣕◌֚b; a◌〪◌̖◌𞣕◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS, LATIN SMALL LETTER B
+0061 1E8D5 059A 0316 302A 0062;0061 302A 1E8D5 0316 059A 0062;0061 302A 1E8D5 0316 059A 0062;0061 302A 1E8D5 0316 059A 0062;0061 302A 1E8D5 0316 059A 0062; # (a◌𞣕◌֚◌̖◌〪b; a◌〪◌𞣕◌̖◌֚b; a◌〪◌𞣕◌̖◌֚b; a◌〪◌𞣕◌̖◌֚b; a◌〪◌𞣕◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1E8D6 0062;0061 302A 0316 1E8D6 059A 0062;0061 302A 0316 1E8D6 059A 0062;0061 302A 0316 1E8D6 059A 0062;0061 302A 0316 1E8D6 059A 0062; # (a◌֚◌̖◌〪◌𞣖b; a◌〪◌̖◌𞣖◌֚b; a◌〪◌̖◌𞣖◌֚b; a◌〪◌̖◌𞣖◌֚b; a◌〪◌̖◌𞣖◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER MILLIONS, LATIN SMALL LETTER B
+0061 1E8D6 059A 0316 302A 0062;0061 302A 1E8D6 0316 059A 0062;0061 302A 1E8D6 0316 059A 0062;0061 302A 1E8D6 0316 059A 0062;0061 302A 1E8D6 0316 059A 0062; # (a◌𞣖◌֚◌̖◌〪b; a◌〪◌𞣖◌̖◌֚b; a◌〪◌𞣖◌̖◌֚b; a◌〪◌𞣖◌̖◌֚b; a◌〪◌𞣖◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER MILLIONS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
#
@Part3 # PRI #29 Test
#
@@ -18427,5 +18624,12 @@ D6FC 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;D6FC 0334 11AE;1112 1170 0334
D750 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5; # (흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; 흐◌̴ᆵ; ) HANGUL SYLLABLE HEU, COMBINING TILDE OVERLAY, HANGUL JONGSEONG RIEUL-PHIEUPH
11131 0334 11127;11131 0334 11127;11131 0334 11127;11131 0334 11127;11131 0334 11127; # (◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ◌𑄱◌̴◌𑄧; ) CHAKMA O MARK, COMBINING TILDE OVERLAY, CHAKMA VOWEL SIGN A
11132 0334 11127;11132 0334 11127;11132 0334 11127;11132 0334 11127;11132 0334 11127; # (◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ◌𑄲◌̴◌𑄧; ) CHAKMA AU MARK, COMBINING TILDE OVERLAY, CHAKMA VOWEL SIGN A
+11347 0334 1133E;11347 0334 1133E;11347 0334 1133E;11347 0334 1133E;11347 0334 1133E; # (𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; 𑍇◌̴𑌾; ) GRANTHA VOWEL SIGN EE, COMBINING TILDE OVERLAY, GRANTHA VOWEL SIGN AA
+11347 0334 11357;11347 0334 11357;11347 0334 11357;11347 0334 11357;11347 0334 11357; # (𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; 𑍇◌̴𑍗; ) GRANTHA VOWEL SIGN EE, COMBINING TILDE OVERLAY, GRANTHA AU LENGTH MARK
+114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0;114B9 0334 114B0; # (𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; 𑒹◌̴𑒰; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN AA
+114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA;114B9 0334 114BA; # (𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; 𑒹◌̴◌𑒺; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN SHORT E
+114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD; # (𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE OVERLAY, TIRHUTA VOWEL SIGN SHORT O
+115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF; # (𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; ) SIDDHAM VOWEL SIGN E, COMBINING TILDE OVERLAY, SIDDHAM VOWEL SIGN AA
+115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF; # (𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; ) SIDDHAM VOWEL SIGN AI, COMBINING TILDE OVERLAY, SIDDHAM VOWEL SIGN AA
#
# EOF
diff --git a/tests/auto/corelib/tools/qchar/tst_qchar.cpp b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
index 4e882263bf..f80d6e6d93 100644
--- a/tests/auto/corelib/tools/qchar/tst_qchar.cpp
+++ b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
@@ -135,6 +135,8 @@ void tst_QChar::toUpper()
QVERIFY(QChar(0x1c7).toUpper().unicode() == 0x1c7);
QVERIFY(QChar(0x1c8).toUpper().unicode() == 0x1c7);
QVERIFY(QChar(0x1c9).toUpper().unicode() == 0x1c7);
+ QVERIFY(QChar(0x25c).toUpper().unicode() == 0xa7ab);
+ QVERIFY(QChar(0x29e).toUpper().unicode() == 0xa7b0);
QVERIFY(QChar(0x1d79).toUpper().unicode() == 0xa77d);
QVERIFY(QChar(0x0265).toUpper().unicode() == 0xa78d);
@@ -144,6 +146,8 @@ void tst_QChar::toUpper()
QVERIFY(QChar::toUpper(0x1c7) == 0x1c7);
QVERIFY(QChar::toUpper(0x1c8) == 0x1c7);
QVERIFY(QChar::toUpper(0x1c9) == 0x1c7);
+ QVERIFY(QChar::toUpper(0x25c) == 0xa7ab);
+ QVERIFY(QChar::toUpper(0x29e) == 0xa7b0);
QVERIFY(QChar::toUpper(0x1d79) == 0xa77d);
QVERIFY(QChar::toUpper(0x0265) == 0xa78d);
@@ -160,6 +164,8 @@ void tst_QChar::toLower()
QVERIFY(QChar(0x1c9).toLower().unicode() == 0x1c9);
QVERIFY(QChar(0xa77d).toLower().unicode() == 0x1d79);
QVERIFY(QChar(0xa78d).toLower().unicode() == 0x0265);
+ QVERIFY(QChar(0xa7ab).toLower().unicode() == 0x25c);
+ QVERIFY(QChar(0xa7b1).toLower().unicode() == 0x287);
QVERIFY(QChar::toLower('a') == 'a');
QVERIFY(QChar::toLower('A') == 'a');
@@ -168,6 +174,8 @@ void tst_QChar::toLower()
QVERIFY(QChar::toLower(0x1c9) == 0x1c9);
QVERIFY(QChar::toLower(0xa77d) == 0x1d79);
QVERIFY(QChar::toLower(0xa78d) == 0x0265);
+ QVERIFY(QChar::toLower(0xa7ab) == 0x25c);
+ QVERIFY(QChar::toLower(0xa7b1) == 0x287);
QVERIFY(QChar::toLower(0x10400) == 0x10428);
QVERIFY(QChar::toLower(0x10428) == 0x10428);
@@ -205,6 +213,8 @@ void tst_QChar::toCaseFolded()
QVERIFY(QChar(0x1c9).toCaseFolded().unicode() == 0x1c9);
QVERIFY(QChar(0xa77d).toCaseFolded().unicode() == 0x1d79);
QVERIFY(QChar(0xa78d).toCaseFolded().unicode() == 0x0265);
+ QVERIFY(QChar(0xa7ab).toCaseFolded().unicode() == 0x25c);
+ QVERIFY(QChar(0xa7b1).toCaseFolded().unicode() == 0x287);
QVERIFY(QChar::toCaseFolded('a') == 'a');
QVERIFY(QChar::toCaseFolded('A') == 'a');
@@ -213,6 +223,8 @@ void tst_QChar::toCaseFolded()
QVERIFY(QChar::toCaseFolded(0x1c9) == 0x1c9);
QVERIFY(QChar::toCaseFolded(0xa77d) == 0x1d79);
QVERIFY(QChar::toCaseFolded(0xa78d) == 0x0265);
+ QVERIFY(QChar::toCaseFolded(0xa7ab) == 0x25c);
+ QVERIFY(QChar::toCaseFolded(0xa7b1) == 0x287);
QVERIFY(QChar::toCaseFolded(0x10400) == 0x10428);
QVERIFY(QChar::toCaseFolded(0x10428) == 0x10428);
@@ -341,6 +353,7 @@ void tst_QChar::isPrint()
QVERIFY(QChar(0x1e9e).isPrint()); // assigned in 5.1
QVERIFY(QChar::isPrint(0x1b000)); // assigned in 6.0
QVERIFY(QChar::isPrint(0x110d0)); // assigned in 5.1
+ QVERIFY(!QChar::isPrint(0x1bca0)); // assigned in 7.0
}
void tst_QChar::isUpper()
@@ -471,6 +484,7 @@ void tst_QChar::joiningType()
QVERIFY(QChar(0x0627).joiningType() == QChar::Joining_Right);
QVERIFY(QChar(0x05d0).joiningType() == QChar::Joining_None);
QVERIFY(QChar(0x00ad).joiningType() == QChar::Joining_Transparent);
+ QVERIFY(QChar(0xA872).joiningType() == QChar::Joining_Left);
QVERIFY(QChar::joiningType('a') == QChar::Joining_None);
QVERIFY(QChar::joiningType('0') == QChar::Joining_None);
@@ -484,6 +498,8 @@ void tst_QChar::joiningType()
QVERIFY(QChar::joiningType(0x2FA17) == QChar::Joining_None);
QVERIFY(QChar::joiningType(0xA872) == QChar::Joining_Left);
+ QVERIFY(QChar::joiningType(0x10ACD) == QChar::Joining_Left);
+ QVERIFY(QChar::joiningType(0x10AD7) == QChar::Joining_Left);
}
void tst_QChar::combiningClass()
@@ -574,6 +590,10 @@ void tst_QChar::unicodeVersion()
QVERIFY(QChar(0x061c).unicodeVersion() == QChar::Unicode_6_3);
QVERIFY(QChar::unicodeVersion(0x061c) == QChar::Unicode_6_3);
+ QVERIFY(QChar(0x20bd).unicodeVersion() == QChar::Unicode_7_0);
+ QVERIFY(QChar::unicodeVersion(0x20bd) == QChar::Unicode_7_0);
+ QVERIFY(QChar::unicodeVersion(0x16b00) == QChar::Unicode_7_0);
+
QVERIFY(QChar(0x09ff).unicodeVersion() == QChar::Unicode_Unassigned);
QVERIFY(QChar::unicodeVersion(0x09ff) == QChar::Unicode_Unassigned);
QVERIFY(QChar::unicodeVersion(0x110000) == QChar::Unicode_Unassigned);
diff --git a/tests/auto/corelib/tools/qlist/tst_qlist.cpp b/tests/auto/corelib/tools/qlist/tst_qlist.cpp
index 1207986dde..9b12083b18 100644
--- a/tests/auto/corelib/tools/qlist/tst_qlist.cpp
+++ b/tests/auto/corelib/tools/qlist/tst_qlist.cpp
@@ -76,6 +76,13 @@ struct Movable {
return i == other.i;
}
+ bool operator<(const Movable &other) const
+ {
+ check(state, Constructed);
+ check(other.state, Constructed);
+ return i < other.i;
+ }
+
Movable &operator=(const Movable &other)
{
check(state, Constructed);
@@ -144,6 +151,13 @@ struct Optimal
return i == other.i;
}
+ bool operator<(const Optimal &other) const
+ {
+ check(state, Constructed);
+ check(other.state, Constructed);
+ return i < other.i;
+ }
+
Optimal &operator=(const Optimal &other)
{
check(state, Constructed);
@@ -220,6 +234,12 @@ struct Complex
return value == other.value;
}
+ bool operator<(Complex const &other) const
+ {
+ check(); other.check();
+ return value < other.value;
+ }
+
void check() const
{
QVERIFY(this == checkSum);
@@ -329,6 +349,9 @@ private slots:
void replaceOptimal() const;
void replaceMovable() const;
void replaceComplex() const;
+ void reverseIteratorsOptimal() const;
+ void reverseIteratorsMovable() const;
+ void reverseIteratorsComplex() const;
void startsWithOptimal() const;
void startsWithMovable() const;
void startsWithComplex() const;
@@ -396,6 +419,7 @@ private:
template<typename T> void removeAt() const;
template<typename T> void removeOne() const;
template<typename T> void replace() const;
+ template<typename T> void reverseIterators() const;
template<typename T> void startsWith() const;
template<typename T> void swap() const;
template<typename T> void takeAt() const;
@@ -1220,6 +1244,43 @@ void tst_QList::replaceComplex() const
}
template<typename T>
+void tst_QList::reverseIterators() const
+{
+ QList<T> v;
+ v << T_CAT << T_DOG << T_BLAH << T_BAZ;
+ QList<T> vr = v;
+ std::reverse(vr.begin(), vr.end());
+ const QList<T> &cvr = vr;
+ QVERIFY(std::equal(v.begin(), v.end(), vr.rbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), vr.crbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), cvr.rbegin()));
+ QVERIFY(std::equal(vr.rbegin(), vr.rend(), v.begin()));
+ QVERIFY(std::equal(vr.crbegin(), vr.crend(), v.begin()));
+ QVERIFY(std::equal(cvr.rbegin(), cvr.rend(), v.begin()));
+}
+
+void tst_QList::reverseIteratorsOptimal() const
+{
+ const int liveCount = Optimal::getLiveCount();
+ reverseIterators<Optimal>();
+ QCOMPARE(liveCount, Optimal::getLiveCount());
+}
+
+void tst_QList::reverseIteratorsMovable() const
+{
+ const int liveCount = Movable::getLiveCount();
+ reverseIterators<Movable>();
+ QCOMPARE(liveCount, Movable::getLiveCount());
+}
+
+void tst_QList::reverseIteratorsComplex() const
+{
+ const int liveCount = Complex::getLiveCount();
+ reverseIterators<Complex>();
+ QCOMPARE(liveCount, Complex::getLiveCount());
+}
+
+template<typename T>
void tst_QList::startsWith() const
{
QList<T> list;
@@ -1576,6 +1637,19 @@ void tst_QList::testOperators() const
// []
QCOMPARE(list[0], T_FOO);
QCOMPARE(list[list.size() - 1], T_CAT);
+
+ // <, >, <=, >=
+ QVERIFY(!(list < listtwo));
+ QVERIFY(!(list > listtwo));
+ QVERIFY( list <= listtwo);
+ QVERIFY( list >= listtwo);
+ listtwo.push_back(T_CAT);
+ QVERIFY( list < listtwo);
+ QVERIFY(!(list > listtwo));
+ QVERIFY( list <= listtwo);
+ QVERIFY(!(list >= listtwo));
+ QVERIFY(listtwo > list);
+ QVERIFY(listtwo >= list);
}
void tst_QList::testOperatorsOptimal() const
diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
index 5b9c9e0b36..b1e13a0384 100644
--- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
+++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
@@ -1889,8 +1889,8 @@ void tst_QLocale::ampm()
QCOMPARE(sv.pmText(), QLatin1String("em"));
QLocale nn("nl_NL");
- QCOMPARE(nn.amText(), QLatin1String("AM"));
- QCOMPARE(nn.pmText(), QLatin1String("PM"));
+ QCOMPARE(nn.amText(), QLatin1String("a.m."));
+ QCOMPARE(nn.pmText(), QLatin1String("p.m."));
QLocale ua("uk_UA");
QCOMPARE(ua.amText(), QString::fromUtf8("\320\264\320\277"));
@@ -1916,12 +1916,12 @@ void tst_QLocale::dateFormat()
QCOMPARE(c.dateFormat(QLocale::NarrowFormat), c.dateFormat(QLocale::ShortFormat));
const QLocale no("no_NO");
- QCOMPARE(no.dateFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yy"));
- QCOMPARE(no.dateFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yy"));
+ QCOMPARE(no.dateFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy"));
+ QCOMPARE(no.dateFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy"));
QCOMPARE(no.dateFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy"));
const QLocale ca("en_CA");
- QCOMPARE(ca.dateFormat(QLocale::ShortFormat), QLatin1String("M/d/yy"));
+ QCOMPARE(ca.dateFormat(QLocale::ShortFormat), QLatin1String("yyyy-MM-dd"));
QCOMPARE(ca.dateFormat(QLocale::LongFormat), QLatin1String("dddd, MMMM d, yyyy"));
const QLocale ja("ja_JP");
@@ -1947,8 +1947,8 @@ void tst_QLocale::timeFormat()
QCOMPARE(id.timeFormat(QLocale::LongFormat), QLatin1String("HH.mm.ss t"));
const QLocale cat("ca_ES");
- QCOMPARE(cat.timeFormat(QLocale::ShortFormat), QLatin1String("H.mm"));
- QCOMPARE(cat.timeFormat(QLocale::LongFormat), QLatin1String("H.mm.ss t"));
+ QCOMPARE(cat.timeFormat(QLocale::ShortFormat), QLatin1String("H:mm"));
+ QCOMPARE(cat.timeFormat(QLocale::LongFormat), QLatin1String("H:mm:ss t"));
const QLocale bra("pt_BR");
QCOMPARE(bra.timeFormat(QLocale::ShortFormat), QLatin1String("HH:mm"));
@@ -1962,8 +1962,8 @@ void tst_QLocale::dateTimeFormat()
QCOMPARE(c.dateTimeFormat(QLocale::NarrowFormat), c.dateTimeFormat(QLocale::ShortFormat));
const QLocale no("no_NO");
- QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yy HH.mm"));
- QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yy HH.mm"));
+ QCOMPARE(no.dateTimeFormat(QLocale::NarrowFormat), QLatin1String("dd.MM.yyyy HH.mm"));
+ QCOMPARE(no.dateTimeFormat(QLocale::ShortFormat), QLatin1String("dd.MM.yyyy HH.mm"));
QCOMPARE(no.dateTimeFormat(QLocale::LongFormat), QLatin1String("dddd d. MMMM yyyy HH.mm.ss t"));
}
@@ -1992,10 +1992,6 @@ void tst_QLocale::monthName()
QCOMPARE(ru.monthName(1, QLocale::ShortFormat), QString::fromUtf8("\321\217\320\275\320\262\56"));
QCOMPARE(ru.monthName(1, QLocale::NarrowFormat), QString::fromUtf8("\320\257"));
- // check that our CLDR scripts handle surrogate pairs correctly
- QLocale dsrt("en-Dsrt-US");
- QCOMPARE(dsrt.monthName(1, QLocale::LongFormat), QString::fromUtf8("\xf0\x90\x90\x96\xf0\x90\x90\xb0\xf0\x90\x91\x8c\xf0\x90\x90\xb7\xf0\x90\x90\xad\xf0\x90\x90\xaf\xf0\x90\x91\x89\xf0\x90\x90\xa8"));
-
QLocale ir("ga_IE");
QCOMPARE(ir.monthName(1, QLocale::ShortFormat), QLatin1String("Ean"));
QCOMPARE(ir.monthName(12, QLocale::ShortFormat), QLatin1String("Noll"));
@@ -2027,9 +2023,9 @@ void tst_QLocale::standaloneMonthName()
QCOMPARE(de.standaloneMonthName(12, QLocale::NarrowFormat), QLatin1String("D"));
QLocale ru("ru_RU");
- QCOMPARE(ru.standaloneMonthName(1, QLocale::LongFormat), QString::fromUtf8("\320\257\320\275\320\262\320\260\321\200\321\214"));
- QCOMPARE(ru.standaloneMonthName(1, QLocale::ShortFormat), QString::fromUtf8("\320\257\320\275\320\262\56"));
- QCOMPARE(ru.standaloneMonthName(1, QLocale::NarrowFormat), QString::fromUtf8("\320\257"));
+ QCOMPARE(ru.standaloneMonthName(1, QLocale::LongFormat), QString::fromUtf8("\xd1\x8f\xd0\xbd\xd0\xb2\xd0\xb0\xd1\x80\xd1\x8c"));
+ QCOMPARE(ru.standaloneMonthName(1, QLocale::ShortFormat), QString::fromUtf8("\xd1\x8f\xd0\xbd\xd0\xb2."));
+ QCOMPARE(ru.standaloneMonthName(1, QLocale::NarrowFormat), QString::fromUtf8("\xd0\xaf"));
}
void tst_QLocale::currency()
@@ -2073,8 +2069,8 @@ void tst_QLocale::quoteString()
QCOMPARE(c.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\x27" "text" "\x27"));
const QLocale de_CH("de_CH");
- QCOMPARE(de_CH.quoteString(someText), QString::fromUtf8("\xc2\xab" "text" "\xc2\xbb"));
- QCOMPARE(de_CH.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\xe2\x80\xb9" "text" "\xe2\x80\xba"));
+ QCOMPARE(de_CH.quoteString(someText), QString::fromUtf8("\xe2\x80\x9e" "text" "\xe2\x80\x9c"));
+ QCOMPARE(de_CH.quoteString(someText, QLocale::AlternateQuotation), QString::fromUtf8("\xe2\x80\x9a" "text" "\xe2\x80\x98"));
}
@@ -2201,14 +2197,36 @@ void tst_QLocale::textDirection_data()
for (int language = QLocale::C; language <= QLocale::LastLanguage; ++language) {
bool rightToLeft = false;
switch (language) {
+ // based on likelySubtags for RTL scripts
+ case QLocale::AncientGreek:
+ case QLocale::AncientNorthArabian:
case QLocale::Arabic:
+ case QLocale::Aramaic:
+ case QLocale::Avestan:
+ case QLocale::CentralKurdish:
+ case QLocale::ClassicalMandaic:
+ case QLocale::Divehi:
case QLocale::Hebrew:
case QLocale::Kashmiri:
- case QLocale::Persian:
+ case QLocale::Lydian:
+ case QLocale::Mandingo:
+ case QLocale::ManichaeanMiddlePersian:
+ case QLocale::Mende:
+ case QLocale::Meroitic:
+ case QLocale::Nko:
+ case QLocale::OldTurkish:
+ case QLocale::Pahlavi:
+ case QLocale::Parthian:
case QLocale::Pashto:
- case QLocale::Urdu:
+ case QLocale::Persian:
+ case QLocale::Phoenician:
+ case QLocale::PrakritLanguage:
+ case QLocale::Sabaean:
+ case QLocale::Samaritan:
+ case QLocale::Sindhi:
case QLocale::Syriac:
- case QLocale::Divehi:
+ case QLocale::Uighur:
+ case QLocale::Urdu:
rightToLeft = QLocale(QLocale::Language(language)).language() == QLocale::Language(language); // false if there is no locale data for language
break;
default:
diff --git a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
index 33e143fa7d..044fdbdee5 100644
--- a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
+++ b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp
@@ -52,6 +52,7 @@ private slots:
void ungetChar();
void indexOf();
void appendAndRead();
+ void peek();
void readLine();
};
@@ -280,6 +281,31 @@ void tst_QRingBuffer::appendAndRead()
QVERIFY(ringBuffer.read() == ba3);
}
+void tst_QRingBuffer::peek()
+{
+ QRingBuffer ringBuffer;
+ QByteArray testBuffer;
+ // fill buffer with an arithmetic progression
+ for (int i = 1; i < 256; ++i) {
+ char *ringPos = ringBuffer.reserve(i);
+ QVERIFY(ringPos);
+ memset(ringPos, i, i);
+ testBuffer.append(ringPos, i);
+ }
+
+ // check stored data
+ QByteArray resultBuffer;
+ int peekPosition = testBuffer.size();
+ for (int i = 1; i < 256; ++i) {
+ QByteArray ba(i, 0);
+ peekPosition -= i;
+ qint64 thisPeek = ringBuffer.peek(ba.data(), i, peekPosition);
+ QCOMPARE(thisPeek, qint64(i));
+ resultBuffer.prepend(ba);
+ }
+ QCOMPARE(testBuffer, resultBuffer);
+}
+
void tst_QRingBuffer::readLine()
{
QRingBuffer ringBuffer;
diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
index d2f7a6ee50..d4b3ba7f15 100644
--- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp
+++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp
@@ -60,11 +60,241 @@
#include <qhash.h>
#include <string>
+#include <algorithm>
#define CREATE_REF(string) \
const QString padded = QString::fromLatin1(" %1 ").arg(string); \
QStringRef ref = padded.midRef(1, padded.size() - 2);
+namespace {
+
+// this wraps an argument to a QString function, as well as how to apply
+// the argument to a given QString member function.
+template <typename T>
+class Arg;
+
+template <typename T>
+class Reversed {}; // marker for Arg<QChar> to apply the operation in reverse order (for prepend())
+
+class ArgBase
+{
+protected:
+ QString pinned;
+ explicit ArgBase(const char *str)
+ : pinned(QString::fromLatin1(str)) {}
+};
+
+template <>
+class Arg<QChar> : protected ArgBase
+{
+public:
+ explicit Arg(const char *str) : ArgBase(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { Q_FOREACH (QChar ch, this->pinned) (s.*mf)(ch); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { Q_FOREACH (QChar ch, this->pinned) (s.*mf)(a1, ch); }
+};
+
+template <>
+class Arg<Reversed<QChar> > : private Arg<QChar>
+{
+public:
+ explicit Arg(const char *str) : Arg<QChar>(str)
+ {
+ std::reverse(this->pinned.begin(), this->pinned.end());
+ }
+
+ using Arg<QChar>::apply0;
+ using Arg<QChar>::apply1;
+};
+
+template <>
+class Arg<QString> : ArgBase
+{
+public:
+ explicit Arg(const char *str) : ArgBase(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(this->pinned); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, this->pinned); }
+};
+
+template <>
+class Arg<QStringRef> : ArgBase
+{
+ QStringRef ref() const
+ { return this->pinned.isNull() ? QStringRef() : this->pinned.midRef(0) ; }
+public:
+ explicit Arg(const char *str) : ArgBase(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(ref()); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, ref()); }
+};
+
+template <>
+class Arg<QPair<const QChar *, int> > : ArgBase
+{
+public:
+ explicit Arg(const char *str) : ArgBase(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(this->pinned.constData(), this->pinned.length()); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, this->pinned.constData(), this->pinned.length()); }
+};
+
+template <>
+class Arg<QLatin1String>
+{
+ QLatin1String l1;
+public:
+ explicit Arg(const char *str) : l1(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(l1); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, l1); }
+};
+
+template <>
+class Arg<char>
+{
+protected:
+ const char *str;
+public:
+ explicit Arg(const char *str) : str(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ {
+ if (str) {
+ for (const char *it = str; *it; ++it)
+ (s.*mf)(*it);
+ }
+ }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ {
+ if (str) {
+ for (const char *it = str; *it; ++it)
+ (s.*mf)(a1, *it);
+ }
+ }
+};
+
+template <>
+class Arg<Reversed<char> > : private Arg<char>
+{
+ static const char *dupAndReverse(const char *s)
+ {
+ char *s2 = qstrdup(s);
+ std::reverse(s2, s2 + qstrlen(s2));
+ return s2;
+ }
+public:
+ explicit Arg(const char *str) : Arg<char>(dupAndReverse(str)) {}
+ ~Arg() { delete[] str; }
+
+ using Arg<char>::apply0;
+ using Arg<char>::apply1;
+};
+
+template <>
+class Arg<const char*>
+{
+ const char *str;
+public:
+ explicit Arg(const char *str) : str(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(str); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, str); }
+};
+
+template <>
+class Arg<QByteArray>
+{
+ QByteArray ba;
+public:
+ explicit Arg(const char *str) : ba(str) {}
+
+ template <typename MemFun>
+ void apply0(QString &s, MemFun mf) const
+ { (s.*mf)(ba); }
+
+ template <typename MemFun, typename A1>
+ void apply1(QString &s, MemFun mf, A1 a1) const
+ { (s.*mf)(a1, ba); }
+};
+
+// const char* is not allowed as columns in data-driven tests (causes static_assert failure),
+// so wrap it in a container (default ctor is a QMetaType/QVariant requirement):
+class CharStarContainer
+{
+ const char *str;
+public:
+ explicit Q_DECL_CONSTEXPR CharStarContainer(const char *s = Q_NULLPTR) : str(s) {}
+ Q_DECL_CONSTEXPR operator const char *() const { return str; }
+};
+
+} // unnamed namespace
+
+Q_DECLARE_METATYPE(CharStarContainer)
+
+// implementation helpers for append_impl/prepend_impl etc
+template <typename ArgType, typename MemFun>
+static void do_apply0(MemFun mf)
+{
+ QFETCH(QString, s);
+ QFETCH(CharStarContainer, arg);
+ QFETCH(QString, expected);
+
+ Arg<ArgType>(arg).apply0(s, mf);
+
+ QCOMPARE(s, expected);
+ QCOMPARE(s.isEmpty(), expected.isEmpty());
+ QCOMPARE(s.isNull(), expected.isNull());
+}
+
+template <typename ArgType, typename A1, typename MemFun>
+static void do_apply1(MemFun mf)
+{
+ QFETCH(QString, s);
+ QFETCH(CharStarContainer, arg);
+ QFETCH(A1, a1);
+ QFETCH(QString, expected);
+
+ Arg<ArgType>(arg).apply1(s, mf, a1);
+
+ QCOMPARE(s, expected);
+ QCOMPARE(s.isEmpty(), expected.isEmpty());
+ QCOMPARE(s.isNull(), expected.isNull());
+}
+
class tst_QString : public QObject
{
Q_OBJECT
@@ -73,6 +303,27 @@ class tst_QString : public QObject
void split_regexp(const QString &string, const QString &pattern, QStringList result);
template<typename List>
void split(const QString &string, const QString &separator, QStringList result);
+
+ template <typename ArgType, typename MemFun>
+ void append_impl() const { do_apply0<ArgType>(MemFun(&QString::append)); }
+ template <typename ArgType>
+ void append_impl() const { append_impl<ArgType, QString &(QString::*)(const ArgType&)>(); }
+ void append_data(bool emptyIsNoop = false);
+ template <typename ArgType, typename MemFun>
+ void operator_pluseq_impl() const { do_apply0<ArgType>(MemFun(&QString::operator+=)); }
+ template <typename ArgType>
+ void operator_pluseq_impl() const { operator_pluseq_impl<ArgType, QString &(QString::*)(const ArgType&)>(); }
+ void operator_pluseq_data(bool emptyIsNoop = false);
+ template <typename ArgType, typename MemFun>
+ void prepend_impl() const { do_apply0<ArgType>(MemFun(&QString::prepend)); }
+ template <typename ArgType>
+ void prepend_impl() const { prepend_impl<ArgType, QString &(QString::*)(const ArgType&)>(); }
+ void prepend_data(bool emptyIsNoop = false);
+ template <typename ArgType, typename MemFun>
+ void insert_impl() const { do_apply1<ArgType, int>(MemFun(&QString::insert)); }
+ template <typename ArgType>
+ void insert_impl() const { insert_impl<ArgType, QString &(QString::*)(int, const ArgType&)>(); }
+ void insert_data(bool emptyIsNoop = false);
public:
tst_QString();
public slots:
@@ -121,19 +372,86 @@ private slots:
void remove_regexp_data();
void remove_regexp();
void swap();
- void prepend();
- void prepend_bytearray_data();
- void prepend_bytearray();
- void append();
- void append_bytearray_data();
- void append_bytearray();
- void operator_pluseq_bytearray_data();
- void operator_pluseq_bytearray();
+
+ void prepend_qstring() { prepend_impl<QString>(); }
+ void prepend_qstring_data() { prepend_data(true); }
+ void prepend_qstringref() { prepend_impl<QStringRef>(); }
+ void prepend_qstringref_data() { prepend_data(true); }
+ void prepend_qlatin1string() { prepend_impl<QLatin1String, QString &(QString::*)(QLatin1String)>(); }
+ void prepend_qlatin1string_data() { prepend_data(true); }
+ void prepend_qcharstar_int() { prepend_impl<QPair<const QChar *, int>, QString &(QString::*)(const QChar *, int)>(); }
+ void prepend_qcharstar_int_data() { prepend_data(true); }
+ void prepend_qchar() { prepend_impl<Reversed<QChar>, QString &(QString::*)(QChar)>(); }
+ void prepend_qchar_data() { prepend_data(true); }
+ void prepend_qbytearray() { prepend_impl<QByteArray>(); }
+ void prepend_qbytearray_data() { prepend_data(true); }
+ void prepend_char() { prepend_impl<Reversed<char>, QString &(QString::*)(QChar)>(); }
+ void prepend_char_data() { prepend_data(true); }
+ void prepend_charstar() { prepend_impl<const char *, QString &(QString::*)(const char *)>(); }
+ void prepend_charstar_data() { prepend_data(true); }
+ void prepend_bytearray_special_cases_data();
+ void prepend_bytearray_special_cases();
+
+ void append_qstring() { append_impl<QString>(); }
+ void append_qstring_data() { append_data(); }
+ void append_qstringref() { append_impl<QStringRef>(); }
+ void append_qstringref_data() { append_data(); }
+ void append_qlatin1string() { append_impl<QLatin1String, QString &(QString::*)(QLatin1String)>(); }
+ void append_qlatin1string_data() { append_data(); }
+ void append_qcharstar_int() { append_impl<QPair<const QChar *, int>, QString&(QString::*)(const QChar *, int)>(); }
+ void append_qcharstar_int_data() { append_data(true); }
+ void append_qchar() { append_impl<QChar, QString &(QString::*)(QChar)>(); }
+ void append_qchar_data() { append_data(true); }
+ void append_qbytearray() { append_impl<QByteArray>(); }
+ void append_qbytearray_data() { append_data(); }
+ void append_char() { append_impl<char, QString &(QString::*)(QChar)>(); }
+ void append_char_data() { append_data(true); }
+ void append_charstar() { append_impl<const char *, QString &(QString::*)(const char *)>(); }
+ void append_charstar_data() { append_data(); }
+ void append_special_cases();
+ void append_bytearray_special_cases_data();
+ void append_bytearray_special_cases();
+
+ void operator_pluseq_qstring() { operator_pluseq_impl<QString>(); }
+ void operator_pluseq_qstring_data() { operator_pluseq_data(); }
+ void operator_pluseq_qstringref() { operator_pluseq_impl<QStringRef>(); }
+ void operator_pluseq_qstringref_data() { operator_pluseq_data(); }
+ void operator_pluseq_qlatin1string() { operator_pluseq_impl<QLatin1String, QString &(QString::*)(QLatin1String)>(); }
+ void operator_pluseq_qlatin1string_data() { operator_pluseq_data(); }
+ void operator_pluseq_qchar() { operator_pluseq_impl<QChar, QString &(QString::*)(QChar)>(); }
+ void operator_pluseq_qchar_data() { operator_pluseq_data(true); }
+ void operator_pluseq_qbytearray() { operator_pluseq_impl<QByteArray>(); }
+ void operator_pluseq_qbytearray_data() { operator_pluseq_data(); }
+ void operator_pluseq_char() { operator_pluseq_impl<char, QString &(QString::*)(char)>(); }
+ void operator_pluseq_char_data() { operator_pluseq_data(true); }
+ void operator_pluseq_charstar() { operator_pluseq_impl<const char *, QString &(QString::*)(const char *)>(); }
+ void operator_pluseq_charstar_data() { operator_pluseq_data(); }
+ void operator_pluseq_bytearray_special_cases_data();
+ void operator_pluseq_bytearray_special_cases();
+
void operator_eqeq_bytearray_data();
void operator_eqeq_bytearray();
void operator_eqeq_nullstring();
void operator_smaller();
- void insert();
+
+ void insert_qstring() { insert_impl<QString>(); }
+ void insert_qstring_data() { insert_data(true); }
+ void insert_qstringref() { insert_impl<QStringRef>(); }
+ void insert_qstringref_data() { insert_data(true); }
+ void insert_qlatin1string() { insert_impl<QLatin1String, QString &(QString::*)(int, QLatin1String)>(); }
+ void insert_qlatin1string_data() { insert_data(true); }
+ void insert_qcharstar_int() { insert_impl<QPair<const QChar *, int>, QString &(QString::*)(int, const QChar*, int) >(); }
+ void insert_qcharstar_int_data() { insert_data(true); }
+ void insert_qchar() { insert_impl<Reversed<QChar>, QString &(QString::*)(int, QChar)>(); }
+ void insert_qchar_data() { insert_data(true); }
+ void insert_qbytearray() { insert_impl<QByteArray>(); }
+ void insert_qbytearray_data() { insert_data(true); }
+ void insert_char() { insert_impl<Reversed<char>, QString &(QString::*)(int, QChar)>(); }
+ void insert_char_data() { insert_data(true); }
+ void insert_charstar() { insert_impl<const char *, QString &(QString::*)(int, const char*) >(); }
+ void insert_charstar_data() { insert_data(true); }
+ void insert_special_cases();
+
void simplified_data();
void simplified();
void trimmed();
@@ -183,6 +501,7 @@ private slots:
void fromLocal8Bit();
void local8Bit_data();
void local8Bit();
+ void nullFromLocal8Bit();
void fromLatin1Roundtrip_data();
void fromLatin1Roundtrip();
void toLatin1Roundtrip_data();
@@ -827,7 +1146,7 @@ void tst_QString::constructorQByteArray_data()
ba1[5] = 'e';
ba1[6] = 'f';
- QTest::newRow( "2" ) << ba1 << QString("abc");
+ QTest::newRow( "2" ) << ba1 << QStringLiteral("abc\0def");
QTest::newRow( "3" ) << QByteArray::fromRawData("abcd", 3) << QString("abc");
QTest::newRow( "4" ) << QByteArray("\xc3\xa9") << QString("\xc3\xa9");
@@ -848,12 +1167,6 @@ void tst_QString::constructorQByteArray()
QCOMPARE( strBA, expected );
// test operator= too
- if (src.constData()[src.length()] == '\0') {
- str1.clear();
- str1 = src.constData();
- QCOMPARE( str1, expected );
- }
-
strBA.clear();
strBA = src;
QCOMPARE( strBA, expected );
@@ -2066,7 +2379,46 @@ void tst_QString::simplified()
QCOMPARE(qMove(full).simplified(), simple);
}
-void tst_QString::insert()
+void tst_QString::insert_data(bool emptyIsNoop)
+{
+ QTest::addColumn<QString>("s");
+ QTest::addColumn<CharStarContainer>("arg");
+ QTest::addColumn<int>("a1");
+ QTest::addColumn<QString>("expected");
+
+ const CharStarContainer nullC;
+ const CharStarContainer emptyC("");
+ const CharStarContainer aC("a");
+ const CharStarContainer bC("b");
+ //const CharStarContainer abC("ab");
+ const CharStarContainer baC("ba");
+
+ const QString null;
+ const QString empty("");
+ const QString a("a");
+ const QString b("b");
+ const QString ab("ab");
+ const QString ba("ba");
+
+ QTest::newRow("null.insert(0, null)") << null << nullC << 0 << null;
+ QTest::newRow("null.insert(0, empty)") << null << emptyC << 0 << (emptyIsNoop ? null : empty);
+ QTest::newRow("null.insert(0, a)") << null << aC << 0 << a;
+ QTest::newRow("empty.insert(0, null)") << empty << nullC << 0 << empty;
+ QTest::newRow("empty.insert(0, empty)") << empty << emptyC << 0 << empty;
+ QTest::newRow("empty.insert(0, a)") << empty << aC << 0 << a;
+ QTest::newRow("a.insert(0, null)") << a << nullC << 0 << a;
+ QTest::newRow("a.insert(0, empty)") << a << emptyC << 0 << a;
+ QTest::newRow("a.insert(0, b)") << a << bC << 0 << ba;
+ QTest::newRow("a.insert(0, ba)") << a << baC << 0 << (ba + a);
+ QTest::newRow("a.insert(1, null)") << a << nullC << 1 << a;
+ QTest::newRow("a.insert(1, empty)") << a << emptyC << 1 << a;
+ QTest::newRow("a.insert(1, b)") << a << bC << 1 << ab;
+ QTest::newRow("a.insert(1, ba)") << a << baC << 1 << (a + ba);
+ QTest::newRow("ba.insert(1, a)") << ba << aC << 1 << (ba + a);
+ QTest::newRow("ba.insert(2, b)") << ba << bC << 2 << (ba + b);
+}
+
+void tst_QString::insert_special_cases()
{
QString a;
@@ -2097,14 +2449,37 @@ void tst_QString::insert()
QCOMPARE(a.insert(0, QLatin1String("a")), QString("aMontreal"));
}
-void tst_QString::append()
+void tst_QString::append_data(bool emptyIsNoop)
{
- {
- QString a;
- a = "<>ABCABCABCABC";
- QCOMPARE(a.append(">"),QString("<>ABCABCABCABC>"));
- }
+ QTest::addColumn<QString>("s");
+ QTest::addColumn<CharStarContainer>("arg");
+ QTest::addColumn<QString>("expected");
+
+ const CharStarContainer nullC;
+ const CharStarContainer emptyC("");
+ const CharStarContainer aC("a");
+ const CharStarContainer bC("b");
+ //const CharStarContainer abC("ab");
+ const QString null;
+ const QString empty("");
+ const QString a("a");
+ //const QString b("b");
+ const QString ab("ab");
+
+ QTest::newRow("null + null") << null << nullC << null;
+ QTest::newRow("null + empty") << null << emptyC << (emptyIsNoop ? null : empty);
+ QTest::newRow("null + a") << null << aC << a;
+ QTest::newRow("empty + null") << empty << nullC << empty;
+ QTest::newRow("empty + empty") << empty << emptyC << empty;
+ QTest::newRow("empty + a") << empty << aC << a;
+ QTest::newRow("a + null") << a << nullC << a;
+ QTest::newRow("a + empty") << a << emptyC << a;
+ QTest::newRow("a + b") << a << bC << ab;
+}
+
+void tst_QString::append_special_cases()
+{
{
QString a;
static const QChar unicode[] = { 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!' };
@@ -2124,7 +2499,7 @@ void tst_QString::append()
}
}
-void tst_QString::append_bytearray_data()
+void tst_QString::append_bytearray_special_cases_data()
{
QTest::addColumn<QString>("str" );
QTest::addColumn<QByteArray>("ba" );
@@ -2158,7 +2533,7 @@ void tst_QString::append_bytearray_data()
QTest::newRow( "nonAsciiByteArray2") << QString() << QByteArray("\xc3\xa9") << QString::fromUtf8("\xc3\xa9");
}
-void tst_QString::append_bytearray()
+void tst_QString::append_bytearray_special_cases()
{
{
QFETCH( QString, str );
@@ -2176,22 +2551,19 @@ void tst_QString::append_bytearray()
QTEST( str, "res" );
}
+}
- QFETCH( QByteArray, ba );
- if (ba.constData()[ba.length()] == '\0') {
- QFETCH( QString, str );
-
- str.append(ba.constData());
- QTEST( str, "res" );
- }
+void tst_QString::operator_pluseq_data(bool emptyIsNoop)
+{
+ append_data(emptyIsNoop);
}
-void tst_QString::operator_pluseq_bytearray_data()
+void tst_QString::operator_pluseq_bytearray_special_cases_data()
{
- append_bytearray_data();
+ append_bytearray_special_cases_data();
}
-void tst_QString::operator_pluseq_bytearray()
+void tst_QString::operator_pluseq_bytearray_special_cases()
{
{
QFETCH( QString, str );
@@ -2209,14 +2581,6 @@ void tst_QString::operator_pluseq_bytearray()
QTEST( str, "res" );
}
-
- QFETCH( QByteArray, ba );
- if (ba.constData()[ba.length()] == '\0') {
- QFETCH( QString, str );
-
- str += ba.constData();
- QTEST( str, "res" );
- }
}
void tst_QString::operator_eqeq_bytearray_data()
@@ -2231,11 +2595,6 @@ void tst_QString::operator_eqeq_bytearray()
QVERIFY(expected == src);
QVERIFY(!(expected != src));
-
- if (src.constData()[src.length()] == '\0') {
- QVERIFY(expected == src.constData());
- QVERIFY(!(expected != src.constData()));
- }
}
void tst_QString::swap()
@@ -2248,14 +2607,37 @@ void tst_QString::swap()
QCOMPARE(s2,QLatin1String("s1"));
}
-void tst_QString::prepend()
+void tst_QString::prepend_data(bool emptyIsNoop)
{
- QString a;
- a = "<>ABCABCABCABC>";
- QCOMPARE(a.prepend("-"),(QString)"-<>ABCABCABCABC>");
+ QTest::addColumn<QString>("s");
+ QTest::addColumn<CharStarContainer>("arg");
+ QTest::addColumn<QString>("expected");
+
+ const CharStarContainer nullC;
+ const CharStarContainer emptyC("");
+ const CharStarContainer aC("a");
+ const CharStarContainer bC("b");
+ const CharStarContainer baC("ba");
+
+ const QString null;
+ const QString empty("");
+ const QString a("a");
+ //const QString b("b");
+ const QString ba("ba");
+
+ QTest::newRow("null.prepend(null)") << null << nullC << null;
+ QTest::newRow("null.prepend(empty)") << null << emptyC << (emptyIsNoop ? null : empty);
+ QTest::newRow("null.prepend(a)") << null << aC << a;
+ QTest::newRow("empty.prepend(null)") << empty << nullC << empty;
+ QTest::newRow("empty.prepend(empty)") << empty << emptyC << empty;
+ QTest::newRow("empty.prepend(a)") << empty << aC << a;
+ QTest::newRow("a.prepend(null)") << a << nullC << a;
+ QTest::newRow("a.prepend(empty)") << a << emptyC << a;
+ QTest::newRow("a.prepend(b)") << a << bC << ba;
+ QTest::newRow("a.prepend(ba)") << a << baC << (ba + a);
}
-void tst_QString::prepend_bytearray_data()
+void tst_QString::prepend_bytearray_special_cases_data()
{
QTest::addColumn<QString>("str" );
QTest::addColumn<QByteArray>("ba" );
@@ -2270,7 +2652,7 @@ void tst_QString::prepend_bytearray_data()
// byte array with only a 0
ba.resize( 1 );
ba[0] = 0;
- QTest::newRow( "emptyString" ) << QString("foobar ") << ba << QString("foobar ");
+ QTest::newRow( "emptyString" ) << QString("foobar ") << ba << QStringLiteral("\0foobar ");
// empty byte array
ba.resize( 0 );
@@ -2281,7 +2663,7 @@ void tst_QString::prepend_bytearray_data()
QTest::newRow( "nonAsciiByteArray2") << QString() << QByteArray("\xc3\xa9") << QString::fromUtf8("\xc3\xa9");
}
-void tst_QString::prepend_bytearray()
+void tst_QString::prepend_bytearray_special_cases()
{
{
QFETCH( QString, str );
@@ -2300,14 +2682,6 @@ void tst_QString::prepend_bytearray()
QTEST( str, "res" );
}
-
- QFETCH( QByteArray, ba );
- if (ba.constData()[ba.length()] == '\0') {
- QFETCH( QString, str );
-
- str.prepend(ba.constData());
- QTEST( str, "res" );
- }
}
void tst_QString::replace_uint_uint()
@@ -3697,6 +4071,12 @@ void tst_QString::nullFromUtf8()
a = QString::fromUtf8("");
QVERIFY(!a.isNull());
QVERIFY(a.isEmpty());
+ a = QString::fromUtf8(QByteArray());
+ QVERIFY(a.isNull());
+ QVERIFY(a.isEmpty());
+ a = QString::fromUtf8(QByteArray(""));
+ QVERIFY(!a.isNull());
+ QVERIFY(a.isEmpty());
}
void tst_QString::fromLocal8Bit_data()
@@ -3779,6 +4159,23 @@ void tst_QString::local8Bit()
QCOMPARE(local8Bit.toLocal8Bit(), QByteArray(result));
}
+void tst_QString::nullFromLocal8Bit()
+{
+ QString a;
+ a = QString::fromLocal8Bit(0);
+ QVERIFY(a.isNull());
+ QVERIFY(a.isEmpty());
+ a = QString::fromLocal8Bit("");
+ QVERIFY(!a.isNull());
+ QVERIFY(a.isEmpty());
+ a = QString::fromLocal8Bit(QByteArray());
+ QVERIFY(a.isNull());
+ QVERIFY(a.isEmpty());
+ a = QString::fromLocal8Bit(QByteArray(""));
+ QVERIFY(!a.isNull());
+ QVERIFY(a.isEmpty());
+}
+
void tst_QString::stringRef_local8Bit_data()
{
local8Bit_data();
@@ -3945,6 +4342,12 @@ void tst_QString::fromLatin1()
a = QString::fromLatin1( "" );
QVERIFY( !a.isNull() );
QVERIFY( a.isEmpty() );
+ a = QString::fromLatin1(QByteArray());
+ QVERIFY(a.isNull());
+ QVERIFY(a.isEmpty());
+ a = QString::fromLatin1(QByteArray(""));
+ QVERIFY(!a.isNull());
+ QVERIFY(a.isEmpty());
a = QString::fromLatin1(0, 0);
QVERIFY(a.isNull());
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/data/GraphemeBreakTest.txt b/tests/auto/corelib/tools/qtextboundaryfinder/data/GraphemeBreakTest.txt
index 88a98e7127..d39f2c760a 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/data/GraphemeBreakTest.txt
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/data/GraphemeBreakTest.txt
@@ -1,5 +1,5 @@
-# GraphemeBreakTest-6.3.0.txt
-# Date: 2012-12-20, 22:18:29 GMT [MD]
+# GraphemeBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:39 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2013 Unicode, Inc.
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/data/LineBreakTest.txt b/tests/auto/corelib/tools/qtextboundaryfinder/data/LineBreakTest.txt
index 339a43b7d2..f06917bb77 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/data/LineBreakTest.txt
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/data/LineBreakTest.txt
@@ -1,8 +1,8 @@
-# LineBreakTest-6.3.0.txt
-# Date: 2012-12-20, 22:18:30 GMT [MD]
+# LineBreakTest-7.0.0.txt
+# Date: 2014-02-19, 15:51:25 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/data/SentenceBreakTest.txt b/tests/auto/corelib/tools/qtextboundaryfinder/data/SentenceBreakTest.txt
index eeba36c0e5..638b22a378 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/data/SentenceBreakTest.txt
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/data/SentenceBreakTest.txt
@@ -1,5 +1,5 @@
-# SentenceBreakTest-6.3.0.txt
-# Date: 2012-12-20, 22:18:42 GMT [MD]
+# SentenceBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:53 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2013 Unicode, Inc.
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/data/WordBreakTest.txt b/tests/auto/corelib/tools/qtextboundaryfinder/data/WordBreakTest.txt
index 953ee2b861..1f812f63bf 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/data/WordBreakTest.txt
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/data/WordBreakTest.txt
@@ -1,5 +1,5 @@
-# WordBreakTest-6.3.0.txt
-# Date: 2013-07-05, 14:09:03 GMT [MD]
+# WordBreakTest-7.0.0.txt
+# Date: 2013-11-27, 09:54:53 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2013 Unicode, Inc.
diff --git a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp
index 40917eebea..719daad3b6 100644
--- a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp
+++ b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp
@@ -47,10 +47,12 @@ private slots:
void appendCausingRealloc();
void resize();
void realloc();
+ void reverseIterators();
void count();
void first();
void last();
void squeeze();
+ void operators();
void indexOf();
void lastIndexOf();
void contains();
@@ -562,6 +564,21 @@ void tst_QVarLengthArray::realloc()
QVERIFY(reallocTestProceed);
}
+void tst_QVarLengthArray::reverseIterators()
+{
+ QVarLengthArray<int> v;
+ v << 1 << 2 << 3 << 4;
+ QVarLengthArray<int> vr = v;
+ std::reverse(vr.begin(), vr.end());
+ const QVarLengthArray<int> &cvr = vr;
+ QVERIFY(std::equal(v.begin(), v.end(), vr.rbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), vr.crbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), cvr.rbegin()));
+ QVERIFY(std::equal(vr.rbegin(), vr.rend(), v.begin()));
+ QVERIFY(std::equal(vr.crbegin(), vr.crend(), v.begin()));
+ QVERIFY(std::equal(cvr.rbegin(), cvr.rend(), v.begin()));
+}
+
void tst_QVarLengthArray::count()
{
// tests size(), count() and length(), since they're the same thing
@@ -690,6 +707,49 @@ void tst_QVarLengthArray::squeeze()
QCOMPARE(list.capacity(), sizeOnHeap);
}
+void tst_QVarLengthArray::operators()
+{
+ QVarLengthArray<QString> myvla;
+ myvla << "A" << "B" << "C";
+ QVarLengthArray<QString> myvlatwo;
+ myvlatwo << "D" << "E" << "F";
+ QVarLengthArray<QString> combined;
+ combined << "A" << "B" << "C" << "D" << "E" << "F";
+
+ // !=
+ QVERIFY(myvla != myvlatwo);
+
+ // +=: not provided, emulate
+ //myvla += myvlatwo;
+ Q_FOREACH (const QString &s, myvlatwo)
+ myvla.push_back(s);
+ QCOMPARE(myvla, combined);
+
+ // ==
+ QVERIFY(myvla == combined);
+
+ // <, >, <=, >=
+ QVERIFY(!(myvla < combined));
+ QVERIFY(!(myvla > combined));
+ QVERIFY( myvla <= combined);
+ QVERIFY( myvla >= combined);
+ combined.push_back("G");
+ QVERIFY( myvla < combined);
+ QVERIFY(!(myvla > combined));
+ QVERIFY( myvla <= combined);
+ QVERIFY(!(myvla >= combined));
+ QVERIFY(combined > myvla);
+ QVERIFY(combined >= myvla);
+
+ // []
+ QCOMPARE(myvla[0], QLatin1String("A"));
+ QCOMPARE(myvla[1], QLatin1String("B"));
+ QCOMPARE(myvla[2], QLatin1String("C"));
+ QCOMPARE(myvla[3], QLatin1String("D"));
+ QCOMPARE(myvla[4], QLatin1String("E"));
+ QCOMPARE(myvla[5], QLatin1String("F"));
+}
+
void tst_QVarLengthArray::indexOf()
{
QVarLengthArray<QString> myvec;
@@ -780,6 +840,7 @@ void tst_QVarLengthArray::initializeList()
T val3(101);
T val4(114);
+ // QVarLengthArray(std::initializer_list<>)
QVarLengthArray<T> v1 {val1, val2, val3};
QCOMPARE(v1, QVarLengthArray<T>() << val1 << val2 << val3);
QCOMPARE(v1, (QVarLengthArray<T> {val1, val2, val3}));
@@ -791,6 +852,25 @@ void tst_QVarLengthArray::initializeList()
QVarLengthArray<T> v4({});
QCOMPARE(v4.size(), 0);
+
+ // operator=(std::initializer_list<>)
+
+ QVarLengthArray<T> v5({val2, val1});
+ v1 = { val1, val2 }; // make array smaller
+ v4 = { val1, val2 }; // make array bigger
+ v5 = { val1, val2 }; // same size
+ QCOMPARE(v1, QVarLengthArray<T>() << val1 << val2);
+ QCOMPARE(v4, v1);
+ QCOMPARE(v5, v1);
+
+ QVarLengthArray<T, 1> v6 = { val1 };
+ v6 = { val1, val2 }; // force allocation on heap
+ QCOMPARE(v6.size(), 2);
+ QCOMPARE(v6.first(), val1);
+ QCOMPARE(v6.last(), val2);
+
+ v6 = {}; // assign empty
+ QCOMPARE(v6.size(), 0);
#else
QSKIP("This tests requires a compiler that supports initializer lists.");
#endif
diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp
index 69da6e450e..67296054c9 100644
--- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp
+++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp
@@ -123,6 +123,13 @@ struct Custom {
return i == other.i;
}
+ bool operator<(const Custom &other) const
+ {
+ check(&other);
+ check(this);
+ return i < other.i;
+ }
+
Custom &operator=(const Custom &other)
{
check(&other);
@@ -241,6 +248,7 @@ private slots:
void resizeComplex_data() const;
void resizeComplex() const;
void resizeCtorAndDtor() const;
+ void reverseIterators() const;
void sizeInt() const;
void sizeMovable() const;
void sizeCustom() const;
@@ -1907,6 +1915,21 @@ void tst_QVector::resizeCtorAndDtor() const
QCOMPARE(Custom::counter.loadAcquire(), items);
}
+void tst_QVector::reverseIterators() const
+{
+ QVector<int> v;
+ v << 1 << 2 << 3 << 4;
+ QVector<int> vr = v;
+ std::reverse(vr.begin(), vr.end());
+ const QVector<int> &cvr = vr;
+ QVERIFY(std::equal(v.begin(), v.end(), vr.rbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), vr.crbegin()));
+ QVERIFY(std::equal(v.begin(), v.end(), cvr.rbegin()));
+ QVERIFY(std::equal(vr.rbegin(), vr.rend(), v.begin()));
+ QVERIFY(std::equal(vr.crbegin(), vr.crend(), v.begin()));
+ QVERIFY(std::equal(cvr.rbegin(), cvr.rend(), v.begin()));
+}
+
template<typename T>
void tst_QVector::size() const
{
@@ -2076,6 +2099,19 @@ void tst_QVector::testOperators() const
// ==
QVERIFY(myvec == combined);
+ // <, >, <=, >=
+ QVERIFY(!(myvec < combined));
+ QVERIFY(!(myvec > combined));
+ QVERIFY( myvec <= combined);
+ QVERIFY( myvec >= combined);
+ combined.push_back("G");
+ QVERIFY( myvec < combined);
+ QVERIFY(!(myvec > combined));
+ QVERIFY( myvec <= combined);
+ QVERIFY(!(myvec >= combined));
+ QVERIFY(combined > myvec);
+ QVERIFY(combined >= myvec);
+
// []
QCOMPARE(myvec[0], QLatin1String("A"));
QCOMPARE(myvec[1], QLatin1String("B"));
diff --git a/tests/auto/dbus/qdbusabstractadaptor/test/test.pro b/tests/auto/dbus/qdbusabstractadaptor/test/test.pro
index 3d8f885437..d95fa941f0 100644
--- a/tests/auto/dbus/qdbusabstractadaptor/test/test.pro
+++ b/tests/auto/dbus/qdbusabstractadaptor/test/test.pro
@@ -6,5 +6,3 @@ DESTDIR = ./
QT = core core-private dbus testlib
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusabstractinterface/test/test.pro b/tests/auto/dbus/qdbusabstractinterface/test/test.pro
index afd101455e..a8cc4c2b38 100644
--- a/tests/auto/dbus/qdbusabstractinterface/test/test.pro
+++ b/tests/auto/dbus/qdbusabstractinterface/test/test.pro
@@ -11,5 +11,3 @@ DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
DBUS_INTERFACES = ../org.qtproject.QtDBus.Pinger.xml
QDBUSXML2CPP_INTERFACE_HEADER_FLAGS += -i ../interface.h
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusconnection/qdbusconnection.pro b/tests/auto/dbus/qdbusconnection/qdbusconnection.pro
index 9616607fd9..2fd62a234b 100644
--- a/tests/auto/dbus/qdbusconnection/qdbusconnection.pro
+++ b/tests/auto/dbus/qdbusconnection/qdbusconnection.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusconnection
QT = core dbus testlib
SOURCES += tst_qdbusconnection.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbuscontext/qdbuscontext.pro b/tests/auto/dbus/qdbuscontext/qdbuscontext.pro
index 3477f8a41f..a426c4cfd1 100644
--- a/tests/auto/dbus/qdbuscontext/qdbuscontext.pro
+++ b/tests/auto/dbus/qdbuscontext/qdbuscontext.pro
@@ -4,4 +4,3 @@ QT = core dbus testlib
SOURCES += tst_qdbuscontext.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusinterface/test/test.pro b/tests/auto/dbus/qdbusinterface/test/test.pro
index 70e631de9c..170b555ee7 100644
--- a/tests/auto/dbus/qdbusinterface/test/test.pro
+++ b/tests/auto/dbus/qdbusinterface/test/test.pro
@@ -6,5 +6,3 @@ DESTDIR = ./
QT = core core-private dbus testlib
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbuslocalcalls/qdbuslocalcalls.pro b/tests/auto/dbus/qdbuslocalcalls/qdbuslocalcalls.pro
index 79ad5763e0..cbe3e89a16 100644
--- a/tests/auto/dbus/qdbuslocalcalls/qdbuslocalcalls.pro
+++ b/tests/auto/dbus/qdbuslocalcalls/qdbuslocalcalls.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbuslocalcalls
QT = core dbus testlib
SOURCES += tst_qdbuslocalcalls.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusmarshall/test/test.pro b/tests/auto/dbus/qdbusmarshall/test/test.pro
index 4999080453..b0656231d2 100644
--- a/tests/auto/dbus/qdbusmarshall/test/test.pro
+++ b/tests/auto/dbus/qdbusmarshall/test/test.pro
@@ -13,5 +13,3 @@ contains(QT_CONFIG, dbus-linked) {
SOURCES += ../../../../../src/dbus/qdbus_symbols.cpp
}
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp b/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
index 76e740dc5f..11c292db91 100644
--- a/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
+++ b/tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp
@@ -874,7 +874,7 @@ void tst_QDBusMarshall::sendSignalErrors()
"signalName");
msg << QVariant::fromValue(QDBusObjectPath());
- QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments");
+ QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal to service \"\" path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments");
QVERIFY(!con.send(msg));
msg.setArguments(QVariantList());
@@ -884,19 +884,19 @@ void tst_QDBusMarshall::sendSignalErrors()
path.setPath("abc");
msg << QVariant::fromValue(path);
- QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments");
+ QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal to service \"\" path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid object path passed in arguments");
QVERIFY(!con.send(msg));
QDBusSignature sig;
msg.setArguments(QVariantList() << QVariant::fromValue(sig));
- QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments");
+ QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal to service \"\" path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments");
QVERIFY(!con.send(msg));
QTest::ignoreMessage(QtWarningMsg, "QDBusSignature: invalid signature \"a\"");
sig.setSignature("a");
msg.setArguments(QVariantList());
msg << QVariant::fromValue(sig);
- QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments");
+ QTest::ignoreMessage(QtWarningMsg, "QDBusConnection: error: could not send signal to service \"\" path \"/foo\" interface \"local.interfaceName\" member \"signalName\": Marshalling failed: Invalid signature passed in arguments");
QVERIFY(!con.send(msg));
}
diff --git a/tests/auto/dbus/qdbusmetaobject/qdbusmetaobject.pro b/tests/auto/dbus/qdbusmetaobject/qdbusmetaobject.pro
index ca567605dd..c0b38cf478 100644
--- a/tests/auto/dbus/qdbusmetaobject/qdbusmetaobject.pro
+++ b/tests/auto/dbus/qdbusmetaobject/qdbusmetaobject.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusmetaobject
QT = core dbus-private testlib
SOURCES += tst_qdbusmetaobject.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusmetatype/qdbusmetatype.pro b/tests/auto/dbus/qdbusmetatype/qdbusmetatype.pro
index 47b9c40aea..aef9bc73cb 100644
--- a/tests/auto/dbus/qdbusmetatype/qdbusmetatype.pro
+++ b/tests/auto/dbus/qdbusmetatype/qdbusmetatype.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusmetatype
QT = core dbus testlib
SOURCES += tst_qdbusmetatype.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbuspendingcall/qdbuspendingcall.pro b/tests/auto/dbus/qdbuspendingcall/qdbuspendingcall.pro
index 7f11422e1a..7b5f867798 100644
--- a/tests/auto/dbus/qdbuspendingcall/qdbuspendingcall.pro
+++ b/tests/auto/dbus/qdbuspendingcall/qdbuspendingcall.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbuspendingcall
QT = core dbus testlib
SOURCES += tst_qdbuspendingcall.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbuspendingreply/qdbuspendingreply.pro b/tests/auto/dbus/qdbuspendingreply/qdbuspendingreply.pro
index b0ba53fb8e..d6b9e71084 100644
--- a/tests/auto/dbus/qdbuspendingreply/qdbuspendingreply.pro
+++ b/tests/auto/dbus/qdbuspendingreply/qdbuspendingreply.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbuspendingreply
QT = core dbus testlib
SOURCES += tst_qdbuspendingreply.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusreply/qdbusreply.pro b/tests/auto/dbus/qdbusreply/qdbusreply.pro
index decf8462ad..0ffb35e461 100644
--- a/tests/auto/dbus/qdbusreply/qdbusreply.pro
+++ b/tests/auto/dbus/qdbusreply/qdbusreply.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusreply
QT = core dbus testlib
SOURCES += tst_qdbusreply.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusservicewatcher/qdbusservicewatcher.pro b/tests/auto/dbus/qdbusservicewatcher/qdbusservicewatcher.pro
index 0b3bcbb338..82a0f3bb7e 100644
--- a/tests/auto/dbus/qdbusservicewatcher/qdbusservicewatcher.pro
+++ b/tests/auto/dbus/qdbusservicewatcher/qdbusservicewatcher.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusservicewatcher
QT = core dbus testlib
SOURCES += tst_qdbusservicewatcher.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/dbus/qdbusthreading/qdbusthreading.pro b/tests/auto/dbus/qdbusthreading/qdbusthreading.pro
index 639cf4df31..e50804336b 100644
--- a/tests/auto/dbus/qdbusthreading/qdbusthreading.pro
+++ b/tests/auto/dbus/qdbusthreading/qdbusthreading.pro
@@ -3,5 +3,3 @@ TARGET = tst_qdbusthreading
QT = core dbus testlib
SOURCES += tst_qdbusthreading.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-
-macx:CONFIG += insignificant_test # QTBUG-37469
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp
index decd4ef931..660809fb16 100644
--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
+++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
@@ -178,6 +178,8 @@ private slots:
void cleanupFunctions();
+ void devicePixelRatio();
+
private:
const QString m_prefix;
};
@@ -2478,6 +2480,7 @@ void tst_QImage::inplaceConversion_data()
QTest::addColumn<QImage::Format>("format");
QTest::addColumn<QImage::Format>("dest_format");
+ QTest::newRow("Format_RGB32 -> RGB16") << QImage::Format_RGB32 << QImage::Format_RGB16;
QTest::newRow("Format_ARGB32 -> Format_RGBA8888") << QImage::Format_ARGB32 << QImage::Format_RGBA8888;
QTest::newRow("Format_RGB888 -> Format_ARGB6666_Premultiplied") << QImage::Format_RGB888 << QImage::Format_ARGB6666_Premultiplied;
QTest::newRow("Format_RGB16 -> Format_RGB555") << QImage::Format_RGB16 << QImage::Format_RGB555;
@@ -2516,16 +2519,21 @@ void tst_QImage::inplaceConversion()
QCOMPARE(imageConverted.constScanLine(0), originalPtr);
{
- // Test attempted inplace conversion of images created on existing, readonly buffer
+ // Test attempted inplace conversion of images created on existing buffer
static const quint32 readOnlyData[] = { 0x00010203U, 0x04050607U, 0x08091011U, 0x12131415U };
+ quint32 readWriteData[] = { 0x00010203U, 0x04050607U, 0x08091011U, 0x12131415U };
QImage roImage((const uchar *)readOnlyData, 2, 2, format);
- QImage inplaceConverted = std::move(roImage).convertToFormat(dest_format);
+ QImage roInplaceConverted = std::move(roImage).convertToFormat(dest_format);
+
+ QImage rwImage((uchar *)readWriteData, 2, 2, format);
+ QImage rwInplaceConverted = std::move(rwImage).convertToFormat(dest_format);
QImage roImage2((const uchar *)readOnlyData, 2, 2, format);
QImage normalConverted = roImage2.convertToFormat(dest_format);
- QCOMPARE(normalConverted, inplaceConverted);
+ QCOMPARE(normalConverted, roInplaceConverted);
+ QCOMPARE(normalConverted, rwInplaceConverted);
}
#endif
}
@@ -2730,5 +2738,32 @@ void tst_QImage::cleanupFunctions()
}
+// test image devicePixelRatio setting and detaching
+void tst_QImage::devicePixelRatio()
+{
+ // create image
+ QImage a(64, 64, QImage::Format_ARGB32);
+ a.fill(Qt::white);
+ QCOMPARE(a.devicePixelRatio(), qreal(1.0));
+ QCOMPARE(a.isDetached(), true);
+
+ // copy image
+ QImage b = a;
+ QCOMPARE(b.devicePixelRatio(), qreal(1.0));
+ QCOMPARE(a.isDetached(), false);
+ QCOMPARE(b.isDetached(), false);
+
+ // set devicePixelRatio to the current value: does not detach
+ a.setDevicePixelRatio(qreal(1.0));
+ QCOMPARE(a.isDetached(), false);
+ QCOMPARE(b.isDetached(), false);
+
+ // set devicePixelRatio to a new value: may detach (currently
+ // does, but we may want to avoid the data copy the future)
+ a.setDevicePixelRatio(qreal(2.0));
+ QCOMPARE(a.devicePixelRatio(), qreal(2.0));
+ QCOMPARE(b.devicePixelRatio(), qreal(1.0));
+}
+
QTEST_GUILESS_MAIN(tst_QImage)
#include "tst_qimage.moc"
diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
index 0fda8482ce..58cc5824bd 100644
--- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp
@@ -164,6 +164,7 @@ private slots:
void detachOnLoad_QTBUG29639();
void copyOnNonAlignedBoundary();
+ void devicePixelRatio();
private:
const QString m_prefix;
@@ -1543,5 +1544,32 @@ void tst_QPixmap::copyOnNonAlignedBoundary()
QPixmap pm2 = pm1.copy(QRect(5, 0, 3, 2)); // When copying second line: 2 bytes too many are read which might cause an access violation.
}
+// test pixmap devicePixelRatio setting and detaching
+void tst_QPixmap::devicePixelRatio()
+{
+ // create pixmap
+ QPixmap a(64, 64);
+ a.fill(Qt::white);
+ QCOMPARE(a.devicePixelRatio(), qreal(1.0));
+ QCOMPARE(a.isDetached(), true);
+
+ // copy pixmap
+ QPixmap b = a;
+ QCOMPARE(b.devicePixelRatio(), qreal(1.0));
+ QCOMPARE(a.isDetached(), false);
+ QCOMPARE(b.isDetached(), false);
+
+ // set devicePixelRatio to the current value: does not detach
+ a.setDevicePixelRatio(qreal(1.0));
+ QCOMPARE(a.isDetached(), false);
+ QCOMPARE(b.isDetached(), false);
+
+ // set devicePixelRatio to a new value: may detach (currently
+ // does, but we may want to avoid the data copy the future)
+ a.setDevicePixelRatio(qreal(2.0));
+ QCOMPARE(a.devicePixelRatio(), qreal(2.0));
+ QCOMPARE(b.devicePixelRatio(), qreal(1.0));
+}
+
QTEST_MAIN(tst_QPixmap)
#include "tst_qpixmap.moc"
diff --git a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
index 2c38e4c111..ec7af97f07 100644
--- a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
+++ b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
@@ -141,6 +141,9 @@ private slots:
void rotationTo_data();
void rotationTo();
+ void fromDirection_data();
+ void fromDirection();
+
void fromEulerAngles_data();
void fromEulerAngles();
@@ -989,6 +992,97 @@ void tst_QQuaternion::rotationTo()
QVERIFY(myFuzzyCompare(vec2, from));
}
+static QByteArray testnameForAxis(const QVector3D &axis)
+{
+ QByteArray testname;
+ if (axis == QVector3D()) {
+ testname = "null";
+ } else {
+ if (axis.x()) {
+ testname += axis.x() < 0 ? "-" : "+";
+ testname += "X";
+ }
+ if (axis.y()) {
+ testname += axis.y() < 0 ? "-" : "+";
+ testname += "Y";
+ }
+ if (axis.z()) {
+ testname += axis.z() < 0 ? "-" : "+";
+ testname += "Z";
+ }
+ }
+ return testname;
+}
+
+// Test quaternion convertion to and from orthonormal axes.
+void tst_QQuaternion::fromDirection_data()
+{
+ QTest::addColumn<QVector3D>("direction");
+ QTest::addColumn<QVector3D>("up");
+
+ QList<QQuaternion> orientations;
+ orientations << QQuaternion();
+ for (int angle = 45; angle <= 360; angle += 45) {
+ orientations << QQuaternion::fromAxisAndAngle(QVector3D(1, 0, 0), angle)
+ << QQuaternion::fromAxisAndAngle(QVector3D(0, 1, 0), angle)
+ << QQuaternion::fromAxisAndAngle(QVector3D(0, 0, 1), angle)
+ << QQuaternion::fromAxisAndAngle(QVector3D(1, 0, 0), angle)
+ * QQuaternion::fromAxisAndAngle(QVector3D(0, 1, 0), angle)
+ * QQuaternion::fromAxisAndAngle(QVector3D(0, 0, 1), angle);
+ }
+
+ // othonormal up and dir
+ foreach (const QQuaternion &q, orientations) {
+ QVector3D xAxis, yAxis, zAxis;
+ q.getAxes(&xAxis, &yAxis, &zAxis);
+
+ QTest::newRow("dir: " + testnameForAxis(zAxis) + ", up: " + testnameForAxis(yAxis))
+ << zAxis * 10.0f << yAxis * 10.0f;
+ }
+
+ // collinear up and dir
+ QTest::newRow("dir: +X, up: +X") << QVector3D(10.0f, 0.0f, 0.0f) << QVector3D(10.0f, 0.0f, 0.0f);
+ QTest::newRow("dir: +X, up: -X") << QVector3D(10.0f, 0.0f, 0.0f) << QVector3D(-10.0f, 0.0f, 0.0f);
+ QTest::newRow("dir: +Y, up: +Y") << QVector3D(0.0f, 10.0f, 0.0f) << QVector3D(0.0f, 10.0f, 0.0f);
+ QTest::newRow("dir: +Y, up: -Y") << QVector3D(0.0f, 10.0f, 0.0f) << QVector3D(0.0f, -10.0f, 0.0f);
+ QTest::newRow("dir: +Z, up: +Z") << QVector3D(0.0f, 0.0f, 10.0f) << QVector3D(0.0f, 0.0f, 10.0f);
+ QTest::newRow("dir: +Z, up: -Z") << QVector3D(0.0f, 0.0f, 10.0f) << QVector3D(0.0f, 0.0f, -10.0f);
+ QTest::newRow("dir: +X+Y+Z, up: +X+Y+Z") << QVector3D(10.0f, 10.0f, 10.0f) << QVector3D(10.0f, 10.0f, 10.0f);
+ QTest::newRow("dir: +X+Y+Z, up: -X-Y-Z") << QVector3D(10.0f, 10.0f, 10.0f) << QVector3D(-10.0f, -10.0f, -10.0f);
+
+ // invalid up
+ foreach (const QQuaternion &q, orientations) {
+ QVector3D xAxis, yAxis, zAxis;
+ q.getAxes(&xAxis, &yAxis, &zAxis);
+
+ QTest::newRow("dir: " + testnameForAxis(zAxis) + ", up: null")
+ << zAxis * 10.0f << QVector3D();
+ }
+}
+void tst_QQuaternion::fromDirection()
+{
+ QFETCH(QVector3D, direction);
+ QFETCH(QVector3D, up);
+
+ QVector3D expextedZ(direction != QVector3D() ? direction.normalized() : QVector3D(0, 0, 1));
+ QVector3D expextedY(up.normalized());
+
+ QQuaternion result = QQuaternion::fromDirection(direction, up);
+ QVERIFY(myFuzzyCompare(result, result.normalized()));
+
+ QVector3D xAxis, yAxis, zAxis;
+ result.getAxes(&xAxis, &yAxis, &zAxis);
+
+ QVERIFY(myFuzzyCompare(zAxis, expextedZ));
+
+ if (!qFuzzyIsNull(QVector3D::crossProduct(expextedZ, expextedY).lengthSquared())) {
+ QVector3D expextedX(QVector3D::crossProduct(expextedY, expextedZ));
+
+ QVERIFY(myFuzzyCompare(yAxis, expextedY));
+ QVERIFY(myFuzzyCompare(xAxis, expextedX));
+ }
+}
+
// Test quaternion creation from an axis and an angle.
void tst_QQuaternion::fromEulerAngles_data()
{
diff --git a/tests/auto/gui/painting/qpainter/qpainter.pro b/tests/auto/gui/painting/qpainter/qpainter.pro
index 7e9d438e1b..e90b516ef2 100644
--- a/tests/auto/gui/painting/qpainter/qpainter.pro
+++ b/tests/auto/gui/painting/qpainter/qpainter.pro
@@ -2,7 +2,7 @@ CONFIG += testcase
CONFIG += parallel_test
TARGET = tst_qpainter
-QT += testlib
+QT += testlib gui-private core-private
qtHaveModule(widgets): QT += widgets widgets-private
SOURCES += tst_qpainter.cpp
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index f6167262a9..10b79fdd0f 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -53,6 +53,7 @@
#endif
#include <qpixmap.h>
+#include <private/qdrawhelper_p.h>
#include <qpainter.h>
#ifndef QT_NO_WIDGETS
@@ -125,8 +126,12 @@ private slots:
void fillRect3();
void fillRect4_data() { fillRect2_data(); }
void fillRect4();
+ void fillRectNonPremul_data();
void fillRectNonPremul();
+ void fillRectRGB30_data();
+ void fillRectRGB30();
+
void drawEllipse_data();
void drawEllipse();
void drawClippedEllipse_data();
@@ -291,6 +296,10 @@ private slots:
void RasterOp_NotDestination();
void drawTextNoHinting();
+
+ void drawPolyline_data();
+ void drawPolyline();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -1241,22 +1250,87 @@ void tst_QPainter::fillRect4()
QCOMPARE(image, expected);
}
+void tst_QPainter::fillRectNonPremul_data()
+{
+ QTest::addColumn<QImage::Format>("format");
+ QTest::addColumn<uint>("color");
+
+ QTest::newRow("argb32 7f1f3f7f") << QImage::Format_ARGB32 << qRgba(31, 63, 127, 127);
+ QTest::newRow("rgba8888 7f1f3f7f") << QImage::Format_RGBA8888 << qRgba(31, 63, 127, 127);
+
+ QTest::newRow("argb32 3f1f3f7f") << QImage::Format_ARGB32 << qRgba(31, 63, 127, 63);
+ QTest::newRow("rgba8888 3f1f3f7f") << QImage::Format_RGBA8888 << qRgba(31, 63, 127, 63);
+
+ QTest::newRow("argb32 070375f4") << QImage::Format_ARGB32 << qRgba(3, 117, 244, 7);
+ QTest::newRow("rgba8888 070375f4") << QImage::Format_RGBA8888 << qRgba(3, 117, 244, 7);
+
+ QTest::newRow("argb32 0301fe0c") << QImage::Format_ARGB32 << qRgba(1, 254, 12, 3);
+ QTest::newRow("rgba8888 0301fe0c") << QImage::Format_RGBA8888 << qRgba(1, 254, 12, 3);
+
+ QTest::newRow("argb32 01804010") << QImage::Format_ARGB32 << qRgba(128, 64, 32, 1);
+ QTest::newRow("rgba8888 01804010") << QImage::Format_RGBA8888 << qRgba(128, 64, 32, 1);
+}
+
void tst_QPainter::fillRectNonPremul()
{
- QImage img1(1, 1, QImage::Format_ARGB32);
- QImage img2(1, 1, QImage::Format_RGBA8888);
+ QFETCH(QImage::Format, format);
+ QFETCH(uint, color);
- QPainter p1(&img1);
- QPainter p2(&img2);
+ QImage image(1, 1, format);
+ QRectF rect(0, 0, 1, 1);
+ // Fill with CompositionMode_SourceOver tests blend_color
+ image.fill(Qt::transparent);
+ QPainter painter(&image);
+ painter.fillRect(rect, QColor::fromRgba(color));
+ painter.end();
+
+ // Fill with CompositionMode_Source tests rectfill.
+ painter.begin(&image);
+ painter.setCompositionMode(QPainter::CompositionMode_Source);
+ painter.fillRect(rect, QColor::fromRgba(color));
+ painter.end();
+
+ QRgb p = image.pixel(0, 0);
+ QCOMPARE(qAlpha(p), qAlpha(color));
+ QVERIFY(qAbs(qRed(p)-qRed(color)) <= 1);
+ QVERIFY(qAbs(qGreen(p)-qGreen(color)) <= 1);
+ QVERIFY(qAbs(qBlue(p)-qBlue(color)) <= 1);
+}
+
+void tst_QPainter::fillRectRGB30_data()
+{
+ QTest::addColumn<uint>("color");
+
+ QTest::newRow("17|43|259") << (0xc0000000 | (17 << 20) | (43 << 10) | 259);
+ QTest::newRow("2|33|444") << (0xc0000000 | (2 << 20) | (33 << 10) | 444);
+ QTest::newRow("1000|1000|1000") << (0xc0000000 | (1000 << 20) | (1000 << 10) | 1000);
+}
+
+void tst_QPainter::fillRectRGB30()
+{
+ QFETCH(uint, color);
QRectF rect(0, 0, 1, 1);
- p1.fillRect(rect, qRgba(31, 63, 127, 127));
- p2.fillRect(rect, qRgba(31, 63, 127, 127));
- p1.end();
- p2.end();
+ // Fill with CompositionMode_SourceOver tests blend_color
+ QImage image1(1, 1, QImage::Format_A2BGR30_Premultiplied);
+ image1.fill(Qt::transparent);
+ QPainter painter(&image1);
+ painter.fillRect(rect, QColor::fromRgba64(qConvertA2rgb30ToRgb64<PixelOrderBGR>(color)));
+ painter.end();
+
+ uint pixel1 = ((const uint*)(image1.bits()))[0];
+ QCOMPARE(pixel1, color);
- QCOMPARE(img1.pixel(0, 0), img2.pixel(0,0));
+ // Fill with CompositionMode_Source tests rectfill.
+ QImage image2(1, 1, QImage::Format_RGB30);
+ painter.begin(&image2);
+ painter.setCompositionMode(QPainter::CompositionMode_Source);
+ painter.fillRect(rect, QColor::fromRgba64(qConvertA2rgb30ToRgb64<PixelOrderRGB>(color)));
+ painter.end();
+
+ uint pixel2 = ((const uint*)(image2.bits()))[0];
+ QCOMPARE(pixel2, color);
}
void tst_QPainter::drawPath_data()
@@ -2615,28 +2689,6 @@ void tst_QPainter::porterDuff_warning()
QVERIFY(qInstallMessageHandler(old) == porterDuff_warningChecker);
}
-class quint24
-{
-public:
- inline quint24(quint32 v)
- {
- data[0] = qBlue(v);
- data[1] = qGreen(v);
- data[2] = qRed(v);
- }
-
- inline operator quint32 ()
- {
- return qRgb(data[2], data[1], data[0]);
- }
-
- inline bool operator==(const quint24 &v) const {
- return (data[0] == v.data[0] && data[1] == v.data[1] && data[2] == v.data[2]);
- }
-
- uchar data[3];
-};
-
void tst_QPainter::drawhelper_blend_color()
{
QImage dest(32, 32, QImage::Format_ARGB8555_Premultiplied);
@@ -4060,10 +4112,10 @@ void tst_QPainter::extendedBlendModes()
QVERIFY(testCompositionMode(255, 255, 255, QPainter::CompositionMode_Plus, 0.3));
QVERIFY(testCompositionMode( 0, 0, 0, QPainter::CompositionMode_Plus, 0.3));
- QVERIFY(testCompositionMode(127, 128, 165, QPainter::CompositionMode_Plus, 0.3));
- QVERIFY(testCompositionMode(127, 0, 37, QPainter::CompositionMode_Plus, 0.3));
+ QVERIFY(testCompositionMode(126, 128, 165, QPainter::CompositionMode_Plus, 0.3));
+ QVERIFY(testCompositionMode(127, 0, 38, QPainter::CompositionMode_Plus, 0.3));
QVERIFY(testCompositionMode( 0, 127, 127, QPainter::CompositionMode_Plus, 0.3));
- QVERIFY(testCompositionMode(255, 0, 75, QPainter::CompositionMode_Plus, 0.3));
+ QVERIFY(testCompositionMode(255, 0, 76, QPainter::CompositionMode_Plus, 0.3));
QVERIFY(testCompositionMode( 0, 255, 255, QPainter::CompositionMode_Plus, 0.3));
QVERIFY(testCompositionMode(128, 128, 166, QPainter::CompositionMode_Plus, 0.3));
QVERIFY(testCompositionMode(186, 200, 255, QPainter::CompositionMode_Plus, 0.3));
@@ -4874,6 +4926,39 @@ void tst_QPainter::drawTextNoHinting()
QVERIFY(true);
}
+void tst_QPainter::drawPolyline_data()
+{
+ QTest::addColumn< QVector<QPointF> >("points");
+
+ QTest::newRow("basic") << (QVector<QPointF>() << QPointF(10, 10) << QPointF(20, 10) << QPointF(20, 20) << QPointF(10, 20));
+ QTest::newRow("clipped") << (QVector<QPointF>() << QPoint(-10, 100) << QPoint(-1, 100) << QPoint(-1, -2) << QPoint(100, -2) << QPoint(100, 40)); // QTBUG-31579
+ QTest::newRow("shortsegment") << (QVector<QPointF>() << QPoint(20, 100) << QPoint(20, 99) << QPoint(21, 99) << QPoint(21, 104)); // QTBUG-42398
+}
+
+void tst_QPainter::drawPolyline()
+{
+ QFETCH(QVector<QPointF>, points);
+ QImage images[2];
+
+ for (int r = 0; r < 2; r++) {
+ images[r] = QImage(150, 150, QImage::Format_ARGB32);
+ images[r].fill(Qt::transparent);
+ QPainter p(images + r);
+ QPen pen(Qt::red, 0, Qt::SolidLine, Qt::FlatCap);
+ p.setPen(pen);
+ QVERIFY(p.pen().isCosmetic());
+ if (r) {
+ for (int i = 0; i < points.count()-1; i++) {
+ p.drawLine(points.at(i), points.at(i+1));
+ }
+ } else {
+ p.drawPolyline(points);
+ }
+ }
+
+ QCOMPARE(images[0], images[1]);
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"
diff --git a/tests/auto/gui/text/qtextdocument/test.css b/tests/auto/gui/text/qtextdocument/test.css
new file mode 100644
index 0000000000..16a2b90666
--- /dev/null
+++ b/tests/auto/gui/text/qtextdocument/test.css
@@ -0,0 +1,3 @@
+body {
+ font: normal 400 14px/1.2 Arial;
+}
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index c51d33487e..5e6b606d83 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -187,7 +187,7 @@ private slots:
void QTBUG28998_linkColor();
void textCursorUsageWithinContentsChange();
-
+ void cssInheritance();
private:
void backgroundImage_checkExpectedHtml(const QTextDocument &doc);
void buildRegExpData();
@@ -3006,6 +3006,37 @@ void tst_QTextDocument::QTBUG27354_spaceAndSoftSpace()
QPainter p(&image);
document.drawContents(&p, image.rect());
}
+ {
+ // If no p tag is specified it should not be inheriting it
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">p { line-height: 200% }</style></head><body>Foo<ul><li>First</li></ul></body></html>");
+ QTextBlock block = td.begin();
+ while (block.isValid()) {
+ QTextBlockFormat fmt = block.blockFormat();
+ QVERIFY(fmt.lineHeightType() == QTextBlockFormat::SingleHeight);
+ QVERIFY(fmt.lineHeight() == 0);
+ block = block.next();
+ }
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head></head><body><p>Foo</p><ul><li>First</li></ul></body></html>");
+ QList<double> originalMargins;
+ QTextBlock block = td.begin();
+ while (block.isValid()) {
+ originalMargins << block.blockFormat().topMargin();
+ block = block.next();
+ }
+ originalMargins[0] = 85;
+ td.setHtml("<html><head><style type=\"text/css\">body { margin-top: 85px; }</style></head><body><p>Foo</p><ul><li>First</li></ul></body></html>");
+ block = td.begin();
+ int count = 0;
+ while (block.isValid()) {
+ QTextBlockFormat fmt = block.blockFormat();
+ QCOMPARE(fmt.topMargin(), originalMargins.at(count++));
+ block = block.next();
+ }
+ }
}
class BaseDocument : public QTextDocument
@@ -3124,5 +3155,110 @@ void tst_QTextDocument::textCursorUsageWithinContentsChange()
QCOMPARE(handler.verticalMovementX, -1);
}
+void tst_QTextDocument::cssInheritance()
+{
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">body { line-height: 200% }</style></head><body>"
+ "<p>Foo</p><p>Bar</p><p>Baz</p></body></html>");
+ QTextBlock block = td.begin();
+ while (block.isValid()) {
+ QTextBlockFormat fmt = block.blockFormat();
+ QVERIFY(fmt.lineHeightType() == QTextBlockFormat::ProportionalHeight);
+ QVERIFY(fmt.lineHeight() == 200);
+ block = block.next();
+ }
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">body { line-height: 200% } p { line-height: 300% }</style></head><body>"
+ "<p style=\"line-height: 40px\">Foo</p><p>Bar</p><p>Baz</p></body></html>");
+ QTextBlock block = td.begin();
+ QTextBlockFormat fmt = block.blockFormat();
+ QVERIFY(fmt.lineHeightType() == QTextBlockFormat::FixedHeight);
+ QVERIFY(fmt.lineHeight() == 40);
+ block = block.next();
+ fmt = block.blockFormat();
+ QVERIFY(fmt.lineHeightType() == QTextBlockFormat::ProportionalHeight);
+ QVERIFY(fmt.lineHeight() == 300);
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">body { font-weight: bold; background-color: #ff0000 }</style></head><body>"
+ "<p>Foo</p><p>Bar</p><p>Baz</p></body></html>");
+ QTextBlock block = td.begin();
+ while (block.isValid()) {
+ QVERIFY(block.blockFormat().background() == QBrush());
+ QVERIFY(block.charFormat().font().bold());
+ block = block.next();
+ }
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">body { font-style: italic; font-weight: normal; }</style></head><body>"
+ "<table><tr><th>Foo</th></tr><tr><td>Bar</td></tr></table></body></html>");
+ QTextBlock block = td.begin();
+ // First is the table
+ QTextCharFormat fmt = block.charFormat();
+ QVERIFY(!fmt.font().bold());
+ QVERIFY(fmt.font().italic());
+ // Then the th
+ block = block.next();
+ fmt = block.charFormat();
+ QVERIFY(fmt.font().bold());
+ QVERIFY(fmt.font().italic());
+ // Then the td
+ block = block.next();
+ fmt = block.charFormat();
+ QVERIFY(!fmt.font().bold());
+ QVERIFY(fmt.font().italic());
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><style type=\"text/css\">b { font-style: italic; font-weight: normal; }</style></head><body>"
+ "<p>This should be <b>bold</b></p></body></html>");
+ QTextBlock block = td.begin();
+ // First is the p
+ QTextCharFormat fmt = block.charFormat();
+ QVERIFY(!fmt.font().bold());
+ QTextBlock::iterator it = block.begin();
+ // The non bold text is first
+ QTextFragment currentFragment = it.fragment();
+ QVERIFY(currentFragment.isValid());
+ fmt = currentFragment.charFormat();
+ QVERIFY(!fmt.font().bold());
+ ++it;
+ QVERIFY(!it.atEnd());
+ // Now check the "bold" text
+ currentFragment = it.fragment();
+ QVERIFY(currentFragment.isValid());
+ fmt = currentFragment.charFormat();
+ QVERIFY(!fmt.font().bold());
+ QVERIFY(fmt.font().italic());
+ }
+ {
+ QTextDocument td;
+ td.setHtml("<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"test.css\"></head><body>"
+ "<p>This should be <b>bold</b></p></body></html>");
+ QTextBlock block = td.begin();
+ // First is the p
+ QTextCharFormat fmt = block.charFormat();
+ QVERIFY(!fmt.font().bold());
+ QTextBlock::iterator it = block.begin();
+ // The non bold text is first
+ QTextFragment currentFragment = it.fragment();
+ QVERIFY(currentFragment.isValid());
+ fmt = currentFragment.charFormat();
+ QVERIFY(!fmt.font().bold());
+ ++it;
+ QVERIFY(!it.atEnd());
+ // Now check the bold text
+ currentFragment = it.fragment();
+ QVERIFY(currentFragment.isValid());
+ fmt = currentFragment.charFormat();
+ QVERIFY(fmt.font().bold());
+ }
+}
+
QTEST_MAIN(tst_QTextDocument)
#include "tst_qtextdocument.moc"
diff --git a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
index 0fb66c8cdc..f6bd09958e 100644
--- a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
+++ b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
@@ -841,13 +841,13 @@ void tst_QTextDocumentFragment::unorderedListEnumeration()
setHtml(QString::fromLatin1(html));
cursor.movePosition(QTextCursor::End);
QVERIFY(cursor.currentList());
- QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListCircle);
+ QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListDisc);
- const char html2[] = "<ul><ul><ul type=disc><li>Blah</li></ul></ul>";
+ const char html2[] = "<ul><ul><ul type=circle><li>Blah</li></ul></ul>";
setHtml(QString::fromLatin1(html2));
cursor.movePosition(QTextCursor::End);
QVERIFY(cursor.currentList());
- QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListDisc);
+ QVERIFY(cursor.currentList()->format().style() == QTextListFormat::ListCircle);
}
@@ -1378,8 +1378,8 @@ void tst_QTextDocumentFragment::html_listStart1()
{
// don't create a block for the <ul> element, even if there's some whitespace between
// it and the <li>
- const char html[] = "<ul> <li>list item</li><ul>";
- cursor.insertFragment(QTextDocumentFragment::fromHtml(QByteArray::fromRawData(html, sizeof(html) / sizeof(html[0]))));
+ const QString html = QStringLiteral("<ul> <li>list item</li><ul>");
+ cursor.insertFragment(QTextDocumentFragment::fromHtml(html));
QCOMPARE(doc->blockCount(), 1);
}
@@ -1387,8 +1387,8 @@ void tst_QTextDocumentFragment::html_listStart1()
void tst_QTextDocumentFragment::html_listStart2()
{
// unlike with html_listStart1 we want a block showing the 'buggy' text here
- const char html[] = "<ul>buggy, but text should appear<li>list item</li><ul>";
- cursor.insertFragment(QTextDocumentFragment::fromHtml(QByteArray::fromRawData(html, sizeof(html) / sizeof(html[0]))));
+ const QString html = QStringLiteral("<ul>buggy, but text should appear<li>list item</li><ul>");
+ cursor.insertFragment(QTextDocumentFragment::fromHtml(html));
QCOMPARE(doc->blockCount(), 2);
}
diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST
index 84ccb49e58..54dcff071e 100644
--- a/tests/auto/network/access/qnetworkreply/BLACKLIST
+++ b/tests/auto/network/access/qnetworkreply/BLACKLIST
@@ -1,7 +1,9 @@
[ioGetFromBuiltinHttp:http+limited]
osx
+ubuntu-14.04
[ioGetFromBuiltinHttp:https+limited]
osx
+ubuntu-14.04
[ioGetFromHttpBrokenServer:no-newline]
osx
[synchronousRequest:https]
diff --git a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
index e13c80c719..301a915dd6 100644
--- a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
+++ b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
@@ -67,8 +67,8 @@ private slots:
void tst_QDnsLookup::initTestCase()
{
QTest::addColumn<QString>("tld");
- QTest::newRow("normal") << ".test.macieira.org";
- QTest::newRow("idn") << ".alqualond\xc3\xab.test.macieira.org";
+ QTest::newRow("normal") << ".test.qt-project.org";
+ QTest::newRow("idn") << ".alqualond\xc3\xab.test.qt-project.org";
}
QString tst_QDnsLookup::domainName(const QString &input)
@@ -145,12 +145,16 @@ void tst_QDnsLookup::lookup_data()
QTest::newRow("ns-empty") << int(QDnsLookup::NS) << "" << int(QDnsLookup::InvalidRequestError) << "" << "" << "" << "" << "" << "" << "";
QTest::newRow("ns-notfound") << int(QDnsLookup::NS) << "invalid.invalid" << int(QDnsLookup::NotFoundError) << "" << "" << "" << "" << "" << "" << "";
- QTest::newRow("ns-single") << int(QDnsLookup::NS) << "ns-single" << int(QDnsLookup::NoError) << "" << "" << "" << "ns3.macieira.info." << "" << "" << "";
- QTest::newRow("ns-multi") << int(QDnsLookup::NS) << "ns-multi" << int(QDnsLookup::NoError) << "" << "" << "" << "gondolin.macieira.info.;ns3.macieira.info." << "" << "" << "";
+ QTest::newRow("ns-single") << int(QDnsLookup::NS) << "ns-single" << int(QDnsLookup::NoError) << "" << "" << "" << "ns11.cloudns.net." << "" << "" << "";
+ QTest::newRow("ns-multi") << int(QDnsLookup::NS) << "ns-multi" << int(QDnsLookup::NoError) << "" << "" << "" << "ns11.cloudns.net.;ns12.cloudns.net." << "" << "" << "";
QTest::newRow("ptr-empty") << int(QDnsLookup::PTR) << "" << int(QDnsLookup::InvalidRequestError) << "" << "" << "" << "" << "" << "" << "";
QTest::newRow("ptr-notfound") << int(QDnsLookup::PTR) << "invalid.invalid" << int(QDnsLookup::NotFoundError) << "" << "" << "" << "" << "" << "" << "";
+#if 0
+ // temporarily disabled since the new hosting provider can't insert
+ // PTR records outside of the in-addr.arpa zone
QTest::newRow("ptr-single") << int(QDnsLookup::PTR) << "ptr-single" << int(QDnsLookup::NoError) << "" << "" << "" << "" << "a-single" << "" << "";
+#endif
QTest::newRow("srv-empty") << int(QDnsLookup::SRV) << "" << int(QDnsLookup::InvalidRequestError) << "" << "" << "" << "" << "" << "" << "";
QTest::newRow("srv-notfound") << int(QDnsLookup::SRV) << "invalid.invalid" << int(QDnsLookup::NotFoundError) << "" << "" << "" << "" << "" << "" << "";
@@ -166,7 +170,8 @@ void tst_QDnsLookup::lookup_data()
QTest::newRow("txt-empty") << int(QDnsLookup::TXT) << "" << int(QDnsLookup::InvalidRequestError) << "" << "" << "" << "" << "" << "" << "";
QTest::newRow("txt-notfound") << int(QDnsLookup::TXT) << "invalid.invalid" << int(QDnsLookup::NotFoundError) << "" << "" << "" << "" << "" << "" << "";
QTest::newRow("txt-single") << int(QDnsLookup::TXT) << "txt-single" << int(QDnsLookup::NoError) << "" << "" << "" << "" << "" << "" << "Hello";
- QTest::newRow("txt-multi-onerr") << int(QDnsLookup::TXT) << "txt-multi-onerr" << int(QDnsLookup::NoError) << "" << "" << "" << "" << "" << "" << "Hello World";
+ QTest::newRow("txt-multi-onerr") << int(QDnsLookup::TXT) << "txt-multi-onerr" << int(QDnsLookup::NoError) << "" << "" << "" << "" << "" << ""
+ << QString::fromLatin1("Hello\0World", sizeof("Hello\0World") - 1);
QTest::newRow("txt-multi-multirr") << int(QDnsLookup::TXT) << "txt-multi-multirr" << int(QDnsLookup::NoError) << "" << "" << "" << "" << "" << "" << "Hello;World";
}
@@ -315,7 +320,7 @@ void tst_QDnsLookup::lookup()
QString text;
foreach (const QByteArray &ba, record.values()) {
if (!text.isEmpty())
- text += ' ';
+ text += '\0';
text += QString::fromLatin1(ba);
}
texts << text;
diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/BLACKLIST b/tests/auto/network/kernel/qnetworkproxyfactory/BLACKLIST
new file mode 100644
index 0000000000..73570c98b7
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkproxyfactory/BLACKLIST
@@ -0,0 +1,2 @@
+[genericSystemProxy]
+ubuntu-14.04
diff --git a/tests/auto/other/networkselftest/networkselftest.pro b/tests/auto/other/networkselftest/networkselftest.pro
index c8b870128d..22208e02fb 100644
--- a/tests/auto/other/networkselftest/networkselftest.pro
+++ b/tests/auto/other/networkselftest/networkselftest.pro
@@ -2,7 +2,7 @@ CONFIG += testcase
TARGET = tst_networkselftest
SOURCES += tst_networkselftest.cpp
-QT = core network testlib
+QT = core core-private network testlib
win32:CONFIG += insignificant_test # QTBUG-27571
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/other/networkselftest/tst_networkselftest.cpp b/tests/auto/other/networkselftest/tst_networkselftest.cpp
index 761b5c28d7..5612260cca 100644
--- a/tests/auto/other/networkselftest/tst_networkselftest.cpp
+++ b/tests/auto/other/networkselftest/tst_networkselftest.cpp
@@ -34,6 +34,7 @@
#include <QtTest/QtTest>
#include <QtNetwork/QtNetwork>
#include <QtCore/QDateTime>
+#include <QtCore/private/qiodevice_p.h>
#ifndef QT_NO_BEARERMANAGEMENT
#include <QtNetwork/qnetworkconfigmanager.h>
@@ -171,10 +172,11 @@ static bool doSocketRead(QTcpSocket *socket, int minBytesAvailable, int timeout
forever {
if (socket->bytesAvailable() >= minBytesAvailable)
return true;
+ timeout = qt_subtract_from_timeout(timeout, timer.elapsed());
if (socket->state() == QAbstractSocket::UnconnectedState
- || timer.elapsed() >= timeout)
+ || timeout == 0)
return false;
- if (!socket->waitForReadyRead(timeout - timer.elapsed()))
+ if (!socket->waitForReadyRead(timeout))
return false;
}
}
@@ -202,10 +204,11 @@ static bool doSocketFlush(QTcpSocket *socket, int timeout = 4000)
#endif
)
return true;
+ timeout = qt_subtract_from_timeout(timeout, timer.elapsed());
if (socket->state() == QAbstractSocket::UnconnectedState
- || timer.elapsed() >= timeout)
+ || timeout == 0)
return false;
- if (!socket->waitForBytesWritten(timeout - timer.elapsed()))
+ if (!socket->waitForBytesWritten(timeout))
return false;
}
}
diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/BLACKLIST
new file mode 100644
index 0000000000..717c791280
--- /dev/null
+++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/BLACKLIST
@@ -0,0 +1,2 @@
+[hoverEnterLeaveEvent]
+ubuntu-14.04
diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST
new file mode 100644
index 0000000000..be7a7e398b
--- /dev/null
+++ b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST
@@ -0,0 +1,4 @@
+[task255529_transformationAnchorMouseAndViewportMargins]
+ubuntu-14.04
+[cursor]
+ubuntu-14.04
diff --git a/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST
new file mode 100644
index 0000000000..5db5c97917
--- /dev/null
+++ b/tests/auto/widgets/graphicsview/qgraphicswidget/BLACKLIST
@@ -0,0 +1,2 @@
+[initialShow2]
+ubuntu-14.04
diff --git a/tests/auto/widgets/kernel/qaction/BLACKLIST b/tests/auto/widgets/kernel/qaction/BLACKLIST
new file mode 100644
index 0000000000..f67a3c471e
--- /dev/null
+++ b/tests/auto/widgets/kernel/qaction/BLACKLIST
@@ -0,0 +1,2 @@
+[setStandardKeys]
+ubuntu-14.04
diff --git a/tests/auto/widgets/kernel/qwidget/BLACKLIST b/tests/auto/widgets/kernel/qwidget/BLACKLIST
new file mode 100644
index 0000000000..ed40f98051
--- /dev/null
+++ b/tests/auto/widgets/kernel/qwidget/BLACKLIST
@@ -0,0 +1,16 @@
+[normalGeometry]
+ubuntu-14.04
+[saveRestoreGeometry]
+ubuntu-14.04
+[restoreVersion1Geometry]
+ubuntu-14.04
+[updateWhileMinimized]
+ubuntu-14.04
+[focusProxyAndInputMethods]
+ubuntu-14.04
+[touchEventSynthesizedMouseEvent]
+ubuntu-14.04
+[grabMouse]
+ubuntu-14.04
+[largerThanScreen_QTBUG30142]
+ubuntu-14.04
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 5e00ca9450..11d41d9b20 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -6010,10 +6010,13 @@ void tst_QWidget::childEvents()
expected =
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::Polish)
+ << qMakePair(&widget, QEvent::PlatformSurface)
<< qMakePair(&widget, QEvent::WinIdChange)
+ << qMakePair(&widget, QEvent::WindowIconChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
<< qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::CursorChange)
<< qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
@@ -6025,13 +6028,9 @@ void tst_QWidget::childEvents()
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::PolishRequest)
<< qMakePair(&widget, QEvent::Type(QEvent::User + 1))
-#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
<< qMakePair(&widget, QEvent::UpdateLater)
-#endif
<< qMakePair(&widget, QEvent::UpdateRequest);
- if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
- QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
}
@@ -6100,10 +6099,13 @@ void tst_QWidget::childEvents()
<< qMakePair(&widget, QEvent::Polish)
<< qMakePair(&widget, QEvent::ChildPolished)
<< qMakePair(&widget, QEvent::ChildPolished)
+ << qMakePair(&widget, QEvent::PlatformSurface)
<< qMakePair(&widget, QEvent::WinIdChange)
+ << qMakePair(&widget, QEvent::WindowIconChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
<< qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::CursorChange)
<< qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
@@ -6116,13 +6118,9 @@ void tst_QWidget::childEvents()
<< qMakePair(&widget, QEvent::PolishRequest)
<< qMakePair(&widget, QEvent::Type(QEvent::User + 1))
<< qMakePair(&widget, QEvent::Type(QEvent::User + 2))
-#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
<< qMakePair(&widget, QEvent::UpdateLater)
-#endif
<< qMakePair(&widget, QEvent::UpdateRequest);
- if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
- QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
}
@@ -6193,10 +6191,13 @@ void tst_QWidget::childEvents()
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::Polish)
<< qMakePair(&widget, QEvent::ChildPolished)
+ << qMakePair(&widget, QEvent::PlatformSurface)
<< qMakePair(&widget, QEvent::WinIdChange)
+ << qMakePair(&widget, QEvent::WindowIconChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
<< qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::CursorChange)
<< qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
@@ -6209,13 +6210,9 @@ void tst_QWidget::childEvents()
<< qMakePair(&widget, QEvent::PolishRequest)
<< qMakePair(&widget, QEvent::Type(QEvent::User + 1))
<< qMakePair(&widget, QEvent::Type(QEvent::User + 2))
-#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
<< qMakePair(&widget, QEvent::UpdateLater)
-#endif
<< qMakePair(&widget, QEvent::UpdateRequest);
- if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
- QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
}
diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
index 148c2352a5..4bdb299213 100644
--- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
+++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
@@ -97,6 +97,8 @@ private slots:
void tst_resize_count();
void tst_move_count();
+
+ void tst_eventfilter_on_toplevel();
};
void tst_QWidget_window::initTestCase()
@@ -762,5 +764,48 @@ void tst_QWidget_window::tst_move_count()
QTRY_VERIFY(move.moveCount >= 1);
}
+class EventFilter : public QObject
+{
+public:
+ int eventCount;
+
+ EventFilter()
+ : QObject(),
+ eventCount(0)
+ {
+ }
+
+ static QEvent::Type filterEventType()
+ {
+ static int type = QEvent::registerEventType();
+ return static_cast<QEvent::Type>(type);
+ }
+
+protected:
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE
+ {
+ if (e->type() == filterEventType())
+ ++eventCount;
+
+ return QObject::eventFilter(o, e);
+ }
+};
+
+void tst_QWidget_window::tst_eventfilter_on_toplevel()
+{
+ QWidget w;
+ EventFilter filter;
+ w.installEventFilter(&filter);
+ w.show();
+ QVERIFY(QTest::qWaitForWindowActive(&w));
+ QVERIFY(w.isWindow());
+ QCOMPARE(filter.eventCount, 0);
+
+ // send an event not handled in a special way by QWidgetWindow::event,
+ // and check that it's received by the event filter
+ QCoreApplication::postEvent(w.windowHandle(), new QEvent(EventFilter::filterEventType()));
+ QTRY_COMPARE(filter.eventCount, 1);
+}
+
QTEST_MAIN(tst_QWidget_window)
#include "tst_qwidget_window.moc"
diff --git a/tests/auto/widgets/util/qcompleter/BLACKLIST b/tests/auto/widgets/util/qcompleter/BLACKLIST
new file mode 100644
index 0000000000..ffbcc94a1f
--- /dev/null
+++ b/tests/auto/widgets/util/qcompleter/BLACKLIST
@@ -0,0 +1,2 @@
+[QTBUG_14292_filesystem]
+ubuntu-14.04
diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
index 7b4b65e841..c409698ec0 100644
--- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
@@ -160,6 +160,7 @@ private slots:
void highlightedSignal();
void itemData();
void task_QTBUG_31146_popupCompletion();
+ void task_QTBUG_41288_completerChangesCurrentIndex();
void keyboardSelection();
void setCustomModelAndView();
void updateDelegateOnEditableChange();
@@ -530,6 +531,23 @@ void tst_QComboBox::sizeAdjustPolicy()
QCOMPARE(testWidget->sizeHint(), content);
testWidget->setMinimumContentsLength(0);
QVERIFY(testWidget->sizeHint().width() < content.width());
+
+ // check AdjustToContents changes when model changes
+ content = testWidget->sizeHint();
+ QStandardItemModel *model = new QStandardItemModel(2, 1, testWidget);
+ testWidget->setModel(model);
+ QVERIFY(testWidget->sizeHint().width() < content.width());
+
+ // check AdjustToContents changes when a row is inserted into the model
+ content = testWidget->sizeHint();
+ QStandardItem *item = new QStandardItem(QStringLiteral("This is an item"));
+ model->appendRow(item);
+ QVERIFY(testWidget->sizeHint().width() > content.width());
+
+ // check AdjustToContents changes when model is reset
+ content = testWidget->sizeHint();
+ model->clear();
+ QVERIFY(testWidget->sizeHint().width() < content.width());
}
void tst_QComboBox::clear()
@@ -3059,6 +3077,44 @@ void tst_QComboBox::task_QTBUG_31146_popupCompletion()
QCOMPARE(comboBox.currentIndex(), 0);
}
+void tst_QComboBox::task_QTBUG_41288_completerChangesCurrentIndex()
+{
+ QComboBox comboBox;
+ comboBox.setEditable(true);
+
+ comboBox.addItems(QStringList() << QStringLiteral("111") << QStringLiteral("222"));
+
+ comboBox.show();
+ comboBox.activateWindow();
+ QVERIFY(QTest::qWaitForWindowActive(&comboBox));
+
+ {
+ // change currentIndex() by keyboard
+ comboBox.lineEdit()->selectAll();
+ QTest::keyClicks(comboBox.lineEdit(), "222");
+ QTest::keyClick(comboBox.lineEdit(), Qt::Key_Enter);
+ QCOMPARE(comboBox.currentIndex(), 1);
+
+ QTest::keyClick(&comboBox, Qt::Key_Up);
+ comboBox.lineEdit()->selectAll();
+ QTest::keyClick(comboBox.lineEdit(), Qt::Key_Enter);
+ QCOMPARE(comboBox.currentIndex(), 0);
+ }
+
+ {
+ // change currentIndex() programmatically
+ comboBox.lineEdit()->selectAll();
+ QTest::keyClicks(comboBox.lineEdit(), "222");
+ QTest::keyClick(comboBox.lineEdit(), Qt::Key_Enter);
+ QCOMPARE(comboBox.currentIndex(), 1);
+
+ comboBox.setCurrentIndex(0);
+ comboBox.lineEdit()->selectAll();
+ QTest::keyClick(comboBox.lineEdit(), Qt::Key_Enter);
+ QCOMPARE(comboBox.currentIndex(), 0);
+ }
+}
+
void tst_QComboBox::keyboardSelection()
{
QComboBox comboBox;
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_0.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_1.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_2.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_0_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_0.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_1.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_2.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_1_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_0.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_1.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_2.png
index a75833c89c..00447760ec 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_raised_2_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_0.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_1.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_2.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_0_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_0.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_1.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_2.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_1_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_0.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_0.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_0.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_0.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_1.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_1.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_1.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_1.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_2.png b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_2.png
index d656ac56f0..4c809a2c80 100644
--- a/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_2.png
+++ b/tests/auto/widgets/widgets/qframe/images/winpanel_sunken_2_2.png
Binary files differ
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 4e29688de6..9417541040 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -308,6 +308,7 @@ private slots:
void shouldShowPlaceholderText_data();
void shouldShowPlaceholderText();
+ void QTBUG1266_setInputMaskEmittingTextEdited();
protected slots:
void editingFinished();
@@ -4362,5 +4363,15 @@ void tst_QLineEdit::shouldShowPlaceholderText()
}
+void tst_QLineEdit::QTBUG1266_setInputMaskEmittingTextEdited()
+{
+ QLineEdit lineEdit;
+ lineEdit.setText("test");
+ QSignalSpy spy(&lineEdit, SIGNAL(textEdited(QString)));
+ lineEdit.setInputMask("AAAA");
+ lineEdit.setInputMask(QString());
+ QVERIFY(spy.count() == 0);
+}
+
QTEST_MAIN(tst_QLineEdit)
#include "tst_qlineedit.moc"
diff --git a/tests/auto/widgets/widgets/qmenubar/BLACKLIST b/tests/auto/widgets/widgets/qmenubar/BLACKLIST
new file mode 100644
index 0000000000..53ea4a9148
--- /dev/null
+++ b/tests/auto/widgets/widgets/qmenubar/BLACKLIST
@@ -0,0 +1,4 @@
+[check_menuPosition]
+ubuntu-14.04
+[taskQTBUG4965_escapeEaten]
+ubuntu-14.04
diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
index 0c0c50ac64..e9f9c67856 100644
--- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
+++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
@@ -56,6 +56,7 @@ private slots:
void reparentToNotYetCreated();
void asViewport();
void requestUpdate();
+ void fboRedirect();
};
void tst_QOpenGLWidget::create()
@@ -329,6 +330,31 @@ void tst_QOpenGLWidget::requestUpdate()
QTRY_VERIFY(w.m_count > 0);
}
+class FboCheckWidget : public QOpenGLWidget
+{
+public:
+ void paintGL() Q_DECL_OVERRIDE {
+ GLuint reportedDefaultFbo = QOpenGLContext::currentContext()->defaultFramebufferObject();
+ GLuint expectedDefaultFbo = defaultFramebufferObject();
+ QCOMPARE(reportedDefaultFbo, expectedDefaultFbo);
+ }
+};
+
+void tst_QOpenGLWidget::fboRedirect()
+{
+ FboCheckWidget w;
+ w.resize(640, 480);
+ w.show();
+ QTest::qWaitForWindowExposed(&w);
+
+ // Unlike in paintGL(), the default fbo reported by the context is not affected by the widget,
+ // so we get the real default fbo: either 0 or (on iOS) the fbo associated with the window.
+ w.makeCurrent();
+ GLuint reportedDefaultFbo = QOpenGLContext::currentContext()->defaultFramebufferObject();
+ GLuint widgetFbo = w.defaultFramebufferObject();
+ QVERIFY(reportedDefaultFbo != widgetFbo);
+}
+
QTEST_MAIN(tst_QOpenGLWidget)
#include "tst_qopenglwidget.moc"
diff --git a/tests/manual/dialogs/filedialogpanel.cpp b/tests/manual/dialogs/filedialogpanel.cpp
index 32a6c3e190..eda56bef94 100644
--- a/tests/manual/dialogs/filedialogpanel.cpp
+++ b/tests/manual/dialogs/filedialogpanel.cpp
@@ -48,6 +48,7 @@
#include <QLabel>
#include <QMessageBox>
#include <QApplication>
+#include <QUrl>
#include <QTimer>
#include <QDebug>
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 4f78660db4..04909525d1 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -305,6 +305,14 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "LTCG" ] = "no";
dictionary[ "NATIVE_GESTURES" ] = "yes";
dictionary[ "MSVC_MP" ] = "no";
+
+ if (dictionary["QMAKESPEC"] == QString("win32-g++")) {
+ const QString zero = QStringLiteral("0");
+ const QStringList parts = Environment::gccVersion().split(QLatin1Char('.'));
+ dictionary["QT_GCC_MAJOR_VERSION"] = parts.value(0, zero);
+ dictionary["QT_GCC_MINOR_VERSION"] = parts.value(1, zero);
+ dictionary["QT_GCC_PATCH_VERSION"] = parts.value(2, zero);
+ }
}
Configure::~Configure()
@@ -2029,16 +2037,18 @@ bool Configure::displayHelp()
// Locate a file and return its containing directory.
QString Configure::locateFile(const QString &fileName) const
{
+ const QString mkspec = dictionary.contains(QStringLiteral("XQMAKESPEC"))
+ ? dictionary[QStringLiteral("XQMAKESPEC")] : dictionary[QStringLiteral("QMAKESPEC")];
const QString file = fileName.toLower();
QStringList pathList;
if (file.endsWith(".h")) {
static const QStringList headerPaths =
- Environment::headerPaths(Environment::compilerFromQMakeSpec(dictionary[QStringLiteral("QMAKESPEC")]));
+ Environment::headerPaths(Environment::compilerFromQMakeSpec(mkspec));
pathList = qmakeIncludes;
pathList += headerPaths;
} else if (file.endsWith(".lib") || file.endsWith(".a")) {
static const QStringList libPaths =
- Environment::libraryPaths(Environment::compilerFromQMakeSpec(dictionary[QStringLiteral("QMAKESPEC")]));
+ Environment::libraryPaths(Environment::compilerFromQMakeSpec(mkspec));
pathList = libPaths;
} else {
// Fallback for .exe and .dll (latter are not covered by QStandardPaths).
@@ -3466,6 +3476,12 @@ void Configure::generateQConfigPri()
if (dictionary[ "SHARED" ] == "no")
configStream << "QT_DEFAULT_QPA_PLUGIN = q" << qpaPlatformName() << endl;
+ if (!dictionary["QT_GCC_MAJOR_VERSION"].isEmpty()) {
+ configStream << "QT_GCC_MAJOR_VERSION = " << dictionary["QT_GCC_MAJOR_VERSION"] << endl
+ << "QT_GCC_MINOR_VERSION = " << dictionary["QT_GCC_MINOR_VERSION"] << endl
+ << "QT_GCC_PATCH_VERSION = " << dictionary["QT_GCC_PATCH_VERSION"] << endl;
+ }
+
if (!configStream.flush())
dictionary[ "DONE" ] = "error";
}
@@ -3607,7 +3623,11 @@ void Configure::generateConfigfiles()
if (dictionary["SQL_SQLITE2"] == "yes") qconfigList += "QT_SQL_SQLITE2";
if (dictionary["SQL_IBASE"] == "yes") qconfigList += "QT_SQL_IBASE";
- if (dictionary["POSIX_IPC"] == "yes") qconfigList += "QT_POSIX_IPC";
+ if (dictionary["POSIX_IPC"] == "yes")
+ qconfigList += "QT_POSIX_IPC";
+ else if ((platform() != ANDROID) && (platform() != WINDOWS) && (platform() != WINDOWS_CE)
+ && (platform() != WINDOWS_RT))
+ qconfigList << "QT_NO_SYSTEMSEMAPHORE" << "QT_NO_SHAREDMEMORY";
if (dictionary["FONT_CONFIG"] == "no") qconfigList += "QT_NO_FONTCONFIG";
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index c08595e36b..63c1e8a1f0 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -163,6 +163,18 @@ Compiler Environment::compilerFromQMakeSpec(const QString &qmakeSpec)
return CC_UNKNOWN;
}
+QString Environment::gccVersion()
+{
+ CompilerInfo *info = compilerInfo(CC_MINGW);
+ int returnValue = 0;
+ QString version = execute(QStringLiteral("%1 -dumpversion").arg(info->executable), &returnValue);
+ if (returnValue != 0) {
+ cout << "Could not get mingw version" << returnValue << qPrintable(version);
+ version.resize(0);
+ }
+ return version;
+}
+
/*!
Returns the enum of the compiler which was detected on the system.
The compilers are detected in the order as entered into the
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index 669c356f34..927c3e294f 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -56,6 +56,7 @@ public:
static Compiler detectCompiler();
static QString detectQMakeSpec();
static Compiler compilerFromQMakeSpec(const QString &qmakeSpec);
+ static QString gccVersion();
static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv);
static QString execute(const QString &command, int *returnCode = 0);
diff --git a/util/local_database/cldr2qlocalexml.py b/util/local_database/cldr2qlocalexml.py
index 2377aa0771..400b7a51f8 100755
--- a/util/local_database/cldr2qlocalexml.py
+++ b/util/local_database/cldr2qlocalexml.py
@@ -115,8 +115,6 @@ def fixOrdStrList(c):
return str(ord(';'))
def generateLocaleInfo(path):
- (dir_name, file_name) = os.path.split(path)
-
if not path.endswith(".xml"):
return {}
@@ -126,13 +124,20 @@ def generateLocaleInfo(path):
raise xpathlite.Error("alias to \"%s\"" % alias)
language_code = findEntryInFile(path, "identity/language", attribute="type")[0]
- if language_code == 'root':
- # just skip it
- return {}
country_code = findEntryInFile(path, "identity/territory", attribute="type")[0]
script_code = findEntryInFile(path, "identity/script", attribute="type")[0]
variant_code = findEntryInFile(path, "identity/variant", attribute="type")[0]
+ return _generateLocaleInfo(path, language_code, script_code, country_code, variant_code)
+
+def _generateLocaleInfo(path, language_code, script_code, country_code, variant_code=""):
+ if not path.endswith(".xml"):
+ return {}
+
+ if language_code == 'root':
+ # just skip it
+ return {}
+
# we do not support variants
# ### actually there is only one locale with variant: en_US_POSIX
# does anybody care about it at all?
@@ -175,6 +180,7 @@ def generateLocaleInfo(path):
result['script_id'] = script_id
result['country_id'] = country_id
+ (dir_name, file_name) = os.path.split(path)
supplementalPath = dir_name + "/../supplemental/supplementalData.xml"
currencies = findTagsInFile(supplementalPath, "currencyData/region[iso3166=%s]"%country_code);
result['currencyIsoCode'] = ''
@@ -562,6 +568,41 @@ if not os.path.isdir(cldr_dir):
cldr_files = os.listdir(cldr_dir)
locale_database = {}
+
+# see http://www.unicode.org/reports/tr35/tr35-info.html#Default_Content
+defaultContent_locales = {}
+for ns in findTagsInFile(cldr_dir + "/../supplemental/supplementalMetadata.xml", "metadata/defaultContent"):
+ for data in ns[1:][0]:
+ if data[0] == u"locales":
+ defaultContent_locales = data[1].split()
+
+for file in defaultContent_locales:
+ items = file.split("_")
+ if len(items) == 3:
+ language_code = items[0]
+ script_code = items[1]
+ country_code = items[2]
+ else:
+ if len(items) != 2:
+ sys.stderr.write("skipping defaultContent locale \"" + file + "\"\n")
+ continue
+ language_code = items[0]
+ script_code = ""
+ country_code = items[1]
+ if len(country_code) == 4:
+ sys.stderr.write("skipping defaultContent locale \"" + file + "\"\n")
+ continue
+ try:
+ l = _generateLocaleInfo(cldr_dir + "/" + file + ".xml", language_code, script_code, country_code)
+ if not l:
+ sys.stderr.write("skipping defaultContent locale \"" + file + "\"\n")
+ continue
+ except xpathlite.Error as e:
+ sys.stderr.write("skipping defaultContent locale \"%s\" (%s)\n" % (file, str(e)))
+ continue
+
+ locale_database[(l['language_id'], l['script_id'], l['country_id'], l['variant_code'])] = l
+
for file in cldr_files:
try:
l = generateLocaleInfo(cldr_dir + "/" + file)
@@ -762,42 +803,42 @@ for key in locale_keys:
print " <minus>" + fixOrdStrMinus(l['minus']) + "</minus>"
print " <plus>" + fixOrdStrPlus(l['plus']) + "</plus>"
print " <exp>" + fixOrdStrExp(l['exp']) + "</exp>"
- print " <quotationStart>" + l['quotationStart'].encode('utf-8') + "</quotationStart>"
- print " <quotationEnd>" + l['quotationEnd'].encode('utf-8') + "</quotationEnd>"
- print " <alternateQuotationStart>" + l['alternateQuotationStart'].encode('utf-8') + "</alternateQuotationStart>"
- print " <alternateQuotationEnd>" + l['alternateQuotationEnd'].encode('utf-8') + "</alternateQuotationEnd>"
- print " <listPatternPartStart>" + l['listPatternPartStart'].encode('utf-8') + "</listPatternPartStart>"
- print " <listPatternPartMiddle>" + l['listPatternPartMiddle'].encode('utf-8') + "</listPatternPartMiddle>"
- print " <listPatternPartEnd>" + l['listPatternPartEnd'].encode('utf-8') + "</listPatternPartEnd>"
- print " <listPatternPartTwo>" + l['listPatternPartTwo'].encode('utf-8') + "</listPatternPartTwo>"
- print " <am>" + l['am'].encode('utf-8') + "</am>"
- print " <pm>" + l['pm'].encode('utf-8') + "</pm>"
- print " <firstDayOfWeek>" + l['firstDayOfWeek'].encode('utf-8') + "</firstDayOfWeek>"
- print " <weekendStart>" + l['weekendStart'].encode('utf-8') + "</weekendStart>"
- print " <weekendEnd>" + l['weekendEnd'].encode('utf-8') + "</weekendEnd>"
- print " <longDateFormat>" + l['longDateFormat'].encode('utf-8') + "</longDateFormat>"
- print " <shortDateFormat>" + l['shortDateFormat'].encode('utf-8') + "</shortDateFormat>"
- print " <longTimeFormat>" + l['longTimeFormat'].encode('utf-8') + "</longTimeFormat>"
- print " <shortTimeFormat>" + l['shortTimeFormat'].encode('utf-8') + "</shortTimeFormat>"
- print " <standaloneLongMonths>" + l['standaloneLongMonths'].encode('utf-8') + "</standaloneLongMonths>"
- print " <standaloneShortMonths>"+ l['standaloneShortMonths'].encode('utf-8') + "</standaloneShortMonths>"
- print " <standaloneNarrowMonths>"+ l['standaloneNarrowMonths'].encode('utf-8') + "</standaloneNarrowMonths>"
- print " <longMonths>" + l['longMonths'].encode('utf-8') + "</longMonths>"
- print " <shortMonths>" + l['shortMonths'].encode('utf-8') + "</shortMonths>"
- print " <narrowMonths>" + l['narrowMonths'].encode('utf-8') + "</narrowMonths>"
- print " <longDays>" + l['longDays'].encode('utf-8') + "</longDays>"
- print " <shortDays>" + l['shortDays'].encode('utf-8') + "</shortDays>"
- print " <narrowDays>" + l['narrowDays'].encode('utf-8') + "</narrowDays>"
- print " <standaloneLongDays>" + l['standaloneLongDays'].encode('utf-8') + "</standaloneLongDays>"
- print " <standaloneShortDays>" + l['standaloneShortDays'].encode('utf-8') + "</standaloneShortDays>"
- print " <standaloneNarrowDays>" + l['standaloneNarrowDays'].encode('utf-8') + "</standaloneNarrowDays>"
- print " <currencyIsoCode>" + l['currencyIsoCode'].encode('utf-8') + "</currencyIsoCode>"
- print " <currencySymbol>" + l['currencySymbol'].encode('utf-8') + "</currencySymbol>"
- print " <currencyDisplayName>" + l['currencyDisplayName'].encode('utf-8') + "</currencyDisplayName>"
+ print " <quotationStart>" + escape(l['quotationStart']).encode('utf-8') + "</quotationStart>"
+ print " <quotationEnd>" + escape(l['quotationEnd']).encode('utf-8') + "</quotationEnd>"
+ print " <alternateQuotationStart>" + escape(l['alternateQuotationStart']).encode('utf-8') + "</alternateQuotationStart>"
+ print " <alternateQuotationEnd>" + escape(l['alternateQuotationEnd']).encode('utf-8') + "</alternateQuotationEnd>"
+ print " <listPatternPartStart>" + escape(l['listPatternPartStart']).encode('utf-8') + "</listPatternPartStart>"
+ print " <listPatternPartMiddle>" + escape(l['listPatternPartMiddle']).encode('utf-8') + "</listPatternPartMiddle>"
+ print " <listPatternPartEnd>" + escape(l['listPatternPartEnd']).encode('utf-8') + "</listPatternPartEnd>"
+ print " <listPatternPartTwo>" + escape(l['listPatternPartTwo']).encode('utf-8') + "</listPatternPartTwo>"
+ print " <am>" + escape(l['am']).encode('utf-8') + "</am>"
+ print " <pm>" + escape(l['pm']).encode('utf-8') + "</pm>"
+ print " <firstDayOfWeek>" + escape(l['firstDayOfWeek']).encode('utf-8') + "</firstDayOfWeek>"
+ print " <weekendStart>" + escape(l['weekendStart']).encode('utf-8') + "</weekendStart>"
+ print " <weekendEnd>" + escape(l['weekendEnd']).encode('utf-8') + "</weekendEnd>"
+ print " <longDateFormat>" + escape(l['longDateFormat']).encode('utf-8') + "</longDateFormat>"
+ print " <shortDateFormat>" + escape(l['shortDateFormat']).encode('utf-8') + "</shortDateFormat>"
+ print " <longTimeFormat>" + escape(l['longTimeFormat']).encode('utf-8') + "</longTimeFormat>"
+ print " <shortTimeFormat>" + escape(l['shortTimeFormat']).encode('utf-8') + "</shortTimeFormat>"
+ print " <standaloneLongMonths>" + escape(l['standaloneLongMonths']).encode('utf-8') + "</standaloneLongMonths>"
+ print " <standaloneShortMonths>"+ escape(l['standaloneShortMonths']).encode('utf-8') + "</standaloneShortMonths>"
+ print " <standaloneNarrowMonths>"+ escape(l['standaloneNarrowMonths']).encode('utf-8') + "</standaloneNarrowMonths>"
+ print " <longMonths>" + escape(l['longMonths']).encode('utf-8') + "</longMonths>"
+ print " <shortMonths>" + escape(l['shortMonths']).encode('utf-8') + "</shortMonths>"
+ print " <narrowMonths>" + escape(l['narrowMonths']).encode('utf-8') + "</narrowMonths>"
+ print " <longDays>" + escape(l['longDays']).encode('utf-8') + "</longDays>"
+ print " <shortDays>" + escape(l['shortDays']).encode('utf-8') + "</shortDays>"
+ print " <narrowDays>" + escape(l['narrowDays']).encode('utf-8') + "</narrowDays>"
+ print " <standaloneLongDays>" + escape(l['standaloneLongDays']).encode('utf-8') + "</standaloneLongDays>"
+ print " <standaloneShortDays>" + escape(l['standaloneShortDays']).encode('utf-8') + "</standaloneShortDays>"
+ print " <standaloneNarrowDays>" + escape(l['standaloneNarrowDays']).encode('utf-8') + "</standaloneNarrowDays>"
+ print " <currencyIsoCode>" + escape(l['currencyIsoCode']).encode('utf-8') + "</currencyIsoCode>"
+ print " <currencySymbol>" + escape(l['currencySymbol']).encode('utf-8') + "</currencySymbol>"
+ print " <currencyDisplayName>" + escape(l['currencyDisplayName']).encode('utf-8') + "</currencyDisplayName>"
print " <currencyDigits>" + str(l['currencyDigits']) + "</currencyDigits>"
print " <currencyRounding>" + str(l['currencyRounding']) + "</currencyRounding>"
- print " <currencyFormat>" + l['currencyFormat'].encode('utf-8') + "</currencyFormat>"
- print " <currencyNegativeFormat>" + l['currencyNegativeFormat'].encode('utf-8') + "</currencyNegativeFormat>"
+ print " <currencyFormat>" + escape(l['currencyFormat']).encode('utf-8') + "</currencyFormat>"
+ print " <currencyNegativeFormat>" + escape(l['currencyNegativeFormat']).encode('utf-8') + "</currencyNegativeFormat>"
print " </locale>"
print " </localeList>"
print "</localeDatabase>"
diff --git a/util/local_database/cldr2qtimezone.py b/util/local_database/cldr2qtimezone.py
index 4bf4c83bb9..6c0195e984 100755..100644
--- a/util/local_database/cldr2qtimezone.py
+++ b/util/local_database/cldr2qtimezone.py
@@ -96,101 +96,106 @@ windowsIdList = {
3 : [ u'Arab Standard Time', 10800 ],
4 : [ u'Arabian Standard Time', 14400 ],
5 : [ u'Arabic Standard Time', 10800 ],
- 6 : [ u'Argentina Standard Time', 10800 ],
+ 6 : [ u'Argentina Standard Time', -10800 ],
7 : [ u'Atlantic Standard Time', -14400 ],
8 : [ u'AUS Central Standard Time', 34200 ],
9 : [ u'AUS Eastern Standard Time', 36000 ],
10 : [ u'Azerbaijan Standard Time', 14400 ],
11 : [ u'Azores Standard Time', -3600 ],
- 12 : [ u'Bahia Standard Time', 10800 ],
+ 12 : [ u'Bahia Standard Time', -10800 ],
13 : [ u'Bangladesh Standard Time', 21600 ],
- 14 : [ u'Canada Central Standard Time', -21600 ],
- 15 : [ u'Cape Verde Standard Time', -3600 ],
- 16 : [ u'Caucasus Standard Time', 14400 ],
- 17 : [ u'Cen. Australia Standard Time', 34200 ],
- 18 : [ u'Central America Standard Time', -21600 ],
- 19 : [ u'Central Asia Standard Time', 21600 ],
- 20 : [ u'Central Brazilian Standard Time', -14400 ],
- 21 : [ u'Central Europe Standard Time', 3600 ],
- 22 : [ u'Central European Standard Time', 3600 ],
- 23 : [ u'Central Pacific Standard Time', 39600 ],
- 24 : [ u'Central Standard Time (Mexico)', -21600 ],
- 25 : [ u'Central Standard Time', -21600 ],
- 26 : [ u'China Standard Time', 28800 ],
- 27 : [ u'Dateline Standard Time', -43200 ],
- 28 : [ u'E. Africa Standard Time', 10800 ],
- 29 : [ u'E. Australia Standard Time', 36000 ],
- 30 : [ u'E. Europe Standard Time', 7200 ],
+ 14 : [ u'Belarus Standard Time', 10800 ],
+ 15 : [ u'Canada Central Standard Time', -21600 ],
+ 16 : [ u'Cape Verde Standard Time', -3600 ],
+ 17 : [ u'Caucasus Standard Time', 14400 ],
+ 18 : [ u'Cen. Australia Standard Time', 34200 ],
+ 19 : [ u'Central America Standard Time', -21600 ],
+ 20 : [ u'Central Asia Standard Time', 21600 ],
+ 21 : [ u'Central Brazilian Standard Time', -14400 ],
+ 22 : [ u'Central Europe Standard Time', 3600 ],
+ 23 : [ u'Central European Standard Time', 3600 ],
+ 24 : [ u'Central Pacific Standard Time', 39600 ],
+ 25 : [ u'Central Standard Time (Mexico)', -21600 ],
+ 26 : [ u'Central Standard Time', -21600 ],
+ 27 : [ u'China Standard Time', 28800 ],
+ 28 : [ u'Dateline Standard Time', -43200 ],
+ 29 : [ u'E. Africa Standard Time', 10800 ],
+ 30 : [ u'E. Australia Standard Time', 36000 ],
31 : [ u'E. South America Standard Time', -10800 ],
32 : [ u'Eastern Standard Time', -18000 ],
- 33 : [ u'Egypt Standard Time', 7200 ],
- 34 : [ u'Ekaterinburg Standard Time', 21600 ],
- 35 : [ u'Fiji Standard Time', 43200 ],
- 36 : [ u'FLE Standard Time', 7200 ],
- 37 : [ u'Georgian Standard Time', 14400 ],
- 38 : [ u'GMT Standard Time', 0 ],
- 39 : [ u'Greenland Standard Time', 10800 ],
- 40 : [ u'Greenwich Standard Time', 0 ],
- 41 : [ u'GTB Standard Time', 7200 ],
- 42 : [ u'Hawaiian Standard Time', -36000 ],
- 43 : [ u'India Standard Time', 19800 ],
- 44 : [ u'Iran Standard Time', 12600 ],
- 45 : [ u'Israel Standard Time', 7200 ],
- 46 : [ u'Jordan Standard Time', 7200 ],
- 47 : [ u'Kaliningrad Standard Time', 10800 ],
- 48 : [ u'Korea Standard Time', 32400 ],
- 49 : [ u'Magadan Standard Time', 43200 ],
- 50 : [ u'Mauritius Standard Time', 14400 ],
- 51 : [ u'Middle East Standard Time', 7200 ],
- 52 : [ u'Montevideo Standard Time', 10800 ],
- 53 : [ u'Morocco Standard Time', 0 ],
- 54 : [ u'Mountain Standard Time (Mexico)', -25200 ],
- 55 : [ u'Mountain Standard Time', -25200 ],
- 56 : [ u'Myanmar Standard Time', 23400 ],
- 57 : [ u'N. Central Asia Standard Time', 23400 ],
- 58 : [ u'Namibia Standard Time', 3600 ],
- 59 : [ u'Nepal Standard Time', 20700 ],
- 60 : [ u'New Zealand Standard Time', 43200 ],
- 61 : [ u'Newfoundland Standard Time', -12600 ],
- 62 : [ u'North Asia East Standard Time', 32400 ],
- 63 : [ u'North Asia Standard Time', 28800 ],
- 64 : [ u'Pacific SA Standard Time', -14400 ],
- 65 : [ u'Pacific Standard Time (Mexico)', -28800 ],
- 66 : [ u'Pacific Standard Time', -28800 ],
- 67 : [ u'Pakistan Standard Time', 18000 ],
- 68 : [ u'Paraguay Standard Time', -14400 ],
- 69 : [ u'Romance Standard Time', 3600 ],
- 70 : [ u'Russian Standard Time', 14400 ],
- 71 : [ u'SA Eastern Standard Time', 10800 ],
- 72 : [ u'SA Pacific Standard Time', -18000 ],
- 73 : [ u'SA Western Standard Time', -14400 ],
- 74 : [ u'Samoa Standard Time', 46800 ],
- 75 : [ u'SE Asia Standard Time', 23400 ],
- 76 : [ u'Singapore Standard Time', 28800 ],
- 77 : [ u'South Africa Standard Time', 7200 ],
- 78 : [ u'Sri Lanka Standard Time', 19800 ],
- 79 : [ u'Syria Standard Time', 7200 ],
- 80 : [ u'Taipei Standard Time', 28800 ],
- 81 : [ u'Tasmania Standard Time', 36000 ],
- 82 : [ u'Tokyo Standard Time', 32400 ],
- 83 : [ u'Tonga Standard Time', 46800 ],
- 84 : [ u'Turkey Standard Time', 7200 ],
- 85 : [ u'Ulaanbaatar Standard Time', 28800 ],
- 86 : [ u'US Eastern Standard Time', -18000 ],
- 87 : [ u'US Mountain Standard Time', -25200 ],
- 88 : [ u'UTC-02', -7200 ],
- 89 : [ u'UTC-11', -39600 ],
- 90 : [ u'UTC', 0 ],
- 91 : [ u'UTC+12', 43200 ],
- 92 : [ u'Venezuela Standard Time', -16200 ],
- 93 : [ u'Vladivostok Standard Time', 39600 ],
- 94 : [ u'W. Australia Standard Time', 28800 ],
- 95 : [ u'W. Central Africa Standard Time', 3600 ],
- 96 : [ u'W. Europe Standard Time', 3600 ],
- 97 : [ u'West Asia Standard Time', 18000 ],
- 98 : [ u'West Pacific Standard Time', 36000 ],
- 99 : [ u'Yakutsk Standard Time', 36000 ],
- 100: [ u'Libya Standard Time', 3600 ]
+ 33 : [ u'Eastern Standard Time (Mexico)', -18000 ],
+ 34 : [ u'Egypt Standard Time', 7200 ],
+ 35 : [ u'Ekaterinburg Standard Time', 18000 ],
+ 36 : [ u'Fiji Standard Time', 43200 ],
+ 37 : [ u'FLE Standard Time', 7200 ],
+ 38 : [ u'Georgian Standard Time', 14400 ],
+ 39 : [ u'GMT Standard Time', 0 ],
+ 40 : [ u'Greenland Standard Time', -10800 ],
+ 41 : [ u'Greenwich Standard Time', 0 ],
+ 42 : [ u'GTB Standard Time', 7200 ],
+ 43 : [ u'Hawaiian Standard Time', -36000 ],
+ 44 : [ u'India Standard Time', 19800 ],
+ 45 : [ u'Iran Standard Time', 12600 ],
+ 46 : [ u'Israel Standard Time', 7200 ],
+ 47 : [ u'Jordan Standard Time', 7200 ],
+ 48 : [ u'Kaliningrad Standard Time', 7200 ],
+ 49 : [ u'Korea Standard Time', 32400 ],
+ 50 : [ u'Libya Standard Time', 7200 ],
+ 51 : [ u'Line Islands Standard Time', 50400 ],
+ 52 : [ u'Magadan Standard Time', 36000 ],
+ 53 : [ u'Mauritius Standard Time', 14400 ],
+ 54 : [ u'Middle East Standard Time', 7200 ],
+ 55 : [ u'Montevideo Standard Time', -10800 ],
+ 56 : [ u'Morocco Standard Time', 0 ],
+ 57 : [ u'Mountain Standard Time (Mexico)', -25200 ],
+ 58 : [ u'Mountain Standard Time', -25200 ],
+ 59 : [ u'Myanmar Standard Time', 23400 ],
+ 60 : [ u'N. Central Asia Standard Time', 21600 ],
+ 61 : [ u'Namibia Standard Time', 3600 ],
+ 62 : [ u'Nepal Standard Time', 20700 ],
+ 63 : [ u'New Zealand Standard Time', 43200 ],
+ 64 : [ u'Newfoundland Standard Time', -12600 ],
+ 65 : [ u'North Asia East Standard Time', 28800 ],
+ 66 : [ u'North Asia Standard Time', 25200 ],
+ 67 : [ u'Pacific SA Standard Time', -10800 ],
+ 68 : [ u'Pacific Standard Time (Mexico)', -28800 ],
+ 69 : [ u'Pacific Standard Time', -28800 ],
+ 70 : [ u'Pakistan Standard Time', 18000 ],
+ 71 : [ u'Paraguay Standard Time', -14400 ],
+ 72 : [ u'Romance Standard Time', 3600 ],
+ 73 : [ u'Russia Time Zone 3', 14400 ],
+ 74 : [ u'Russia Time Zone 10', 39600 ],
+ 75 : [ u'Russia Time Zone 11', 43200 ],
+ 76 : [ u'Russian Standard Time', 10800 ],
+ 77 : [ u'SA Eastern Standard Time', -10800 ],
+ 78 : [ u'SA Pacific Standard Time', -18000 ],
+ 79 : [ u'SA Western Standard Time', -14400 ],
+ 80 : [ u'Samoa Standard Time', 46800 ],
+ 81 : [ u'SE Asia Standard Time', 25200 ],
+ 82 : [ u'Singapore Standard Time', 28800 ],
+ 83 : [ u'South Africa Standard Time', 7200 ],
+ 84 : [ u'Sri Lanka Standard Time', 19800 ],
+ 85 : [ u'Syria Standard Time', 7200 ],
+ 86 : [ u'Taipei Standard Time', 28800 ],
+ 87 : [ u'Tasmania Standard Time', 36000 ],
+ 88 : [ u'Tokyo Standard Time', 32400 ],
+ 89 : [ u'Tonga Standard Time', 46800 ],
+ 90 : [ u'Turkey Standard Time', 7200 ],
+ 91 : [ u'Ulaanbaatar Standard Time', 28800 ],
+ 92 : [ u'US Eastern Standard Time', -18000 ],
+ 93 : [ u'US Mountain Standard Time', -25200 ],
+ 94 : [ u'UTC-02', -7200 ],
+ 95 : [ u'UTC-11', -39600 ],
+ 96 : [ u'UTC', 0 ],
+ 97 : [ u'UTC+12', 43200 ],
+ 98 : [ u'Venezuela Standard Time', -16200 ],
+ 99 : [ u'Vladivostok Standard Time', 36000 ],
+ 100: [ u'W. Australia Standard Time', 28800 ],
+ 101: [ u'W. Central Africa Standard Time', 3600 ],
+ 102: [ u'W. Europe Standard Time', 3600 ],
+ 103: [ u'West Asia Standard Time', 18000 ],
+ 104: [ u'West Pacific Standard Time', 36000 ],
+ 105: [ u'Yakutsk Standard Time', 32400 ]
}
def windowsIdToKey(windowsId):
@@ -258,7 +263,7 @@ if not os.path.isdir(cldrPath) or not os.path.isdir(qtPath):
usage()
windowsZonesPath = cldrPath + "/supplemental/windowsZones.xml"
-tempFileDir = qtPath + "/src/corelib/tools"
+tempFileDir = qtPath
dataFilePath = qtPath + "/src/corelib/tools/qtimezoneprivate_data_p.h"
if not os.path.isfile(windowsZonesPath):
@@ -267,6 +272,12 @@ if not os.path.isfile(windowsZonesPath):
if not os.path.isfile(dataFilePath):
usage()
+cldr_version = 'unknown'
+ldml = open(cldrPath + "/dtd/ldml.dtd", "r")
+for line in ldml:
+ if 'version cldrVersion CDATA #FIXED' in line:
+ cldr_version = line.split('"')[1]
+
# [[u'version', [(u'number', u'$Revision: 7825 $')]]]
versionNumber = findTagsInFile(windowsZonesPath, "version")[0][1][0][1]
@@ -326,13 +337,13 @@ newTempFile.write(GENERATED_BLOCK_START)
newTempFile.write("\n\
/*\n\
This part of the file was generated on %s from the\n\
- Common Locale Data Repository supplemental/windowsZones.xml file\n\
+ Common Locale Data Repository v%s supplemental/windowsZones.xml file\n\
%s %s\n\
\n\
http://www.unicode.org/cldr/\n\
\n\
Do not change this data, only generate it using cldr2qtimezone.py.\n\
-*/\n\n" % (str(datetime.date.today()), versionNumber, generationDate) )
+*/\n\n" % (str(datetime.date.today()), cldr_version, versionNumber, generationDate) )
windowsIdData = ByteArrayData()
ianaIdData = ByteArrayData()
diff --git a/util/local_database/enumdata.py b/util/local_database/enumdata.py
index b9f8077a59..fbeadfb610 100644
--- a/util/local_database/enumdata.py
+++ b/util/local_database/enumdata.py
@@ -351,7 +351,32 @@ language_list = {
311 : [ "Ugaritic", "uga" ],
312 : [ "Akoose", "bss" ],
313 : [ "Lakota", "lkt" ],
- 314 : [ "Standard Moroccan Tamazight", "zgh" ]
+ 314 : [ "Standard Moroccan Tamazight", "zgh" ],
+ 315 : [ "Mapuche", "arn" ],
+ 316 : [ "Central Kurdish", "ckb" ],
+ 317 : [ "LowerSorbian", "dsb" ],
+ 318 : [ "UpperSorbian", "hsb" ],
+ 319 : [ "Kenyang", "ken" ],
+ 320 : [ "Mohawk", "moh" ],
+ 321 : [ "Nko", "nqo" ],
+ 322 : [ "Prussian", "prg" ],
+ 323 : [ "Kiche", "quc" ],
+ 324 : [ "Southern Sami", "sma" ],
+ 325 : [ "Lule Sami", "smj" ],
+ 326 : [ "Inari Sami", "smn" ],
+ 327 : [ "Skolt Sami", "sms" ],
+ 328 : [ "Warlpiri", "wbp" ],
+ 329 : [ "Manichaean Middle Persian", "xmn" ],
+ 330 : [ "Mende", "men" ],
+ 331 : [ "Ancient North Arabian", "xna" ],
+ 332 : [ "Linear A", "lab" ],
+ 333 : [ "Hmong Njua", "hnj" ],
+ 334 : [ "Ho", "hoc" ],
+ 335 : [ "Lezghian", "lez" ],
+ 336 : [ "Bassa", "bsq" ],
+ 337 : [ "Mono", "mru" ],
+ 338 : [ "Tedim Chin", "ctd" ],
+ 339 : [ "Maithili", "mai" ]
}
country_list = {
@@ -720,13 +745,33 @@ script_list = {
101 : [ "Takri", "Takr" ],
102 : [ "Ugaritic", "Ugar" ],
103 : [ "Braille", "Brai" ],
- 104 : [ "Hiragana", "Hira" ]
+ 104 : [ "Hiragana", "Hira" ],
+ 105 : [ "Caucasian Albanian", "Aghb" ],
+ 106 : [ "Bassa Vah", "Bass" ],
+ 107 : [ "Duployan", "Dupl" ],
+ 108 : [ "Elbasan", "Elba" ],
+ 109 : [ "Grantha", "Gran" ],
+ 110 : [ "Pahawh Hmong", "Hmng" ],
+ 111 : [ "Khojki", "Khoj" ],
+ 112 : [ "Linear A", "Lina" ],
+ 113 : [ "Mahajani", "Mahj" ],
+ 114 : [ "Manichaean", "Mani" ],
+ 115 : [ "Mende Kikakui", "Mend" ],
+ 116 : [ "Modi", "Modi" ],
+ 117 : [ "Mro", "Mroo" ],
+ 118 : [ "Old North Arabian", "Narb" ],
+ 119 : [ "Nabataean", "Nbat" ],
+ 120 : [ "Palmyrene", "Palm" ],
+ 121 : [ "Pau Cin Hau", "Pauc" ],
+ 122 : [ "Old Permic", "Perm" ],
+ 123 : [ "Psalter Pahlavi", "Phlp" ],
+ 124 : [ "Siddham", "Sidd" ],
+ 125 : [ "Khudawadi", "Sind" ],
+ 126 : [ "Tirhuta", "Tirh" ],
+ 127 : [ "Varang Kshiti", "Wara" ]
# ### : [ "Blissymbols", "Blis" ],
-# ### : [ "Linear A", "Lina" ],
# ### : [ "Naxi Geba", "Nkgb" ],
-# ### : [ "Pahawh Hmong", "Hmng" ],
-# ### : [ "Varang Kshiti", "Wara" ],
}
def countryCodeToId(code):
diff --git a/util/unicode/data/ArabicShaping.txt b/util/unicode/data/ArabicShaping.txt
index 8add8a5a1c..fe653fca97 100644
--- a/util/unicode/data/ArabicShaping.txt
+++ b/util/unicode/data/ArabicShaping.txt
@@ -1,29 +1,28 @@
-# ArabicShaping-6.3.0.txt
-# Date: 2012-11-14, 21:48:00 GMT [KW]
+# ArabicShaping-7.0.0.txt
+# Date: 2014-02-14, 21:00:00 GMT [RP, KW, LI]
#
# This file is a normative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
-# This file defines the Joining_Type and Joining_Group
-# property values for Arabic, Syriac, N'Ko, and Mandaic
-# positional shaping, repeating in machine readable form the
-# information exemplified in Tables 8-3, 8-8, 8-9, 8-10, 8-13, 8-14,
-# 8-15, 13-5, 14-5, and 14-6 of The Unicode Standard, Version 6.3.
-# This file also defines Joining_Type values for Mongolian and
-# Phags-pa positional shaping, which is not listed in tables in
-# the standard.
+# This file defines the Joining_Type and Joining_Group property values for
+# Arabic, Syriac, N'Ko, Mandaic, Manichaean, and Psalter Pahlavi positional
+# shaping, repeating in machine readable form the information exemplified in
+# Tables 9-3, 9-8, 9-9, 9-10, 9-14, 9-15, 9-16, 9-19, 9-20, 10-XX, 19-5 of The
+# Unicode Standard, Version 7.0. This file also defines Joining_Type values
+# for Mongolian and Phags-pa positional shaping, which are not listed in
+# tables in the standard.
#
-# See sections 8.2, 8.3, 10.4, 13.2, 13.5, and 14.12 of The Unicode Standard,
-# Version 6.3 for more information.
+# See Sections 9.2, 9.3, 9.5, 10.5, 10.6, 13.4, 14.3, 19.4 of
+# The Unicode Standard, Version 7.0 for more information.
#
# Each line contains four fields, separated by a semicolon.
#
# Field 0: the code point, in 4-digit hexadecimal
# form, of an Arabic, Syriac, N'Ko, Mandaic, Mongolian,
-# Phags-pa, or other character.
+# Phags-pa, Manichaean, Psalter Pahlavi, or other character.
#
# Field 1: gives a short schematic name for that character.
# The schematic name is descriptive of the shape, based as
@@ -40,11 +39,11 @@
# U Non_Joining
# T Transparent
#
-# See Section 8.2, Arabic for more information on these joining types.
+# See Section 9.2, Arabic for more information on these joining types.
# Note that for cursive joining scripts which are typically rendered
# top-to-bottom, rather than right-to-left, Joining_Type=L conventionally
# refers to bottom joining, and Joining_Type=R conventionally refers
-# to top joining. See Section 10.4 Phags-pa for more information on the
+# to top joining. See Section 14.3, Phags-pa for more information on the
# interpretation of joining types in vertical layout.
#
# Field 3: defines the joining group (property name: Joining_Group)
@@ -59,7 +58,7 @@
#
# corresponds to [Joining_Group = Teh_Marbuta].
#
-# Note: The property value now designated [Joining_Group = Teh_Marbuta_Goal]
+# Note: The property value now designated [Joining_Group = Teh_Marbuta_Goal]
# used to apply to both of the following characters
# in earlier versions of the standard:
#
@@ -93,7 +92,7 @@
# the derived property file DerivedJoiningType.txt.
#
# #############################################################
-
+
# Unicode; Schematic Name; Joining Type; Joining Group
# Arabic Characters
@@ -103,6 +102,7 @@
0602; ARABIC FOOTNOTE MARKER; U; No_Joining_Group
0603; ARABIC SIGN SAFHA; U; No_Joining_Group
0604; ARABIC SIGN SAMVAT; U; No_Joining_Group
+0605; ARABIC NUMBER MARK ABOVE; U; No_Joining_Group
0608; ARABIC RAY; U; No_Joining_Group
060B; AFGHANI SIGN; U; No_Joining_Group
0620; DOTLESS YEH WITH SEPARATE RING BELOW; D; YEH
@@ -414,6 +414,7 @@
# Arabic Extended-A Characters
08A0; DOTLESS BEH WITH V BELOW; D; BEH
+08A1; BEH WITH HAMZA ABOVE; D; BEH
08A2; HAH WITH DOT BELOW AND 2 DOTS ABOVE; D; HAH
08A3; TAH WITH 2 DOTS ABOVE; D; TAH
08A4; DOTLESS FEH WITH DOT BELOW AND 3 DOTS ABOVE; D; FEH
@@ -425,6 +426,12 @@
08AA; REH WITH LOOP; R; REH
08AB; WAW WITH DOT WITHIN; R; WAW
08AC; ROHINGYA YEH; R; ROHINGYA YEH
+08AD; LOW ALEF; U; No_Joining_Group
+08AE; DAL WITH 3 DOTS BELOW; R; DAL
+08AF; SAD WITH 3 DOTS BELOW; D; SAD
+08B0; KEHEH WITH STROKE BELOW; D; GAF
+08B1; STRAIGHT WAW; R; STRAIGHT WAW
+08B2; REH WITH DOT AND INVERTED V ABOVE; R; REH
# Mongolian Characters
@@ -627,4 +634,77 @@ A871; PHAGS-PA SUBJOINED RA; D; No_Joining_Group
A872; PHAGS-PA SUPERFIXED RA; L; No_Joining_Group
A873; PHAGS-PA CANDRABINDU; U; No_Joining_Group
+# Manichaean Characters
+
+10AC0; MANICHAEAN ALEPH; D; MANICHAEAN ALEPH
+10AC1; MANICHAEAN BETH; D; MANICHAEAN BETH
+10AC2; MANICHAEAN BETH WITH 2 DOTS ABOVE; D; MANICHAEAN BETH
+10AC3; MANICHAEAN GIMEL; D; MANICHAEAN GIMEL
+10AC4; MANICHAEAN GIMEL WITH ATTACHED RING BELOW; D; MANICHAEAN GIMEL
+10AC5; MANICHAEAN DALETH; R; MANICHAEAN DALETH
+10AC6; MANICHAEAN HE; U; No_Joining_Group
+10AC7; MANICHAEAN WAW; R; MANICHAEAN WAW
+10AC8; MANICHAEAN UD; U; No_Joining_Group
+10AC9; MANICHAEAN ZAYIN; R; MANICHAEAN ZAYIN
+10ACA; MANICHAEAN ZAYIN WITH 2 DOTS ABOVE; R; MANICHAEAN ZAYIN
+10ACB; MANICHAEAN JAYIN; U; No_Joining_Group
+10ACC; MANICHAEAN JAYIN WITH 2 DOTS ABOVE; U; No_Joining_Group
+10ACD; MANICHAEAN HETH; L; MANICHAEAN HETH
+10ACE; MANICHAEAN TETH; R; MANICHAEAN TETH
+10ACF; MANICHAEAN YODH; R; MANICHAEAN YODH
+10AD0; MANICHAEAN KAPH; R; MANICHAEAN KAPH
+10AD1; MANICHAEAN KAPH WITH DOT ABOVE; R; MANICHAEAN KAPH
+10AD2; MANICHAEAN KAPH WITH 2 DOTS ABOVE; R; MANICHAEAN KAPH
+10AD3; MANICHAEAN LAMEDH; D; MANICHAEAN LAMEDH
+10AD4; MANICHAEAN DHAMEDH; D; MANICHAEAN DHAMEDH
+10AD5; MANICHAEAN THAMEDH; D; MANICHAEAN THAMEDH
+10AD6; MANICHAEAN MEM; D; MANICHAEAN MEM
+10AD7; MANICHAEAN NUN; L; MANICHAEAN NUN
+10AD8; MANICHAEAN SAMEKH; D; MANICHAEAN SAMEKH
+10AD9; MANICHAEAN AYIN; D; MANICHAEAN AYIN
+10ADA; MANICHAEAN AYIN WITH 2 DOTS ABOVE; D; MANICHAEAN AYIN
+10ADB; MANICHAEAN PE; D; MANICHAEAN PE
+10ADC; MANICHAEAN PE WITH DOT ABOVE; D; MANICHAEAN PE
+10ADD; MANICHAEAN SADHE; R; MANICHAEAN SADHE
+10ADE; MANICHAEAN QOPH; D; MANICHAEAN QOPH
+10ADF; MANICHAEAN QOPH WITH DOT ABOVE; D; MANICHAEAN QOPH
+10AE0; MANICHAEAN QOPH WITH 2 DOTS ABOVE; D; MANICHAEAN QOPH
+10AE1; MANICHAEAN RESH; R; MANICHAEAN RESH
+10AE2; MANICHAEAN SHIN; U; No_Joining_Group
+10AE3; MANICHAEAN SHIN WITH 2 DOTS ABOVE; U; No_Joining_Group
+10AE4; MANICHAEAN TAW; R; MANICHAEAN TAW
+10AEB; MANICHAEAN ONE; D; MANICHAEAN ONE
+10AEC; MANICHAEAN FIVE; D; MANICHAEAN FIVE
+10AED; MANICHAEAN TEN; D; MANICHAEAN TEN
+10AEE; MANICHAEAN TWENTY; D; MANICHAEAN TWENTY
+10AEF; MANICHAEAN HUNDRED; R; MANICHAEAN HUNDRED
+
+# Psalter Pahlavi Characters
+
+10B80; PSALTER PAHLAVI ALEPH; D; No_Joining_Group
+10B81; PSALTER PAHLAVI BETH; R; No_Joining_Group
+10B82; PSALTER PAHLAVI GIMEL; D; No_Joining_Group
+10B83; PSALTER PAHLAVI DALETH; R; No_Joining_Group
+10B84; PSALTER PAHLAVI HE; R; No_Joining_Group
+10B85; PSALTER PAHLAVI WAW-AYIN-RESH; R; No_Joining_Group
+10B86; PSALTER PAHLAVI ZAYIN; D; No_Joining_Group
+10B87; PSALTER PAHLAVI HETH; D; No_Joining_Group
+10B88; PSALTER PAHLAVI YODH; D; No_Joining_Group
+10B89; PSALTER PAHLAVI KAPH; R; No_Joining_Group
+10B8A; PSALTER PAHLAVI LAMEDH; D; No_Joining_Group
+10B8B; PSALTER PAHLAVI MEM-QOPH; D; No_Joining_Group
+10B8C; PSALTER PAHLAVI NUN; R; No_Joining_Group
+10B8D; PSALTER PAHLAVI SAMEKH; D; No_Joining_Group
+10B8E; PSALTER PAHLAVI PE; R; No_Joining_Group
+10B8F; PSALTER PAHLAVI SADHE; R; No_Joining_Group
+10B90; PSALTER PAHLAVI SHIN; D; No_Joining_Group
+10B91; PSALTER PAHLAVI TAW; R; No_Joining_Group
+10BA9; PSALTER PAHLAVI ONE; R; No_Joining_Group
+10BAA; PSALTER PAHLAVI TWO; R; No_Joining_Group
+10BAB; PSALTER PAHLAVI THREE; R; No_Joining_Group
+10BAC; PSALTER PAHLAVI FOUR; R; No_Joining_Group
+10BAD; PSALTER PAHLAVI TEN; D; No_Joining_Group
+10BAE; PSALTER PAHLAVI TWENTY; D; No_Joining_Group
+10BAF; PSALTER PAHLAVI HUNDRED; U; No_Joining_Group
+
# EOF
diff --git a/util/unicode/data/BidiMirroring.txt b/util/unicode/data/BidiMirroring.txt
index d97c0dd961..b1f7386d67 100644
--- a/util/unicode/data/BidiMirroring.txt
+++ b/util/unicode/data/BidiMirroring.txt
@@ -1,19 +1,19 @@
-# BidiMirroring-6.3.0.txt
-# Date: 2013-02-12, 08:20:00 GMT [KW, LI]
+# BidiMirroring-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [KW, LI]
#
# Bidi_Mirroring_Glyph Property
#
# This file is an informative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# This data file lists characters that have the Bidi_Mirrored=Yes property
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
-# The repertoire covered by the file is Unicode 6.3.0.
+# The repertoire covered by the file is Unicode 7.0.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
@@ -37,12 +37,12 @@
# that means that no other character exists whose glyph is suitable
# for character-based mirroring.
#
-# For information on bidi mirroring, see UAX #9: Bidirectional Algorithm,
+# For information on bidi mirroring, see UAX #9: Unicode Bidirectional Algorithm,
# at http://www.unicode.org/unicode/reports/tr9/
#
# This file was originally created by Markus Scherer.
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
-# and for Unicode 6.1, 6.2, and 6.3 by Ken Whistler and Laurentiu Iancu.
+# and for Unicode 6.1, 6.2, 6.3, and 7.0 by Ken Whistler and Laurentiu Iancu.
#
# ############################################################
#
diff --git a/util/unicode/data/Blocks.txt b/util/unicode/data/Blocks.txt
index d45ab0cff2..3653af7a47 100644
--- a/util/unicode/data/Blocks.txt
+++ b/util/unicode/data/Blocks.txt
@@ -1,8 +1,8 @@
-# Blocks-6.3.0.txt
-# Date: 2012-12-02, 09:45:00 GMT [KW, LI]
+# Blocks-7.0.0.txt
+# Date: 2014-04-03, 23:23:00 GMT [RP, KW]
#
# Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
@@ -82,6 +82,7 @@
19E0..19FF; Khmer Symbols
1A00..1A1F; Buginese
1A20..1AAF; Tai Tham
+1AB0..1AFF; Combining Diacritical Marks Extended
1B00..1B7F; Balinese
1B80..1BBF; Sundanese
1BC0..1BFF; Batak
@@ -160,11 +161,13 @@ A900..A92F; Kayah Li
A930..A95F; Rejang
A960..A97F; Hangul Jamo Extended-A
A980..A9DF; Javanese
+A9E0..A9FF; Myanmar Extended-B
AA00..AA5F; Cham
AA60..AA7F; Myanmar Extended-A
AA80..AADF; Tai Viet
AAE0..AAFF; Meetei Mayek Extensions
AB00..AB2F; Ethiopic Extended-A
+AB30..AB6F; Latin Extended-E
ABC0..ABFF; Meetei Mayek
AC00..D7AF; Hangul Syllables
D7B0..D7FF; Hangul Jamo Extended-B
@@ -191,54 +194,83 @@ FFF0..FFFF; Specials
101D0..101FF; Phaistos Disc
10280..1029F; Lycian
102A0..102DF; Carian
+102E0..102FF; Coptic Epact Numbers
10300..1032F; Old Italic
10330..1034F; Gothic
+10350..1037F; Old Permic
10380..1039F; Ugaritic
103A0..103DF; Old Persian
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
+10500..1052F; Elbasan
+10530..1056F; Caucasian Albanian
+10600..1077F; Linear A
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
+10860..1087F; Palmyrene
+10880..108AF; Nabataean
10900..1091F; Phoenician
10920..1093F; Lydian
10980..1099F; Meroitic Hieroglyphs
109A0..109FF; Meroitic Cursive
10A00..10A5F; Kharoshthi
10A60..10A7F; Old South Arabian
+10A80..10A9F; Old North Arabian
+10AC0..10AFF; Manichaean
10B00..10B3F; Avestan
10B40..10B5F; Inscriptional Parthian
10B60..10B7F; Inscriptional Pahlavi
+10B80..10BAF; Psalter Pahlavi
10C00..10C4F; Old Turkic
10E60..10E7F; Rumi Numeral Symbols
11000..1107F; Brahmi
11080..110CF; Kaithi
110D0..110FF; Sora Sompeng
11100..1114F; Chakma
+11150..1117F; Mahajani
11180..111DF; Sharada
+111E0..111FF; Sinhala Archaic Numbers
+11200..1124F; Khojki
+112B0..112FF; Khudawadi
+11300..1137F; Grantha
+11480..114DF; Tirhuta
+11580..115FF; Siddham
+11600..1165F; Modi
11680..116CF; Takri
+118A0..118FF; Warang Citi
+11AC0..11AFF; Pau Cin Hau
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
13000..1342F; Egyptian Hieroglyphs
16800..16A3F; Bamum Supplement
+16A40..16A6F; Mro
+16AD0..16AFF; Bassa Vah
+16B00..16B8F; Pahawh Hmong
16F00..16F9F; Miao
1B000..1B0FF; Kana Supplement
+1BC00..1BC9F; Duployan
+1BCA0..1BCAF; Shorthand Format Controls
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
+1E800..1E8DF; Mende Kikakui
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
1F0A0..1F0FF; Playing Cards
1F100..1F1FF; Enclosed Alphanumeric Supplement
1F200..1F2FF; Enclosed Ideographic Supplement
-1F300..1F5FF; Miscellaneous Symbols And Pictographs
+1F300..1F5FF; Miscellaneous Symbols and Pictographs
1F600..1F64F; Emoticons
-1F680..1F6FF; Transport And Map Symbols
+1F650..1F67F; Ornamental Dingbats
+1F680..1F6FF; Transport and Map Symbols
1F700..1F77F; Alchemical Symbols
+1F780..1F7FF; Geometric Shapes Extended
+1F800..1F8FF; Supplemental Arrows-C
20000..2A6DF; CJK Unified Ideographs Extension B
2A700..2B73F; CJK Unified Ideographs Extension C
2B740..2B81F; CJK Unified Ideographs Extension D
diff --git a/util/unicode/data/CaseFolding.txt b/util/unicode/data/CaseFolding.txt
index cf5779f407..13c10a6c48 100644
--- a/util/unicode/data/CaseFolding.txt
+++ b/util/unicode/data/CaseFolding.txt
@@ -1,8 +1,8 @@
-# CaseFolding-6.3.0.txt
-# Date: 2012-12-20, 22:14:35 GMT [MD]
+# CaseFolding-7.0.0.txt
+# Date: 2014-04-09, 20:00:56 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
@@ -25,7 +25,7 @@
#
# For information on case folding, including how to have case folding
# preserve normalization formats, see Section 3.13 Default Case Algorithms in
-# The Unicode Standard, Version 5.0.
+# The Unicode Standard.
#
# ================================================================================
# Format
@@ -58,8 +58,6 @@
# All code points not explicitly listed for Case_Folding
# have the value C for the status field, and the code point itself for the mapping field.
-# @missing: 0000..10FFFF; C; <code point>
-
# =================================================================
0041; C; 0061; # LATIN CAPITAL LETTER A
0042; C; 0062; # LATIN CAPITAL LETTER B
@@ -298,6 +296,7 @@
0370; C; 0371; # GREEK CAPITAL LETTER HETA
0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI
0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F; C; 03F3; # GREEK CAPITAL LETTER YOT
0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS
0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS
0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS
@@ -505,6 +504,10 @@
0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE
+052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE
+052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB
0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN
0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM
@@ -1088,6 +1091,8 @@ A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE
A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE
A694; C; A695; # CYRILLIC CAPITAL LETTER HWE
A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE
+A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O
+A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O
A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726; C; A727; # LATIN CAPITAL LETTER HENG
@@ -1138,12 +1143,22 @@ A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO
A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H
A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER
A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR
+A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH
+A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE
+A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE
+A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE
+A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE
A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK
+A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G
+A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT
+A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K
+A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T
FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF
FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI
FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL
@@ -1222,5 +1237,37 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z
10425; C; 1044D; # DESERET CAPITAL LETTER ENG
10426; C; 1044E; # DESERET CAPITAL LETTER OI
10427; C; 1044F; # DESERET CAPITAL LETTER EW
+118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA
+118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A
+118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI
+118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU
+118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA
+118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO
+118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II
+118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU
+118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E
+118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O
+118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG
+118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA
+118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO
+118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY
+118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ
+118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC
+118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN
+118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD
+118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE
+118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG
+118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA
+118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT
+118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM
+118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU
+118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU
+118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO
+118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO
+118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR
+118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR
+118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU
+118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII
+118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO
#
# EOF
diff --git a/util/unicode/data/DerivedAge.txt b/util/unicode/data/DerivedAge.txt
index 6a77b82ecc..134dbbbe44 100644
--- a/util/unicode/data/DerivedAge.txt
+++ b/util/unicode/data/DerivedAge.txt
@@ -1,8 +1,8 @@
-# DerivedAge-6.3.0.txt
-# Date: 2013-08-27, 18:11:46 GMT [MD]
+# DerivedAge-7.0.0.txt
+# Date: 2014-05-28, 18:42:04 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
@@ -1316,4 +1316,155 @@ FA2E..FA2F ; 6.1 # [2] CJK COMPATIBILITY IDEOGRAPH-FA2E..CJK COMPATIBILITY
# Total code points: 5
+# ================================================
+
+# Age=V7_0
+
+# Newly assigned in Unicode 7.0.0 (June, 2014)
+
+037F ; 7.0 # GREEK CAPITAL LETTER YOT
+0528..052F ; 7.0 # [8] CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK..CYRILLIC SMALL LETTER EL WITH DESCENDER
+058D..058E ; 7.0 # [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+0605 ; 7.0 # ARABIC NUMBER MARK ABOVE
+08A1 ; 7.0 # ARABIC LETTER BEH WITH HAMZA ABOVE
+08AD..08B2 ; 7.0 # [6] ARABIC LETTER LOW ALEF..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08FF ; 7.0 # ARABIC MARK SIDEWAYS NOON GHUNNA
+0978 ; 7.0 # DEVANAGARI LETTER MARWARI DDA
+0980 ; 7.0 # BENGALI ANJI
+0C00 ; 7.0 # TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C34 ; 7.0 # TELUGU LETTER LLLA
+0C81 ; 7.0 # KANNADA SIGN CANDRABINDU
+0D01 ; 7.0 # MALAYALAM SIGN CANDRABINDU
+0DE6..0DEF ; 7.0 # [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+16F1..16F8 ; 7.0 # [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+191D..191E ; 7.0 # [2] LIMBU LETTER GYAN..LIMBU LETTER TRA
+1AB0..1ABE ; 7.0 # [15] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES OVERLAY
+1CF8..1CF9 ; 7.0 # [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DE7..1DF5 ; 7.0 # [15] COMBINING LATIN SMALL LETTER ALPHA..COMBINING UP TACK ABOVE
+20BB..20BD ; 7.0 # [3] NORDIC MARK SIGN..RUBLE SIGN
+23F4..23FA ; 7.0 # [7] BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+2700 ; 7.0 # BLACK SAFETY SCISSORS
+2B4D..2B4F ; 7.0 # [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
+2B5A..2B73 ; 7.0 # [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95 ; 7.0 # [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9 ; 7.0 # [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8 ; 7.0 # [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1 ; 7.0 # [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2E3C..2E42 ; 7.0 # [7] STENOGRAPHIC FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK
+A698..A69D ; 7.0 # [6] CYRILLIC CAPITAL LETTER DOUBLE O..MODIFIER LETTER CYRILLIC SOFT SIGN
+A794..A79F ; 7.0 # [12] LATIN SMALL LETTER C WITH PALATAL HOOK..LATIN SMALL LETTER VOLAPUK UE
+A7AB..A7AD ; 7.0 # [3] LATIN CAPITAL LETTER REVERSED OPEN E..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1 ; 7.0 # [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7 ; 7.0 # LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A9E0..A9FE ; 7.0 # [31] MYANMAR LETTER SHAN GHA..MYANMAR LETTER TAI LAING BHA
+AA7C..AA7F ; 7.0 # [4] MYANMAR SIGN TAI LAING TONE-2..MYANMAR LETTER SHWE PALAUNG SHA
+AB30..AB5F ; 7.0 # [48] LATIN SMALL LETTER BARRED ALPHA..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65 ; 7.0 # [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+FE27..FE2D ; 7.0 # [7] COMBINING LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW
+1018B..1018C ; 7.0 # [2] GREEK ONE QUARTER SIGN..GREEK SINUSOID SIGN
+101A0 ; 7.0 # GREEK SYMBOL TAU RHO
+102E0..102FB ; 7.0 # [28] COPTIC EPACT THOUSANDS MARK..COPTIC EPACT NUMBER NINE HUNDRED
+1031F ; 7.0 # OLD ITALIC LETTER ESS
+10350..1037A ; 7.0 # [43] OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10500..10527 ; 7.0 # [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; 7.0 # [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F ; 7.0 # CAUCASIAN ALBANIAN CITATION MARK
+10600..10736 ; 7.0 # [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; 7.0 # [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; 7.0 # [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10860..1089E ; 7.0 # [63] PALMYRENE LETTER ALEPH..NABATAEAN LETTER TAW
+108A7..108AF ; 7.0 # [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+10A80..10A9F ; 7.0 # [32] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AE6 ; 7.0 # [39] MANICHAEAN LETTER ALEPH..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AF6 ; 7.0 # [12] MANICHAEAN NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER
+10B80..10B91 ; 7.0 # [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C ; 7.0 # [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF ; 7.0 # [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+1107F ; 7.0 # BRAHMI NUMBER JOINER
+11150..11176 ; 7.0 # [39] MAHAJANI LETTER A..MAHAJANI LIGATURE SHRI
+111CD ; 7.0 # SHARADA SUTRA MARK
+111DA ; 7.0 # SHARADA EKAM
+111E1..111F4 ; 7.0 # [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211 ; 7.0 # [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1123D ; 7.0 # [43] KHOJKI LETTER NYA..KHOJKI ABBREVIATION SIGN
+112B0..112EA ; 7.0 # [59] KHUDAWADI LETTER A..KHUDAWADI SIGN VIRAMA
+112F0..112F9 ; 7.0 # [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301..11303 ; 7.0 # [3] GRANTHA SIGN CANDRABINDU..GRANTHA SIGN VISARGA
+11305..1130C ; 7.0 # [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; 7.0 # [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; 7.0 # [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; 7.0 # [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; 7.0 # [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; 7.0 # [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C..11344 ; 7.0 # [9] GRANTHA SIGN NUKTA..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; 7.0 # [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; 7.0 # [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357 ; 7.0 # GRANTHA AU LENGTH MARK
+1135D..11363 ; 7.0 # [7] GRANTHA SIGN PLUTA..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; 7.0 # [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; 7.0 # [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114C7 ; 7.0 # [72] TIRHUTA ANJI..TIRHUTA OM
+114D0..114D9 ; 7.0 # [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115B5 ; 7.0 # [54] SIDDHAM LETTER A..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115C9 ; 7.0 # [18] SIDDHAM VOWEL SIGN E..SIDDHAM END OF TEXT MARK
+11600..11644 ; 7.0 # [69] MODI LETTER A..MODI SIGN HUVA
+11650..11659 ; 7.0 # [10] MODI DIGIT ZERO..MODI DIGIT NINE
+118A0..118F2 ; 7.0 # [83] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI NUMBER NINETY
+118FF ; 7.0 # WARANG CITI OM
+11AC0..11AF8 ; 7.0 # [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+1236F..12398 ; 7.0 # [42] CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
+12463..1246E ; 7.0 # [12] CUNEIFORM NUMERIC SIGN ONE QUARTER GUR..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12474 ; 7.0 # CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A40..16A5E ; 7.0 # [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69 ; 7.0 # [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F ; 7.0 # [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED ; 7.0 # [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF5 ; 7.0 # [6] BASSA VAH COMBINING HIGH TONE..BASSA VAH FULL STOP
+16B00..16B45 ; 7.0 # [70] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59 ; 7.0 # [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61 ; 7.0 # [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77 ; 7.0 # [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; 7.0 # [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+1BC00..1BC6A ; 7.0 # [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; 7.0 # [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; 7.0 # [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; 7.0 # [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C..1BC9F ; 7.0 # [4] DUPLOYAN SIGN O WITH CROSS..DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3 ; 7.0 # [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1E800..1E8C4 ; 7.0 # [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8D6 ; 7.0 # [16] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1F0BF ; 7.0 # PLAYING CARD RED JOKER
+1F0E0..1F0F5 ; 7.0 # [22] PLAYING CARD FOOL..PLAYING CARD TRUMP-21
+1F10B..1F10C ; 7.0 # [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F321..1F32C ; 7.0 # [12] THERMOMETER..WIND BLOWING FACE
+1F336 ; 7.0 # HOT PEPPER
+1F37D ; 7.0 # FORK AND KNIFE WITH PLATE
+1F394..1F39F ; 7.0 # [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
+1F3C5 ; 7.0 # SPORTS MEDAL
+1F3CB..1F3CE ; 7.0 # [4] WEIGHT LIFTER..RACING CAR
+1F3D4..1F3DF ; 7.0 # [12] SNOW CAPPED MOUNTAIN..STADIUM
+1F3F1..1F3F7 ; 7.0 # [7] WHITE PENNANT..LABEL
+1F43F ; 7.0 # CHIPMUNK
+1F441 ; 7.0 # EYE
+1F4F8 ; 7.0 # CAMERA WITH FLASH
+1F4FD..1F4FE ; 7.0 # [2] FILM PROJECTOR..PORTABLE STEREO
+1F53E..1F53F ; 7.0 # [2] LOWER RIGHT SHADOWED WHITE CIRCLE..UPPER RIGHT SHADOWED WHITE CIRCLE
+1F544..1F54A ; 7.0 # [7] NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS..DOVE OF PEACE
+1F568..1F579 ; 7.0 # [18] RIGHT SPEAKER..JOYSTICK
+1F57B..1F5A3 ; 7.0 # [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5FA ; 7.0 # [86] DESKTOP COMPUTER..WORLD MAP
+1F641..1F642 ; 7.0 # [2] SLIGHTLY FROWNING FACE..SLIGHTLY SMILING FACE
+1F650..1F67F ; 7.0 # [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
+1F6C6..1F6CF ; 7.0 # [10] TRIANGLE WITH ROUNDED CORNERS..BED
+1F6E0..1F6EC ; 7.0 # [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3 ; 7.0 # [4] SATELLITE..PASSENGER SHIP
+1F780..1F7D4 ; 7.0 # [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B ; 7.0 # [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847 ; 7.0 # [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859 ; 7.0 # [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887 ; 7.0 # [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD ; 7.0 # [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+
+# Total code points: 2834
+
# EOF
diff --git a/util/unicode/data/DerivedNormalizationProps.txt b/util/unicode/data/DerivedNormalizationProps.txt
index e59d17715d..147ef2b531 100644
--- a/util/unicode/data/DerivedNormalizationProps.txt
+++ b/util/unicode/data/DerivedNormalizationProps.txt
@@ -1,5 +1,5 @@
-# DerivedNormalizationProps-6.3.0.txt
-# Date: 2013-03-02, 16:07:38 GMT [MD]
+# DerivedNormalizationProps-7.0.0.txt
+# Date: 2013-12-03, 15:11:47 GMT [MD]
#
# Unicode Character Database
# Copyright (c) 1991-2013 Unicode, Inc.
@@ -980,11 +980,15 @@ FB46..FB4E ; NFD_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
1109C ; NFD_QC; N # Lo KAITHI LETTER RHA
110AB ; NFD_QC; N # Lo KAITHI LETTER VA
1112E..1112F ; NFD_QC; N # Mn [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C ; NFD_QC; N # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC ; NFD_QC; N # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE ; NFD_QC; N # Mc TIRHUTA VOWEL SIGN AU
+115BA..115BB ; NFD_QC; N # Mc [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
1D15E..1D164 ; NFD_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D1BB..1D1C0 ; NFD_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
2F800..2FA1D ; NFD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 13225
+# Total code points: 13232
# ================================================
@@ -1116,8 +1120,14 @@ FB46..FB4E ; NFC_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
3099..309A ; NFC_QC; M # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
110BA ; NFC_QC; M # Mn KAITHI SIGN NUKTA
11127 ; NFC_QC; M # Mn CHAKMA VOWEL SIGN A
+1133E ; NFC_QC; M # Mc GRANTHA VOWEL SIGN AA
+11357 ; NFC_QC; M # Mc GRANTHA AU LENGTH MARK
+114B0 ; NFC_QC; M # Mc TIRHUTA VOWEL SIGN AA
+114BA ; NFC_QC; M # Mn TIRHUTA VOWEL SIGN SHORT E
+114BD ; NFC_QC; M # Mc TIRHUTA VOWEL SIGN SHORT O
+115AF ; NFC_QC; M # Mc SIDDHAM VOWEL SIGN AA
-# Total code points: 104
+# Total code points: 110
# ================================================
@@ -1454,8 +1464,10 @@ FB46..FB4E ; NFC_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
32B1..32BF ; NFKD_QC; N # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
32C0..32FE ; NFKD_QC; N # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
3300..33FF ; NFKD_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+A69C..A69D ; NFKD_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A770 ; NFKD_QC; N # Lm MODIFIER LETTER US
A7F8..A7F9 ; NFKD_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F ; NFKD_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AC00..D7A3 ; NFKD_QC; N # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
F900..FA0D ; NFKD_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
FA10 ; NFKD_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
@@ -1581,6 +1593,10 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1109C ; NFKD_QC; N # Lo KAITHI LETTER RHA
110AB ; NFKD_QC; N # Lo KAITHI LETTER VA
1112E..1112F ; NFKD_QC; N # Mn [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C ; NFKD_QC; N # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC ; NFKD_QC; N # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE ; NFKD_QC; N # Mc TIRHUTA VOWEL SIGN AU
+115BA..115BB ; NFKD_QC; N # Mc [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
1D15E..1D164 ; NFKD_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D1BB..1D1C0 ; NFKD_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
1D400..1D454 ; NFKD_QC; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
@@ -1668,7 +1684,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1F250..1F251 ; NFKD_QC; N # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
2F800..2FA1D ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 16880
+# Total code points: 16893
# ================================================
@@ -1860,8 +1876,10 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
32B1..32BF ; NFKC_QC; N # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
32C0..32FE ; NFKC_QC; N # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
3300..33FF ; NFKC_QC; N # So [256] SQUARE APAATO..SQUARE GAL
+A69C..A69D ; NFKC_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A770 ; NFKC_QC; N # Lm MODIFIER LETTER US
A7F8..A7F9 ; NFKC_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F ; NFKC_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
F900..FA0D ; NFKC_QC; N # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
FA10 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
FA12 ; NFKC_QC; N # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
@@ -2069,7 +2087,7 @@ FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1F250..1F251 ; NFKC_QC; N # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
2F800..2FA1D ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 4787
+# Total code points: 4793
# ================================================
@@ -2111,8 +2129,14 @@ FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
3099..309A ; NFKC_QC; M # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
110BA ; NFKC_QC; M # Mn KAITHI SIGN NUKTA
11127 ; NFKC_QC; M # Mn CHAKMA VOWEL SIGN A
+1133E ; NFKC_QC; M # Mc GRANTHA VOWEL SIGN AA
+11357 ; NFKC_QC; M # Mc GRANTHA AU LENGTH MARK
+114B0 ; NFKC_QC; M # Mc TIRHUTA VOWEL SIGN AA
+114BA ; NFKC_QC; M # Mn TIRHUTA VOWEL SIGN SHORT E
+114BD ; NFKC_QC; M # Mc TIRHUTA VOWEL SIGN SHORT O
+115AF ; NFKC_QC; M # Mc SIDDHAM VOWEL SIGN AA
-# Total code points: 104
+# Total code points: 110
# ================================================
@@ -2338,10 +2362,14 @@ FB46..FB4E ; Expands_On_NFD # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBRE
1109C ; Expands_On_NFD # Lo KAITHI LETTER RHA
110AB ; Expands_On_NFD # Lo KAITHI LETTER VA
1112E..1112F ; Expands_On_NFD # Mn [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C ; Expands_On_NFD # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC ; Expands_On_NFD # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE ; Expands_On_NFD # Mc TIRHUTA VOWEL SIGN AU
+115BA..115BB ; Expands_On_NFD # Mc [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
1D15E..1D164 ; Expands_On_NFD # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D1BB..1D1C0 ; Expands_On_NFD # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
-# Total code points: 12208
+# Total code points: 12215
# ================================================
@@ -2687,6 +2715,10 @@ FFE3 ; Expands_On_NFKD # Sk FULLWIDTH MACRON
1109C ; Expands_On_NFKD # Lo KAITHI LETTER RHA
110AB ; Expands_On_NFKD # Lo KAITHI LETTER VA
1112E..1112F ; Expands_On_NFKD # Mn [2] CHAKMA VOWEL SIGN O..CHAKMA VOWEL SIGN AU
+1134B..1134C ; Expands_On_NFKD # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+114BB..114BC ; Expands_On_NFKD # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE ; Expands_On_NFKD # Mc TIRHUTA VOWEL SIGN AU
+115BA..115BB ; Expands_On_NFKD # Mc [2] SIDDHAM VOWEL SIGN O..SIDDHAM VOWEL SIGN AU
1D15E..1D164 ; Expands_On_NFKD # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D1BB..1D1C0 ; Expands_On_NFKD # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
1F100..1F10A ; Expands_On_NFKD # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
@@ -2699,7 +2731,7 @@ FFE3 ; Expands_On_NFKD # Sk FULLWIDTH MACRON
1F213 ; Expands_On_NFKD # So SQUARED KATAKANA DE
1F240..1F248 ; Expands_On_NFKD # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-# Total code points: 13380
+# Total code points: 13387
# ================================================
@@ -3126,6 +3158,7 @@ FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
0376 ; NFKC_CF; 0377 # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
037A ; NFKC_CF; 0020 03B9 # Lm GREEK YPOGEGRAMMENI
037E ; NFKC_CF; 003B # Po GREEK QUESTION MARK
+037F ; NFKC_CF; 03F3 # L& GREEK CAPITAL LETTER YOT
0384 ; NFKC_CF; 0020 0301 # Sk GREEK TONOS
0385 ; NFKC_CF; 0020 0308 0301 # Sk GREEK DIALYTIKA TONOS
0386 ; NFKC_CF; 03AC # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
@@ -3338,6 +3371,10 @@ FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
0522 ; NFKC_CF; 0523 # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524 ; NFKC_CF; 0525 # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526 ; NFKC_CF; 0527 # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528 ; NFKC_CF; 0529 # L& CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A ; NFKC_CF; 052B # L& CYRILLIC CAPITAL LETTER DZZHE
+052C ; NFKC_CF; 052D # L& CYRILLIC CAPITAL LETTER DCHE
+052E ; NFKC_CF; 052F # L& CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531 ; NFKC_CF; 0561 # L& ARMENIAN CAPITAL LETTER AYB
0532 ; NFKC_CF; 0562 # L& ARMENIAN CAPITAL LETTER BEN
0533 ; NFKC_CF; 0563 # L& ARMENIAN CAPITAL LETTER GIM
@@ -5151,6 +5188,10 @@ A690 ; NFKC_CF; A691 # L& CYRILLIC CAPITAL LETTER TSSE
A692 ; NFKC_CF; A693 # L& CYRILLIC CAPITAL LETTER TCHE
A694 ; NFKC_CF; A695 # L& CYRILLIC CAPITAL LETTER HWE
A696 ; NFKC_CF; A697 # L& CYRILLIC CAPITAL LETTER SHWE
+A698 ; NFKC_CF; A699 # L& CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; NFKC_CF; A69B # L& CYRILLIC CAPITAL LETTER CROSSED O
+A69C ; NFKC_CF; 044A # Lm MODIFIER LETTER CYRILLIC HARD SIGN
+A69D ; NFKC_CF; 044C # Lm MODIFIER LETTER CYRILLIC SOFT SIGN
A722 ; NFKC_CF; A723 # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724 ; NFKC_CF; A725 # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726 ; NFKC_CF; A727 # L& LATIN CAPITAL LETTER HENG
@@ -5202,14 +5243,28 @@ A78B ; NFKC_CF; A78C # L& LATIN CAPITAL LETTER SALTILLO
A78D ; NFKC_CF; 0265 # L& LATIN CAPITAL LETTER TURNED H
A790 ; NFKC_CF; A791 # L& LATIN CAPITAL LETTER N WITH DESCENDER
A792 ; NFKC_CF; A793 # L& LATIN CAPITAL LETTER C WITH BAR
+A796 ; NFKC_CF; A797 # L& LATIN CAPITAL LETTER B WITH FLOURISH
+A798 ; NFKC_CF; A799 # L& LATIN CAPITAL LETTER F WITH STROKE
+A79A ; NFKC_CF; A79B # L& LATIN CAPITAL LETTER VOLAPUK AE
+A79C ; NFKC_CF; A79D # L& LATIN CAPITAL LETTER VOLAPUK OE
+A79E ; NFKC_CF; A79F # L& LATIN CAPITAL LETTER VOLAPUK UE
A7A0 ; NFKC_CF; A7A1 # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2 ; NFKC_CF; A7A3 # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4 ; NFKC_CF; A7A5 # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6 ; NFKC_CF; A7A7 # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8 ; NFKC_CF; A7A9 # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
A7AA ; NFKC_CF; 0266 # L& LATIN CAPITAL LETTER H WITH HOOK
+A7AB ; NFKC_CF; 025C # L& LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC ; NFKC_CF; 0261 # L& LATIN CAPITAL LETTER SCRIPT G
+A7AD ; NFKC_CF; 026C # L& LATIN CAPITAL LETTER L WITH BELT
+A7B0 ; NFKC_CF; 029E # L& LATIN CAPITAL LETTER TURNED K
+A7B1 ; NFKC_CF; 0287 # L& LATIN CAPITAL LETTER TURNED T
A7F8 ; NFKC_CF; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE
A7F9 ; NFKC_CF; 0153 # Lm MODIFIER LETTER SMALL LIGATURE OE
+AB5C ; NFKC_CF; A727 # Lm MODIFIER LETTER SMALL HENG
+AB5D ; NFKC_CF; AB37 # Lm MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E ; NFKC_CF; 026B # Lm MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F ; NFKC_CF; AB52 # Lm MODIFIER LETTER SMALL U WITH LEFT HOOK
F900 ; NFKC_CF; 8C48 # Lo CJK COMPATIBILITY IDEOGRAPH-F900
F901 ; NFKC_CF; 66F4 # Lo CJK COMPATIBILITY IDEOGRAPH-F901
F902 ; NFKC_CF; 8ECA # Lo CJK COMPATIBILITY IDEOGRAPH-F902
@@ -6586,6 +6641,39 @@ FFF0..FFF8 ; NFKC_CF; # Cn [9] <reserved-FFF0>..<reserved-FF
10425 ; NFKC_CF; 1044D # L& DESERET CAPITAL LETTER ENG
10426 ; NFKC_CF; 1044E # L& DESERET CAPITAL LETTER OI
10427 ; NFKC_CF; 1044F # L& DESERET CAPITAL LETTER EW
+118A0 ; NFKC_CF; 118C0 # L& WARANG CITI CAPITAL LETTER NGAA
+118A1 ; NFKC_CF; 118C1 # L& WARANG CITI CAPITAL LETTER A
+118A2 ; NFKC_CF; 118C2 # L& WARANG CITI CAPITAL LETTER WI
+118A3 ; NFKC_CF; 118C3 # L& WARANG CITI CAPITAL LETTER YU
+118A4 ; NFKC_CF; 118C4 # L& WARANG CITI CAPITAL LETTER YA
+118A5 ; NFKC_CF; 118C5 # L& WARANG CITI CAPITAL LETTER YO
+118A6 ; NFKC_CF; 118C6 # L& WARANG CITI CAPITAL LETTER II
+118A7 ; NFKC_CF; 118C7 # L& WARANG CITI CAPITAL LETTER UU
+118A8 ; NFKC_CF; 118C8 # L& WARANG CITI CAPITAL LETTER E
+118A9 ; NFKC_CF; 118C9 # L& WARANG CITI CAPITAL LETTER O
+118AA ; NFKC_CF; 118CA # L& WARANG CITI CAPITAL LETTER ANG
+118AB ; NFKC_CF; 118CB # L& WARANG CITI CAPITAL LETTER GA
+118AC ; NFKC_CF; 118CC # L& WARANG CITI CAPITAL LETTER KO
+118AD ; NFKC_CF; 118CD # L& WARANG CITI CAPITAL LETTER ENY
+118AE ; NFKC_CF; 118CE # L& WARANG CITI CAPITAL LETTER YUJ
+118AF ; NFKC_CF; 118CF # L& WARANG CITI CAPITAL LETTER UC
+118B0 ; NFKC_CF; 118D0 # L& WARANG CITI CAPITAL LETTER ENN
+118B1 ; NFKC_CF; 118D1 # L& WARANG CITI CAPITAL LETTER ODD
+118B2 ; NFKC_CF; 118D2 # L& WARANG CITI CAPITAL LETTER TTE
+118B3 ; NFKC_CF; 118D3 # L& WARANG CITI CAPITAL LETTER NUNG
+118B4 ; NFKC_CF; 118D4 # L& WARANG CITI CAPITAL LETTER DA
+118B5 ; NFKC_CF; 118D5 # L& WARANG CITI CAPITAL LETTER AT
+118B6 ; NFKC_CF; 118D6 # L& WARANG CITI CAPITAL LETTER AM
+118B7 ; NFKC_CF; 118D7 # L& WARANG CITI CAPITAL LETTER BU
+118B8 ; NFKC_CF; 118D8 # L& WARANG CITI CAPITAL LETTER PU
+118B9 ; NFKC_CF; 118D9 # L& WARANG CITI CAPITAL LETTER HIYO
+118BA ; NFKC_CF; 118DA # L& WARANG CITI CAPITAL LETTER HOLO
+118BB ; NFKC_CF; 118DB # L& WARANG CITI CAPITAL LETTER HORR
+118BC ; NFKC_CF; 118DC # L& WARANG CITI CAPITAL LETTER HAR
+118BD ; NFKC_CF; 118DD # L& WARANG CITI CAPITAL LETTER SSUU
+118BE ; NFKC_CF; 118DE # L& WARANG CITI CAPITAL LETTER SII
+118BF ; NFKC_CF; 118DF # L& WARANG CITI CAPITAL LETTER VIYO
+1BCA0..1BCA3 ; NFKC_CF; # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D15E ; NFKC_CF; 1D157 1D165 # So MUSICAL SYMBOL HALF NOTE
1D15F ; NFKC_CF; 1D158 1D165 # So MUSICAL SYMBOL QUARTER NOTE
1D160 ; NFKC_CF; 1D158 1D165 1D16E #So MUSICAL SYMBOL EIGHTH NOTE
@@ -8405,7 +8493,7 @@ E0080..E00FF ; NFKC_CF; # Cn [128] <reserved-E0080>..<reserved-E
E0100..E01EF ; NFKC_CF; # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 9946
+# Total code points: 10005
# ================================================
@@ -8576,6 +8664,7 @@ E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-
0376 ; Changes_When_NFKC_Casefolded # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
037A ; Changes_When_NFKC_Casefolded # Lm GREEK YPOGEGRAMMENI
037E ; Changes_When_NFKC_Casefolded # Po GREEK QUESTION MARK
+037F ; Changes_When_NFKC_Casefolded # L& GREEK CAPITAL LETTER YOT
0384..0385 ; Changes_When_NFKC_Casefolded # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
0386 ; Changes_When_NFKC_Casefolded # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0387 ; Changes_When_NFKC_Casefolded # Po GREEK ANO TELEIA
@@ -8698,6 +8787,10 @@ E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-
0522 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER DZZHE
+052C ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER DCHE
+052E ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531..0556 ; Changes_When_NFKC_Casefolded # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
0587 ; Changes_When_NFKC_Casefolded # L& ARMENIAN SMALL LIGATURE ECH YIWN
061C ; Changes_When_NFKC_Casefolded # Cf ARABIC LETTER MARK
@@ -9091,6 +9184,9 @@ A690 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER
A692 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER TCHE
A694 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER HWE
A696 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER SHWE
+A698 ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; Changes_When_NFKC_Casefolded # L& CYRILLIC CAPITAL LETTER CROSSED O
+A69C..A69D ; Changes_When_NFKC_Casefolded # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A722 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER HENG
@@ -9141,13 +9237,20 @@ A78B ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER SAL
A78D ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER TURNED H
A790 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER N WITH DESCENDER
A792 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER C WITH BAR
+A796 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER B WITH FLOURISH
+A798 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER F WITH STROKE
+A79A ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER VOLAPUK AE
+A79C ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER VOLAPUK OE
+A79E ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER VOLAPUK UE
A7A0 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD ; Changes_When_NFKC_Casefolded # L& [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1 ; Changes_When_NFKC_Casefolded # L& [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
A7F8..A7F9 ; Changes_When_NFKC_Casefolded # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+AB5C..AB5F ; Changes_When_NFKC_Casefolded # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
F900..FA0D ; Changes_When_NFKC_Casefolded # Lo [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
FA10 ; Changes_When_NFKC_Casefolded # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
FA12 ; Changes_When_NFKC_Casefolded # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
@@ -9272,6 +9375,8 @@ FFE9..FFEC ; Changes_When_NFKC_Casefolded # Sm [4] HALFWIDTH LEFTWARDS ARRO
FFED..FFEE ; Changes_When_NFKC_Casefolded # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
FFF0..FFF8 ; Changes_When_NFKC_Casefolded # Cn [9] <reserved-FFF0>..<reserved-FFF8>
10400..10427 ; Changes_When_NFKC_Casefolded # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF ; Changes_When_NFKC_Casefolded # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
+1BCA0..1BCA3 ; Changes_When_NFKC_Casefolded # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D15E..1D164 ; Changes_When_NFKC_Casefolded # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D173..1D17A ; Changes_When_NFKC_Casefolded # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
1D1BB..1D1C0 ; Changes_When_NFKC_Casefolded # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
@@ -9367,6 +9472,6 @@ E0080..E00FF ; Changes_When_NFKC_Casefolded # Cn [128] <reserved-E0080>..<reser
E0100..E01EF ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
E01F0..E0FFF ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 9946
+# Total code points: 10005
# EOF
diff --git a/util/unicode/data/GraphemeBreakProperty.txt b/util/unicode/data/GraphemeBreakProperty.txt
index 55556e0c58..752ee7926a 100644
--- a/util/unicode/data/GraphemeBreakProperty.txt
+++ b/util/unicode/data/GraphemeBreakProperty.txt
@@ -1,8 +1,8 @@
-# GraphemeBreakProperty-6.3.0.txt
-# Date: 2013-03-02, 16:07:40 GMT [MD]
+# GraphemeBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:21 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
@@ -34,7 +34,7 @@
000E..001F ; Control # Cc [18] <control-000E>..<control-001F>
007F..009F ; Control # Cc [33] <control-007F>..<control-009F>
00AD ; Control # Cf SOFT HYPHEN
-0600..0604 ; Control # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605 ; Control # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Control # Cf ARABIC LETTER MARK
06DD ; Control # Cf ARABIC END OF AYAH
070F ; Control # Cf SYRIAC ABBREVIATION MARK
@@ -52,6 +52,7 @@ FEFF ; Control # Cf ZERO WIDTH NO-BREAK SPACE
FFF0..FFF8 ; Control # Cn [9] <reserved-FFF0>..<reserved-FFF8>
FFF9..FFFB ; Control # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
110BD ; Control # Cf KAITHI NUMBER SIGN
+1BCA0..1BCA3 ; Control # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Control # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0000 ; Control # Cn <reserved-E0000>
E0001 ; Control # Cf LANGUAGE TAG
@@ -60,7 +61,7 @@ E0020..E007F ; Control # Cf [96] TAG SPACE..CANCEL TAG
E0080..E00FF ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 6025
+# Total code points: 6030
# ================================================
@@ -88,8 +89,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE ; Extend # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902 ; Extend # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902 ; Extend # Mn [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
093C ; Extend # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -131,11 +131,13 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0BC0 ; Extend # Mn TAMIL VOWEL SIGN II
0BCD ; Extend # Mn TAMIL SIGN VIRAMA
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
+0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81 ; Extend # Mn KANNADA SIGN CANDRABINDU
0CBC ; Extend # Mn KANNADA SIGN NUKTA
0CBF ; Extend # Mn KANNADA VOWEL SIGN I
0CC2 ; Extend # Mc KANNADA VOWEL SIGN UU
@@ -143,6 +145,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01 ; Extend # Mn MALAYALAM SIGN CANDRABINDU
0D3E ; Extend # Mc MALAYALAM VOWEL SIGN AA
0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
0D4D ; Extend # Mn MALAYALAM SIGN VIRAMA
@@ -206,6 +209,8 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
1A65..1A6C ; Extend # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
1A73..1A7C ; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; Extend # Mn BALINESE SIGN REREKAN
1B36..1B3A ; Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
@@ -215,7 +220,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
1B80..1B81 ; Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
1BA2..1BA5 ; Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAB ; Extend # Mn SUNDANESE SIGN VIRAMA
+1BAB..1BAD ; Extend # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; Extend # Mn BATAK SIGN TOMPI
1BE8..1BE9 ; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
1BED ; Extend # Mn BATAK VOWEL SIGN KARO O
@@ -227,7 +232,8 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
1CE2..1CE8 ; Extend # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Extend # Mn VEDIC SIGN TIRYAK
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
-1DC0..1DE6 ; Extend # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5 ; Extend # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
1DFC..1DFF ; Extend # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -258,11 +264,13 @@ A980..A982 ; Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; Extend # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BC ; Extend # Mn JAVANESE VOWEL SIGN PEPET
+A9E5 ; Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
AA35..AA36 ; Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
+AA7C ; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
AAB0 ; Extend # Mn TAI VIET MAI KANG
AAB2..AAB4 ; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -275,29 +283,61 @@ ABE8 ; Extend # Mn MEETEI MAYEK VOWEL SIGN UNAP
ABED ; Extend # Mn MEETEI MAYEK APUN IYEK
FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; Extend # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D ; Extend # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; Extend # Mn COPTIC EPACT THOUSANDS MARK
+10376..1037A ; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; Extend # Mn KHAROSHTHI VIRAMA
+10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081 ; Extend # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173 ; Extend # Mn MAHAJANI SIGN NUKTA
11180..11181 ; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
111B6..111BE ; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+1122F..11231 ; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
+11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
+112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301 ; Extend # Mn GRANTHA SIGN CANDRABINDU
+1133C ; Extend # Mn GRANTHA SIGN NUKTA
+1133E ; Extend # Mc GRANTHA VOWEL SIGN AA
+11340 ; Extend # Mn GRANTHA VOWEL SIGN II
+11357 ; Extend # Mc GRANTHA AU LENGTH MARK
+11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0 ; Extend # Mc TIRHUTA VOWEL SIGN AA
+114B3..114B8 ; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114BA ; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
+114BD ; Extend # Mc TIRHUTA VOWEL SIGN SHORT O
+114BF..114C0 ; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C2..114C3 ; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF ; Extend # Mc SIDDHAM VOWEL SIGN AA
+115B2..115B5 ; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115BC..115BD ; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BF..115C0 ; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11633..1163A ; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163D ; Extend # Mn MODI SIGN ANUSVARA
+1163F..11640 ; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; Extend # Mn TAKRI SIGN ANUSVARA
116AD ; Extend # Mn TAKRI VOWEL SIGN AA
116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B7 ; Extend # Mn TAKRI SIGN NUKTA
+16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1D165 ; Extend # Mc MUSICAL SYMBOL COMBINING STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16E..1D172 ; Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
@@ -305,9 +345,10 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1318
+# Total code points: 1461
# ================================================
@@ -386,7 +427,6 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
1BA1 ; SpacingMark # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
1BA6..1BA7 ; SpacingMark # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BAA ; SpacingMark # Mc SUNDANESE SIGN PAMAAEH
-1BAC..1BAD ; SpacingMark # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE7 ; SpacingMark # Mc BATAK VOWEL SIGN E
1BEA..1BEC ; SpacingMark # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
1BEE ; SpacingMark # Mc BATAK VOWEL SIGN U
@@ -423,6 +463,27 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
11182 ; SpacingMark # Mc SHARADA SIGN VISARGA
111B3..111B5 ; SpacingMark # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111BF..111C0 ; SpacingMark # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E ; SpacingMark # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+11232..11233 ; SpacingMark # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11235 ; SpacingMark # Mc KHOJKI SIGN VIRAMA
+112E0..112E2 ; SpacingMark # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+11302..11303 ; SpacingMark # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133F ; SpacingMark # Mc GRANTHA VOWEL SIGN I
+11341..11344 ; SpacingMark # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; SpacingMark # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; SpacingMark # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11362..11363 ; SpacingMark # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+114B1..114B2 ; SpacingMark # Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
+114B9 ; SpacingMark # Mc TIRHUTA VOWEL SIGN E
+114BB..114BC ; SpacingMark # Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
+114BE ; SpacingMark # Mc TIRHUTA VOWEL SIGN AU
+114C1 ; SpacingMark # Mc TIRHUTA SIGN VISARGA
+115B0..115B1 ; SpacingMark # Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
+115B8..115BB ; SpacingMark # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BE ; SpacingMark # Mc SIDDHAM SIGN VISARGA
+11630..11632 ; SpacingMark # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+1163B..1163C ; SpacingMark # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163E ; SpacingMark # Mc MODI SIGN VISARGA
116AC ; SpacingMark # Mc TAKRI SIGN VISARGA
116AE..116AF ; SpacingMark # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B6 ; SpacingMark # Mc TAKRI SIGN VIRAMA
@@ -430,7 +491,7 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
1D166 ; SpacingMark # Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D16D ; SpacingMark # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-# Total code points: 290
+# Total code points: 331
# ================================================
diff --git a/util/unicode/data/LineBreak.txt b/util/unicode/data/LineBreak.txt
index 8a72cabf78..e496c5fc0e 100644
--- a/util/unicode/data/LineBreak.txt
+++ b/util/unicode/data/LineBreak.txt
@@ -1,17 +1,17 @@
-# LineBreak-6.3.0.txt
-# Date: 2013-02-06, 19:45:00 GMT [KW, LI]
+# LineBreak-7.0.0.txt
+# Date: 2014-02-28, 23:15:00 GMT [KW, LI]
#
-# Line Break Properties
+# Line_Break Property
#
# This file is a normative contributory data file in the
# Unicode Character Database.
# It contains both normative and informative data.
#
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# The format is two fields separated by a semicolon.
-# Field 0: Unicode value
+# Field 0: Unicode code point value or range of code point values
# Field 1: Line_Break property, consisting of one of the following values:
# Normative:
# "BK", "CR", "LF", "CM", "SG", "GL", "CB", "SP", "ZW",
@@ -40,25241 +40,3018 @@
# - Character ranges are specified as for other property files in
# the Unicode Character Database.
#
-# The Unicode name of each character is provided in a comment for help
-# in identifying the characters.
+# For legacy reasons, there are no spaces before or after the semicolon
+# which separates the two fields. The comments following the number sign
+# "#" list the General_Category property value or the L& alias of the
+# derived value LC, the Unicode character name or names, and, in lines
+# with ranges of code points, the code point count in square brackets.
#
# For more information, see UAX #14: Unicode Line Breaking Algorithm,
# at http://www.unicode.org/reports/tr14/
#
# @missing: 0000..10FFFF; XX
-0000;CM # <control>
-0001;CM # <control>
-0002;CM # <control>
-0003;CM # <control>
-0004;CM # <control>
-0005;CM # <control>
-0006;CM # <control>
-0007;CM # <control>
-0008;CM # <control>
-0009;BA # <control>
-000A;LF # <control>
-000B;BK # <control>
-000C;BK # <control>
-000D;CR # <control>
-000E;CM # <control>
-000F;CM # <control>
-0010;CM # <control>
-0011;CM # <control>
-0012;CM # <control>
-0013;CM # <control>
-0014;CM # <control>
-0015;CM # <control>
-0016;CM # <control>
-0017;CM # <control>
-0018;CM # <control>
-0019;CM # <control>
-001A;CM # <control>
-001B;CM # <control>
-001C;CM # <control>
-001D;CM # <control>
-001E;CM # <control>
-001F;CM # <control>
-0020;SP # SPACE
-0021;EX # EXCLAMATION MARK
-0022;QU # QUOTATION MARK
-0023;AL # NUMBER SIGN
-0024;PR # DOLLAR SIGN
-0025;PO # PERCENT SIGN
-0026;AL # AMPERSAND
-0027;QU # APOSTROPHE
-0028;OP # LEFT PARENTHESIS
-0029;CP # RIGHT PARENTHESIS
-002A;AL # ASTERISK
-002B;PR # PLUS SIGN
-002C;IS # COMMA
-002D;HY # HYPHEN-MINUS
-002E;IS # FULL STOP
-002F;SY # SOLIDUS
-0030;NU # DIGIT ZERO
-0031;NU # DIGIT ONE
-0032;NU # DIGIT TWO
-0033;NU # DIGIT THREE
-0034;NU # DIGIT FOUR
-0035;NU # DIGIT FIVE
-0036;NU # DIGIT SIX
-0037;NU # DIGIT SEVEN
-0038;NU # DIGIT EIGHT
-0039;NU # DIGIT NINE
-003A;IS # COLON
-003B;IS # SEMICOLON
-003C;AL # LESS-THAN SIGN
-003D;AL # EQUALS SIGN
-003E;AL # GREATER-THAN SIGN
-003F;EX # QUESTION MARK
-0040;AL # COMMERCIAL AT
-0041;AL # LATIN CAPITAL LETTER A
-0042;AL # LATIN CAPITAL LETTER B
-0043;AL # LATIN CAPITAL LETTER C
-0044;AL # LATIN CAPITAL LETTER D
-0045;AL # LATIN CAPITAL LETTER E
-0046;AL # LATIN CAPITAL LETTER F
-0047;AL # LATIN CAPITAL LETTER G
-0048;AL # LATIN CAPITAL LETTER H
-0049;AL # LATIN CAPITAL LETTER I
-004A;AL # LATIN CAPITAL LETTER J
-004B;AL # LATIN CAPITAL LETTER K
-004C;AL # LATIN CAPITAL LETTER L
-004D;AL # LATIN CAPITAL LETTER M
-004E;AL # LATIN CAPITAL LETTER N
-004F;AL # LATIN CAPITAL LETTER O
-0050;AL # LATIN CAPITAL LETTER P
-0051;AL # LATIN CAPITAL LETTER Q
-0052;AL # LATIN CAPITAL LETTER R
-0053;AL # LATIN CAPITAL LETTER S
-0054;AL # LATIN CAPITAL LETTER T
-0055;AL # LATIN CAPITAL LETTER U
-0056;AL # LATIN CAPITAL LETTER V
-0057;AL # LATIN CAPITAL LETTER W
-0058;AL # LATIN CAPITAL LETTER X
-0059;AL # LATIN CAPITAL LETTER Y
-005A;AL # LATIN CAPITAL LETTER Z
-005B;OP # LEFT SQUARE BRACKET
-005C;PR # REVERSE SOLIDUS
-005D;CP # RIGHT SQUARE BRACKET
-005E;AL # CIRCUMFLEX ACCENT
-005F;AL # LOW LINE
-0060;AL # GRAVE ACCENT
-0061;AL # LATIN SMALL LETTER A
-0062;AL # LATIN SMALL LETTER B
-0063;AL # LATIN SMALL LETTER C
-0064;AL # LATIN SMALL LETTER D
-0065;AL # LATIN SMALL LETTER E
-0066;AL # LATIN SMALL LETTER F
-0067;AL # LATIN SMALL LETTER G
-0068;AL # LATIN SMALL LETTER H
-0069;AL # LATIN SMALL LETTER I
-006A;AL # LATIN SMALL LETTER J
-006B;AL # LATIN SMALL LETTER K
-006C;AL # LATIN SMALL LETTER L
-006D;AL # LATIN SMALL LETTER M
-006E;AL # LATIN SMALL LETTER N
-006F;AL # LATIN SMALL LETTER O
-0070;AL # LATIN SMALL LETTER P
-0071;AL # LATIN SMALL LETTER Q
-0072;AL # LATIN SMALL LETTER R
-0073;AL # LATIN SMALL LETTER S
-0074;AL # LATIN SMALL LETTER T
-0075;AL # LATIN SMALL LETTER U
-0076;AL # LATIN SMALL LETTER V
-0077;AL # LATIN SMALL LETTER W
-0078;AL # LATIN SMALL LETTER X
-0079;AL # LATIN SMALL LETTER Y
-007A;AL # LATIN SMALL LETTER Z
-007B;OP # LEFT CURLY BRACKET
-007C;BA # VERTICAL LINE
-007D;CL # RIGHT CURLY BRACKET
-007E;AL # TILDE
-007F;CM # <control>
-0080;CM # <control>
-0081;CM # <control>
-0082;CM # <control>
-0083;CM # <control>
-0084;CM # <control>
-0085;NL # <control>
-0086;CM # <control>
-0087;CM # <control>
-0088;CM # <control>
-0089;CM # <control>
-008A;CM # <control>
-008B;CM # <control>
-008C;CM # <control>
-008D;CM # <control>
-008E;CM # <control>
-008F;CM # <control>
-0090;CM # <control>
-0091;CM # <control>
-0092;CM # <control>
-0093;CM # <control>
-0094;CM # <control>
-0095;CM # <control>
-0096;CM # <control>
-0097;CM # <control>
-0098;CM # <control>
-0099;CM # <control>
-009A;CM # <control>
-009B;CM # <control>
-009C;CM # <control>
-009D;CM # <control>
-009E;CM # <control>
-009F;CM # <control>
-00A0;GL # NO-BREAK SPACE
-00A1;OP # INVERTED EXCLAMATION MARK
-00A2;PO # CENT SIGN
-00A3;PR # POUND SIGN
-00A4;PR # CURRENCY SIGN
-00A5;PR # YEN SIGN
-00A6;AL # BROKEN BAR
-00A7;AI # SECTION SIGN
-00A8;AI # DIAERESIS
-00A9;AL # COPYRIGHT SIGN
-00AA;AI # FEMININE ORDINAL INDICATOR
-00AB;QU # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC;AL # NOT SIGN
-00AD;BA # SOFT HYPHEN
-00AE;AL # REGISTERED SIGN
-00AF;AL # MACRON
-00B0;PO # DEGREE SIGN
-00B1;PR # PLUS-MINUS SIGN
-00B2;AI # SUPERSCRIPT TWO
-00B3;AI # SUPERSCRIPT THREE
-00B4;BB # ACUTE ACCENT
-00B5;AL # MICRO SIGN
-00B6;AI # PILCROW SIGN
-00B7;AI # MIDDLE DOT
-00B8;AI # CEDILLA
-00B9;AI # SUPERSCRIPT ONE
-00BA;AI # MASCULINE ORDINAL INDICATOR
-00BB;QU # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC;AI # VULGAR FRACTION ONE QUARTER
-00BD;AI # VULGAR FRACTION ONE HALF
-00BE;AI # VULGAR FRACTION THREE QUARTERS
-00BF;OP # INVERTED QUESTION MARK
-00C0;AL # LATIN CAPITAL LETTER A WITH GRAVE
-00C1;AL # LATIN CAPITAL LETTER A WITH ACUTE
-00C2;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00C3;AL # LATIN CAPITAL LETTER A WITH TILDE
-00C4;AL # LATIN CAPITAL LETTER A WITH DIAERESIS
-00C5;AL # LATIN CAPITAL LETTER A WITH RING ABOVE
-00C6;AL # LATIN CAPITAL LETTER AE
-00C7;AL # LATIN CAPITAL LETTER C WITH CEDILLA
-00C8;AL # LATIN CAPITAL LETTER E WITH GRAVE
-00C9;AL # LATIN CAPITAL LETTER E WITH ACUTE
-00CA;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00CB;AL # LATIN CAPITAL LETTER E WITH DIAERESIS
-00CC;AL # LATIN CAPITAL LETTER I WITH GRAVE
-00CD;AL # LATIN CAPITAL LETTER I WITH ACUTE
-00CE;AL # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF;AL # LATIN CAPITAL LETTER I WITH DIAERESIS
-00D0;AL # LATIN CAPITAL LETTER ETH
-00D1;AL # LATIN CAPITAL LETTER N WITH TILDE
-00D2;AL # LATIN CAPITAL LETTER O WITH GRAVE
-00D3;AL # LATIN CAPITAL LETTER O WITH ACUTE
-00D4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00D5;AL # LATIN CAPITAL LETTER O WITH TILDE
-00D6;AL # LATIN CAPITAL LETTER O WITH DIAERESIS
-00D7;AI # MULTIPLICATION SIGN
-00D8;AL # LATIN CAPITAL LETTER O WITH STROKE
-00D9;AL # LATIN CAPITAL LETTER U WITH GRAVE
-00DA;AL # LATIN CAPITAL LETTER U WITH ACUTE
-00DB;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-00DC;AL # LATIN CAPITAL LETTER U WITH DIAERESIS
-00DD;AL # LATIN CAPITAL LETTER Y WITH ACUTE
-00DE;AL # LATIN CAPITAL LETTER THORN
-00DF;AL # LATIN SMALL LETTER SHARP S
-00E0;AL # LATIN SMALL LETTER A WITH GRAVE
-00E1;AL # LATIN SMALL LETTER A WITH ACUTE
-00E2;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00E3;AL # LATIN SMALL LETTER A WITH TILDE
-00E4;AL # LATIN SMALL LETTER A WITH DIAERESIS
-00E5;AL # LATIN SMALL LETTER A WITH RING ABOVE
-00E6;AL # LATIN SMALL LETTER AE
-00E7;AL # LATIN SMALL LETTER C WITH CEDILLA
-00E8;AL # LATIN SMALL LETTER E WITH GRAVE
-00E9;AL # LATIN SMALL LETTER E WITH ACUTE
-00EA;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00EB;AL # LATIN SMALL LETTER E WITH DIAERESIS
-00EC;AL # LATIN SMALL LETTER I WITH GRAVE
-00ED;AL # LATIN SMALL LETTER I WITH ACUTE
-00EE;AL # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00EF;AL # LATIN SMALL LETTER I WITH DIAERESIS
-00F0;AL # LATIN SMALL LETTER ETH
-00F1;AL # LATIN SMALL LETTER N WITH TILDE
-00F2;AL # LATIN SMALL LETTER O WITH GRAVE
-00F3;AL # LATIN SMALL LETTER O WITH ACUTE
-00F4;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00F5;AL # LATIN SMALL LETTER O WITH TILDE
-00F6;AL # LATIN SMALL LETTER O WITH DIAERESIS
-00F7;AI # DIVISION SIGN
-00F8;AL # LATIN SMALL LETTER O WITH STROKE
-00F9;AL # LATIN SMALL LETTER U WITH GRAVE
-00FA;AL # LATIN SMALL LETTER U WITH ACUTE
-00FB;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00FC;AL # LATIN SMALL LETTER U WITH DIAERESIS
-00FD;AL # LATIN SMALL LETTER Y WITH ACUTE
-00FE;AL # LATIN SMALL LETTER THORN
-00FF;AL # LATIN SMALL LETTER Y WITH DIAERESIS
-0100;AL # LATIN CAPITAL LETTER A WITH MACRON
-0101;AL # LATIN SMALL LETTER A WITH MACRON
-0102;AL # LATIN CAPITAL LETTER A WITH BREVE
-0103;AL # LATIN SMALL LETTER A WITH BREVE
-0104;AL # LATIN CAPITAL LETTER A WITH OGONEK
-0105;AL # LATIN SMALL LETTER A WITH OGONEK
-0106;AL # LATIN CAPITAL LETTER C WITH ACUTE
-0107;AL # LATIN SMALL LETTER C WITH ACUTE
-0108;AL # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0109;AL # LATIN SMALL LETTER C WITH CIRCUMFLEX
-010A;AL # LATIN CAPITAL LETTER C WITH DOT ABOVE
-010B;AL # LATIN SMALL LETTER C WITH DOT ABOVE
-010C;AL # LATIN CAPITAL LETTER C WITH CARON
-010D;AL # LATIN SMALL LETTER C WITH CARON
-010E;AL # LATIN CAPITAL LETTER D WITH CARON
-010F;AL # LATIN SMALL LETTER D WITH CARON
-0110;AL # LATIN CAPITAL LETTER D WITH STROKE
-0111;AL # LATIN SMALL LETTER D WITH STROKE
-0112;AL # LATIN CAPITAL LETTER E WITH MACRON
-0113;AL # LATIN SMALL LETTER E WITH MACRON
-0114;AL # LATIN CAPITAL LETTER E WITH BREVE
-0115;AL # LATIN SMALL LETTER E WITH BREVE
-0116;AL # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0117;AL # LATIN SMALL LETTER E WITH DOT ABOVE
-0118;AL # LATIN CAPITAL LETTER E WITH OGONEK
-0119;AL # LATIN SMALL LETTER E WITH OGONEK
-011A;AL # LATIN CAPITAL LETTER E WITH CARON
-011B;AL # LATIN SMALL LETTER E WITH CARON
-011C;AL # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-011D;AL # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011E;AL # LATIN CAPITAL LETTER G WITH BREVE
-011F;AL # LATIN SMALL LETTER G WITH BREVE
-0120;AL # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0121;AL # LATIN SMALL LETTER G WITH DOT ABOVE
-0122;AL # LATIN CAPITAL LETTER G WITH CEDILLA
-0123;AL # LATIN SMALL LETTER G WITH CEDILLA
-0124;AL # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0125;AL # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0126;AL # LATIN CAPITAL LETTER H WITH STROKE
-0127;AL # LATIN SMALL LETTER H WITH STROKE
-0128;AL # LATIN CAPITAL LETTER I WITH TILDE
-0129;AL # LATIN SMALL LETTER I WITH TILDE
-012A;AL # LATIN CAPITAL LETTER I WITH MACRON
-012B;AL # LATIN SMALL LETTER I WITH MACRON
-012C;AL # LATIN CAPITAL LETTER I WITH BREVE
-012D;AL # LATIN SMALL LETTER I WITH BREVE
-012E;AL # LATIN CAPITAL LETTER I WITH OGONEK
-012F;AL # LATIN SMALL LETTER I WITH OGONEK
-0130;AL # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0131;AL # LATIN SMALL LETTER DOTLESS I
-0132;AL # LATIN CAPITAL LIGATURE IJ
-0133;AL # LATIN SMALL LIGATURE IJ
-0134;AL # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-0135;AL # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0136;AL # LATIN CAPITAL LETTER K WITH CEDILLA
-0137;AL # LATIN SMALL LETTER K WITH CEDILLA
-0138;AL # LATIN SMALL LETTER KRA
-0139;AL # LATIN CAPITAL LETTER L WITH ACUTE
-013A;AL # LATIN SMALL LETTER L WITH ACUTE
-013B;AL # LATIN CAPITAL LETTER L WITH CEDILLA
-013C;AL # LATIN SMALL LETTER L WITH CEDILLA
-013D;AL # LATIN CAPITAL LETTER L WITH CARON
-013E;AL # LATIN SMALL LETTER L WITH CARON
-013F;AL # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-0140;AL # LATIN SMALL LETTER L WITH MIDDLE DOT
-0141;AL # LATIN CAPITAL LETTER L WITH STROKE
-0142;AL # LATIN SMALL LETTER L WITH STROKE
-0143;AL # LATIN CAPITAL LETTER N WITH ACUTE
-0144;AL # LATIN SMALL LETTER N WITH ACUTE
-0145;AL # LATIN CAPITAL LETTER N WITH CEDILLA
-0146;AL # LATIN SMALL LETTER N WITH CEDILLA
-0147;AL # LATIN CAPITAL LETTER N WITH CARON
-0148;AL # LATIN SMALL LETTER N WITH CARON
-0149;AL # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-014A;AL # LATIN CAPITAL LETTER ENG
-014B;AL # LATIN SMALL LETTER ENG
-014C;AL # LATIN CAPITAL LETTER O WITH MACRON
-014D;AL # LATIN SMALL LETTER O WITH MACRON
-014E;AL # LATIN CAPITAL LETTER O WITH BREVE
-014F;AL # LATIN SMALL LETTER O WITH BREVE
-0150;AL # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0151;AL # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0152;AL # LATIN CAPITAL LIGATURE OE
-0153;AL # LATIN SMALL LIGATURE OE
-0154;AL # LATIN CAPITAL LETTER R WITH ACUTE
-0155;AL # LATIN SMALL LETTER R WITH ACUTE
-0156;AL # LATIN CAPITAL LETTER R WITH CEDILLA
-0157;AL # LATIN SMALL LETTER R WITH CEDILLA
-0158;AL # LATIN CAPITAL LETTER R WITH CARON
-0159;AL # LATIN SMALL LETTER R WITH CARON
-015A;AL # LATIN CAPITAL LETTER S WITH ACUTE
-015B;AL # LATIN SMALL LETTER S WITH ACUTE
-015C;AL # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-015D;AL # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015E;AL # LATIN CAPITAL LETTER S WITH CEDILLA
-015F;AL # LATIN SMALL LETTER S WITH CEDILLA
-0160;AL # LATIN CAPITAL LETTER S WITH CARON
-0161;AL # LATIN SMALL LETTER S WITH CARON
-0162;AL # LATIN CAPITAL LETTER T WITH CEDILLA
-0163;AL # LATIN SMALL LETTER T WITH CEDILLA
-0164;AL # LATIN CAPITAL LETTER T WITH CARON
-0165;AL # LATIN SMALL LETTER T WITH CARON
-0166;AL # LATIN CAPITAL LETTER T WITH STROKE
-0167;AL # LATIN SMALL LETTER T WITH STROKE
-0168;AL # LATIN CAPITAL LETTER U WITH TILDE
-0169;AL # LATIN SMALL LETTER U WITH TILDE
-016A;AL # LATIN CAPITAL LETTER U WITH MACRON
-016B;AL # LATIN SMALL LETTER U WITH MACRON
-016C;AL # LATIN CAPITAL LETTER U WITH BREVE
-016D;AL # LATIN SMALL LETTER U WITH BREVE
-016E;AL # LATIN CAPITAL LETTER U WITH RING ABOVE
-016F;AL # LATIN SMALL LETTER U WITH RING ABOVE
-0170;AL # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0171;AL # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0172;AL # LATIN CAPITAL LETTER U WITH OGONEK
-0173;AL # LATIN SMALL LETTER U WITH OGONEK
-0174;AL # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-0175;AL # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0176;AL # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0177;AL # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0178;AL # LATIN CAPITAL LETTER Y WITH DIAERESIS
-0179;AL # LATIN CAPITAL LETTER Z WITH ACUTE
-017A;AL # LATIN SMALL LETTER Z WITH ACUTE
-017B;AL # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-017C;AL # LATIN SMALL LETTER Z WITH DOT ABOVE
-017D;AL # LATIN CAPITAL LETTER Z WITH CARON
-017E;AL # LATIN SMALL LETTER Z WITH CARON
-017F;AL # LATIN SMALL LETTER LONG S
-0180;AL # LATIN SMALL LETTER B WITH STROKE
-0181;AL # LATIN CAPITAL LETTER B WITH HOOK
-0182;AL # LATIN CAPITAL LETTER B WITH TOPBAR
-0183;AL # LATIN SMALL LETTER B WITH TOPBAR
-0184;AL # LATIN CAPITAL LETTER TONE SIX
-0185;AL # LATIN SMALL LETTER TONE SIX
-0186;AL # LATIN CAPITAL LETTER OPEN O
-0187;AL # LATIN CAPITAL LETTER C WITH HOOK
-0188;AL # LATIN SMALL LETTER C WITH HOOK
-0189;AL # LATIN CAPITAL LETTER AFRICAN D
-018A;AL # LATIN CAPITAL LETTER D WITH HOOK
-018B;AL # LATIN CAPITAL LETTER D WITH TOPBAR
-018C;AL # LATIN SMALL LETTER D WITH TOPBAR
-018D;AL # LATIN SMALL LETTER TURNED DELTA
-018E;AL # LATIN CAPITAL LETTER REVERSED E
-018F;AL # LATIN CAPITAL LETTER SCHWA
-0190;AL # LATIN CAPITAL LETTER OPEN E
-0191;AL # LATIN CAPITAL LETTER F WITH HOOK
-0192;AL # LATIN SMALL LETTER F WITH HOOK
-0193;AL # LATIN CAPITAL LETTER G WITH HOOK
-0194;AL # LATIN CAPITAL LETTER GAMMA
-0195;AL # LATIN SMALL LETTER HV
-0196;AL # LATIN CAPITAL LETTER IOTA
-0197;AL # LATIN CAPITAL LETTER I WITH STROKE
-0198;AL # LATIN CAPITAL LETTER K WITH HOOK
-0199;AL # LATIN SMALL LETTER K WITH HOOK
-019A;AL # LATIN SMALL LETTER L WITH BAR
-019B;AL # LATIN SMALL LETTER LAMBDA WITH STROKE
-019C;AL # LATIN CAPITAL LETTER TURNED M
-019D;AL # LATIN CAPITAL LETTER N WITH LEFT HOOK
-019E;AL # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-019F;AL # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-01A0;AL # LATIN CAPITAL LETTER O WITH HORN
-01A1;AL # LATIN SMALL LETTER O WITH HORN
-01A2;AL # LATIN CAPITAL LETTER OI
-01A3;AL # LATIN SMALL LETTER OI
-01A4;AL # LATIN CAPITAL LETTER P WITH HOOK
-01A5;AL # LATIN SMALL LETTER P WITH HOOK
-01A6;AL # LATIN LETTER YR
-01A7;AL # LATIN CAPITAL LETTER TONE TWO
-01A8;AL # LATIN SMALL LETTER TONE TWO
-01A9;AL # LATIN CAPITAL LETTER ESH
-01AA;AL # LATIN LETTER REVERSED ESH LOOP
-01AB;AL # LATIN SMALL LETTER T WITH PALATAL HOOK
-01AC;AL # LATIN CAPITAL LETTER T WITH HOOK
-01AD;AL # LATIN SMALL LETTER T WITH HOOK
-01AE;AL # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-01AF;AL # LATIN CAPITAL LETTER U WITH HORN
-01B0;AL # LATIN SMALL LETTER U WITH HORN
-01B1;AL # LATIN CAPITAL LETTER UPSILON
-01B2;AL # LATIN CAPITAL LETTER V WITH HOOK
-01B3;AL # LATIN CAPITAL LETTER Y WITH HOOK
-01B4;AL # LATIN SMALL LETTER Y WITH HOOK
-01B5;AL # LATIN CAPITAL LETTER Z WITH STROKE
-01B6;AL # LATIN SMALL LETTER Z WITH STROKE
-01B7;AL # LATIN CAPITAL LETTER EZH
-01B8;AL # LATIN CAPITAL LETTER EZH REVERSED
-01B9;AL # LATIN SMALL LETTER EZH REVERSED
-01BA;AL # LATIN SMALL LETTER EZH WITH TAIL
-01BB;AL # LATIN LETTER TWO WITH STROKE
-01BC;AL # LATIN CAPITAL LETTER TONE FIVE
-01BD;AL # LATIN SMALL LETTER TONE FIVE
-01BE;AL # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-01BF;AL # LATIN LETTER WYNN
-01C0;AL # LATIN LETTER DENTAL CLICK
-01C1;AL # LATIN LETTER LATERAL CLICK
-01C2;AL # LATIN LETTER ALVEOLAR CLICK
-01C3;AL # LATIN LETTER RETROFLEX CLICK
-01C4;AL # LATIN CAPITAL LETTER DZ WITH CARON
-01C5;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C6;AL # LATIN SMALL LETTER DZ WITH CARON
-01C7;AL # LATIN CAPITAL LETTER LJ
-01C8;AL # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C9;AL # LATIN SMALL LETTER LJ
-01CA;AL # LATIN CAPITAL LETTER NJ
-01CB;AL # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CC;AL # LATIN SMALL LETTER NJ
-01CD;AL # LATIN CAPITAL LETTER A WITH CARON
-01CE;AL # LATIN SMALL LETTER A WITH CARON
-01CF;AL # LATIN CAPITAL LETTER I WITH CARON
-01D0;AL # LATIN SMALL LETTER I WITH CARON
-01D1;AL # LATIN CAPITAL LETTER O WITH CARON
-01D2;AL # LATIN SMALL LETTER O WITH CARON
-01D3;AL # LATIN CAPITAL LETTER U WITH CARON
-01D4;AL # LATIN SMALL LETTER U WITH CARON
-01D5;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01D6;AL # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D7;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D8;AL # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D9;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01DA;AL # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01DB;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DC;AL # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DD;AL # LATIN SMALL LETTER TURNED E
-01DE;AL # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-01DF;AL # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01E0;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-01E1;AL # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E2;AL # LATIN CAPITAL LETTER AE WITH MACRON
-01E3;AL # LATIN SMALL LETTER AE WITH MACRON
-01E4;AL # LATIN CAPITAL LETTER G WITH STROKE
-01E5;AL # LATIN SMALL LETTER G WITH STROKE
-01E6;AL # LATIN CAPITAL LETTER G WITH CARON
-01E7;AL # LATIN SMALL LETTER G WITH CARON
-01E8;AL # LATIN CAPITAL LETTER K WITH CARON
-01E9;AL # LATIN SMALL LETTER K WITH CARON
-01EA;AL # LATIN CAPITAL LETTER O WITH OGONEK
-01EB;AL # LATIN SMALL LETTER O WITH OGONEK
-01EC;AL # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-01ED;AL # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EE;AL # LATIN CAPITAL LETTER EZH WITH CARON
-01EF;AL # LATIN SMALL LETTER EZH WITH CARON
-01F0;AL # LATIN SMALL LETTER J WITH CARON
-01F1;AL # LATIN CAPITAL LETTER DZ
-01F2;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F3;AL # LATIN SMALL LETTER DZ
-01F4;AL # LATIN CAPITAL LETTER G WITH ACUTE
-01F5;AL # LATIN SMALL LETTER G WITH ACUTE
-01F6;AL # LATIN CAPITAL LETTER HWAIR
-01F7;AL # LATIN CAPITAL LETTER WYNN
-01F8;AL # LATIN CAPITAL LETTER N WITH GRAVE
-01F9;AL # LATIN SMALL LETTER N WITH GRAVE
-01FA;AL # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-01FB;AL # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FC;AL # LATIN CAPITAL LETTER AE WITH ACUTE
-01FD;AL # LATIN SMALL LETTER AE WITH ACUTE
-01FE;AL # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01FF;AL # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-0200;AL # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0201;AL # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0202;AL # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-0203;AL # LATIN SMALL LETTER A WITH INVERTED BREVE
-0204;AL # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0205;AL # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0206;AL # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-0207;AL # LATIN SMALL LETTER E WITH INVERTED BREVE
-0208;AL # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-0209;AL # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-020A;AL # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-020B;AL # LATIN SMALL LETTER I WITH INVERTED BREVE
-020C;AL # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020D;AL # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020E;AL # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-020F;AL # LATIN SMALL LETTER O WITH INVERTED BREVE
-0210;AL # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0211;AL # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0212;AL # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-0213;AL # LATIN SMALL LETTER R WITH INVERTED BREVE
-0214;AL # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0215;AL # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0216;AL # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-0217;AL # LATIN SMALL LETTER U WITH INVERTED BREVE
-0218;AL # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0219;AL # LATIN SMALL LETTER S WITH COMMA BELOW
-021A;AL # LATIN CAPITAL LETTER T WITH COMMA BELOW
-021B;AL # LATIN SMALL LETTER T WITH COMMA BELOW
-021C;AL # LATIN CAPITAL LETTER YOGH
-021D;AL # LATIN SMALL LETTER YOGH
-021E;AL # LATIN CAPITAL LETTER H WITH CARON
-021F;AL # LATIN SMALL LETTER H WITH CARON
-0220;AL # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-0221;AL # LATIN SMALL LETTER D WITH CURL
-0222;AL # LATIN CAPITAL LETTER OU
-0223;AL # LATIN SMALL LETTER OU
-0224;AL # LATIN CAPITAL LETTER Z WITH HOOK
-0225;AL # LATIN SMALL LETTER Z WITH HOOK
-0226;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0227;AL # LATIN SMALL LETTER A WITH DOT ABOVE
-0228;AL # LATIN CAPITAL LETTER E WITH CEDILLA
-0229;AL # LATIN SMALL LETTER E WITH CEDILLA
-022A;AL # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-022B;AL # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022C;AL # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022D;AL # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022E;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE
-022F;AL # LATIN SMALL LETTER O WITH DOT ABOVE
-0230;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-0231;AL # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0232;AL # LATIN CAPITAL LETTER Y WITH MACRON
-0233;AL # LATIN SMALL LETTER Y WITH MACRON
-0234;AL # LATIN SMALL LETTER L WITH CURL
-0235;AL # LATIN SMALL LETTER N WITH CURL
-0236;AL # LATIN SMALL LETTER T WITH CURL
-0237;AL # LATIN SMALL LETTER DOTLESS J
-0238;AL # LATIN SMALL LETTER DB DIGRAPH
-0239;AL # LATIN SMALL LETTER QP DIGRAPH
-023A;AL # LATIN CAPITAL LETTER A WITH STROKE
-023B;AL # LATIN CAPITAL LETTER C WITH STROKE
-023C;AL # LATIN SMALL LETTER C WITH STROKE
-023D;AL # LATIN CAPITAL LETTER L WITH BAR
-023E;AL # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-023F;AL # LATIN SMALL LETTER S WITH SWASH TAIL
-0240;AL # LATIN SMALL LETTER Z WITH SWASH TAIL
-0241;AL # LATIN CAPITAL LETTER GLOTTAL STOP
-0242;AL # LATIN SMALL LETTER GLOTTAL STOP
-0243;AL # LATIN CAPITAL LETTER B WITH STROKE
-0244;AL # LATIN CAPITAL LETTER U BAR
-0245;AL # LATIN CAPITAL LETTER TURNED V
-0246;AL # LATIN CAPITAL LETTER E WITH STROKE
-0247;AL # LATIN SMALL LETTER E WITH STROKE
-0248;AL # LATIN CAPITAL LETTER J WITH STROKE
-0249;AL # LATIN SMALL LETTER J WITH STROKE
-024A;AL # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-024B;AL # LATIN SMALL LETTER Q WITH HOOK TAIL
-024C;AL # LATIN CAPITAL LETTER R WITH STROKE
-024D;AL # LATIN SMALL LETTER R WITH STROKE
-024E;AL # LATIN CAPITAL LETTER Y WITH STROKE
-024F;AL # LATIN SMALL LETTER Y WITH STROKE
-0250;AL # LATIN SMALL LETTER TURNED A
-0251;AL # LATIN SMALL LETTER ALPHA
-0252;AL # LATIN SMALL LETTER TURNED ALPHA
-0253;AL # LATIN SMALL LETTER B WITH HOOK
-0254;AL # LATIN SMALL LETTER OPEN O
-0255;AL # LATIN SMALL LETTER C WITH CURL
-0256;AL # LATIN SMALL LETTER D WITH TAIL
-0257;AL # LATIN SMALL LETTER D WITH HOOK
-0258;AL # LATIN SMALL LETTER REVERSED E
-0259;AL # LATIN SMALL LETTER SCHWA
-025A;AL # LATIN SMALL LETTER SCHWA WITH HOOK
-025B;AL # LATIN SMALL LETTER OPEN E
-025C;AL # LATIN SMALL LETTER REVERSED OPEN E
-025D;AL # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E;AL # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-025F;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE
-0260;AL # LATIN SMALL LETTER G WITH HOOK
-0261;AL # LATIN SMALL LETTER SCRIPT G
-0262;AL # LATIN LETTER SMALL CAPITAL G
-0263;AL # LATIN SMALL LETTER GAMMA
-0264;AL # LATIN SMALL LETTER RAMS HORN
-0265;AL # LATIN SMALL LETTER TURNED H
-0266;AL # LATIN SMALL LETTER H WITH HOOK
-0267;AL # LATIN SMALL LETTER HENG WITH HOOK
-0268;AL # LATIN SMALL LETTER I WITH STROKE
-0269;AL # LATIN SMALL LETTER IOTA
-026A;AL # LATIN LETTER SMALL CAPITAL I
-026B;AL # LATIN SMALL LETTER L WITH MIDDLE TILDE
-026C;AL # LATIN SMALL LETTER L WITH BELT
-026D;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-026E;AL # LATIN SMALL LETTER LEZH
-026F;AL # LATIN SMALL LETTER TURNED M
-0270;AL # LATIN SMALL LETTER TURNED M WITH LONG LEG
-0271;AL # LATIN SMALL LETTER M WITH HOOK
-0272;AL # LATIN SMALL LETTER N WITH LEFT HOOK
-0273;AL # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-0274;AL # LATIN LETTER SMALL CAPITAL N
-0275;AL # LATIN SMALL LETTER BARRED O
-0276;AL # LATIN LETTER SMALL CAPITAL OE
-0277;AL # LATIN SMALL LETTER CLOSED OMEGA
-0278;AL # LATIN SMALL LETTER PHI
-0279;AL # LATIN SMALL LETTER TURNED R
-027A;AL # LATIN SMALL LETTER TURNED R WITH LONG LEG
-027B;AL # LATIN SMALL LETTER TURNED R WITH HOOK
-027C;AL # LATIN SMALL LETTER R WITH LONG LEG
-027D;AL # LATIN SMALL LETTER R WITH TAIL
-027E;AL # LATIN SMALL LETTER R WITH FISHHOOK
-027F;AL # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-0280;AL # LATIN LETTER SMALL CAPITAL R
-0281;AL # LATIN LETTER SMALL CAPITAL INVERTED R
-0282;AL # LATIN SMALL LETTER S WITH HOOK
-0283;AL # LATIN SMALL LETTER ESH
-0284;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-0285;AL # LATIN SMALL LETTER SQUAT REVERSED ESH
-0286;AL # LATIN SMALL LETTER ESH WITH CURL
-0287;AL # LATIN SMALL LETTER TURNED T
-0288;AL # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-0289;AL # LATIN SMALL LETTER U BAR
-028A;AL # LATIN SMALL LETTER UPSILON
-028B;AL # LATIN SMALL LETTER V WITH HOOK
-028C;AL # LATIN SMALL LETTER TURNED V
-028D;AL # LATIN SMALL LETTER TURNED W
-028E;AL # LATIN SMALL LETTER TURNED Y
-028F;AL # LATIN LETTER SMALL CAPITAL Y
-0290;AL # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-0291;AL # LATIN SMALL LETTER Z WITH CURL
-0292;AL # LATIN SMALL LETTER EZH
-0293;AL # LATIN SMALL LETTER EZH WITH CURL
-0294;AL # LATIN LETTER GLOTTAL STOP
-0295;AL # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-0296;AL # LATIN LETTER INVERTED GLOTTAL STOP
-0297;AL # LATIN LETTER STRETCHED C
-0298;AL # LATIN LETTER BILABIAL CLICK
-0299;AL # LATIN LETTER SMALL CAPITAL B
-029A;AL # LATIN SMALL LETTER CLOSED OPEN E
-029B;AL # LATIN LETTER SMALL CAPITAL G WITH HOOK
-029C;AL # LATIN LETTER SMALL CAPITAL H
-029D;AL # LATIN SMALL LETTER J WITH CROSSED-TAIL
-029E;AL # LATIN SMALL LETTER TURNED K
-029F;AL # LATIN LETTER SMALL CAPITAL L
-02A0;AL # LATIN SMALL LETTER Q WITH HOOK
-02A1;AL # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2;AL # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-02A3;AL # LATIN SMALL LETTER DZ DIGRAPH
-02A4;AL # LATIN SMALL LETTER DEZH DIGRAPH
-02A5;AL # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A6;AL # LATIN SMALL LETTER TS DIGRAPH
-02A7;AL # LATIN SMALL LETTER TESH DIGRAPH
-02A8;AL # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-02A9;AL # LATIN SMALL LETTER FENG DIGRAPH
-02AA;AL # LATIN SMALL LETTER LS DIGRAPH
-02AB;AL # LATIN SMALL LETTER LZ DIGRAPH
-02AC;AL # LATIN LETTER BILABIAL PERCUSSIVE
-02AD;AL # LATIN LETTER BIDENTAL PERCUSSIVE
-02AE;AL # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF;AL # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0;AL # MODIFIER LETTER SMALL H
-02B1;AL # MODIFIER LETTER SMALL H WITH HOOK
-02B2;AL # MODIFIER LETTER SMALL J
-02B3;AL # MODIFIER LETTER SMALL R
-02B4;AL # MODIFIER LETTER SMALL TURNED R
-02B5;AL # MODIFIER LETTER SMALL TURNED R WITH HOOK
-02B6;AL # MODIFIER LETTER SMALL CAPITAL INVERTED R
-02B7;AL # MODIFIER LETTER SMALL W
-02B8;AL # MODIFIER LETTER SMALL Y
-02B9;AL # MODIFIER LETTER PRIME
-02BA;AL # MODIFIER LETTER DOUBLE PRIME
-02BB;AL # MODIFIER LETTER TURNED COMMA
-02BC;AL # MODIFIER LETTER APOSTROPHE
-02BD;AL # MODIFIER LETTER REVERSED COMMA
-02BE;AL # MODIFIER LETTER RIGHT HALF RING
-02BF;AL # MODIFIER LETTER LEFT HALF RING
-02C0;AL # MODIFIER LETTER GLOTTAL STOP
-02C1;AL # MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2;AL # MODIFIER LETTER LEFT ARROWHEAD
-02C3;AL # MODIFIER LETTER RIGHT ARROWHEAD
-02C4;AL # MODIFIER LETTER UP ARROWHEAD
-02C5;AL # MODIFIER LETTER DOWN ARROWHEAD
-02C6;AL # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7;AI # CARON
-02C8;BB # MODIFIER LETTER VERTICAL LINE
-02C9;AI # MODIFIER LETTER MACRON
-02CA;AI # MODIFIER LETTER ACUTE ACCENT
-02CB;AI # MODIFIER LETTER GRAVE ACCENT
-02CC;BB # MODIFIER LETTER LOW VERTICAL LINE
-02CD;AI # MODIFIER LETTER LOW MACRON
-02CE;AL # MODIFIER LETTER LOW GRAVE ACCENT
-02CF;AL # MODIFIER LETTER LOW ACUTE ACCENT
-02D0;AI # MODIFIER LETTER TRIANGULAR COLON
-02D1;AL # MODIFIER LETTER HALF TRIANGULAR COLON
-02D2;AL # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3;AL # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4;AL # MODIFIER LETTER UP TACK
-02D5;AL # MODIFIER LETTER DOWN TACK
-02D6;AL # MODIFIER LETTER PLUS SIGN
-02D7;AL # MODIFIER LETTER MINUS SIGN
-02D8;AI # BREVE
-02D9;AI # DOT ABOVE
-02DA;AI # RING ABOVE
-02DB;AI # OGONEK
-02DC;AL # SMALL TILDE
-02DD;AI # DOUBLE ACUTE ACCENT
-02DE;AL # MODIFIER LETTER RHOTIC HOOK
-02DF;BB # MODIFIER LETTER CROSS ACCENT
-02E0;AL # MODIFIER LETTER SMALL GAMMA
-02E1;AL # MODIFIER LETTER SMALL L
-02E2;AL # MODIFIER LETTER SMALL S
-02E3;AL # MODIFIER LETTER SMALL X
-02E4;AL # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5;AL # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6;AL # MODIFIER LETTER HIGH TONE BAR
-02E7;AL # MODIFIER LETTER MID TONE BAR
-02E8;AL # MODIFIER LETTER LOW TONE BAR
-02E9;AL # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA;AL # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB;AL # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC;AL # MODIFIER LETTER VOICING
-02ED;AL # MODIFIER LETTER UNASPIRATED
-02EE;AL # MODIFIER LETTER DOUBLE APOSTROPHE
-02EF;AL # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0;AL # MODIFIER LETTER LOW UP ARROWHEAD
-02F1;AL # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2;AL # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3;AL # MODIFIER LETTER LOW RING
-02F4;AL # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5;AL # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6;AL # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7;AL # MODIFIER LETTER LOW TILDE
-02F8;AL # MODIFIER LETTER RAISED COLON
-02F9;AL # MODIFIER LETTER BEGIN HIGH TONE
-02FA;AL # MODIFIER LETTER END HIGH TONE
-02FB;AL # MODIFIER LETTER BEGIN LOW TONE
-02FC;AL # MODIFIER LETTER END LOW TONE
-02FD;AL # MODIFIER LETTER SHELF
-02FE;AL # MODIFIER LETTER OPEN SHELF
-02FF;AL # MODIFIER LETTER LOW LEFT ARROW
-0300;CM # COMBINING GRAVE ACCENT
-0301;CM # COMBINING ACUTE ACCENT
-0302;CM # COMBINING CIRCUMFLEX ACCENT
-0303;CM # COMBINING TILDE
-0304;CM # COMBINING MACRON
-0305;CM # COMBINING OVERLINE
-0306;CM # COMBINING BREVE
-0307;CM # COMBINING DOT ABOVE
-0308;CM # COMBINING DIAERESIS
-0309;CM # COMBINING HOOK ABOVE
-030A;CM # COMBINING RING ABOVE
-030B;CM # COMBINING DOUBLE ACUTE ACCENT
-030C;CM # COMBINING CARON
-030D;CM # COMBINING VERTICAL LINE ABOVE
-030E;CM # COMBINING DOUBLE VERTICAL LINE ABOVE
-030F;CM # COMBINING DOUBLE GRAVE ACCENT
-0310;CM # COMBINING CANDRABINDU
-0311;CM # COMBINING INVERTED BREVE
-0312;CM # COMBINING TURNED COMMA ABOVE
-0313;CM # COMBINING COMMA ABOVE
-0314;CM # COMBINING REVERSED COMMA ABOVE
-0315;CM # COMBINING COMMA ABOVE RIGHT
-0316;CM # COMBINING GRAVE ACCENT BELOW
-0317;CM # COMBINING ACUTE ACCENT BELOW
-0318;CM # COMBINING LEFT TACK BELOW
-0319;CM # COMBINING RIGHT TACK BELOW
-031A;CM # COMBINING LEFT ANGLE ABOVE
-031B;CM # COMBINING HORN
-031C;CM # COMBINING LEFT HALF RING BELOW
-031D;CM # COMBINING UP TACK BELOW
-031E;CM # COMBINING DOWN TACK BELOW
-031F;CM # COMBINING PLUS SIGN BELOW
-0320;CM # COMBINING MINUS SIGN BELOW
-0321;CM # COMBINING PALATALIZED HOOK BELOW
-0322;CM # COMBINING RETROFLEX HOOK BELOW
-0323;CM # COMBINING DOT BELOW
-0324;CM # COMBINING DIAERESIS BELOW
-0325;CM # COMBINING RING BELOW
-0326;CM # COMBINING COMMA BELOW
-0327;CM # COMBINING CEDILLA
-0328;CM # COMBINING OGONEK
-0329;CM # COMBINING VERTICAL LINE BELOW
-032A;CM # COMBINING BRIDGE BELOW
-032B;CM # COMBINING INVERTED DOUBLE ARCH BELOW
-032C;CM # COMBINING CARON BELOW
-032D;CM # COMBINING CIRCUMFLEX ACCENT BELOW
-032E;CM # COMBINING BREVE BELOW
-032F;CM # COMBINING INVERTED BREVE BELOW
-0330;CM # COMBINING TILDE BELOW
-0331;CM # COMBINING MACRON BELOW
-0332;CM # COMBINING LOW LINE
-0333;CM # COMBINING DOUBLE LOW LINE
-0334;CM # COMBINING TILDE OVERLAY
-0335;CM # COMBINING SHORT STROKE OVERLAY
-0336;CM # COMBINING LONG STROKE OVERLAY
-0337;CM # COMBINING SHORT SOLIDUS OVERLAY
-0338;CM # COMBINING LONG SOLIDUS OVERLAY
-0339;CM # COMBINING RIGHT HALF RING BELOW
-033A;CM # COMBINING INVERTED BRIDGE BELOW
-033B;CM # COMBINING SQUARE BELOW
-033C;CM # COMBINING SEAGULL BELOW
-033D;CM # COMBINING X ABOVE
-033E;CM # COMBINING VERTICAL TILDE
-033F;CM # COMBINING DOUBLE OVERLINE
-0340;CM # COMBINING GRAVE TONE MARK
-0341;CM # COMBINING ACUTE TONE MARK
-0342;CM # COMBINING GREEK PERISPOMENI
-0343;CM # COMBINING GREEK KORONIS
-0344;CM # COMBINING GREEK DIALYTIKA TONOS
-0345;CM # COMBINING GREEK YPOGEGRAMMENI
-0346;CM # COMBINING BRIDGE ABOVE
-0347;CM # COMBINING EQUALS SIGN BELOW
-0348;CM # COMBINING DOUBLE VERTICAL LINE BELOW
-0349;CM # COMBINING LEFT ANGLE BELOW
-034A;CM # COMBINING NOT TILDE ABOVE
-034B;CM # COMBINING HOMOTHETIC ABOVE
-034C;CM # COMBINING ALMOST EQUAL TO ABOVE
-034D;CM # COMBINING LEFT RIGHT ARROW BELOW
-034E;CM # COMBINING UPWARDS ARROW BELOW
-034F;GL # COMBINING GRAPHEME JOINER
-0350;CM # COMBINING RIGHT ARROWHEAD ABOVE
-0351;CM # COMBINING LEFT HALF RING ABOVE
-0352;CM # COMBINING FERMATA
-0353;CM # COMBINING X BELOW
-0354;CM # COMBINING LEFT ARROWHEAD BELOW
-0355;CM # COMBINING RIGHT ARROWHEAD BELOW
-0356;CM # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
-0357;CM # COMBINING RIGHT HALF RING ABOVE
-0358;CM # COMBINING DOT ABOVE RIGHT
-0359;CM # COMBINING ASTERISK BELOW
-035A;CM # COMBINING DOUBLE RING BELOW
-035B;CM # COMBINING ZIGZAG ABOVE
-035C;GL # COMBINING DOUBLE BREVE BELOW
-035D;GL # COMBINING DOUBLE BREVE
-035E;GL # COMBINING DOUBLE MACRON
-035F;GL # COMBINING DOUBLE MACRON BELOW
-0360;GL # COMBINING DOUBLE TILDE
-0361;GL # COMBINING DOUBLE INVERTED BREVE
-0362;GL # COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0363;CM # COMBINING LATIN SMALL LETTER A
-0364;CM # COMBINING LATIN SMALL LETTER E
-0365;CM # COMBINING LATIN SMALL LETTER I
-0366;CM # COMBINING LATIN SMALL LETTER O
-0367;CM # COMBINING LATIN SMALL LETTER U
-0368;CM # COMBINING LATIN SMALL LETTER C
-0369;CM # COMBINING LATIN SMALL LETTER D
-036A;CM # COMBINING LATIN SMALL LETTER H
-036B;CM # COMBINING LATIN SMALL LETTER M
-036C;CM # COMBINING LATIN SMALL LETTER R
-036D;CM # COMBINING LATIN SMALL LETTER T
-036E;CM # COMBINING LATIN SMALL LETTER V
-036F;CM # COMBINING LATIN SMALL LETTER X
-0370;AL # GREEK CAPITAL LETTER HETA
-0371;AL # GREEK SMALL LETTER HETA
-0372;AL # GREEK CAPITAL LETTER ARCHAIC SAMPI
-0373;AL # GREEK SMALL LETTER ARCHAIC SAMPI
-0374;AL # GREEK NUMERAL SIGN
-0375;AL # GREEK LOWER NUMERAL SIGN
-0376;AL # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-0377;AL # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-037A;AL # GREEK YPOGEGRAMMENI
-037B;AL # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-037C;AL # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-037D;AL # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E;IS # GREEK QUESTION MARK
-0384;AL # GREEK TONOS
-0385;AL # GREEK DIALYTIKA TONOS
-0386;AL # GREEK CAPITAL LETTER ALPHA WITH TONOS
-0387;AL # GREEK ANO TELEIA
-0388;AL # GREEK CAPITAL LETTER EPSILON WITH TONOS
-0389;AL # GREEK CAPITAL LETTER ETA WITH TONOS
-038A;AL # GREEK CAPITAL LETTER IOTA WITH TONOS
-038C;AL # GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E;AL # GREEK CAPITAL LETTER UPSILON WITH TONOS
-038F;AL # GREEK CAPITAL LETTER OMEGA WITH TONOS
-0390;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-0391;AL # GREEK CAPITAL LETTER ALPHA
-0392;AL # GREEK CAPITAL LETTER BETA
-0393;AL # GREEK CAPITAL LETTER GAMMA
-0394;AL # GREEK CAPITAL LETTER DELTA
-0395;AL # GREEK CAPITAL LETTER EPSILON
-0396;AL # GREEK CAPITAL LETTER ZETA
-0397;AL # GREEK CAPITAL LETTER ETA
-0398;AL # GREEK CAPITAL LETTER THETA
-0399;AL # GREEK CAPITAL LETTER IOTA
-039A;AL # GREEK CAPITAL LETTER KAPPA
-039B;AL # GREEK CAPITAL LETTER LAMDA
-039C;AL # GREEK CAPITAL LETTER MU
-039D;AL # GREEK CAPITAL LETTER NU
-039E;AL # GREEK CAPITAL LETTER XI
-039F;AL # GREEK CAPITAL LETTER OMICRON
-03A0;AL # GREEK CAPITAL LETTER PI
-03A1;AL # GREEK CAPITAL LETTER RHO
-03A3;AL # GREEK CAPITAL LETTER SIGMA
-03A4;AL # GREEK CAPITAL LETTER TAU
-03A5;AL # GREEK CAPITAL LETTER UPSILON
-03A6;AL # GREEK CAPITAL LETTER PHI
-03A7;AL # GREEK CAPITAL LETTER CHI
-03A8;AL # GREEK CAPITAL LETTER PSI
-03A9;AL # GREEK CAPITAL LETTER OMEGA
-03AA;AL # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-03AB;AL # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03AC;AL # GREEK SMALL LETTER ALPHA WITH TONOS
-03AD;AL # GREEK SMALL LETTER EPSILON WITH TONOS
-03AE;AL # GREEK SMALL LETTER ETA WITH TONOS
-03AF;AL # GREEK SMALL LETTER IOTA WITH TONOS
-03B0;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-03B1;AL # GREEK SMALL LETTER ALPHA
-03B2;AL # GREEK SMALL LETTER BETA
-03B3;AL # GREEK SMALL LETTER GAMMA
-03B4;AL # GREEK SMALL LETTER DELTA
-03B5;AL # GREEK SMALL LETTER EPSILON
-03B6;AL # GREEK SMALL LETTER ZETA
-03B7;AL # GREEK SMALL LETTER ETA
-03B8;AL # GREEK SMALL LETTER THETA
-03B9;AL # GREEK SMALL LETTER IOTA
-03BA;AL # GREEK SMALL LETTER KAPPA
-03BB;AL # GREEK SMALL LETTER LAMDA
-03BC;AL # GREEK SMALL LETTER MU
-03BD;AL # GREEK SMALL LETTER NU
-03BE;AL # GREEK SMALL LETTER XI
-03BF;AL # GREEK SMALL LETTER OMICRON
-03C0;AL # GREEK SMALL LETTER PI
-03C1;AL # GREEK SMALL LETTER RHO
-03C2;AL # GREEK SMALL LETTER FINAL SIGMA
-03C3;AL # GREEK SMALL LETTER SIGMA
-03C4;AL # GREEK SMALL LETTER TAU
-03C5;AL # GREEK SMALL LETTER UPSILON
-03C6;AL # GREEK SMALL LETTER PHI
-03C7;AL # GREEK SMALL LETTER CHI
-03C8;AL # GREEK SMALL LETTER PSI
-03C9;AL # GREEK SMALL LETTER OMEGA
-03CA;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03CB;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03CC;AL # GREEK SMALL LETTER OMICRON WITH TONOS
-03CD;AL # GREEK SMALL LETTER UPSILON WITH TONOS
-03CE;AL # GREEK SMALL LETTER OMEGA WITH TONOS
-03CF;AL # GREEK CAPITAL KAI SYMBOL
-03D0;AL # GREEK BETA SYMBOL
-03D1;AL # GREEK THETA SYMBOL
-03D2;AL # GREEK UPSILON WITH HOOK SYMBOL
-03D3;AL # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-03D4;AL # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03D5;AL # GREEK PHI SYMBOL
-03D6;AL # GREEK PI SYMBOL
-03D7;AL # GREEK KAI SYMBOL
-03D8;AL # GREEK LETTER ARCHAIC KOPPA
-03D9;AL # GREEK SMALL LETTER ARCHAIC KOPPA
-03DA;AL # GREEK LETTER STIGMA
-03DB;AL # GREEK SMALL LETTER STIGMA
-03DC;AL # GREEK LETTER DIGAMMA
-03DD;AL # GREEK SMALL LETTER DIGAMMA
-03DE;AL # GREEK LETTER KOPPA
-03DF;AL # GREEK SMALL LETTER KOPPA
-03E0;AL # GREEK LETTER SAMPI
-03E1;AL # GREEK SMALL LETTER SAMPI
-03E2;AL # COPTIC CAPITAL LETTER SHEI
-03E3;AL # COPTIC SMALL LETTER SHEI
-03E4;AL # COPTIC CAPITAL LETTER FEI
-03E5;AL # COPTIC SMALL LETTER FEI
-03E6;AL # COPTIC CAPITAL LETTER KHEI
-03E7;AL # COPTIC SMALL LETTER KHEI
-03E8;AL # COPTIC CAPITAL LETTER HORI
-03E9;AL # COPTIC SMALL LETTER HORI
-03EA;AL # COPTIC CAPITAL LETTER GANGIA
-03EB;AL # COPTIC SMALL LETTER GANGIA
-03EC;AL # COPTIC CAPITAL LETTER SHIMA
-03ED;AL # COPTIC SMALL LETTER SHIMA
-03EE;AL # COPTIC CAPITAL LETTER DEI
-03EF;AL # COPTIC SMALL LETTER DEI
-03F0;AL # GREEK KAPPA SYMBOL
-03F1;AL # GREEK RHO SYMBOL
-03F2;AL # GREEK LUNATE SIGMA SYMBOL
-03F3;AL # GREEK LETTER YOT
-03F4;AL # GREEK CAPITAL THETA SYMBOL
-03F5;AL # GREEK LUNATE EPSILON SYMBOL
-03F6;AL # GREEK REVERSED LUNATE EPSILON SYMBOL
-03F7;AL # GREEK CAPITAL LETTER SHO
-03F8;AL # GREEK SMALL LETTER SHO
-03F9;AL # GREEK CAPITAL LUNATE SIGMA SYMBOL
-03FA;AL # GREEK CAPITAL LETTER SAN
-03FB;AL # GREEK SMALL LETTER SAN
-03FC;AL # GREEK RHO WITH STROKE SYMBOL
-03FD;AL # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-03FE;AL # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-03FF;AL # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-0400;AL # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0401;AL # CYRILLIC CAPITAL LETTER IO
-0402;AL # CYRILLIC CAPITAL LETTER DJE
-0403;AL # CYRILLIC CAPITAL LETTER GJE
-0404;AL # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0405;AL # CYRILLIC CAPITAL LETTER DZE
-0406;AL # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-0407;AL # CYRILLIC CAPITAL LETTER YI
-0408;AL # CYRILLIC CAPITAL LETTER JE
-0409;AL # CYRILLIC CAPITAL LETTER LJE
-040A;AL # CYRILLIC CAPITAL LETTER NJE
-040B;AL # CYRILLIC CAPITAL LETTER TSHE
-040C;AL # CYRILLIC CAPITAL LETTER KJE
-040D;AL # CYRILLIC CAPITAL LETTER I WITH GRAVE
-040E;AL # CYRILLIC CAPITAL LETTER SHORT U
-040F;AL # CYRILLIC CAPITAL LETTER DZHE
-0410;AL # CYRILLIC CAPITAL LETTER A
-0411;AL # CYRILLIC CAPITAL LETTER BE
-0412;AL # CYRILLIC CAPITAL LETTER VE
-0413;AL # CYRILLIC CAPITAL LETTER GHE
-0414;AL # CYRILLIC CAPITAL LETTER DE
-0415;AL # CYRILLIC CAPITAL LETTER IE
-0416;AL # CYRILLIC CAPITAL LETTER ZHE
-0417;AL # CYRILLIC CAPITAL LETTER ZE
-0418;AL # CYRILLIC CAPITAL LETTER I
-0419;AL # CYRILLIC CAPITAL LETTER SHORT I
-041A;AL # CYRILLIC CAPITAL LETTER KA
-041B;AL # CYRILLIC CAPITAL LETTER EL
-041C;AL # CYRILLIC CAPITAL LETTER EM
-041D;AL # CYRILLIC CAPITAL LETTER EN
-041E;AL # CYRILLIC CAPITAL LETTER O
-041F;AL # CYRILLIC CAPITAL LETTER PE
-0420;AL # CYRILLIC CAPITAL LETTER ER
-0421;AL # CYRILLIC CAPITAL LETTER ES
-0422;AL # CYRILLIC CAPITAL LETTER TE
-0423;AL # CYRILLIC CAPITAL LETTER U
-0424;AL # CYRILLIC CAPITAL LETTER EF
-0425;AL # CYRILLIC CAPITAL LETTER HA
-0426;AL # CYRILLIC CAPITAL LETTER TSE
-0427;AL # CYRILLIC CAPITAL LETTER CHE
-0428;AL # CYRILLIC CAPITAL LETTER SHA
-0429;AL # CYRILLIC CAPITAL LETTER SHCHA
-042A;AL # CYRILLIC CAPITAL LETTER HARD SIGN
-042B;AL # CYRILLIC CAPITAL LETTER YERU
-042C;AL # CYRILLIC CAPITAL LETTER SOFT SIGN
-042D;AL # CYRILLIC CAPITAL LETTER E
-042E;AL # CYRILLIC CAPITAL LETTER YU
-042F;AL # CYRILLIC CAPITAL LETTER YA
-0430;AL # CYRILLIC SMALL LETTER A
-0431;AL # CYRILLIC SMALL LETTER BE
-0432;AL # CYRILLIC SMALL LETTER VE
-0433;AL # CYRILLIC SMALL LETTER GHE
-0434;AL # CYRILLIC SMALL LETTER DE
-0435;AL # CYRILLIC SMALL LETTER IE
-0436;AL # CYRILLIC SMALL LETTER ZHE
-0437;AL # CYRILLIC SMALL LETTER ZE
-0438;AL # CYRILLIC SMALL LETTER I
-0439;AL # CYRILLIC SMALL LETTER SHORT I
-043A;AL # CYRILLIC SMALL LETTER KA
-043B;AL # CYRILLIC SMALL LETTER EL
-043C;AL # CYRILLIC SMALL LETTER EM
-043D;AL # CYRILLIC SMALL LETTER EN
-043E;AL # CYRILLIC SMALL LETTER O
-043F;AL # CYRILLIC SMALL LETTER PE
-0440;AL # CYRILLIC SMALL LETTER ER
-0441;AL # CYRILLIC SMALL LETTER ES
-0442;AL # CYRILLIC SMALL LETTER TE
-0443;AL # CYRILLIC SMALL LETTER U
-0444;AL # CYRILLIC SMALL LETTER EF
-0445;AL # CYRILLIC SMALL LETTER HA
-0446;AL # CYRILLIC SMALL LETTER TSE
-0447;AL # CYRILLIC SMALL LETTER CHE
-0448;AL # CYRILLIC SMALL LETTER SHA
-0449;AL # CYRILLIC SMALL LETTER SHCHA
-044A;AL # CYRILLIC SMALL LETTER HARD SIGN
-044B;AL # CYRILLIC SMALL LETTER YERU
-044C;AL # CYRILLIC SMALL LETTER SOFT SIGN
-044D;AL # CYRILLIC SMALL LETTER E
-044E;AL # CYRILLIC SMALL LETTER YU
-044F;AL # CYRILLIC SMALL LETTER YA
-0450;AL # CYRILLIC SMALL LETTER IE WITH GRAVE
-0451;AL # CYRILLIC SMALL LETTER IO
-0452;AL # CYRILLIC SMALL LETTER DJE
-0453;AL # CYRILLIC SMALL LETTER GJE
-0454;AL # CYRILLIC SMALL LETTER UKRAINIAN IE
-0455;AL # CYRILLIC SMALL LETTER DZE
-0456;AL # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0457;AL # CYRILLIC SMALL LETTER YI
-0458;AL # CYRILLIC SMALL LETTER JE
-0459;AL # CYRILLIC SMALL LETTER LJE
-045A;AL # CYRILLIC SMALL LETTER NJE
-045B;AL # CYRILLIC SMALL LETTER TSHE
-045C;AL # CYRILLIC SMALL LETTER KJE
-045D;AL # CYRILLIC SMALL LETTER I WITH GRAVE
-045E;AL # CYRILLIC SMALL LETTER SHORT U
-045F;AL # CYRILLIC SMALL LETTER DZHE
-0460;AL # CYRILLIC CAPITAL LETTER OMEGA
-0461;AL # CYRILLIC SMALL LETTER OMEGA
-0462;AL # CYRILLIC CAPITAL LETTER YAT
-0463;AL # CYRILLIC SMALL LETTER YAT
-0464;AL # CYRILLIC CAPITAL LETTER IOTIFIED E
-0465;AL # CYRILLIC SMALL LETTER IOTIFIED E
-0466;AL # CYRILLIC CAPITAL LETTER LITTLE YUS
-0467;AL # CYRILLIC SMALL LETTER LITTLE YUS
-0468;AL # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-0469;AL # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-046A;AL # CYRILLIC CAPITAL LETTER BIG YUS
-046B;AL # CYRILLIC SMALL LETTER BIG YUS
-046C;AL # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046D;AL # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-046E;AL # CYRILLIC CAPITAL LETTER KSI
-046F;AL # CYRILLIC SMALL LETTER KSI
-0470;AL # CYRILLIC CAPITAL LETTER PSI
-0471;AL # CYRILLIC SMALL LETTER PSI
-0472;AL # CYRILLIC CAPITAL LETTER FITA
-0473;AL # CYRILLIC SMALL LETTER FITA
-0474;AL # CYRILLIC CAPITAL LETTER IZHITSA
-0475;AL # CYRILLIC SMALL LETTER IZHITSA
-0476;AL # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0477;AL # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0478;AL # CYRILLIC CAPITAL LETTER UK
-0479;AL # CYRILLIC SMALL LETTER UK
-047A;AL # CYRILLIC CAPITAL LETTER ROUND OMEGA
-047B;AL # CYRILLIC SMALL LETTER ROUND OMEGA
-047C;AL # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047D;AL # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047E;AL # CYRILLIC CAPITAL LETTER OT
-047F;AL # CYRILLIC SMALL LETTER OT
-0480;AL # CYRILLIC CAPITAL LETTER KOPPA
-0481;AL # CYRILLIC SMALL LETTER KOPPA
-0482;AL # CYRILLIC THOUSANDS SIGN
-0483;CM # COMBINING CYRILLIC TITLO
-0484;CM # COMBINING CYRILLIC PALATALIZATION
-0485;CM # COMBINING CYRILLIC DASIA PNEUMATA
-0486;CM # COMBINING CYRILLIC PSILI PNEUMATA
-0487;CM # COMBINING CYRILLIC POKRYTIE
-0488;CM # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
-0489;CM # COMBINING CYRILLIC MILLIONS SIGN
-048A;AL # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-048B;AL # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048C;AL # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-048D;AL # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048E;AL # CYRILLIC CAPITAL LETTER ER WITH TICK
-048F;AL # CYRILLIC SMALL LETTER ER WITH TICK
-0490;AL # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0491;AL # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0492;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-0493;AL # CYRILLIC SMALL LETTER GHE WITH STROKE
-0494;AL # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-0495;AL # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0496;AL # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0497;AL # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0498;AL # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0499;AL # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-049A;AL # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-049B;AL # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049C;AL # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-049D;AL # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049E;AL # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049F;AL # CYRILLIC SMALL LETTER KA WITH STROKE
-04A0;AL # CYRILLIC CAPITAL LETTER BASHKIR KA
-04A1;AL # CYRILLIC SMALL LETTER BASHKIR KA
-04A2;AL # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04A3;AL # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A4;AL # CYRILLIC CAPITAL LIGATURE EN GHE
-04A5;AL # CYRILLIC SMALL LIGATURE EN GHE
-04A6;AL # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-04A7;AL # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A8;AL # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-04A9;AL # CYRILLIC SMALL LETTER ABKHASIAN HA
-04AA;AL # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-04AB;AL # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AC;AL # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-04AD;AL # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AE;AL # CYRILLIC CAPITAL LETTER STRAIGHT U
-04AF;AL # CYRILLIC SMALL LETTER STRAIGHT U
-04B0;AL # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-04B1;AL # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B2;AL # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04B3;AL # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B4;AL # CYRILLIC CAPITAL LIGATURE TE TSE
-04B5;AL # CYRILLIC SMALL LIGATURE TE TSE
-04B6;AL # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04B7;AL # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B8;AL # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-04B9;AL # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04BA;AL # CYRILLIC CAPITAL LETTER SHHA
-04BB;AL # CYRILLIC SMALL LETTER SHHA
-04BC;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BD;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BE;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-04BF;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04C0;AL # CYRILLIC LETTER PALOCHKA
-04C1;AL # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-04C2;AL # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C3;AL # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04C4;AL # CYRILLIC SMALL LETTER KA WITH HOOK
-04C5;AL # CYRILLIC CAPITAL LETTER EL WITH TAIL
-04C6;AL # CYRILLIC SMALL LETTER EL WITH TAIL
-04C7;AL # CYRILLIC CAPITAL LETTER EN WITH HOOK
-04C8;AL # CYRILLIC SMALL LETTER EN WITH HOOK
-04C9;AL # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04CA;AL # CYRILLIC SMALL LETTER EN WITH TAIL
-04CB;AL # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04CC;AL # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CD;AL # CYRILLIC CAPITAL LETTER EM WITH TAIL
-04CE;AL # CYRILLIC SMALL LETTER EM WITH TAIL
-04CF;AL # CYRILLIC SMALL LETTER PALOCHKA
-04D0;AL # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D1;AL # CYRILLIC SMALL LETTER A WITH BREVE
-04D2;AL # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D3;AL # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D4;AL # CYRILLIC CAPITAL LIGATURE A IE
-04D5;AL # CYRILLIC SMALL LIGATURE A IE
-04D6;AL # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04D7;AL # CYRILLIC SMALL LETTER IE WITH BREVE
-04D8;AL # CYRILLIC CAPITAL LETTER SCHWA
-04D9;AL # CYRILLIC SMALL LETTER SCHWA
-04DA;AL # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04DB;AL # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DC;AL # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DD;AL # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DE;AL # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04DF;AL # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04E0;AL # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-04E1;AL # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E2;AL # CYRILLIC CAPITAL LETTER I WITH MACRON
-04E3;AL # CYRILLIC SMALL LETTER I WITH MACRON
-04E4;AL # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-04E5;AL # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E6;AL # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E7;AL # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E8;AL # CYRILLIC CAPITAL LETTER BARRED O
-04E9;AL # CYRILLIC SMALL LETTER BARRED O
-04EA;AL # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04EB;AL # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EC;AL # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-04ED;AL # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EE;AL # CYRILLIC CAPITAL LETTER U WITH MACRON
-04EF;AL # CYRILLIC SMALL LETTER U WITH MACRON
-04F0;AL # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F1;AL # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F2;AL # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F3;AL # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F4;AL # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F5;AL # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F6;AL # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-04F7;AL # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F8;AL # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04F9;AL # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04FA;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-04FB;AL # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FC;AL # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FD;AL # CYRILLIC SMALL LETTER HA WITH HOOK
-04FE;AL # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04FF;AL # CYRILLIC SMALL LETTER HA WITH STROKE
-0500;AL # CYRILLIC CAPITAL LETTER KOMI DE
-0501;AL # CYRILLIC SMALL LETTER KOMI DE
-0502;AL # CYRILLIC CAPITAL LETTER KOMI DJE
-0503;AL # CYRILLIC SMALL LETTER KOMI DJE
-0504;AL # CYRILLIC CAPITAL LETTER KOMI ZJE
-0505;AL # CYRILLIC SMALL LETTER KOMI ZJE
-0506;AL # CYRILLIC CAPITAL LETTER KOMI DZJE
-0507;AL # CYRILLIC SMALL LETTER KOMI DZJE
-0508;AL # CYRILLIC CAPITAL LETTER KOMI LJE
-0509;AL # CYRILLIC SMALL LETTER KOMI LJE
-050A;AL # CYRILLIC CAPITAL LETTER KOMI NJE
-050B;AL # CYRILLIC SMALL LETTER KOMI NJE
-050C;AL # CYRILLIC CAPITAL LETTER KOMI SJE
-050D;AL # CYRILLIC SMALL LETTER KOMI SJE
-050E;AL # CYRILLIC CAPITAL LETTER KOMI TJE
-050F;AL # CYRILLIC SMALL LETTER KOMI TJE
-0510;AL # CYRILLIC CAPITAL LETTER REVERSED ZE
-0511;AL # CYRILLIC SMALL LETTER REVERSED ZE
-0512;AL # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0513;AL # CYRILLIC SMALL LETTER EL WITH HOOK
-0514;AL # CYRILLIC CAPITAL LETTER LHA
-0515;AL # CYRILLIC SMALL LETTER LHA
-0516;AL # CYRILLIC CAPITAL LETTER RHA
-0517;AL # CYRILLIC SMALL LETTER RHA
-0518;AL # CYRILLIC CAPITAL LETTER YAE
-0519;AL # CYRILLIC SMALL LETTER YAE
-051A;AL # CYRILLIC CAPITAL LETTER QA
-051B;AL # CYRILLIC SMALL LETTER QA
-051C;AL # CYRILLIC CAPITAL LETTER WE
-051D;AL # CYRILLIC SMALL LETTER WE
-051E;AL # CYRILLIC CAPITAL LETTER ALEUT KA
-051F;AL # CYRILLIC SMALL LETTER ALEUT KA
-0520;AL # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0521;AL # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0522;AL # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-0523;AL # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0524;AL # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-0525;AL # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0526;AL # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-0527;AL # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0531;AL # ARMENIAN CAPITAL LETTER AYB
-0532;AL # ARMENIAN CAPITAL LETTER BEN
-0533;AL # ARMENIAN CAPITAL LETTER GIM
-0534;AL # ARMENIAN CAPITAL LETTER DA
-0535;AL # ARMENIAN CAPITAL LETTER ECH
-0536;AL # ARMENIAN CAPITAL LETTER ZA
-0537;AL # ARMENIAN CAPITAL LETTER EH
-0538;AL # ARMENIAN CAPITAL LETTER ET
-0539;AL # ARMENIAN CAPITAL LETTER TO
-053A;AL # ARMENIAN CAPITAL LETTER ZHE
-053B;AL # ARMENIAN CAPITAL LETTER INI
-053C;AL # ARMENIAN CAPITAL LETTER LIWN
-053D;AL # ARMENIAN CAPITAL LETTER XEH
-053E;AL # ARMENIAN CAPITAL LETTER CA
-053F;AL # ARMENIAN CAPITAL LETTER KEN
-0540;AL # ARMENIAN CAPITAL LETTER HO
-0541;AL # ARMENIAN CAPITAL LETTER JA
-0542;AL # ARMENIAN CAPITAL LETTER GHAD
-0543;AL # ARMENIAN CAPITAL LETTER CHEH
-0544;AL # ARMENIAN CAPITAL LETTER MEN
-0545;AL # ARMENIAN CAPITAL LETTER YI
-0546;AL # ARMENIAN CAPITAL LETTER NOW
-0547;AL # ARMENIAN CAPITAL LETTER SHA
-0548;AL # ARMENIAN CAPITAL LETTER VO
-0549;AL # ARMENIAN CAPITAL LETTER CHA
-054A;AL # ARMENIAN CAPITAL LETTER PEH
-054B;AL # ARMENIAN CAPITAL LETTER JHEH
-054C;AL # ARMENIAN CAPITAL LETTER RA
-054D;AL # ARMENIAN CAPITAL LETTER SEH
-054E;AL # ARMENIAN CAPITAL LETTER VEW
-054F;AL # ARMENIAN CAPITAL LETTER TIWN
-0550;AL # ARMENIAN CAPITAL LETTER REH
-0551;AL # ARMENIAN CAPITAL LETTER CO
-0552;AL # ARMENIAN CAPITAL LETTER YIWN
-0553;AL # ARMENIAN CAPITAL LETTER PIWR
-0554;AL # ARMENIAN CAPITAL LETTER KEH
-0555;AL # ARMENIAN CAPITAL LETTER OH
-0556;AL # ARMENIAN CAPITAL LETTER FEH
-0559;AL # ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A;AL # ARMENIAN APOSTROPHE
-055B;AL # ARMENIAN EMPHASIS MARK
-055C;AL # ARMENIAN EXCLAMATION MARK
-055D;AL # ARMENIAN COMMA
-055E;AL # ARMENIAN QUESTION MARK
-055F;AL # ARMENIAN ABBREVIATION MARK
-0561;AL # ARMENIAN SMALL LETTER AYB
-0562;AL # ARMENIAN SMALL LETTER BEN
-0563;AL # ARMENIAN SMALL LETTER GIM
-0564;AL # ARMENIAN SMALL LETTER DA
-0565;AL # ARMENIAN SMALL LETTER ECH
-0566;AL # ARMENIAN SMALL LETTER ZA
-0567;AL # ARMENIAN SMALL LETTER EH
-0568;AL # ARMENIAN SMALL LETTER ET
-0569;AL # ARMENIAN SMALL LETTER TO
-056A;AL # ARMENIAN SMALL LETTER ZHE
-056B;AL # ARMENIAN SMALL LETTER INI
-056C;AL # ARMENIAN SMALL LETTER LIWN
-056D;AL # ARMENIAN SMALL LETTER XEH
-056E;AL # ARMENIAN SMALL LETTER CA
-056F;AL # ARMENIAN SMALL LETTER KEN
-0570;AL # ARMENIAN SMALL LETTER HO
-0571;AL # ARMENIAN SMALL LETTER JA
-0572;AL # ARMENIAN SMALL LETTER GHAD
-0573;AL # ARMENIAN SMALL LETTER CHEH
-0574;AL # ARMENIAN SMALL LETTER MEN
-0575;AL # ARMENIAN SMALL LETTER YI
-0576;AL # ARMENIAN SMALL LETTER NOW
-0577;AL # ARMENIAN SMALL LETTER SHA
-0578;AL # ARMENIAN SMALL LETTER VO
-0579;AL # ARMENIAN SMALL LETTER CHA
-057A;AL # ARMENIAN SMALL LETTER PEH
-057B;AL # ARMENIAN SMALL LETTER JHEH
-057C;AL # ARMENIAN SMALL LETTER RA
-057D;AL # ARMENIAN SMALL LETTER SEH
-057E;AL # ARMENIAN SMALL LETTER VEW
-057F;AL # ARMENIAN SMALL LETTER TIWN
-0580;AL # ARMENIAN SMALL LETTER REH
-0581;AL # ARMENIAN SMALL LETTER CO
-0582;AL # ARMENIAN SMALL LETTER YIWN
-0583;AL # ARMENIAN SMALL LETTER PIWR
-0584;AL # ARMENIAN SMALL LETTER KEH
-0585;AL # ARMENIAN SMALL LETTER OH
-0586;AL # ARMENIAN SMALL LETTER FEH
-0587;AL # ARMENIAN SMALL LIGATURE ECH YIWN
-0589;IS # ARMENIAN FULL STOP
-058A;BA # ARMENIAN HYPHEN
-058F;PR # ARMENIAN DRAM SIGN
-0591;CM # HEBREW ACCENT ETNAHTA
-0592;CM # HEBREW ACCENT SEGOL
-0593;CM # HEBREW ACCENT SHALSHELET
-0594;CM # HEBREW ACCENT ZAQEF QATAN
-0595;CM # HEBREW ACCENT ZAQEF GADOL
-0596;CM # HEBREW ACCENT TIPEHA
-0597;CM # HEBREW ACCENT REVIA
-0598;CM # HEBREW ACCENT ZARQA
-0599;CM # HEBREW ACCENT PASHTA
-059A;CM # HEBREW ACCENT YETIV
-059B;CM # HEBREW ACCENT TEVIR
-059C;CM # HEBREW ACCENT GERESH
-059D;CM # HEBREW ACCENT GERESH MUQDAM
-059E;CM # HEBREW ACCENT GERSHAYIM
-059F;CM # HEBREW ACCENT QARNEY PARA
-05A0;CM # HEBREW ACCENT TELISHA GEDOLA
-05A1;CM # HEBREW ACCENT PAZER
-05A2;CM # HEBREW ACCENT ATNAH HAFUKH
-05A3;CM # HEBREW ACCENT MUNAH
-05A4;CM # HEBREW ACCENT MAHAPAKH
-05A5;CM # HEBREW ACCENT MERKHA
-05A6;CM # HEBREW ACCENT MERKHA KEFULA
-05A7;CM # HEBREW ACCENT DARGA
-05A8;CM # HEBREW ACCENT QADMA
-05A9;CM # HEBREW ACCENT TELISHA QETANA
-05AA;CM # HEBREW ACCENT YERAH BEN YOMO
-05AB;CM # HEBREW ACCENT OLE
-05AC;CM # HEBREW ACCENT ILUY
-05AD;CM # HEBREW ACCENT DEHI
-05AE;CM # HEBREW ACCENT ZINOR
-05AF;CM # HEBREW MARK MASORA CIRCLE
-05B0;CM # HEBREW POINT SHEVA
-05B1;CM # HEBREW POINT HATAF SEGOL
-05B2;CM # HEBREW POINT HATAF PATAH
-05B3;CM # HEBREW POINT HATAF QAMATS
-05B4;CM # HEBREW POINT HIRIQ
-05B5;CM # HEBREW POINT TSERE
-05B6;CM # HEBREW POINT SEGOL
-05B7;CM # HEBREW POINT PATAH
-05B8;CM # HEBREW POINT QAMATS
-05B9;CM # HEBREW POINT HOLAM
-05BA;CM # HEBREW POINT HOLAM HASER FOR VAV
-05BB;CM # HEBREW POINT QUBUTS
-05BC;CM # HEBREW POINT DAGESH OR MAPIQ
-05BD;CM # HEBREW POINT METEG
-05BE;BA # HEBREW PUNCTUATION MAQAF
-05BF;CM # HEBREW POINT RAFE
-05C0;AL # HEBREW PUNCTUATION PASEQ
-05C1;CM # HEBREW POINT SHIN DOT
-05C2;CM # HEBREW POINT SIN DOT
-05C3;AL # HEBREW PUNCTUATION SOF PASUQ
-05C4;CM # HEBREW MARK UPPER DOT
-05C5;CM # HEBREW MARK LOWER DOT
-05C6;EX # HEBREW PUNCTUATION NUN HAFUKHA
-05C7;CM # HEBREW POINT QAMATS QATAN
-05D0;HL # HEBREW LETTER ALEF
-05D1;HL # HEBREW LETTER BET
-05D2;HL # HEBREW LETTER GIMEL
-05D3;HL # HEBREW LETTER DALET
-05D4;HL # HEBREW LETTER HE
-05D5;HL # HEBREW LETTER VAV
-05D6;HL # HEBREW LETTER ZAYIN
-05D7;HL # HEBREW LETTER HET
-05D8;HL # HEBREW LETTER TET
-05D9;HL # HEBREW LETTER YOD
-05DA;HL # HEBREW LETTER FINAL KAF
-05DB;HL # HEBREW LETTER KAF
-05DC;HL # HEBREW LETTER LAMED
-05DD;HL # HEBREW LETTER FINAL MEM
-05DE;HL # HEBREW LETTER MEM
-05DF;HL # HEBREW LETTER FINAL NUN
-05E0;HL # HEBREW LETTER NUN
-05E1;HL # HEBREW LETTER SAMEKH
-05E2;HL # HEBREW LETTER AYIN
-05E3;HL # HEBREW LETTER FINAL PE
-05E4;HL # HEBREW LETTER PE
-05E5;HL # HEBREW LETTER FINAL TSADI
-05E6;HL # HEBREW LETTER TSADI
-05E7;HL # HEBREW LETTER QOF
-05E8;HL # HEBREW LETTER RESH
-05E9;HL # HEBREW LETTER SHIN
-05EA;HL # HEBREW LETTER TAV
-05F0;HL # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1;HL # HEBREW LIGATURE YIDDISH VAV YOD
-05F2;HL # HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3;AL # HEBREW PUNCTUATION GERESH
-05F4;AL # HEBREW PUNCTUATION GERSHAYIM
-0600;AL # ARABIC NUMBER SIGN
-0601;AL # ARABIC SIGN SANAH
-0602;AL # ARABIC FOOTNOTE MARKER
-0603;AL # ARABIC SIGN SAFHA
-0604;AL # ARABIC SIGN SAMVAT
-0606;AL # ARABIC-INDIC CUBE ROOT
-0607;AL # ARABIC-INDIC FOURTH ROOT
-0608;AL # ARABIC RAY
-0609;PO # ARABIC-INDIC PER MILLE SIGN
-060A;PO # ARABIC-INDIC PER TEN THOUSAND SIGN
-060B;PO # AFGHANI SIGN
-060C;IS # ARABIC COMMA
-060D;IS # ARABIC DATE SEPARATOR
-060E;AL # ARABIC POETIC VERSE SIGN
-060F;AL # ARABIC SIGN MISRA
-0610;CM # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
-0611;CM # ARABIC SIGN ALAYHE ASSALLAM
-0612;CM # ARABIC SIGN RAHMATULLAH ALAYHE
-0613;CM # ARABIC SIGN RADI ALLAHOU ANHU
-0614;CM # ARABIC SIGN TAKHALLUS
-0615;CM # ARABIC SMALL HIGH TAH
-0616;CM # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
-0617;CM # ARABIC SMALL HIGH ZAIN
-0618;CM # ARABIC SMALL FATHA
-0619;CM # ARABIC SMALL DAMMA
-061A;CM # ARABIC SMALL KASRA
-061B;EX # ARABIC SEMICOLON
-061C;CM # ARABIC LETTER MARK
-061E;EX # ARABIC TRIPLE DOT PUNCTUATION MARK
-061F;EX # ARABIC QUESTION MARK
-0620;AL # ARABIC LETTER KASHMIRI YEH
-0621;AL # ARABIC LETTER HAMZA
-0622;AL # ARABIC LETTER ALEF WITH MADDA ABOVE
-0623;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0624;AL # ARABIC LETTER WAW WITH HAMZA ABOVE
-0625;AL # ARABIC LETTER ALEF WITH HAMZA BELOW
-0626;AL # ARABIC LETTER YEH WITH HAMZA ABOVE
-0627;AL # ARABIC LETTER ALEF
-0628;AL # ARABIC LETTER BEH
-0629;AL # ARABIC LETTER TEH MARBUTA
-062A;AL # ARABIC LETTER TEH
-062B;AL # ARABIC LETTER THEH
-062C;AL # ARABIC LETTER JEEM
-062D;AL # ARABIC LETTER HAH
-062E;AL # ARABIC LETTER KHAH
-062F;AL # ARABIC LETTER DAL
-0630;AL # ARABIC LETTER THAL
-0631;AL # ARABIC LETTER REH
-0632;AL # ARABIC LETTER ZAIN
-0633;AL # ARABIC LETTER SEEN
-0634;AL # ARABIC LETTER SHEEN
-0635;AL # ARABIC LETTER SAD
-0636;AL # ARABIC LETTER DAD
-0637;AL # ARABIC LETTER TAH
-0638;AL # ARABIC LETTER ZAH
-0639;AL # ARABIC LETTER AIN
-063A;AL # ARABIC LETTER GHAIN
-063B;AL # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C;AL # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-063D;AL # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E;AL # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F;AL # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640;AL # ARABIC TATWEEL
-0641;AL # ARABIC LETTER FEH
-0642;AL # ARABIC LETTER QAF
-0643;AL # ARABIC LETTER KAF
-0644;AL # ARABIC LETTER LAM
-0645;AL # ARABIC LETTER MEEM
-0646;AL # ARABIC LETTER NOON
-0647;AL # ARABIC LETTER HEH
-0648;AL # ARABIC LETTER WAW
-0649;AL # ARABIC LETTER ALEF MAKSURA
-064A;AL # ARABIC LETTER YEH
-064B;CM # ARABIC FATHATAN
-064C;CM # ARABIC DAMMATAN
-064D;CM # ARABIC KASRATAN
-064E;CM # ARABIC FATHA
-064F;CM # ARABIC DAMMA
-0650;CM # ARABIC KASRA
-0651;CM # ARABIC SHADDA
-0652;CM # ARABIC SUKUN
-0653;CM # ARABIC MADDAH ABOVE
-0654;CM # ARABIC HAMZA ABOVE
-0655;CM # ARABIC HAMZA BELOW
-0656;CM # ARABIC SUBSCRIPT ALEF
-0657;CM # ARABIC INVERTED DAMMA
-0658;CM # ARABIC MARK NOON GHUNNA
-0659;CM # ARABIC ZWARAKAY
-065A;CM # ARABIC VOWEL SIGN SMALL V ABOVE
-065B;CM # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
-065C;CM # ARABIC VOWEL SIGN DOT BELOW
-065D;CM # ARABIC REVERSED DAMMA
-065E;CM # ARABIC FATHA WITH TWO DOTS
-065F;CM # ARABIC WAVY HAMZA BELOW
-0660;NU # ARABIC-INDIC DIGIT ZERO
-0661;NU # ARABIC-INDIC DIGIT ONE
-0662;NU # ARABIC-INDIC DIGIT TWO
-0663;NU # ARABIC-INDIC DIGIT THREE
-0664;NU # ARABIC-INDIC DIGIT FOUR
-0665;NU # ARABIC-INDIC DIGIT FIVE
-0666;NU # ARABIC-INDIC DIGIT SIX
-0667;NU # ARABIC-INDIC DIGIT SEVEN
-0668;NU # ARABIC-INDIC DIGIT EIGHT
-0669;NU # ARABIC-INDIC DIGIT NINE
-066A;PO # ARABIC PERCENT SIGN
-066B;NU # ARABIC DECIMAL SEPARATOR
-066C;NU # ARABIC THOUSANDS SEPARATOR
-066D;AL # ARABIC FIVE POINTED STAR
-066E;AL # ARABIC LETTER DOTLESS BEH
-066F;AL # ARABIC LETTER DOTLESS QAF
-0670;CM # ARABIC LETTER SUPERSCRIPT ALEF
-0671;AL # ARABIC LETTER ALEF WASLA
-0672;AL # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0673;AL # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0674;AL # ARABIC LETTER HIGH HAMZA
-0675;AL # ARABIC LETTER HIGH HAMZA ALEF
-0676;AL # ARABIC LETTER HIGH HAMZA WAW
-0677;AL # ARABIC LETTER U WITH HAMZA ABOVE
-0678;AL # ARABIC LETTER HIGH HAMZA YEH
-0679;AL # ARABIC LETTER TTEH
-067A;AL # ARABIC LETTER TTEHEH
-067B;AL # ARABIC LETTER BEEH
-067C;AL # ARABIC LETTER TEH WITH RING
-067D;AL # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067E;AL # ARABIC LETTER PEH
-067F;AL # ARABIC LETTER TEHEH
-0680;AL # ARABIC LETTER BEHEH
-0681;AL # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682;AL # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0683;AL # ARABIC LETTER NYEH
-0684;AL # ARABIC LETTER DYEH
-0685;AL # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0686;AL # ARABIC LETTER TCHEH
-0687;AL # ARABIC LETTER TCHEHEH
-0688;AL # ARABIC LETTER DDAL
-0689;AL # ARABIC LETTER DAL WITH RING
-068A;AL # ARABIC LETTER DAL WITH DOT BELOW
-068B;AL # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C;AL # ARABIC LETTER DAHAL
-068D;AL # ARABIC LETTER DDAHAL
-068E;AL # ARABIC LETTER DUL
-068F;AL # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690;AL # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-0691;AL # ARABIC LETTER RREH
-0692;AL # ARABIC LETTER REH WITH SMALL V
-0693;AL # ARABIC LETTER REH WITH RING
-0694;AL # ARABIC LETTER REH WITH DOT BELOW
-0695;AL # ARABIC LETTER REH WITH SMALL V BELOW
-0696;AL # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697;AL # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698;AL # ARABIC LETTER JEH
-0699;AL # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-069A;AL # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-069D;AL # ARABIC LETTER SAD WITH TWO DOTS BELOW
-069E;AL # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-069F;AL # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-06A0;AL # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06A1;AL # ARABIC LETTER DOTLESS FEH
-06A2;AL # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3;AL # ARABIC LETTER FEH WITH DOT BELOW
-06A4;AL # ARABIC LETTER VEH
-06A5;AL # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6;AL # ARABIC LETTER PEHEH
-06A7;AL # ARABIC LETTER QAF WITH DOT ABOVE
-06A8;AL # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-06A9;AL # ARABIC LETTER KEHEH
-06AA;AL # ARABIC LETTER SWASH KAF
-06AB;AL # ARABIC LETTER KAF WITH RING
-06AC;AL # ARABIC LETTER KAF WITH DOT ABOVE
-06AD;AL # ARABIC LETTER NG
-06AE;AL # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF;AL # ARABIC LETTER GAF
-06B0;AL # ARABIC LETTER GAF WITH RING
-06B1;AL # ARABIC LETTER NGOEH
-06B2;AL # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3;AL # ARABIC LETTER GUEH
-06B4;AL # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-06B5;AL # ARABIC LETTER LAM WITH SMALL V
-06B6;AL # ARABIC LETTER LAM WITH DOT ABOVE
-06B7;AL # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8;AL # ARABIC LETTER LAM WITH THREE DOTS BELOW
-06B9;AL # ARABIC LETTER NOON WITH DOT BELOW
-06BA;AL # ARABIC LETTER NOON GHUNNA
-06BB;AL # ARABIC LETTER RNOON
-06BC;AL # ARABIC LETTER NOON WITH RING
-06BD;AL # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06BE;AL # ARABIC LETTER HEH DOACHASHMEE
-06BF;AL # ARABIC LETTER TCHEH WITH DOT ABOVE
-06C0;AL # ARABIC LETTER HEH WITH YEH ABOVE
-06C1;AL # ARABIC LETTER HEH GOAL
-06C2;AL # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3;AL # ARABIC LETTER TEH MARBUTA GOAL
-06C4;AL # ARABIC LETTER WAW WITH RING
-06C5;AL # ARABIC LETTER KIRGHIZ OE
-06C6;AL # ARABIC LETTER OE
-06C7;AL # ARABIC LETTER U
-06C8;AL # ARABIC LETTER YU
-06C9;AL # ARABIC LETTER KIRGHIZ YU
-06CA;AL # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB;AL # ARABIC LETTER VE
-06CC;AL # ARABIC LETTER FARSI YEH
-06CD;AL # ARABIC LETTER YEH WITH TAIL
-06CE;AL # ARABIC LETTER YEH WITH SMALL V
-06CF;AL # ARABIC LETTER WAW WITH DOT ABOVE
-06D0;AL # ARABIC LETTER E
-06D1;AL # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06D2;AL # ARABIC LETTER YEH BARREE
-06D3;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4;EX # ARABIC FULL STOP
-06D5;AL # ARABIC LETTER AE
-06D6;CM # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
-06D7;CM # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
-06D8;CM # ARABIC SMALL HIGH MEEM INITIAL FORM
-06D9;CM # ARABIC SMALL HIGH LAM ALEF
-06DA;CM # ARABIC SMALL HIGH JEEM
-06DB;CM # ARABIC SMALL HIGH THREE DOTS
-06DC;CM # ARABIC SMALL HIGH SEEN
-06DD;AL # ARABIC END OF AYAH
-06DE;AL # ARABIC START OF RUB EL HIZB
-06DF;CM # ARABIC SMALL HIGH ROUNDED ZERO
-06E0;CM # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
-06E1;CM # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
-06E2;CM # ARABIC SMALL HIGH MEEM ISOLATED FORM
-06E3;CM # ARABIC SMALL LOW SEEN
-06E4;CM # ARABIC SMALL HIGH MADDA
-06E5;AL # ARABIC SMALL WAW
-06E6;AL # ARABIC SMALL YEH
-06E7;CM # ARABIC SMALL HIGH YEH
-06E8;CM # ARABIC SMALL HIGH NOON
-06E9;AL # ARABIC PLACE OF SAJDAH
-06EA;CM # ARABIC EMPTY CENTRE LOW STOP
-06EB;CM # ARABIC EMPTY CENTRE HIGH STOP
-06EC;CM # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
-06ED;CM # ARABIC SMALL LOW MEEM
-06EE;AL # ARABIC LETTER DAL WITH INVERTED V
-06EF;AL # ARABIC LETTER REH WITH INVERTED V
-06F0;NU # EXTENDED ARABIC-INDIC DIGIT ZERO
-06F1;NU # EXTENDED ARABIC-INDIC DIGIT ONE
-06F2;NU # EXTENDED ARABIC-INDIC DIGIT TWO
-06F3;NU # EXTENDED ARABIC-INDIC DIGIT THREE
-06F4;NU # EXTENDED ARABIC-INDIC DIGIT FOUR
-06F5;NU # EXTENDED ARABIC-INDIC DIGIT FIVE
-06F6;NU # EXTENDED ARABIC-INDIC DIGIT SIX
-06F7;NU # EXTENDED ARABIC-INDIC DIGIT SEVEN
-06F8;NU # EXTENDED ARABIC-INDIC DIGIT EIGHT
-06F9;NU # EXTENDED ARABIC-INDIC DIGIT NINE
-06FA;AL # ARABIC LETTER SHEEN WITH DOT BELOW
-06FB;AL # ARABIC LETTER DAD WITH DOT BELOW
-06FC;AL # ARABIC LETTER GHAIN WITH DOT BELOW
-06FD;AL # ARABIC SIGN SINDHI AMPERSAND
-06FE;AL # ARABIC SIGN SINDHI POSTPOSITION MEN
-06FF;AL # ARABIC LETTER HEH WITH INVERTED V
-0700;AL # SYRIAC END OF PARAGRAPH
-0701;AL # SYRIAC SUPRALINEAR FULL STOP
-0702;AL # SYRIAC SUBLINEAR FULL STOP
-0703;AL # SYRIAC SUPRALINEAR COLON
-0704;AL # SYRIAC SUBLINEAR COLON
-0705;AL # SYRIAC HORIZONTAL COLON
-0706;AL # SYRIAC COLON SKEWED LEFT
-0707;AL # SYRIAC COLON SKEWED RIGHT
-0708;AL # SYRIAC SUPRALINEAR COLON SKEWED LEFT
-0709;AL # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A;AL # SYRIAC CONTRACTION
-070B;AL # SYRIAC HARKLEAN OBELUS
-070C;AL # SYRIAC HARKLEAN METOBELUS
-070D;AL # SYRIAC HARKLEAN ASTERISCUS
-070F;AL # SYRIAC ABBREVIATION MARK
-0710;AL # SYRIAC LETTER ALAPH
-0711;CM # SYRIAC LETTER SUPERSCRIPT ALAPH
-0712;AL # SYRIAC LETTER BETH
-0713;AL # SYRIAC LETTER GAMAL
-0714;AL # SYRIAC LETTER GAMAL GARSHUNI
-0715;AL # SYRIAC LETTER DALATH
-0716;AL # SYRIAC LETTER DOTLESS DALATH RISH
-0717;AL # SYRIAC LETTER HE
-0718;AL # SYRIAC LETTER WAW
-0719;AL # SYRIAC LETTER ZAIN
-071A;AL # SYRIAC LETTER HETH
-071B;AL # SYRIAC LETTER TETH
-071C;AL # SYRIAC LETTER TETH GARSHUNI
-071D;AL # SYRIAC LETTER YUDH
-071E;AL # SYRIAC LETTER YUDH HE
-071F;AL # SYRIAC LETTER KAPH
-0720;AL # SYRIAC LETTER LAMADH
-0721;AL # SYRIAC LETTER MIM
-0722;AL # SYRIAC LETTER NUN
-0723;AL # SYRIAC LETTER SEMKATH
-0724;AL # SYRIAC LETTER FINAL SEMKATH
-0725;AL # SYRIAC LETTER E
-0726;AL # SYRIAC LETTER PE
-0727;AL # SYRIAC LETTER REVERSED PE
-0728;AL # SYRIAC LETTER SADHE
-0729;AL # SYRIAC LETTER QAPH
-072A;AL # SYRIAC LETTER RISH
-072B;AL # SYRIAC LETTER SHIN
-072C;AL # SYRIAC LETTER TAW
-072D;AL # SYRIAC LETTER PERSIAN BHETH
-072E;AL # SYRIAC LETTER PERSIAN GHAMAL
-072F;AL # SYRIAC LETTER PERSIAN DHALATH
-0730;CM # SYRIAC PTHAHA ABOVE
-0731;CM # SYRIAC PTHAHA BELOW
-0732;CM # SYRIAC PTHAHA DOTTED
-0733;CM # SYRIAC ZQAPHA ABOVE
-0734;CM # SYRIAC ZQAPHA BELOW
-0735;CM # SYRIAC ZQAPHA DOTTED
-0736;CM # SYRIAC RBASA ABOVE
-0737;CM # SYRIAC RBASA BELOW
-0738;CM # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739;CM # SYRIAC DOTTED ZLAMA ANGULAR
-073A;CM # SYRIAC HBASA ABOVE
-073B;CM # SYRIAC HBASA BELOW
-073C;CM # SYRIAC HBASA-ESASA DOTTED
-073D;CM # SYRIAC ESASA ABOVE
-073E;CM # SYRIAC ESASA BELOW
-073F;CM # SYRIAC RWAHA
-0740;CM # SYRIAC FEMININE DOT
-0741;CM # SYRIAC QUSHSHAYA
-0742;CM # SYRIAC RUKKAKHA
-0743;CM # SYRIAC TWO VERTICAL DOTS ABOVE
-0744;CM # SYRIAC TWO VERTICAL DOTS BELOW
-0745;CM # SYRIAC THREE DOTS ABOVE
-0746;CM # SYRIAC THREE DOTS BELOW
-0747;CM # SYRIAC OBLIQUE LINE ABOVE
-0748;CM # SYRIAC OBLIQUE LINE BELOW
-0749;CM # SYRIAC MUSIC
-074A;CM # SYRIAC BARREKH
-074D;AL # SYRIAC LETTER SOGDIAN ZHAIN
-074E;AL # SYRIAC LETTER SOGDIAN KHAPH
-074F;AL # SYRIAC LETTER SOGDIAN FE
-0750;AL # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751;AL # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752;AL # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753;AL # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754;AL # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755;AL # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-0756;AL # ARABIC LETTER BEH WITH SMALL V
-0757;AL # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758;AL # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-0759;AL # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A;AL # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-075B;AL # ARABIC LETTER REH WITH STROKE
-075C;AL # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-075D;AL # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E;AL # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F;AL # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0760;AL # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761;AL # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-0762;AL # ARABIC LETTER KEHEH WITH DOT ABOVE
-0763;AL # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764;AL # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0765;AL # ARABIC LETTER MEEM WITH DOT ABOVE
-0766;AL # ARABIC LETTER MEEM WITH DOT BELOW
-0767;AL # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768;AL # ARABIC LETTER NOON WITH SMALL TAH
-0769;AL # ARABIC LETTER NOON WITH SMALL V
-076A;AL # ARABIC LETTER LAM WITH BAR
-076B;AL # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C;AL # ARABIC LETTER REH WITH HAMZA ABOVE
-076D;AL # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-076E;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0770;AL # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0771;AL # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772;AL # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-0773;AL # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774;AL # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0775;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777;AL # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-0778;AL # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779;AL # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077A;AL # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B;AL # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-077C;AL # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-077D;AL # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E;AL # ARABIC LETTER SEEN WITH INVERTED V
-077F;AL # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-0780;AL # THAANA LETTER HAA
-0781;AL # THAANA LETTER SHAVIYANI
-0782;AL # THAANA LETTER NOONU
-0783;AL # THAANA LETTER RAA
-0784;AL # THAANA LETTER BAA
-0785;AL # THAANA LETTER LHAVIYANI
-0786;AL # THAANA LETTER KAAFU
-0787;AL # THAANA LETTER ALIFU
-0788;AL # THAANA LETTER VAAVU
-0789;AL # THAANA LETTER MEEMU
-078A;AL # THAANA LETTER FAAFU
-078B;AL # THAANA LETTER DHAALU
-078C;AL # THAANA LETTER THAA
-078D;AL # THAANA LETTER LAAMU
-078E;AL # THAANA LETTER GAAFU
-078F;AL # THAANA LETTER GNAVIYANI
-0790;AL # THAANA LETTER SEENU
-0791;AL # THAANA LETTER DAVIYANI
-0792;AL # THAANA LETTER ZAVIYANI
-0793;AL # THAANA LETTER TAVIYANI
-0794;AL # THAANA LETTER YAA
-0795;AL # THAANA LETTER PAVIYANI
-0796;AL # THAANA LETTER JAVIYANI
-0797;AL # THAANA LETTER CHAVIYANI
-0798;AL # THAANA LETTER TTAA
-0799;AL # THAANA LETTER HHAA
-079A;AL # THAANA LETTER KHAA
-079B;AL # THAANA LETTER THAALU
-079C;AL # THAANA LETTER ZAA
-079D;AL # THAANA LETTER SHEENU
-079E;AL # THAANA LETTER SAADHU
-079F;AL # THAANA LETTER DAADHU
-07A0;AL # THAANA LETTER TO
-07A1;AL # THAANA LETTER ZO
-07A2;AL # THAANA LETTER AINU
-07A3;AL # THAANA LETTER GHAINU
-07A4;AL # THAANA LETTER QAAFU
-07A5;AL # THAANA LETTER WAAVU
-07A6;CM # THAANA ABAFILI
-07A7;CM # THAANA AABAAFILI
-07A8;CM # THAANA IBIFILI
-07A9;CM # THAANA EEBEEFILI
-07AA;CM # THAANA UBUFILI
-07AB;CM # THAANA OOBOOFILI
-07AC;CM # THAANA EBEFILI
-07AD;CM # THAANA EYBEYFILI
-07AE;CM # THAANA OBOFILI
-07AF;CM # THAANA OABOAFILI
-07B0;CM # THAANA SUKUN
-07B1;AL # THAANA LETTER NAA
-07C0;NU # NKO DIGIT ZERO
-07C1;NU # NKO DIGIT ONE
-07C2;NU # NKO DIGIT TWO
-07C3;NU # NKO DIGIT THREE
-07C4;NU # NKO DIGIT FOUR
-07C5;NU # NKO DIGIT FIVE
-07C6;NU # NKO DIGIT SIX
-07C7;NU # NKO DIGIT SEVEN
-07C8;NU # NKO DIGIT EIGHT
-07C9;NU # NKO DIGIT NINE
-07CA;AL # NKO LETTER A
-07CB;AL # NKO LETTER EE
-07CC;AL # NKO LETTER I
-07CD;AL # NKO LETTER E
-07CE;AL # NKO LETTER U
-07CF;AL # NKO LETTER OO
-07D0;AL # NKO LETTER O
-07D1;AL # NKO LETTER DAGBASINNA
-07D2;AL # NKO LETTER N
-07D3;AL # NKO LETTER BA
-07D4;AL # NKO LETTER PA
-07D5;AL # NKO LETTER TA
-07D6;AL # NKO LETTER JA
-07D7;AL # NKO LETTER CHA
-07D8;AL # NKO LETTER DA
-07D9;AL # NKO LETTER RA
-07DA;AL # NKO LETTER RRA
-07DB;AL # NKO LETTER SA
-07DC;AL # NKO LETTER GBA
-07DD;AL # NKO LETTER FA
-07DE;AL # NKO LETTER KA
-07DF;AL # NKO LETTER LA
-07E0;AL # NKO LETTER NA WOLOSO
-07E1;AL # NKO LETTER MA
-07E2;AL # NKO LETTER NYA
-07E3;AL # NKO LETTER NA
-07E4;AL # NKO LETTER HA
-07E5;AL # NKO LETTER WA
-07E6;AL # NKO LETTER YA
-07E7;AL # NKO LETTER NYA WOLOSO
-07E8;AL # NKO LETTER JONA JA
-07E9;AL # NKO LETTER JONA CHA
-07EA;AL # NKO LETTER JONA RA
-07EB;CM # NKO COMBINING SHORT HIGH TONE
-07EC;CM # NKO COMBINING SHORT LOW TONE
-07ED;CM # NKO COMBINING SHORT RISING TONE
-07EE;CM # NKO COMBINING LONG DESCENDING TONE
-07EF;CM # NKO COMBINING LONG HIGH TONE
-07F0;CM # NKO COMBINING LONG LOW TONE
-07F1;CM # NKO COMBINING LONG RISING TONE
-07F2;CM # NKO COMBINING NASALIZATION MARK
-07F3;CM # NKO COMBINING DOUBLE DOT ABOVE
-07F4;AL # NKO HIGH TONE APOSTROPHE
-07F5;AL # NKO LOW TONE APOSTROPHE
-07F6;AL # NKO SYMBOL OO DENNEN
-07F7;AL # NKO SYMBOL GBAKURUNEN
-07F8;IS # NKO COMMA
-07F9;EX # NKO EXCLAMATION MARK
-07FA;AL # NKO LAJANYALAN
-0800;AL # SAMARITAN LETTER ALAF
-0801;AL # SAMARITAN LETTER BIT
-0802;AL # SAMARITAN LETTER GAMAN
-0803;AL # SAMARITAN LETTER DALAT
-0804;AL # SAMARITAN LETTER IY
-0805;AL # SAMARITAN LETTER BAA
-0806;AL # SAMARITAN LETTER ZEN
-0807;AL # SAMARITAN LETTER IT
-0808;AL # SAMARITAN LETTER TIT
-0809;AL # SAMARITAN LETTER YUT
-080A;AL # SAMARITAN LETTER KAAF
-080B;AL # SAMARITAN LETTER LABAT
-080C;AL # SAMARITAN LETTER MIM
-080D;AL # SAMARITAN LETTER NUN
-080E;AL # SAMARITAN LETTER SINGAAT
-080F;AL # SAMARITAN LETTER IN
-0810;AL # SAMARITAN LETTER FI
-0811;AL # SAMARITAN LETTER TSAADIY
-0812;AL # SAMARITAN LETTER QUF
-0813;AL # SAMARITAN LETTER RISH
-0814;AL # SAMARITAN LETTER SHAN
-0815;AL # SAMARITAN LETTER TAAF
-0816;CM # SAMARITAN MARK IN
-0817;CM # SAMARITAN MARK IN-ALAF
-0818;CM # SAMARITAN MARK OCCLUSION
-0819;CM # SAMARITAN MARK DAGESH
-081A;AL # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B;CM # SAMARITAN MARK EPENTHETIC YUT
-081C;CM # SAMARITAN VOWEL SIGN LONG E
-081D;CM # SAMARITAN VOWEL SIGN E
-081E;CM # SAMARITAN VOWEL SIGN OVERLONG AA
-081F;CM # SAMARITAN VOWEL SIGN LONG AA
-0820;CM # SAMARITAN VOWEL SIGN AA
-0821;CM # SAMARITAN VOWEL SIGN OVERLONG A
-0822;CM # SAMARITAN VOWEL SIGN LONG A
-0823;CM # SAMARITAN VOWEL SIGN A
-0824;AL # SAMARITAN MODIFIER LETTER SHORT A
-0825;CM # SAMARITAN VOWEL SIGN SHORT A
-0826;CM # SAMARITAN VOWEL SIGN LONG U
-0827;CM # SAMARITAN VOWEL SIGN U
-0828;AL # SAMARITAN MODIFIER LETTER I
-0829;CM # SAMARITAN VOWEL SIGN LONG I
-082A;CM # SAMARITAN VOWEL SIGN I
-082B;CM # SAMARITAN VOWEL SIGN O
-082C;CM # SAMARITAN VOWEL SIGN SUKUN
-082D;CM # SAMARITAN MARK NEQUDAA
-0830;AL # SAMARITAN PUNCTUATION NEQUDAA
-0831;AL # SAMARITAN PUNCTUATION AFSAAQ
-0832;AL # SAMARITAN PUNCTUATION ANGED
-0833;AL # SAMARITAN PUNCTUATION BAU
-0834;AL # SAMARITAN PUNCTUATION ATMAAU
-0835;AL # SAMARITAN PUNCTUATION SHIYYAALAA
-0836;AL # SAMARITAN ABBREVIATION MARK
-0837;AL # SAMARITAN PUNCTUATION MELODIC QITSA
-0838;AL # SAMARITAN PUNCTUATION ZIQAA
-0839;AL # SAMARITAN PUNCTUATION QITSA
-083A;AL # SAMARITAN PUNCTUATION ZAEF
-083B;AL # SAMARITAN PUNCTUATION TURU
-083C;AL # SAMARITAN PUNCTUATION ARKAANU
-083D;AL # SAMARITAN PUNCTUATION SOF MASHFAAT
-083E;AL # SAMARITAN PUNCTUATION ANNAAU
-0840;AL # MANDAIC LETTER HALQA
-0841;AL # MANDAIC LETTER AB
-0842;AL # MANDAIC LETTER AG
-0843;AL # MANDAIC LETTER AD
-0844;AL # MANDAIC LETTER AH
-0845;AL # MANDAIC LETTER USHENNA
-0846;AL # MANDAIC LETTER AZ
-0847;AL # MANDAIC LETTER IT
-0848;AL # MANDAIC LETTER ATT
-0849;AL # MANDAIC LETTER AKSA
-084A;AL # MANDAIC LETTER AK
-084B;AL # MANDAIC LETTER AL
-084C;AL # MANDAIC LETTER AM
-084D;AL # MANDAIC LETTER AN
-084E;AL # MANDAIC LETTER AS
-084F;AL # MANDAIC LETTER IN
-0850;AL # MANDAIC LETTER AP
-0851;AL # MANDAIC LETTER ASZ
-0852;AL # MANDAIC LETTER AQ
-0853;AL # MANDAIC LETTER AR
-0854;AL # MANDAIC LETTER ASH
-0855;AL # MANDAIC LETTER AT
-0856;AL # MANDAIC LETTER DUSHENNA
-0857;AL # MANDAIC LETTER KAD
-0858;AL # MANDAIC LETTER AIN
-0859;CM # MANDAIC AFFRICATION MARK
-085A;CM # MANDAIC VOCALIZATION MARK
-085B;CM # MANDAIC GEMINATION MARK
-085E;AL # MANDAIC PUNCTUATION
-08A0;AL # ARABIC LETTER BEH WITH SMALL V BELOW
-08A2;AL # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-08A3;AL # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-08A4;AL # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-08A5;AL # ARABIC LETTER QAF WITH DOT BELOW
-08A6;AL # ARABIC LETTER LAM WITH DOUBLE BAR
-08A7;AL # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-08A8;AL # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9;AL # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AA;AL # ARABIC LETTER REH WITH LOOP
-08AB;AL # ARABIC LETTER WAW WITH DOT WITHIN
-08AC;AL # ARABIC LETTER ROHINGYA YEH
-08E4;CM # ARABIC CURLY FATHA
-08E5;CM # ARABIC CURLY DAMMA
-08E6;CM # ARABIC CURLY KASRA
-08E7;CM # ARABIC CURLY FATHATAN
-08E8;CM # ARABIC CURLY DAMMATAN
-08E9;CM # ARABIC CURLY KASRATAN
-08EA;CM # ARABIC TONE ONE DOT ABOVE
-08EB;CM # ARABIC TONE TWO DOTS ABOVE
-08EC;CM # ARABIC TONE LOOP ABOVE
-08ED;CM # ARABIC TONE ONE DOT BELOW
-08EE;CM # ARABIC TONE TWO DOTS BELOW
-08EF;CM # ARABIC TONE LOOP BELOW
-08F0;CM # ARABIC OPEN FATHATAN
-08F1;CM # ARABIC OPEN DAMMATAN
-08F2;CM # ARABIC OPEN KASRATAN
-08F3;CM # ARABIC SMALL HIGH WAW
-08F4;CM # ARABIC FATHA WITH RING
-08F5;CM # ARABIC FATHA WITH DOT ABOVE
-08F6;CM # ARABIC KASRA WITH DOT BELOW
-08F7;CM # ARABIC LEFT ARROWHEAD ABOVE
-08F8;CM # ARABIC RIGHT ARROWHEAD ABOVE
-08F9;CM # ARABIC LEFT ARROWHEAD BELOW
-08FA;CM # ARABIC RIGHT ARROWHEAD BELOW
-08FB;CM # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC;CM # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08FD;CM # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FE;CM # ARABIC DAMMA WITH DOT
-0900;CM # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901;CM # DEVANAGARI SIGN CANDRABINDU
-0902;CM # DEVANAGARI SIGN ANUSVARA
-0903;CM # DEVANAGARI SIGN VISARGA
-0904;AL # DEVANAGARI LETTER SHORT A
-0905;AL # DEVANAGARI LETTER A
-0906;AL # DEVANAGARI LETTER AA
-0907;AL # DEVANAGARI LETTER I
-0908;AL # DEVANAGARI LETTER II
-0909;AL # DEVANAGARI LETTER U
-090A;AL # DEVANAGARI LETTER UU
-090B;AL # DEVANAGARI LETTER VOCALIC R
-090C;AL # DEVANAGARI LETTER VOCALIC L
-090D;AL # DEVANAGARI LETTER CANDRA E
-090E;AL # DEVANAGARI LETTER SHORT E
-090F;AL # DEVANAGARI LETTER E
-0910;AL # DEVANAGARI LETTER AI
-0911;AL # DEVANAGARI LETTER CANDRA O
-0912;AL # DEVANAGARI LETTER SHORT O
-0913;AL # DEVANAGARI LETTER O
-0914;AL # DEVANAGARI LETTER AU
-0915;AL # DEVANAGARI LETTER KA
-0916;AL # DEVANAGARI LETTER KHA
-0917;AL # DEVANAGARI LETTER GA
-0918;AL # DEVANAGARI LETTER GHA
-0919;AL # DEVANAGARI LETTER NGA
-091A;AL # DEVANAGARI LETTER CA
-091B;AL # DEVANAGARI LETTER CHA
-091C;AL # DEVANAGARI LETTER JA
-091D;AL # DEVANAGARI LETTER JHA
-091E;AL # DEVANAGARI LETTER NYA
-091F;AL # DEVANAGARI LETTER TTA
-0920;AL # DEVANAGARI LETTER TTHA
-0921;AL # DEVANAGARI LETTER DDA
-0922;AL # DEVANAGARI LETTER DDHA
-0923;AL # DEVANAGARI LETTER NNA
-0924;AL # DEVANAGARI LETTER TA
-0925;AL # DEVANAGARI LETTER THA
-0926;AL # DEVANAGARI LETTER DA
-0927;AL # DEVANAGARI LETTER DHA
-0928;AL # DEVANAGARI LETTER NA
-0929;AL # DEVANAGARI LETTER NNNA
-092A;AL # DEVANAGARI LETTER PA
-092B;AL # DEVANAGARI LETTER PHA
-092C;AL # DEVANAGARI LETTER BA
-092D;AL # DEVANAGARI LETTER BHA
-092E;AL # DEVANAGARI LETTER MA
-092F;AL # DEVANAGARI LETTER YA
-0930;AL # DEVANAGARI LETTER RA
-0931;AL # DEVANAGARI LETTER RRA
-0932;AL # DEVANAGARI LETTER LA
-0933;AL # DEVANAGARI LETTER LLA
-0934;AL # DEVANAGARI LETTER LLLA
-0935;AL # DEVANAGARI LETTER VA
-0936;AL # DEVANAGARI LETTER SHA
-0937;AL # DEVANAGARI LETTER SSA
-0938;AL # DEVANAGARI LETTER SA
-0939;AL # DEVANAGARI LETTER HA
-093A;CM # DEVANAGARI VOWEL SIGN OE
-093B;CM # DEVANAGARI VOWEL SIGN OOE
-093C;CM # DEVANAGARI SIGN NUKTA
-093D;AL # DEVANAGARI SIGN AVAGRAHA
-093E;CM # DEVANAGARI VOWEL SIGN AA
-093F;CM # DEVANAGARI VOWEL SIGN I
-0940;CM # DEVANAGARI VOWEL SIGN II
-0941;CM # DEVANAGARI VOWEL SIGN U
-0942;CM # DEVANAGARI VOWEL SIGN UU
-0943;CM # DEVANAGARI VOWEL SIGN VOCALIC R
-0944;CM # DEVANAGARI VOWEL SIGN VOCALIC RR
-0945;CM # DEVANAGARI VOWEL SIGN CANDRA E
-0946;CM # DEVANAGARI VOWEL SIGN SHORT E
-0947;CM # DEVANAGARI VOWEL SIGN E
-0948;CM # DEVANAGARI VOWEL SIGN AI
-0949;CM # DEVANAGARI VOWEL SIGN CANDRA O
-094A;CM # DEVANAGARI VOWEL SIGN SHORT O
-094B;CM # DEVANAGARI VOWEL SIGN O
-094C;CM # DEVANAGARI VOWEL SIGN AU
-094D;CM # DEVANAGARI SIGN VIRAMA
-094E;CM # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-094F;CM # DEVANAGARI VOWEL SIGN AW
-0950;AL # DEVANAGARI OM
-0951;CM # DEVANAGARI STRESS SIGN UDATTA
-0952;CM # DEVANAGARI STRESS SIGN ANUDATTA
-0953;CM # DEVANAGARI GRAVE ACCENT
-0954;CM # DEVANAGARI ACUTE ACCENT
-0955;CM # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0956;CM # DEVANAGARI VOWEL SIGN UE
-0957;CM # DEVANAGARI VOWEL SIGN UUE
-0958;AL # DEVANAGARI LETTER QA
-0959;AL # DEVANAGARI LETTER KHHA
-095A;AL # DEVANAGARI LETTER GHHA
-095B;AL # DEVANAGARI LETTER ZA
-095C;AL # DEVANAGARI LETTER DDDHA
-095D;AL # DEVANAGARI LETTER RHA
-095E;AL # DEVANAGARI LETTER FA
-095F;AL # DEVANAGARI LETTER YYA
-0960;AL # DEVANAGARI LETTER VOCALIC RR
-0961;AL # DEVANAGARI LETTER VOCALIC LL
-0962;CM # DEVANAGARI VOWEL SIGN VOCALIC L
-0963;CM # DEVANAGARI VOWEL SIGN VOCALIC LL
-0964;BA # DEVANAGARI DANDA
-0965;BA # DEVANAGARI DOUBLE DANDA
-0966;NU # DEVANAGARI DIGIT ZERO
-0967;NU # DEVANAGARI DIGIT ONE
-0968;NU # DEVANAGARI DIGIT TWO
-0969;NU # DEVANAGARI DIGIT THREE
-096A;NU # DEVANAGARI DIGIT FOUR
-096B;NU # DEVANAGARI DIGIT FIVE
-096C;NU # DEVANAGARI DIGIT SIX
-096D;NU # DEVANAGARI DIGIT SEVEN
-096E;NU # DEVANAGARI DIGIT EIGHT
-096F;NU # DEVANAGARI DIGIT NINE
-0970;AL # DEVANAGARI ABBREVIATION SIGN
-0971;AL # DEVANAGARI SIGN HIGH SPACING DOT
-0972;AL # DEVANAGARI LETTER CANDRA A
-0973;AL # DEVANAGARI LETTER OE
-0974;AL # DEVANAGARI LETTER OOE
-0975;AL # DEVANAGARI LETTER AW
-0976;AL # DEVANAGARI LETTER UE
-0977;AL # DEVANAGARI LETTER UUE
-0979;AL # DEVANAGARI LETTER ZHA
-097A;AL # DEVANAGARI LETTER HEAVY YA
-097B;AL # DEVANAGARI LETTER GGA
-097C;AL # DEVANAGARI LETTER JJA
-097D;AL # DEVANAGARI LETTER GLOTTAL STOP
-097E;AL # DEVANAGARI LETTER DDDA
-097F;AL # DEVANAGARI LETTER BBA
-0981;CM # BENGALI SIGN CANDRABINDU
-0982;CM # BENGALI SIGN ANUSVARA
-0983;CM # BENGALI SIGN VISARGA
-0985;AL # BENGALI LETTER A
-0986;AL # BENGALI LETTER AA
-0987;AL # BENGALI LETTER I
-0988;AL # BENGALI LETTER II
-0989;AL # BENGALI LETTER U
-098A;AL # BENGALI LETTER UU
-098B;AL # BENGALI LETTER VOCALIC R
-098C;AL # BENGALI LETTER VOCALIC L
-098F;AL # BENGALI LETTER E
-0990;AL # BENGALI LETTER AI
-0993;AL # BENGALI LETTER O
-0994;AL # BENGALI LETTER AU
-0995;AL # BENGALI LETTER KA
-0996;AL # BENGALI LETTER KHA
-0997;AL # BENGALI LETTER GA
-0998;AL # BENGALI LETTER GHA
-0999;AL # BENGALI LETTER NGA
-099A;AL # BENGALI LETTER CA
-099B;AL # BENGALI LETTER CHA
-099C;AL # BENGALI LETTER JA
-099D;AL # BENGALI LETTER JHA
-099E;AL # BENGALI LETTER NYA
-099F;AL # BENGALI LETTER TTA
-09A0;AL # BENGALI LETTER TTHA
-09A1;AL # BENGALI LETTER DDA
-09A2;AL # BENGALI LETTER DDHA
-09A3;AL # BENGALI LETTER NNA
-09A4;AL # BENGALI LETTER TA
-09A5;AL # BENGALI LETTER THA
-09A6;AL # BENGALI LETTER DA
-09A7;AL # BENGALI LETTER DHA
-09A8;AL # BENGALI LETTER NA
-09AA;AL # BENGALI LETTER PA
-09AB;AL # BENGALI LETTER PHA
-09AC;AL # BENGALI LETTER BA
-09AD;AL # BENGALI LETTER BHA
-09AE;AL # BENGALI LETTER MA
-09AF;AL # BENGALI LETTER YA
-09B0;AL # BENGALI LETTER RA
-09B2;AL # BENGALI LETTER LA
-09B6;AL # BENGALI LETTER SHA
-09B7;AL # BENGALI LETTER SSA
-09B8;AL # BENGALI LETTER SA
-09B9;AL # BENGALI LETTER HA
-09BC;CM # BENGALI SIGN NUKTA
-09BD;AL # BENGALI SIGN AVAGRAHA
-09BE;CM # BENGALI VOWEL SIGN AA
-09BF;CM # BENGALI VOWEL SIGN I
-09C0;CM # BENGALI VOWEL SIGN II
-09C1;CM # BENGALI VOWEL SIGN U
-09C2;CM # BENGALI VOWEL SIGN UU
-09C3;CM # BENGALI VOWEL SIGN VOCALIC R
-09C4;CM # BENGALI VOWEL SIGN VOCALIC RR
-09C7;CM # BENGALI VOWEL SIGN E
-09C8;CM # BENGALI VOWEL SIGN AI
-09CB;CM # BENGALI VOWEL SIGN O
-09CC;CM # BENGALI VOWEL SIGN AU
-09CD;CM # BENGALI SIGN VIRAMA
-09CE;AL # BENGALI LETTER KHANDA TA
-09D7;CM # BENGALI AU LENGTH MARK
-09DC;AL # BENGALI LETTER RRA
-09DD;AL # BENGALI LETTER RHA
-09DF;AL # BENGALI LETTER YYA
-09E0;AL # BENGALI LETTER VOCALIC RR
-09E1;AL # BENGALI LETTER VOCALIC LL
-09E2;CM # BENGALI VOWEL SIGN VOCALIC L
-09E3;CM # BENGALI VOWEL SIGN VOCALIC LL
-09E6;NU # BENGALI DIGIT ZERO
-09E7;NU # BENGALI DIGIT ONE
-09E8;NU # BENGALI DIGIT TWO
-09E9;NU # BENGALI DIGIT THREE
-09EA;NU # BENGALI DIGIT FOUR
-09EB;NU # BENGALI DIGIT FIVE
-09EC;NU # BENGALI DIGIT SIX
-09ED;NU # BENGALI DIGIT SEVEN
-09EE;NU # BENGALI DIGIT EIGHT
-09EF;NU # BENGALI DIGIT NINE
-09F0;AL # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09F1;AL # BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2;PO # BENGALI RUPEE MARK
-09F3;PO # BENGALI RUPEE SIGN
-09F4;AL # BENGALI CURRENCY NUMERATOR ONE
-09F5;AL # BENGALI CURRENCY NUMERATOR TWO
-09F6;AL # BENGALI CURRENCY NUMERATOR THREE
-09F7;AL # BENGALI CURRENCY NUMERATOR FOUR
-09F8;AL # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9;PO # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA;AL # BENGALI ISSHAR
-09FB;PR # BENGALI GANDA MARK
-0A01;CM # GURMUKHI SIGN ADAK BINDI
-0A02;CM # GURMUKHI SIGN BINDI
-0A03;CM # GURMUKHI SIGN VISARGA
-0A05;AL # GURMUKHI LETTER A
-0A06;AL # GURMUKHI LETTER AA
-0A07;AL # GURMUKHI LETTER I
-0A08;AL # GURMUKHI LETTER II
-0A09;AL # GURMUKHI LETTER U
-0A0A;AL # GURMUKHI LETTER UU
-0A0F;AL # GURMUKHI LETTER EE
-0A10;AL # GURMUKHI LETTER AI
-0A13;AL # GURMUKHI LETTER OO
-0A14;AL # GURMUKHI LETTER AU
-0A15;AL # GURMUKHI LETTER KA
-0A16;AL # GURMUKHI LETTER KHA
-0A17;AL # GURMUKHI LETTER GA
-0A18;AL # GURMUKHI LETTER GHA
-0A19;AL # GURMUKHI LETTER NGA
-0A1A;AL # GURMUKHI LETTER CA
-0A1B;AL # GURMUKHI LETTER CHA
-0A1C;AL # GURMUKHI LETTER JA
-0A1D;AL # GURMUKHI LETTER JHA
-0A1E;AL # GURMUKHI LETTER NYA
-0A1F;AL # GURMUKHI LETTER TTA
-0A20;AL # GURMUKHI LETTER TTHA
-0A21;AL # GURMUKHI LETTER DDA
-0A22;AL # GURMUKHI LETTER DDHA
-0A23;AL # GURMUKHI LETTER NNA
-0A24;AL # GURMUKHI LETTER TA
-0A25;AL # GURMUKHI LETTER THA
-0A26;AL # GURMUKHI LETTER DA
-0A27;AL # GURMUKHI LETTER DHA
-0A28;AL # GURMUKHI LETTER NA
-0A2A;AL # GURMUKHI LETTER PA
-0A2B;AL # GURMUKHI LETTER PHA
-0A2C;AL # GURMUKHI LETTER BA
-0A2D;AL # GURMUKHI LETTER BHA
-0A2E;AL # GURMUKHI LETTER MA
-0A2F;AL # GURMUKHI LETTER YA
-0A30;AL # GURMUKHI LETTER RA
-0A32;AL # GURMUKHI LETTER LA
-0A33;AL # GURMUKHI LETTER LLA
-0A35;AL # GURMUKHI LETTER VA
-0A36;AL # GURMUKHI LETTER SHA
-0A38;AL # GURMUKHI LETTER SA
-0A39;AL # GURMUKHI LETTER HA
-0A3C;CM # GURMUKHI SIGN NUKTA
-0A3E;CM # GURMUKHI VOWEL SIGN AA
-0A3F;CM # GURMUKHI VOWEL SIGN I
-0A40;CM # GURMUKHI VOWEL SIGN II
-0A41;CM # GURMUKHI VOWEL SIGN U
-0A42;CM # GURMUKHI VOWEL SIGN UU
-0A47;CM # GURMUKHI VOWEL SIGN EE
-0A48;CM # GURMUKHI VOWEL SIGN AI
-0A4B;CM # GURMUKHI VOWEL SIGN OO
-0A4C;CM # GURMUKHI VOWEL SIGN AU
-0A4D;CM # GURMUKHI SIGN VIRAMA
-0A51;CM # GURMUKHI SIGN UDAAT
-0A59;AL # GURMUKHI LETTER KHHA
-0A5A;AL # GURMUKHI LETTER GHHA
-0A5B;AL # GURMUKHI LETTER ZA
-0A5C;AL # GURMUKHI LETTER RRA
-0A5E;AL # GURMUKHI LETTER FA
-0A66;NU # GURMUKHI DIGIT ZERO
-0A67;NU # GURMUKHI DIGIT ONE
-0A68;NU # GURMUKHI DIGIT TWO
-0A69;NU # GURMUKHI DIGIT THREE
-0A6A;NU # GURMUKHI DIGIT FOUR
-0A6B;NU # GURMUKHI DIGIT FIVE
-0A6C;NU # GURMUKHI DIGIT SIX
-0A6D;NU # GURMUKHI DIGIT SEVEN
-0A6E;NU # GURMUKHI DIGIT EIGHT
-0A6F;NU # GURMUKHI DIGIT NINE
-0A70;CM # GURMUKHI TIPPI
-0A71;CM # GURMUKHI ADDAK
-0A72;AL # GURMUKHI IRI
-0A73;AL # GURMUKHI URA
-0A74;AL # GURMUKHI EK ONKAR
-0A75;CM # GURMUKHI SIGN YAKASH
-0A81;CM # GUJARATI SIGN CANDRABINDU
-0A82;CM # GUJARATI SIGN ANUSVARA
-0A83;CM # GUJARATI SIGN VISARGA
-0A85;AL # GUJARATI LETTER A
-0A86;AL # GUJARATI LETTER AA
-0A87;AL # GUJARATI LETTER I
-0A88;AL # GUJARATI LETTER II
-0A89;AL # GUJARATI LETTER U
-0A8A;AL # GUJARATI LETTER UU
-0A8B;AL # GUJARATI LETTER VOCALIC R
-0A8C;AL # GUJARATI LETTER VOCALIC L
-0A8D;AL # GUJARATI VOWEL CANDRA E
-0A8F;AL # GUJARATI LETTER E
-0A90;AL # GUJARATI LETTER AI
-0A91;AL # GUJARATI VOWEL CANDRA O
-0A93;AL # GUJARATI LETTER O
-0A94;AL # GUJARATI LETTER AU
-0A95;AL # GUJARATI LETTER KA
-0A96;AL # GUJARATI LETTER KHA
-0A97;AL # GUJARATI LETTER GA
-0A98;AL # GUJARATI LETTER GHA
-0A99;AL # GUJARATI LETTER NGA
-0A9A;AL # GUJARATI LETTER CA
-0A9B;AL # GUJARATI LETTER CHA
-0A9C;AL # GUJARATI LETTER JA
-0A9D;AL # GUJARATI LETTER JHA
-0A9E;AL # GUJARATI LETTER NYA
-0A9F;AL # GUJARATI LETTER TTA
-0AA0;AL # GUJARATI LETTER TTHA
-0AA1;AL # GUJARATI LETTER DDA
-0AA2;AL # GUJARATI LETTER DDHA
-0AA3;AL # GUJARATI LETTER NNA
-0AA4;AL # GUJARATI LETTER TA
-0AA5;AL # GUJARATI LETTER THA
-0AA6;AL # GUJARATI LETTER DA
-0AA7;AL # GUJARATI LETTER DHA
-0AA8;AL # GUJARATI LETTER NA
-0AAA;AL # GUJARATI LETTER PA
-0AAB;AL # GUJARATI LETTER PHA
-0AAC;AL # GUJARATI LETTER BA
-0AAD;AL # GUJARATI LETTER BHA
-0AAE;AL # GUJARATI LETTER MA
-0AAF;AL # GUJARATI LETTER YA
-0AB0;AL # GUJARATI LETTER RA
-0AB2;AL # GUJARATI LETTER LA
-0AB3;AL # GUJARATI LETTER LLA
-0AB5;AL # GUJARATI LETTER VA
-0AB6;AL # GUJARATI LETTER SHA
-0AB7;AL # GUJARATI LETTER SSA
-0AB8;AL # GUJARATI LETTER SA
-0AB9;AL # GUJARATI LETTER HA
-0ABC;CM # GUJARATI SIGN NUKTA
-0ABD;AL # GUJARATI SIGN AVAGRAHA
-0ABE;CM # GUJARATI VOWEL SIGN AA
-0ABF;CM # GUJARATI VOWEL SIGN I
-0AC0;CM # GUJARATI VOWEL SIGN II
-0AC1;CM # GUJARATI VOWEL SIGN U
-0AC2;CM # GUJARATI VOWEL SIGN UU
-0AC3;CM # GUJARATI VOWEL SIGN VOCALIC R
-0AC4;CM # GUJARATI VOWEL SIGN VOCALIC RR
-0AC5;CM # GUJARATI VOWEL SIGN CANDRA E
-0AC7;CM # GUJARATI VOWEL SIGN E
-0AC8;CM # GUJARATI VOWEL SIGN AI
-0AC9;CM # GUJARATI VOWEL SIGN CANDRA O
-0ACB;CM # GUJARATI VOWEL SIGN O
-0ACC;CM # GUJARATI VOWEL SIGN AU
-0ACD;CM # GUJARATI SIGN VIRAMA
-0AD0;AL # GUJARATI OM
-0AE0;AL # GUJARATI LETTER VOCALIC RR
-0AE1;AL # GUJARATI LETTER VOCALIC LL
-0AE2;CM # GUJARATI VOWEL SIGN VOCALIC L
-0AE3;CM # GUJARATI VOWEL SIGN VOCALIC LL
-0AE6;NU # GUJARATI DIGIT ZERO
-0AE7;NU # GUJARATI DIGIT ONE
-0AE8;NU # GUJARATI DIGIT TWO
-0AE9;NU # GUJARATI DIGIT THREE
-0AEA;NU # GUJARATI DIGIT FOUR
-0AEB;NU # GUJARATI DIGIT FIVE
-0AEC;NU # GUJARATI DIGIT SIX
-0AED;NU # GUJARATI DIGIT SEVEN
-0AEE;NU # GUJARATI DIGIT EIGHT
-0AEF;NU # GUJARATI DIGIT NINE
-0AF0;AL # GUJARATI ABBREVIATION SIGN
-0AF1;PR # GUJARATI RUPEE SIGN
-0B01;CM # ORIYA SIGN CANDRABINDU
-0B02;CM # ORIYA SIGN ANUSVARA
-0B03;CM # ORIYA SIGN VISARGA
-0B05;AL # ORIYA LETTER A
-0B06;AL # ORIYA LETTER AA
-0B07;AL # ORIYA LETTER I
-0B08;AL # ORIYA LETTER II
-0B09;AL # ORIYA LETTER U
-0B0A;AL # ORIYA LETTER UU
-0B0B;AL # ORIYA LETTER VOCALIC R
-0B0C;AL # ORIYA LETTER VOCALIC L
-0B0F;AL # ORIYA LETTER E
-0B10;AL # ORIYA LETTER AI
-0B13;AL # ORIYA LETTER O
-0B14;AL # ORIYA LETTER AU
-0B15;AL # ORIYA LETTER KA
-0B16;AL # ORIYA LETTER KHA
-0B17;AL # ORIYA LETTER GA
-0B18;AL # ORIYA LETTER GHA
-0B19;AL # ORIYA LETTER NGA
-0B1A;AL # ORIYA LETTER CA
-0B1B;AL # ORIYA LETTER CHA
-0B1C;AL # ORIYA LETTER JA
-0B1D;AL # ORIYA LETTER JHA
-0B1E;AL # ORIYA LETTER NYA
-0B1F;AL # ORIYA LETTER TTA
-0B20;AL # ORIYA LETTER TTHA
-0B21;AL # ORIYA LETTER DDA
-0B22;AL # ORIYA LETTER DDHA
-0B23;AL # ORIYA LETTER NNA
-0B24;AL # ORIYA LETTER TA
-0B25;AL # ORIYA LETTER THA
-0B26;AL # ORIYA LETTER DA
-0B27;AL # ORIYA LETTER DHA
-0B28;AL # ORIYA LETTER NA
-0B2A;AL # ORIYA LETTER PA
-0B2B;AL # ORIYA LETTER PHA
-0B2C;AL # ORIYA LETTER BA
-0B2D;AL # ORIYA LETTER BHA
-0B2E;AL # ORIYA LETTER MA
-0B2F;AL # ORIYA LETTER YA
-0B30;AL # ORIYA LETTER RA
-0B32;AL # ORIYA LETTER LA
-0B33;AL # ORIYA LETTER LLA
-0B35;AL # ORIYA LETTER VA
-0B36;AL # ORIYA LETTER SHA
-0B37;AL # ORIYA LETTER SSA
-0B38;AL # ORIYA LETTER SA
-0B39;AL # ORIYA LETTER HA
-0B3C;CM # ORIYA SIGN NUKTA
-0B3D;AL # ORIYA SIGN AVAGRAHA
-0B3E;CM # ORIYA VOWEL SIGN AA
-0B3F;CM # ORIYA VOWEL SIGN I
-0B40;CM # ORIYA VOWEL SIGN II
-0B41;CM # ORIYA VOWEL SIGN U
-0B42;CM # ORIYA VOWEL SIGN UU
-0B43;CM # ORIYA VOWEL SIGN VOCALIC R
-0B44;CM # ORIYA VOWEL SIGN VOCALIC RR
-0B47;CM # ORIYA VOWEL SIGN E
-0B48;CM # ORIYA VOWEL SIGN AI
-0B4B;CM # ORIYA VOWEL SIGN O
-0B4C;CM # ORIYA VOWEL SIGN AU
-0B4D;CM # ORIYA SIGN VIRAMA
-0B56;CM # ORIYA AI LENGTH MARK
-0B57;CM # ORIYA AU LENGTH MARK
-0B5C;AL # ORIYA LETTER RRA
-0B5D;AL # ORIYA LETTER RHA
-0B5F;AL # ORIYA LETTER YYA
-0B60;AL # ORIYA LETTER VOCALIC RR
-0B61;AL # ORIYA LETTER VOCALIC LL
-0B62;CM # ORIYA VOWEL SIGN VOCALIC L
-0B63;CM # ORIYA VOWEL SIGN VOCALIC LL
-0B66;NU # ORIYA DIGIT ZERO
-0B67;NU # ORIYA DIGIT ONE
-0B68;NU # ORIYA DIGIT TWO
-0B69;NU # ORIYA DIGIT THREE
-0B6A;NU # ORIYA DIGIT FOUR
-0B6B;NU # ORIYA DIGIT FIVE
-0B6C;NU # ORIYA DIGIT SIX
-0B6D;NU # ORIYA DIGIT SEVEN
-0B6E;NU # ORIYA DIGIT EIGHT
-0B6F;NU # ORIYA DIGIT NINE
-0B70;AL # ORIYA ISSHAR
-0B71;AL # ORIYA LETTER WA
-0B72;AL # ORIYA FRACTION ONE QUARTER
-0B73;AL # ORIYA FRACTION ONE HALF
-0B74;AL # ORIYA FRACTION THREE QUARTERS
-0B75;AL # ORIYA FRACTION ONE SIXTEENTH
-0B76;AL # ORIYA FRACTION ONE EIGHTH
-0B77;AL # ORIYA FRACTION THREE SIXTEENTHS
-0B82;CM # TAMIL SIGN ANUSVARA
-0B83;AL # TAMIL SIGN VISARGA
-0B85;AL # TAMIL LETTER A
-0B86;AL # TAMIL LETTER AA
-0B87;AL # TAMIL LETTER I
-0B88;AL # TAMIL LETTER II
-0B89;AL # TAMIL LETTER U
-0B8A;AL # TAMIL LETTER UU
-0B8E;AL # TAMIL LETTER E
-0B8F;AL # TAMIL LETTER EE
-0B90;AL # TAMIL LETTER AI
-0B92;AL # TAMIL LETTER O
-0B93;AL # TAMIL LETTER OO
-0B94;AL # TAMIL LETTER AU
-0B95;AL # TAMIL LETTER KA
-0B99;AL # TAMIL LETTER NGA
-0B9A;AL # TAMIL LETTER CA
-0B9C;AL # TAMIL LETTER JA
-0B9E;AL # TAMIL LETTER NYA
-0B9F;AL # TAMIL LETTER TTA
-0BA3;AL # TAMIL LETTER NNA
-0BA4;AL # TAMIL LETTER TA
-0BA8;AL # TAMIL LETTER NA
-0BA9;AL # TAMIL LETTER NNNA
-0BAA;AL # TAMIL LETTER PA
-0BAE;AL # TAMIL LETTER MA
-0BAF;AL # TAMIL LETTER YA
-0BB0;AL # TAMIL LETTER RA
-0BB1;AL # TAMIL LETTER RRA
-0BB2;AL # TAMIL LETTER LA
-0BB3;AL # TAMIL LETTER LLA
-0BB4;AL # TAMIL LETTER LLLA
-0BB5;AL # TAMIL LETTER VA
-0BB6;AL # TAMIL LETTER SHA
-0BB7;AL # TAMIL LETTER SSA
-0BB8;AL # TAMIL LETTER SA
-0BB9;AL # TAMIL LETTER HA
-0BBE;CM # TAMIL VOWEL SIGN AA
-0BBF;CM # TAMIL VOWEL SIGN I
-0BC0;CM # TAMIL VOWEL SIGN II
-0BC1;CM # TAMIL VOWEL SIGN U
-0BC2;CM # TAMIL VOWEL SIGN UU
-0BC6;CM # TAMIL VOWEL SIGN E
-0BC7;CM # TAMIL VOWEL SIGN EE
-0BC8;CM # TAMIL VOWEL SIGN AI
-0BCA;CM # TAMIL VOWEL SIGN O
-0BCB;CM # TAMIL VOWEL SIGN OO
-0BCC;CM # TAMIL VOWEL SIGN AU
-0BCD;CM # TAMIL SIGN VIRAMA
-0BD0;AL # TAMIL OM
-0BD7;CM # TAMIL AU LENGTH MARK
-0BE6;NU # TAMIL DIGIT ZERO
-0BE7;NU # TAMIL DIGIT ONE
-0BE8;NU # TAMIL DIGIT TWO
-0BE9;NU # TAMIL DIGIT THREE
-0BEA;NU # TAMIL DIGIT FOUR
-0BEB;NU # TAMIL DIGIT FIVE
-0BEC;NU # TAMIL DIGIT SIX
-0BED;NU # TAMIL DIGIT SEVEN
-0BEE;NU # TAMIL DIGIT EIGHT
-0BEF;NU # TAMIL DIGIT NINE
-0BF0;AL # TAMIL NUMBER TEN
-0BF1;AL # TAMIL NUMBER ONE HUNDRED
-0BF2;AL # TAMIL NUMBER ONE THOUSAND
-0BF3;AL # TAMIL DAY SIGN
-0BF4;AL # TAMIL MONTH SIGN
-0BF5;AL # TAMIL YEAR SIGN
-0BF6;AL # TAMIL DEBIT SIGN
-0BF7;AL # TAMIL CREDIT SIGN
-0BF8;AL # TAMIL AS ABOVE SIGN
-0BF9;PR # TAMIL RUPEE SIGN
-0BFA;AL # TAMIL NUMBER SIGN
-0C01;CM # TELUGU SIGN CANDRABINDU
-0C02;CM # TELUGU SIGN ANUSVARA
-0C03;CM # TELUGU SIGN VISARGA
-0C05;AL # TELUGU LETTER A
-0C06;AL # TELUGU LETTER AA
-0C07;AL # TELUGU LETTER I
-0C08;AL # TELUGU LETTER II
-0C09;AL # TELUGU LETTER U
-0C0A;AL # TELUGU LETTER UU
-0C0B;AL # TELUGU LETTER VOCALIC R
-0C0C;AL # TELUGU LETTER VOCALIC L
-0C0E;AL # TELUGU LETTER E
-0C0F;AL # TELUGU LETTER EE
-0C10;AL # TELUGU LETTER AI
-0C12;AL # TELUGU LETTER O
-0C13;AL # TELUGU LETTER OO
-0C14;AL # TELUGU LETTER AU
-0C15;AL # TELUGU LETTER KA
-0C16;AL # TELUGU LETTER KHA
-0C17;AL # TELUGU LETTER GA
-0C18;AL # TELUGU LETTER GHA
-0C19;AL # TELUGU LETTER NGA
-0C1A;AL # TELUGU LETTER CA
-0C1B;AL # TELUGU LETTER CHA
-0C1C;AL # TELUGU LETTER JA
-0C1D;AL # TELUGU LETTER JHA
-0C1E;AL # TELUGU LETTER NYA
-0C1F;AL # TELUGU LETTER TTA
-0C20;AL # TELUGU LETTER TTHA
-0C21;AL # TELUGU LETTER DDA
-0C22;AL # TELUGU LETTER DDHA
-0C23;AL # TELUGU LETTER NNA
-0C24;AL # TELUGU LETTER TA
-0C25;AL # TELUGU LETTER THA
-0C26;AL # TELUGU LETTER DA
-0C27;AL # TELUGU LETTER DHA
-0C28;AL # TELUGU LETTER NA
-0C2A;AL # TELUGU LETTER PA
-0C2B;AL # TELUGU LETTER PHA
-0C2C;AL # TELUGU LETTER BA
-0C2D;AL # TELUGU LETTER BHA
-0C2E;AL # TELUGU LETTER MA
-0C2F;AL # TELUGU LETTER YA
-0C30;AL # TELUGU LETTER RA
-0C31;AL # TELUGU LETTER RRA
-0C32;AL # TELUGU LETTER LA
-0C33;AL # TELUGU LETTER LLA
-0C35;AL # TELUGU LETTER VA
-0C36;AL # TELUGU LETTER SHA
-0C37;AL # TELUGU LETTER SSA
-0C38;AL # TELUGU LETTER SA
-0C39;AL # TELUGU LETTER HA
-0C3D;AL # TELUGU SIGN AVAGRAHA
-0C3E;CM # TELUGU VOWEL SIGN AA
-0C3F;CM # TELUGU VOWEL SIGN I
-0C40;CM # TELUGU VOWEL SIGN II
-0C41;CM # TELUGU VOWEL SIGN U
-0C42;CM # TELUGU VOWEL SIGN UU
-0C43;CM # TELUGU VOWEL SIGN VOCALIC R
-0C44;CM # TELUGU VOWEL SIGN VOCALIC RR
-0C46;CM # TELUGU VOWEL SIGN E
-0C47;CM # TELUGU VOWEL SIGN EE
-0C48;CM # TELUGU VOWEL SIGN AI
-0C4A;CM # TELUGU VOWEL SIGN O
-0C4B;CM # TELUGU VOWEL SIGN OO
-0C4C;CM # TELUGU VOWEL SIGN AU
-0C4D;CM # TELUGU SIGN VIRAMA
-0C55;CM # TELUGU LENGTH MARK
-0C56;CM # TELUGU AI LENGTH MARK
-0C58;AL # TELUGU LETTER TSA
-0C59;AL # TELUGU LETTER DZA
-0C60;AL # TELUGU LETTER VOCALIC RR
-0C61;AL # TELUGU LETTER VOCALIC LL
-0C62;CM # TELUGU VOWEL SIGN VOCALIC L
-0C63;CM # TELUGU VOWEL SIGN VOCALIC LL
-0C66;NU # TELUGU DIGIT ZERO
-0C67;NU # TELUGU DIGIT ONE
-0C68;NU # TELUGU DIGIT TWO
-0C69;NU # TELUGU DIGIT THREE
-0C6A;NU # TELUGU DIGIT FOUR
-0C6B;NU # TELUGU DIGIT FIVE
-0C6C;NU # TELUGU DIGIT SIX
-0C6D;NU # TELUGU DIGIT SEVEN
-0C6E;NU # TELUGU DIGIT EIGHT
-0C6F;NU # TELUGU DIGIT NINE
-0C78;AL # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0C79;AL # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7A;AL # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7B;AL # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7C;AL # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0C7D;AL # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0C7E;AL # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0C7F;AL # TELUGU SIGN TUUMU
-0C82;CM # KANNADA SIGN ANUSVARA
-0C83;CM # KANNADA SIGN VISARGA
-0C85;AL # KANNADA LETTER A
-0C86;AL # KANNADA LETTER AA
-0C87;AL # KANNADA LETTER I
-0C88;AL # KANNADA LETTER II
-0C89;AL # KANNADA LETTER U
-0C8A;AL # KANNADA LETTER UU
-0C8B;AL # KANNADA LETTER VOCALIC R
-0C8C;AL # KANNADA LETTER VOCALIC L
-0C8E;AL # KANNADA LETTER E
-0C8F;AL # KANNADA LETTER EE
-0C90;AL # KANNADA LETTER AI
-0C92;AL # KANNADA LETTER O
-0C93;AL # KANNADA LETTER OO
-0C94;AL # KANNADA LETTER AU
-0C95;AL # KANNADA LETTER KA
-0C96;AL # KANNADA LETTER KHA
-0C97;AL # KANNADA LETTER GA
-0C98;AL # KANNADA LETTER GHA
-0C99;AL # KANNADA LETTER NGA
-0C9A;AL # KANNADA LETTER CA
-0C9B;AL # KANNADA LETTER CHA
-0C9C;AL # KANNADA LETTER JA
-0C9D;AL # KANNADA LETTER JHA
-0C9E;AL # KANNADA LETTER NYA
-0C9F;AL # KANNADA LETTER TTA
-0CA0;AL # KANNADA LETTER TTHA
-0CA1;AL # KANNADA LETTER DDA
-0CA2;AL # KANNADA LETTER DDHA
-0CA3;AL # KANNADA LETTER NNA
-0CA4;AL # KANNADA LETTER TA
-0CA5;AL # KANNADA LETTER THA
-0CA6;AL # KANNADA LETTER DA
-0CA7;AL # KANNADA LETTER DHA
-0CA8;AL # KANNADA LETTER NA
-0CAA;AL # KANNADA LETTER PA
-0CAB;AL # KANNADA LETTER PHA
-0CAC;AL # KANNADA LETTER BA
-0CAD;AL # KANNADA LETTER BHA
-0CAE;AL # KANNADA LETTER MA
-0CAF;AL # KANNADA LETTER YA
-0CB0;AL # KANNADA LETTER RA
-0CB1;AL # KANNADA LETTER RRA
-0CB2;AL # KANNADA LETTER LA
-0CB3;AL # KANNADA LETTER LLA
-0CB5;AL # KANNADA LETTER VA
-0CB6;AL # KANNADA LETTER SHA
-0CB7;AL # KANNADA LETTER SSA
-0CB8;AL # KANNADA LETTER SA
-0CB9;AL # KANNADA LETTER HA
-0CBC;CM # KANNADA SIGN NUKTA
-0CBD;AL # KANNADA SIGN AVAGRAHA
-0CBE;CM # KANNADA VOWEL SIGN AA
-0CBF;CM # KANNADA VOWEL SIGN I
-0CC0;CM # KANNADA VOWEL SIGN II
-0CC1;CM # KANNADA VOWEL SIGN U
-0CC2;CM # KANNADA VOWEL SIGN UU
-0CC3;CM # KANNADA VOWEL SIGN VOCALIC R
-0CC4;CM # KANNADA VOWEL SIGN VOCALIC RR
-0CC6;CM # KANNADA VOWEL SIGN E
-0CC7;CM # KANNADA VOWEL SIGN EE
-0CC8;CM # KANNADA VOWEL SIGN AI
-0CCA;CM # KANNADA VOWEL SIGN O
-0CCB;CM # KANNADA VOWEL SIGN OO
-0CCC;CM # KANNADA VOWEL SIGN AU
-0CCD;CM # KANNADA SIGN VIRAMA
-0CD5;CM # KANNADA LENGTH MARK
-0CD6;CM # KANNADA AI LENGTH MARK
-0CDE;AL # KANNADA LETTER FA
-0CE0;AL # KANNADA LETTER VOCALIC RR
-0CE1;AL # KANNADA LETTER VOCALIC LL
-0CE2;CM # KANNADA VOWEL SIGN VOCALIC L
-0CE3;CM # KANNADA VOWEL SIGN VOCALIC LL
-0CE6;NU # KANNADA DIGIT ZERO
-0CE7;NU # KANNADA DIGIT ONE
-0CE8;NU # KANNADA DIGIT TWO
-0CE9;NU # KANNADA DIGIT THREE
-0CEA;NU # KANNADA DIGIT FOUR
-0CEB;NU # KANNADA DIGIT FIVE
-0CEC;NU # KANNADA DIGIT SIX
-0CED;NU # KANNADA DIGIT SEVEN
-0CEE;NU # KANNADA DIGIT EIGHT
-0CEF;NU # KANNADA DIGIT NINE
-0CF1;AL # KANNADA SIGN JIHVAMULIYA
-0CF2;AL # KANNADA SIGN UPADHMANIYA
-0D02;CM # MALAYALAM SIGN ANUSVARA
-0D03;CM # MALAYALAM SIGN VISARGA
-0D05;AL # MALAYALAM LETTER A
-0D06;AL # MALAYALAM LETTER AA
-0D07;AL # MALAYALAM LETTER I
-0D08;AL # MALAYALAM LETTER II
-0D09;AL # MALAYALAM LETTER U
-0D0A;AL # MALAYALAM LETTER UU
-0D0B;AL # MALAYALAM LETTER VOCALIC R
-0D0C;AL # MALAYALAM LETTER VOCALIC L
-0D0E;AL # MALAYALAM LETTER E
-0D0F;AL # MALAYALAM LETTER EE
-0D10;AL # MALAYALAM LETTER AI
-0D12;AL # MALAYALAM LETTER O
-0D13;AL # MALAYALAM LETTER OO
-0D14;AL # MALAYALAM LETTER AU
-0D15;AL # MALAYALAM LETTER KA
-0D16;AL # MALAYALAM LETTER KHA
-0D17;AL # MALAYALAM LETTER GA
-0D18;AL # MALAYALAM LETTER GHA
-0D19;AL # MALAYALAM LETTER NGA
-0D1A;AL # MALAYALAM LETTER CA
-0D1B;AL # MALAYALAM LETTER CHA
-0D1C;AL # MALAYALAM LETTER JA
-0D1D;AL # MALAYALAM LETTER JHA
-0D1E;AL # MALAYALAM LETTER NYA
-0D1F;AL # MALAYALAM LETTER TTA
-0D20;AL # MALAYALAM LETTER TTHA
-0D21;AL # MALAYALAM LETTER DDA
-0D22;AL # MALAYALAM LETTER DDHA
-0D23;AL # MALAYALAM LETTER NNA
-0D24;AL # MALAYALAM LETTER TA
-0D25;AL # MALAYALAM LETTER THA
-0D26;AL # MALAYALAM LETTER DA
-0D27;AL # MALAYALAM LETTER DHA
-0D28;AL # MALAYALAM LETTER NA
-0D29;AL # MALAYALAM LETTER NNNA
-0D2A;AL # MALAYALAM LETTER PA
-0D2B;AL # MALAYALAM LETTER PHA
-0D2C;AL # MALAYALAM LETTER BA
-0D2D;AL # MALAYALAM LETTER BHA
-0D2E;AL # MALAYALAM LETTER MA
-0D2F;AL # MALAYALAM LETTER YA
-0D30;AL # MALAYALAM LETTER RA
-0D31;AL # MALAYALAM LETTER RRA
-0D32;AL # MALAYALAM LETTER LA
-0D33;AL # MALAYALAM LETTER LLA
-0D34;AL # MALAYALAM LETTER LLLA
-0D35;AL # MALAYALAM LETTER VA
-0D36;AL # MALAYALAM LETTER SHA
-0D37;AL # MALAYALAM LETTER SSA
-0D38;AL # MALAYALAM LETTER SA
-0D39;AL # MALAYALAM LETTER HA
-0D3A;AL # MALAYALAM LETTER TTTA
-0D3D;AL # MALAYALAM SIGN AVAGRAHA
-0D3E;CM # MALAYALAM VOWEL SIGN AA
-0D3F;CM # MALAYALAM VOWEL SIGN I
-0D40;CM # MALAYALAM VOWEL SIGN II
-0D41;CM # MALAYALAM VOWEL SIGN U
-0D42;CM # MALAYALAM VOWEL SIGN UU
-0D43;CM # MALAYALAM VOWEL SIGN VOCALIC R
-0D44;CM # MALAYALAM VOWEL SIGN VOCALIC RR
-0D46;CM # MALAYALAM VOWEL SIGN E
-0D47;CM # MALAYALAM VOWEL SIGN EE
-0D48;CM # MALAYALAM VOWEL SIGN AI
-0D4A;CM # MALAYALAM VOWEL SIGN O
-0D4B;CM # MALAYALAM VOWEL SIGN OO
-0D4C;CM # MALAYALAM VOWEL SIGN AU
-0D4D;CM # MALAYALAM SIGN VIRAMA
-0D4E;AL # MALAYALAM LETTER DOT REPH
-0D57;CM # MALAYALAM AU LENGTH MARK
-0D60;AL # MALAYALAM LETTER VOCALIC RR
-0D61;AL # MALAYALAM LETTER VOCALIC LL
-0D62;CM # MALAYALAM VOWEL SIGN VOCALIC L
-0D63;CM # MALAYALAM VOWEL SIGN VOCALIC LL
-0D66;NU # MALAYALAM DIGIT ZERO
-0D67;NU # MALAYALAM DIGIT ONE
-0D68;NU # MALAYALAM DIGIT TWO
-0D69;NU # MALAYALAM DIGIT THREE
-0D6A;NU # MALAYALAM DIGIT FOUR
-0D6B;NU # MALAYALAM DIGIT FIVE
-0D6C;NU # MALAYALAM DIGIT SIX
-0D6D;NU # MALAYALAM DIGIT SEVEN
-0D6E;NU # MALAYALAM DIGIT EIGHT
-0D6F;NU # MALAYALAM DIGIT NINE
-0D70;AL # MALAYALAM NUMBER TEN
-0D71;AL # MALAYALAM NUMBER ONE HUNDRED
-0D72;AL # MALAYALAM NUMBER ONE THOUSAND
-0D73;AL # MALAYALAM FRACTION ONE QUARTER
-0D74;AL # MALAYALAM FRACTION ONE HALF
-0D75;AL # MALAYALAM FRACTION THREE QUARTERS
-0D79;PO # MALAYALAM DATE MARK
-0D7A;AL # MALAYALAM LETTER CHILLU NN
-0D7B;AL # MALAYALAM LETTER CHILLU N
-0D7C;AL # MALAYALAM LETTER CHILLU RR
-0D7D;AL # MALAYALAM LETTER CHILLU L
-0D7E;AL # MALAYALAM LETTER CHILLU LL
-0D7F;AL # MALAYALAM LETTER CHILLU K
-0D82;CM # SINHALA SIGN ANUSVARAYA
-0D83;CM # SINHALA SIGN VISARGAYA
-0D85;AL # SINHALA LETTER AYANNA
-0D86;AL # SINHALA LETTER AAYANNA
-0D87;AL # SINHALA LETTER AEYANNA
-0D88;AL # SINHALA LETTER AEEYANNA
-0D89;AL # SINHALA LETTER IYANNA
-0D8A;AL # SINHALA LETTER IIYANNA
-0D8B;AL # SINHALA LETTER UYANNA
-0D8C;AL # SINHALA LETTER UUYANNA
-0D8D;AL # SINHALA LETTER IRUYANNA
-0D8E;AL # SINHALA LETTER IRUUYANNA
-0D8F;AL # SINHALA LETTER ILUYANNA
-0D90;AL # SINHALA LETTER ILUUYANNA
-0D91;AL # SINHALA LETTER EYANNA
-0D92;AL # SINHALA LETTER EEYANNA
-0D93;AL # SINHALA LETTER AIYANNA
-0D94;AL # SINHALA LETTER OYANNA
-0D95;AL # SINHALA LETTER OOYANNA
-0D96;AL # SINHALA LETTER AUYANNA
-0D9A;AL # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B;AL # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C;AL # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D;AL # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E;AL # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F;AL # SINHALA LETTER SANYAKA GAYANNA
-0DA0;AL # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1;AL # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2;AL # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3;AL # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4;AL # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5;AL # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6;AL # SINHALA LETTER SANYAKA JAYANNA
-0DA7;AL # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8;AL # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9;AL # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA;AL # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB;AL # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC;AL # SINHALA LETTER SANYAKA DDAYANNA
-0DAD;AL # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE;AL # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF;AL # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0;AL # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1;AL # SINHALA LETTER DANTAJA NAYANNA
-0DB3;AL # SINHALA LETTER SANYAKA DAYANNA
-0DB4;AL # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5;AL # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6;AL # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7;AL # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8;AL # SINHALA LETTER MAYANNA
-0DB9;AL # SINHALA LETTER AMBA BAYANNA
-0DBA;AL # SINHALA LETTER YAYANNA
-0DBB;AL # SINHALA LETTER RAYANNA
-0DBD;AL # SINHALA LETTER DANTAJA LAYANNA
-0DC0;AL # SINHALA LETTER VAYANNA
-0DC1;AL # SINHALA LETTER TAALUJA SAYANNA
-0DC2;AL # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3;AL # SINHALA LETTER DANTAJA SAYANNA
-0DC4;AL # SINHALA LETTER HAYANNA
-0DC5;AL # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6;AL # SINHALA LETTER FAYANNA
-0DCA;CM # SINHALA SIGN AL-LAKUNA
-0DCF;CM # SINHALA VOWEL SIGN AELA-PILLA
-0DD0;CM # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1;CM # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2;CM # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3;CM # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4;CM # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6;CM # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8;CM # SINHALA VOWEL SIGN GAETTA-PILLA
-0DD9;CM # SINHALA VOWEL SIGN KOMBUVA
-0DDA;CM # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB;CM # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC;CM # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD;CM # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE;CM # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DDF;CM # SINHALA VOWEL SIGN GAYANUKITTA
-0DF2;CM # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DF3;CM # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4;AL # SINHALA PUNCTUATION KUNDDALIYA
-0E01;SA # THAI CHARACTER KO KAI
-0E02;SA # THAI CHARACTER KHO KHAI
-0E03;SA # THAI CHARACTER KHO KHUAT
-0E04;SA # THAI CHARACTER KHO KHWAI
-0E05;SA # THAI CHARACTER KHO KHON
-0E06;SA # THAI CHARACTER KHO RAKHANG
-0E07;SA # THAI CHARACTER NGO NGU
-0E08;SA # THAI CHARACTER CHO CHAN
-0E09;SA # THAI CHARACTER CHO CHING
-0E0A;SA # THAI CHARACTER CHO CHANG
-0E0B;SA # THAI CHARACTER SO SO
-0E0C;SA # THAI CHARACTER CHO CHOE
-0E0D;SA # THAI CHARACTER YO YING
-0E0E;SA # THAI CHARACTER DO CHADA
-0E0F;SA # THAI CHARACTER TO PATAK
-0E10;SA # THAI CHARACTER THO THAN
-0E11;SA # THAI CHARACTER THO NANGMONTHO
-0E12;SA # THAI CHARACTER THO PHUTHAO
-0E13;SA # THAI CHARACTER NO NEN
-0E14;SA # THAI CHARACTER DO DEK
-0E15;SA # THAI CHARACTER TO TAO
-0E16;SA # THAI CHARACTER THO THUNG
-0E17;SA # THAI CHARACTER THO THAHAN
-0E18;SA # THAI CHARACTER THO THONG
-0E19;SA # THAI CHARACTER NO NU
-0E1A;SA # THAI CHARACTER BO BAIMAI
-0E1B;SA # THAI CHARACTER PO PLA
-0E1C;SA # THAI CHARACTER PHO PHUNG
-0E1D;SA # THAI CHARACTER FO FA
-0E1E;SA # THAI CHARACTER PHO PHAN
-0E1F;SA # THAI CHARACTER FO FAN
-0E20;SA # THAI CHARACTER PHO SAMPHAO
-0E21;SA # THAI CHARACTER MO MA
-0E22;SA # THAI CHARACTER YO YAK
-0E23;SA # THAI CHARACTER RO RUA
-0E24;SA # THAI CHARACTER RU
-0E25;SA # THAI CHARACTER LO LING
-0E26;SA # THAI CHARACTER LU
-0E27;SA # THAI CHARACTER WO WAEN
-0E28;SA # THAI CHARACTER SO SALA
-0E29;SA # THAI CHARACTER SO RUSI
-0E2A;SA # THAI CHARACTER SO SUA
-0E2B;SA # THAI CHARACTER HO HIP
-0E2C;SA # THAI CHARACTER LO CHULA
-0E2D;SA # THAI CHARACTER O ANG
-0E2E;SA # THAI CHARACTER HO NOKHUK
-0E2F;SA # THAI CHARACTER PAIYANNOI
-0E30;SA # THAI CHARACTER SARA A
-0E31;SA # THAI CHARACTER MAI HAN-AKAT
-0E32;SA # THAI CHARACTER SARA AA
-0E33;SA # THAI CHARACTER SARA AM
-0E34;SA # THAI CHARACTER SARA I
-0E35;SA # THAI CHARACTER SARA II
-0E36;SA # THAI CHARACTER SARA UE
-0E37;SA # THAI CHARACTER SARA UEE
-0E38;SA # THAI CHARACTER SARA U
-0E39;SA # THAI CHARACTER SARA UU
-0E3A;SA # THAI CHARACTER PHINTHU
-0E3F;PR # THAI CURRENCY SYMBOL BAHT
-0E40;SA # THAI CHARACTER SARA E
-0E41;SA # THAI CHARACTER SARA AE
-0E42;SA # THAI CHARACTER SARA O
-0E43;SA # THAI CHARACTER SARA AI MAIMUAN
-0E44;SA # THAI CHARACTER SARA AI MAIMALAI
-0E45;SA # THAI CHARACTER LAKKHANGYAO
-0E46;SA # THAI CHARACTER MAIYAMOK
-0E47;SA # THAI CHARACTER MAITAIKHU
-0E48;SA # THAI CHARACTER MAI EK
-0E49;SA # THAI CHARACTER MAI THO
-0E4A;SA # THAI CHARACTER MAI TRI
-0E4B;SA # THAI CHARACTER MAI CHATTAWA
-0E4C;SA # THAI CHARACTER THANTHAKHAT
-0E4D;SA # THAI CHARACTER NIKHAHIT
-0E4E;SA # THAI CHARACTER YAMAKKAN
-0E4F;AL # THAI CHARACTER FONGMAN
-0E50;NU # THAI DIGIT ZERO
-0E51;NU # THAI DIGIT ONE
-0E52;NU # THAI DIGIT TWO
-0E53;NU # THAI DIGIT THREE
-0E54;NU # THAI DIGIT FOUR
-0E55;NU # THAI DIGIT FIVE
-0E56;NU # THAI DIGIT SIX
-0E57;NU # THAI DIGIT SEVEN
-0E58;NU # THAI DIGIT EIGHT
-0E59;NU # THAI DIGIT NINE
-0E5A;BA # THAI CHARACTER ANGKHANKHU
-0E5B;BA # THAI CHARACTER KHOMUT
-0E81;SA # LAO LETTER KO
-0E82;SA # LAO LETTER KHO SUNG
-0E84;SA # LAO LETTER KHO TAM
-0E87;SA # LAO LETTER NGO
-0E88;SA # LAO LETTER CO
-0E8A;SA # LAO LETTER SO TAM
-0E8D;SA # LAO LETTER NYO
-0E94;SA # LAO LETTER DO
-0E95;SA # LAO LETTER TO
-0E96;SA # LAO LETTER THO SUNG
-0E97;SA # LAO LETTER THO TAM
-0E99;SA # LAO LETTER NO
-0E9A;SA # LAO LETTER BO
-0E9B;SA # LAO LETTER PO
-0E9C;SA # LAO LETTER PHO SUNG
-0E9D;SA # LAO LETTER FO TAM
-0E9E;SA # LAO LETTER PHO TAM
-0E9F;SA # LAO LETTER FO SUNG
-0EA1;SA # LAO LETTER MO
-0EA2;SA # LAO LETTER YO
-0EA3;SA # LAO LETTER LO LING
-0EA5;SA # LAO LETTER LO LOOT
-0EA7;SA # LAO LETTER WO
-0EAA;SA # LAO LETTER SO SUNG
-0EAB;SA # LAO LETTER HO SUNG
-0EAD;SA # LAO LETTER O
-0EAE;SA # LAO LETTER HO TAM
-0EAF;SA # LAO ELLIPSIS
-0EB0;SA # LAO VOWEL SIGN A
-0EB1;SA # LAO VOWEL SIGN MAI KAN
-0EB2;SA # LAO VOWEL SIGN AA
-0EB3;SA # LAO VOWEL SIGN AM
-0EB4;SA # LAO VOWEL SIGN I
-0EB5;SA # LAO VOWEL SIGN II
-0EB6;SA # LAO VOWEL SIGN Y
-0EB7;SA # LAO VOWEL SIGN YY
-0EB8;SA # LAO VOWEL SIGN U
-0EB9;SA # LAO VOWEL SIGN UU
-0EBB;SA # LAO VOWEL SIGN MAI KON
-0EBC;SA # LAO SEMIVOWEL SIGN LO
-0EBD;SA # LAO SEMIVOWEL SIGN NYO
-0EC0;SA # LAO VOWEL SIGN E
-0EC1;SA # LAO VOWEL SIGN EI
-0EC2;SA # LAO VOWEL SIGN O
-0EC3;SA # LAO VOWEL SIGN AY
-0EC4;SA # LAO VOWEL SIGN AI
-0EC6;SA # LAO KO LA
-0EC8;SA # LAO TONE MAI EK
-0EC9;SA # LAO TONE MAI THO
-0ECA;SA # LAO TONE MAI TI
-0ECB;SA # LAO TONE MAI CATAWA
-0ECC;SA # LAO CANCELLATION MARK
-0ECD;SA # LAO NIGGAHITA
-0ED0;NU # LAO DIGIT ZERO
-0ED1;NU # LAO DIGIT ONE
-0ED2;NU # LAO DIGIT TWO
-0ED3;NU # LAO DIGIT THREE
-0ED4;NU # LAO DIGIT FOUR
-0ED5;NU # LAO DIGIT FIVE
-0ED6;NU # LAO DIGIT SIX
-0ED7;NU # LAO DIGIT SEVEN
-0ED8;NU # LAO DIGIT EIGHT
-0ED9;NU # LAO DIGIT NINE
-0EDC;SA # LAO HO NO
-0EDD;SA # LAO HO MO
-0EDE;SA # LAO LETTER KHMU GO
-0EDF;SA # LAO LETTER KHMU NYO
-0F00;AL # TIBETAN SYLLABLE OM
-0F01;BB # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02;BB # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03;BB # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04;BB # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05;AL # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06;BB # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07;BB # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08;GL # TIBETAN MARK SBRUL SHAD
-0F09;BB # TIBETAN MARK BSKUR YIG MGO
-0F0A;BB # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B;BA # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C;GL # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D;EX # TIBETAN MARK SHAD
-0F0E;EX # TIBETAN MARK NYIS SHAD
-0F0F;EX # TIBETAN MARK TSHEG SHAD
-0F10;EX # TIBETAN MARK NYIS TSHEG SHAD
-0F11;EX # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12;GL # TIBETAN MARK RGYA GRAM SHAD
-0F13;AL # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14;EX # TIBETAN MARK GTER TSHEG
-0F15;AL # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16;AL # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17;AL # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18;CM # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
-0F19;CM # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A;AL # TIBETAN SIGN RDEL DKAR GCIG
-0F1B;AL # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C;AL # TIBETAN SIGN RDEL DKAR GSUM
-0F1D;AL # TIBETAN SIGN RDEL NAG GCIG
-0F1E;AL # TIBETAN SIGN RDEL NAG GNYIS
-0F1F;AL # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20;NU # TIBETAN DIGIT ZERO
-0F21;NU # TIBETAN DIGIT ONE
-0F22;NU # TIBETAN DIGIT TWO
-0F23;NU # TIBETAN DIGIT THREE
-0F24;NU # TIBETAN DIGIT FOUR
-0F25;NU # TIBETAN DIGIT FIVE
-0F26;NU # TIBETAN DIGIT SIX
-0F27;NU # TIBETAN DIGIT SEVEN
-0F28;NU # TIBETAN DIGIT EIGHT
-0F29;NU # TIBETAN DIGIT NINE
-0F2A;AL # TIBETAN DIGIT HALF ONE
-0F2B;AL # TIBETAN DIGIT HALF TWO
-0F2C;AL # TIBETAN DIGIT HALF THREE
-0F2D;AL # TIBETAN DIGIT HALF FOUR
-0F2E;AL # TIBETAN DIGIT HALF FIVE
-0F2F;AL # TIBETAN DIGIT HALF SIX
-0F30;AL # TIBETAN DIGIT HALF SEVEN
-0F31;AL # TIBETAN DIGIT HALF EIGHT
-0F32;AL # TIBETAN DIGIT HALF NINE
-0F33;AL # TIBETAN DIGIT HALF ZERO
-0F34;BA # TIBETAN MARK BSDUS RTAGS
-0F35;CM # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36;AL # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37;CM # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38;AL # TIBETAN MARK CHE MGO
-0F39;CM # TIBETAN MARK TSA -PHRU
-0F3A;OP # TIBETAN MARK GUG RTAGS GYON
-0F3B;CL # TIBETAN MARK GUG RTAGS GYAS
-0F3C;OP # TIBETAN MARK ANG KHANG GYON
-0F3D;CL # TIBETAN MARK ANG KHANG GYAS
-0F3E;CM # TIBETAN SIGN YAR TSHES
-0F3F;CM # TIBETAN SIGN MAR TSHES
-0F40;AL # TIBETAN LETTER KA
-0F41;AL # TIBETAN LETTER KHA
-0F42;AL # TIBETAN LETTER GA
-0F43;AL # TIBETAN LETTER GHA
-0F44;AL # TIBETAN LETTER NGA
-0F45;AL # TIBETAN LETTER CA
-0F46;AL # TIBETAN LETTER CHA
-0F47;AL # TIBETAN LETTER JA
-0F49;AL # TIBETAN LETTER NYA
-0F4A;AL # TIBETAN LETTER TTA
-0F4B;AL # TIBETAN LETTER TTHA
-0F4C;AL # TIBETAN LETTER DDA
-0F4D;AL # TIBETAN LETTER DDHA
-0F4E;AL # TIBETAN LETTER NNA
-0F4F;AL # TIBETAN LETTER TA
-0F50;AL # TIBETAN LETTER THA
-0F51;AL # TIBETAN LETTER DA
-0F52;AL # TIBETAN LETTER DHA
-0F53;AL # TIBETAN LETTER NA
-0F54;AL # TIBETAN LETTER PA
-0F55;AL # TIBETAN LETTER PHA
-0F56;AL # TIBETAN LETTER BA
-0F57;AL # TIBETAN LETTER BHA
-0F58;AL # TIBETAN LETTER MA
-0F59;AL # TIBETAN LETTER TSA
-0F5A;AL # TIBETAN LETTER TSHA
-0F5B;AL # TIBETAN LETTER DZA
-0F5C;AL # TIBETAN LETTER DZHA
-0F5D;AL # TIBETAN LETTER WA
-0F5E;AL # TIBETAN LETTER ZHA
-0F5F;AL # TIBETAN LETTER ZA
-0F60;AL # TIBETAN LETTER -A
-0F61;AL # TIBETAN LETTER YA
-0F62;AL # TIBETAN LETTER RA
-0F63;AL # TIBETAN LETTER LA
-0F64;AL # TIBETAN LETTER SHA
-0F65;AL # TIBETAN LETTER SSA
-0F66;AL # TIBETAN LETTER SA
-0F67;AL # TIBETAN LETTER HA
-0F68;AL # TIBETAN LETTER A
-0F69;AL # TIBETAN LETTER KSSA
-0F6A;AL # TIBETAN LETTER FIXED-FORM RA
-0F6B;AL # TIBETAN LETTER KKA
-0F6C;AL # TIBETAN LETTER RRA
-0F71;CM # TIBETAN VOWEL SIGN AA
-0F72;CM # TIBETAN VOWEL SIGN I
-0F73;CM # TIBETAN VOWEL SIGN II
-0F74;CM # TIBETAN VOWEL SIGN U
-0F75;CM # TIBETAN VOWEL SIGN UU
-0F76;CM # TIBETAN VOWEL SIGN VOCALIC R
-0F77;CM # TIBETAN VOWEL SIGN VOCALIC RR
-0F78;CM # TIBETAN VOWEL SIGN VOCALIC L
-0F79;CM # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A;CM # TIBETAN VOWEL SIGN E
-0F7B;CM # TIBETAN VOWEL SIGN EE
-0F7C;CM # TIBETAN VOWEL SIGN O
-0F7D;CM # TIBETAN VOWEL SIGN OO
-0F7E;CM # TIBETAN SIGN RJES SU NGA RO
-0F7F;BA # TIBETAN SIGN RNAM BCAD
-0F80;CM # TIBETAN VOWEL SIGN REVERSED I
-0F81;CM # TIBETAN VOWEL SIGN REVERSED II
-0F82;CM # TIBETAN SIGN NYI ZLA NAA DA
-0F83;CM # TIBETAN SIGN SNA LDAN
-0F84;CM # TIBETAN MARK HALANTA
-0F85;BA # TIBETAN MARK PALUTA
-0F86;CM # TIBETAN SIGN LCI RTAGS
-0F87;CM # TIBETAN SIGN YANG RTAGS
-0F88;AL # TIBETAN SIGN LCE TSA CAN
-0F89;AL # TIBETAN SIGN MCHU CAN
-0F8A;AL # TIBETAN SIGN GRU CAN RGYINGS
-0F8B;AL # TIBETAN SIGN GRU MED RGYINGS
-0F8C;AL # TIBETAN SIGN INVERTED MCHU CAN
-0F8D;CM # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F8E;CM # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8F;CM # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F90;CM # TIBETAN SUBJOINED LETTER KA
-0F91;CM # TIBETAN SUBJOINED LETTER KHA
-0F92;CM # TIBETAN SUBJOINED LETTER GA
-0F93;CM # TIBETAN SUBJOINED LETTER GHA
-0F94;CM # TIBETAN SUBJOINED LETTER NGA
-0F95;CM # TIBETAN SUBJOINED LETTER CA
-0F96;CM # TIBETAN SUBJOINED LETTER CHA
-0F97;CM # TIBETAN SUBJOINED LETTER JA
-0F99;CM # TIBETAN SUBJOINED LETTER NYA
-0F9A;CM # TIBETAN SUBJOINED LETTER TTA
-0F9B;CM # TIBETAN SUBJOINED LETTER TTHA
-0F9C;CM # TIBETAN SUBJOINED LETTER DDA
-0F9D;CM # TIBETAN SUBJOINED LETTER DDHA
-0F9E;CM # TIBETAN SUBJOINED LETTER NNA
-0F9F;CM # TIBETAN SUBJOINED LETTER TA
-0FA0;CM # TIBETAN SUBJOINED LETTER THA
-0FA1;CM # TIBETAN SUBJOINED LETTER DA
-0FA2;CM # TIBETAN SUBJOINED LETTER DHA
-0FA3;CM # TIBETAN SUBJOINED LETTER NA
-0FA4;CM # TIBETAN SUBJOINED LETTER PA
-0FA5;CM # TIBETAN SUBJOINED LETTER PHA
-0FA6;CM # TIBETAN SUBJOINED LETTER BA
-0FA7;CM # TIBETAN SUBJOINED LETTER BHA
-0FA8;CM # TIBETAN SUBJOINED LETTER MA
-0FA9;CM # TIBETAN SUBJOINED LETTER TSA
-0FAA;CM # TIBETAN SUBJOINED LETTER TSHA
-0FAB;CM # TIBETAN SUBJOINED LETTER DZA
-0FAC;CM # TIBETAN SUBJOINED LETTER DZHA
-0FAD;CM # TIBETAN SUBJOINED LETTER WA
-0FAE;CM # TIBETAN SUBJOINED LETTER ZHA
-0FAF;CM # TIBETAN SUBJOINED LETTER ZA
-0FB0;CM # TIBETAN SUBJOINED LETTER -A
-0FB1;CM # TIBETAN SUBJOINED LETTER YA
-0FB2;CM # TIBETAN SUBJOINED LETTER RA
-0FB3;CM # TIBETAN SUBJOINED LETTER LA
-0FB4;CM # TIBETAN SUBJOINED LETTER SHA
-0FB5;CM # TIBETAN SUBJOINED LETTER SSA
-0FB6;CM # TIBETAN SUBJOINED LETTER SA
-0FB7;CM # TIBETAN SUBJOINED LETTER HA
-0FB8;CM # TIBETAN SUBJOINED LETTER A
-0FB9;CM # TIBETAN SUBJOINED LETTER KSSA
-0FBA;CM # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0FBB;CM # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0FBC;CM # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE;BA # TIBETAN KU RU KHA
-0FBF;BA # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0;AL # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1;AL # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2;AL # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3;AL # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4;AL # TIBETAN SYMBOL DRIL BU
-0FC5;AL # TIBETAN SYMBOL RDO RJE
-0FC6;CM # TIBETAN SYMBOL PADMA GDAN
-0FC7;AL # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8;AL # TIBETAN SYMBOL PHUR PA
-0FC9;AL # TIBETAN SYMBOL NOR BU
-0FCA;AL # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB;AL # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC;AL # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE;AL # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF;AL # TIBETAN SIGN RDEL NAG GSUM
-0FD0;BB # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1;BB # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2;BA # TIBETAN MARK NYIS TSHEG
-0FD3;BB # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4;AL # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5;AL # RIGHT-FACING SVASTI SIGN
-0FD6;AL # LEFT-FACING SVASTI SIGN
-0FD7;AL # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8;AL # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9;GL # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA;GL # TIBETAN MARK TRAILING MCHAN RTAGS
-1000;SA # MYANMAR LETTER KA
-1001;SA # MYANMAR LETTER KHA
-1002;SA # MYANMAR LETTER GA
-1003;SA # MYANMAR LETTER GHA
-1004;SA # MYANMAR LETTER NGA
-1005;SA # MYANMAR LETTER CA
-1006;SA # MYANMAR LETTER CHA
-1007;SA # MYANMAR LETTER JA
-1008;SA # MYANMAR LETTER JHA
-1009;SA # MYANMAR LETTER NYA
-100A;SA # MYANMAR LETTER NNYA
-100B;SA # MYANMAR LETTER TTA
-100C;SA # MYANMAR LETTER TTHA
-100D;SA # MYANMAR LETTER DDA
-100E;SA # MYANMAR LETTER DDHA
-100F;SA # MYANMAR LETTER NNA
-1010;SA # MYANMAR LETTER TA
-1011;SA # MYANMAR LETTER THA
-1012;SA # MYANMAR LETTER DA
-1013;SA # MYANMAR LETTER DHA
-1014;SA # MYANMAR LETTER NA
-1015;SA # MYANMAR LETTER PA
-1016;SA # MYANMAR LETTER PHA
-1017;SA # MYANMAR LETTER BA
-1018;SA # MYANMAR LETTER BHA
-1019;SA # MYANMAR LETTER MA
-101A;SA # MYANMAR LETTER YA
-101B;SA # MYANMAR LETTER RA
-101C;SA # MYANMAR LETTER LA
-101D;SA # MYANMAR LETTER WA
-101E;SA # MYANMAR LETTER SA
-101F;SA # MYANMAR LETTER HA
-1020;SA # MYANMAR LETTER LLA
-1021;SA # MYANMAR LETTER A
-1022;SA # MYANMAR LETTER SHAN A
-1023;SA # MYANMAR LETTER I
-1024;SA # MYANMAR LETTER II
-1025;SA # MYANMAR LETTER U
-1026;SA # MYANMAR LETTER UU
-1027;SA # MYANMAR LETTER E
-1028;SA # MYANMAR LETTER MON E
-1029;SA # MYANMAR LETTER O
-102A;SA # MYANMAR LETTER AU
-102B;SA # MYANMAR VOWEL SIGN TALL AA
-102C;SA # MYANMAR VOWEL SIGN AA
-102D;SA # MYANMAR VOWEL SIGN I
-102E;SA # MYANMAR VOWEL SIGN II
-102F;SA # MYANMAR VOWEL SIGN U
-1030;SA # MYANMAR VOWEL SIGN UU
-1031;SA # MYANMAR VOWEL SIGN E
-1032;SA # MYANMAR VOWEL SIGN AI
-1033;SA # MYANMAR VOWEL SIGN MON II
-1034;SA # MYANMAR VOWEL SIGN MON O
-1035;SA # MYANMAR VOWEL SIGN E ABOVE
-1036;SA # MYANMAR SIGN ANUSVARA
-1037;SA # MYANMAR SIGN DOT BELOW
-1038;SA # MYANMAR SIGN VISARGA
-1039;SA # MYANMAR SIGN VIRAMA
-103A;SA # MYANMAR SIGN ASAT
-103B;SA # MYANMAR CONSONANT SIGN MEDIAL YA
-103C;SA # MYANMAR CONSONANT SIGN MEDIAL RA
-103D;SA # MYANMAR CONSONANT SIGN MEDIAL WA
-103E;SA # MYANMAR CONSONANT SIGN MEDIAL HA
-103F;SA # MYANMAR LETTER GREAT SA
-1040;NU # MYANMAR DIGIT ZERO
-1041;NU # MYANMAR DIGIT ONE
-1042;NU # MYANMAR DIGIT TWO
-1043;NU # MYANMAR DIGIT THREE
-1044;NU # MYANMAR DIGIT FOUR
-1045;NU # MYANMAR DIGIT FIVE
-1046;NU # MYANMAR DIGIT SIX
-1047;NU # MYANMAR DIGIT SEVEN
-1048;NU # MYANMAR DIGIT EIGHT
-1049;NU # MYANMAR DIGIT NINE
-104A;BA # MYANMAR SIGN LITTLE SECTION
-104B;BA # MYANMAR SIGN SECTION
-104C;AL # MYANMAR SYMBOL LOCATIVE
-104D;AL # MYANMAR SYMBOL COMPLETED
-104E;AL # MYANMAR SYMBOL AFOREMENTIONED
-104F;AL # MYANMAR SYMBOL GENITIVE
-1050;SA # MYANMAR LETTER SHA
-1051;SA # MYANMAR LETTER SSA
-1052;SA # MYANMAR LETTER VOCALIC R
-1053;SA # MYANMAR LETTER VOCALIC RR
-1054;SA # MYANMAR LETTER VOCALIC L
-1055;SA # MYANMAR LETTER VOCALIC LL
-1056;SA # MYANMAR VOWEL SIGN VOCALIC R
-1057;SA # MYANMAR VOWEL SIGN VOCALIC RR
-1058;SA # MYANMAR VOWEL SIGN VOCALIC L
-1059;SA # MYANMAR VOWEL SIGN VOCALIC LL
-105A;SA # MYANMAR LETTER MON NGA
-105B;SA # MYANMAR LETTER MON JHA
-105C;SA # MYANMAR LETTER MON BBA
-105D;SA # MYANMAR LETTER MON BBE
-105E;SA # MYANMAR CONSONANT SIGN MON MEDIAL NA
-105F;SA # MYANMAR CONSONANT SIGN MON MEDIAL MA
-1060;SA # MYANMAR CONSONANT SIGN MON MEDIAL LA
-1061;SA # MYANMAR LETTER SGAW KAREN SHA
-1062;SA # MYANMAR VOWEL SIGN SGAW KAREN EU
-1063;SA # MYANMAR TONE MARK SGAW KAREN HATHI
-1064;SA # MYANMAR TONE MARK SGAW KAREN KE PHO
-1065;SA # MYANMAR LETTER WESTERN PWO KAREN THA
-1066;SA # MYANMAR LETTER WESTERN PWO KAREN PWA
-1067;SA # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068;SA # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-1069;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D;SA # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-106E;SA # MYANMAR LETTER EASTERN PWO KAREN NNA
-106F;SA # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070;SA # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1071;SA # MYANMAR VOWEL SIGN GEBA KAREN I
-1072;SA # MYANMAR VOWEL SIGN KAYAH OE
-1073;SA # MYANMAR VOWEL SIGN KAYAH U
-1074;SA # MYANMAR VOWEL SIGN KAYAH EE
-1075;SA # MYANMAR LETTER SHAN KA
-1076;SA # MYANMAR LETTER SHAN KHA
-1077;SA # MYANMAR LETTER SHAN GA
-1078;SA # MYANMAR LETTER SHAN CA
-1079;SA # MYANMAR LETTER SHAN ZA
-107A;SA # MYANMAR LETTER SHAN NYA
-107B;SA # MYANMAR LETTER SHAN DA
-107C;SA # MYANMAR LETTER SHAN NA
-107D;SA # MYANMAR LETTER SHAN PHA
-107E;SA # MYANMAR LETTER SHAN FA
-107F;SA # MYANMAR LETTER SHAN BA
-1080;SA # MYANMAR LETTER SHAN THA
-1081;SA # MYANMAR LETTER SHAN HA
-1082;SA # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1083;SA # MYANMAR VOWEL SIGN SHAN AA
-1084;SA # MYANMAR VOWEL SIGN SHAN E
-1085;SA # MYANMAR VOWEL SIGN SHAN E ABOVE
-1086;SA # MYANMAR VOWEL SIGN SHAN FINAL Y
-1087;SA # MYANMAR SIGN SHAN TONE-2
-1088;SA # MYANMAR SIGN SHAN TONE-3
-1089;SA # MYANMAR SIGN SHAN TONE-5
-108A;SA # MYANMAR SIGN SHAN TONE-6
-108B;SA # MYANMAR SIGN SHAN COUNCIL TONE-2
-108C;SA # MYANMAR SIGN SHAN COUNCIL TONE-3
-108D;SA # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-108E;SA # MYANMAR LETTER RUMAI PALAUNG FA
-108F;SA # MYANMAR SIGN RUMAI PALAUNG TONE-5
-1090;NU # MYANMAR SHAN DIGIT ZERO
-1091;NU # MYANMAR SHAN DIGIT ONE
-1092;NU # MYANMAR SHAN DIGIT TWO
-1093;NU # MYANMAR SHAN DIGIT THREE
-1094;NU # MYANMAR SHAN DIGIT FOUR
-1095;NU # MYANMAR SHAN DIGIT FIVE
-1096;NU # MYANMAR SHAN DIGIT SIX
-1097;NU # MYANMAR SHAN DIGIT SEVEN
-1098;NU # MYANMAR SHAN DIGIT EIGHT
-1099;NU # MYANMAR SHAN DIGIT NINE
-109A;SA # MYANMAR SIGN KHAMTI TONE-1
-109B;SA # MYANMAR SIGN KHAMTI TONE-3
-109C;SA # MYANMAR VOWEL SIGN AITON A
-109D;SA # MYANMAR VOWEL SIGN AITON AI
-109E;SA # MYANMAR SYMBOL SHAN ONE
-109F;SA # MYANMAR SYMBOL SHAN EXCLAMATION
-10A0;AL # GEORGIAN CAPITAL LETTER AN
-10A1;AL # GEORGIAN CAPITAL LETTER BAN
-10A2;AL # GEORGIAN CAPITAL LETTER GAN
-10A3;AL # GEORGIAN CAPITAL LETTER DON
-10A4;AL # GEORGIAN CAPITAL LETTER EN
-10A5;AL # GEORGIAN CAPITAL LETTER VIN
-10A6;AL # GEORGIAN CAPITAL LETTER ZEN
-10A7;AL # GEORGIAN CAPITAL LETTER TAN
-10A8;AL # GEORGIAN CAPITAL LETTER IN
-10A9;AL # GEORGIAN CAPITAL LETTER KAN
-10AA;AL # GEORGIAN CAPITAL LETTER LAS
-10AB;AL # GEORGIAN CAPITAL LETTER MAN
-10AC;AL # GEORGIAN CAPITAL LETTER NAR
-10AD;AL # GEORGIAN CAPITAL LETTER ON
-10AE;AL # GEORGIAN CAPITAL LETTER PAR
-10AF;AL # GEORGIAN CAPITAL LETTER ZHAR
-10B0;AL # GEORGIAN CAPITAL LETTER RAE
-10B1;AL # GEORGIAN CAPITAL LETTER SAN
-10B2;AL # GEORGIAN CAPITAL LETTER TAR
-10B3;AL # GEORGIAN CAPITAL LETTER UN
-10B4;AL # GEORGIAN CAPITAL LETTER PHAR
-10B5;AL # GEORGIAN CAPITAL LETTER KHAR
-10B6;AL # GEORGIAN CAPITAL LETTER GHAN
-10B7;AL # GEORGIAN CAPITAL LETTER QAR
-10B8;AL # GEORGIAN CAPITAL LETTER SHIN
-10B9;AL # GEORGIAN CAPITAL LETTER CHIN
-10BA;AL # GEORGIAN CAPITAL LETTER CAN
-10BB;AL # GEORGIAN CAPITAL LETTER JIL
-10BC;AL # GEORGIAN CAPITAL LETTER CIL
-10BD;AL # GEORGIAN CAPITAL LETTER CHAR
-10BE;AL # GEORGIAN CAPITAL LETTER XAN
-10BF;AL # GEORGIAN CAPITAL LETTER JHAN
-10C0;AL # GEORGIAN CAPITAL LETTER HAE
-10C1;AL # GEORGIAN CAPITAL LETTER HE
-10C2;AL # GEORGIAN CAPITAL LETTER HIE
-10C3;AL # GEORGIAN CAPITAL LETTER WE
-10C4;AL # GEORGIAN CAPITAL LETTER HAR
-10C5;AL # GEORGIAN CAPITAL LETTER HOE
-10C7;AL # GEORGIAN CAPITAL LETTER YN
-10CD;AL # GEORGIAN CAPITAL LETTER AEN
-10D0;AL # GEORGIAN LETTER AN
-10D1;AL # GEORGIAN LETTER BAN
-10D2;AL # GEORGIAN LETTER GAN
-10D3;AL # GEORGIAN LETTER DON
-10D4;AL # GEORGIAN LETTER EN
-10D5;AL # GEORGIAN LETTER VIN
-10D6;AL # GEORGIAN LETTER ZEN
-10D7;AL # GEORGIAN LETTER TAN
-10D8;AL # GEORGIAN LETTER IN
-10D9;AL # GEORGIAN LETTER KAN
-10DA;AL # GEORGIAN LETTER LAS
-10DB;AL # GEORGIAN LETTER MAN
-10DC;AL # GEORGIAN LETTER NAR
-10DD;AL # GEORGIAN LETTER ON
-10DE;AL # GEORGIAN LETTER PAR
-10DF;AL # GEORGIAN LETTER ZHAR
-10E0;AL # GEORGIAN LETTER RAE
-10E1;AL # GEORGIAN LETTER SAN
-10E2;AL # GEORGIAN LETTER TAR
-10E3;AL # GEORGIAN LETTER UN
-10E4;AL # GEORGIAN LETTER PHAR
-10E5;AL # GEORGIAN LETTER KHAR
-10E6;AL # GEORGIAN LETTER GHAN
-10E7;AL # GEORGIAN LETTER QAR
-10E8;AL # GEORGIAN LETTER SHIN
-10E9;AL # GEORGIAN LETTER CHIN
-10EA;AL # GEORGIAN LETTER CAN
-10EB;AL # GEORGIAN LETTER JIL
-10EC;AL # GEORGIAN LETTER CIL
-10ED;AL # GEORGIAN LETTER CHAR
-10EE;AL # GEORGIAN LETTER XAN
-10EF;AL # GEORGIAN LETTER JHAN
-10F0;AL # GEORGIAN LETTER HAE
-10F1;AL # GEORGIAN LETTER HE
-10F2;AL # GEORGIAN LETTER HIE
-10F3;AL # GEORGIAN LETTER WE
-10F4;AL # GEORGIAN LETTER HAR
-10F5;AL # GEORGIAN LETTER HOE
-10F6;AL # GEORGIAN LETTER FI
-10F7;AL # GEORGIAN LETTER YN
-10F8;AL # GEORGIAN LETTER ELIFI
-10F9;AL # GEORGIAN LETTER TURNED GAN
-10FA;AL # GEORGIAN LETTER AIN
-10FB;AL # GEORGIAN PARAGRAPH SEPARATOR
-10FC;AL # MODIFIER LETTER GEORGIAN NAR
-10FD;AL # GEORGIAN LETTER AEN
-10FE;AL # GEORGIAN LETTER HARD SIGN
-10FF;AL # GEORGIAN LETTER LABIAL SIGN
-1100;JL # HANGUL CHOSEONG KIYEOK
-1101;JL # HANGUL CHOSEONG SSANGKIYEOK
-1102;JL # HANGUL CHOSEONG NIEUN
-1103;JL # HANGUL CHOSEONG TIKEUT
-1104;JL # HANGUL CHOSEONG SSANGTIKEUT
-1105;JL # HANGUL CHOSEONG RIEUL
-1106;JL # HANGUL CHOSEONG MIEUM
-1107;JL # HANGUL CHOSEONG PIEUP
-1108;JL # HANGUL CHOSEONG SSANGPIEUP
-1109;JL # HANGUL CHOSEONG SIOS
-110A;JL # HANGUL CHOSEONG SSANGSIOS
-110B;JL # HANGUL CHOSEONG IEUNG
-110C;JL # HANGUL CHOSEONG CIEUC
-110D;JL # HANGUL CHOSEONG SSANGCIEUC
-110E;JL # HANGUL CHOSEONG CHIEUCH
-110F;JL # HANGUL CHOSEONG KHIEUKH
-1110;JL # HANGUL CHOSEONG THIEUTH
-1111;JL # HANGUL CHOSEONG PHIEUPH
-1112;JL # HANGUL CHOSEONG HIEUH
-1113;JL # HANGUL CHOSEONG NIEUN-KIYEOK
-1114;JL # HANGUL CHOSEONG SSANGNIEUN
-1115;JL # HANGUL CHOSEONG NIEUN-TIKEUT
-1116;JL # HANGUL CHOSEONG NIEUN-PIEUP
-1117;JL # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118;JL # HANGUL CHOSEONG RIEUL-NIEUN
-1119;JL # HANGUL CHOSEONG SSANGRIEUL
-111A;JL # HANGUL CHOSEONG RIEUL-HIEUH
-111B;JL # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C;JL # HANGUL CHOSEONG MIEUM-PIEUP
-111D;JL # HANGUL CHOSEONG KAPYEOUNMIEUM
-111E;JL # HANGUL CHOSEONG PIEUP-KIYEOK
-111F;JL # HANGUL CHOSEONG PIEUP-NIEUN
-1120;JL # HANGUL CHOSEONG PIEUP-TIKEUT
-1121;JL # HANGUL CHOSEONG PIEUP-SIOS
-1122;JL # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-1123;JL # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-1124;JL # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125;JL # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126;JL # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127;JL # HANGUL CHOSEONG PIEUP-CIEUC
-1128;JL # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129;JL # HANGUL CHOSEONG PIEUP-THIEUTH
-112A;JL # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B;JL # HANGUL CHOSEONG KAPYEOUNPIEUP
-112C;JL # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-112D;JL # HANGUL CHOSEONG SIOS-KIYEOK
-112E;JL # HANGUL CHOSEONG SIOS-NIEUN
-112F;JL # HANGUL CHOSEONG SIOS-TIKEUT
-1130;JL # HANGUL CHOSEONG SIOS-RIEUL
-1131;JL # HANGUL CHOSEONG SIOS-MIEUM
-1132;JL # HANGUL CHOSEONG SIOS-PIEUP
-1133;JL # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134;JL # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135;JL # HANGUL CHOSEONG SIOS-IEUNG
-1136;JL # HANGUL CHOSEONG SIOS-CIEUC
-1137;JL # HANGUL CHOSEONG SIOS-CHIEUCH
-1138;JL # HANGUL CHOSEONG SIOS-KHIEUKH
-1139;JL # HANGUL CHOSEONG SIOS-THIEUTH
-113A;JL # HANGUL CHOSEONG SIOS-PHIEUPH
-113B;JL # HANGUL CHOSEONG SIOS-HIEUH
-113C;JL # HANGUL CHOSEONG CHITUEUMSIOS
-113D;JL # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E;JL # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F;JL # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140;JL # HANGUL CHOSEONG PANSIOS
-1141;JL # HANGUL CHOSEONG IEUNG-KIYEOK
-1142;JL # HANGUL CHOSEONG IEUNG-TIKEUT
-1143;JL # HANGUL CHOSEONG IEUNG-MIEUM
-1144;JL # HANGUL CHOSEONG IEUNG-PIEUP
-1145;JL # HANGUL CHOSEONG IEUNG-SIOS
-1146;JL # HANGUL CHOSEONG IEUNG-PANSIOS
-1147;JL # HANGUL CHOSEONG SSANGIEUNG
-1148;JL # HANGUL CHOSEONG IEUNG-CIEUC
-1149;JL # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A;JL # HANGUL CHOSEONG IEUNG-THIEUTH
-114B;JL # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C;JL # HANGUL CHOSEONG YESIEUNG
-114D;JL # HANGUL CHOSEONG CIEUC-IEUNG
-114E;JL # HANGUL CHOSEONG CHITUEUMCIEUC
-114F;JL # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150;JL # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151;JL # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152;JL # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153;JL # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154;JL # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155;JL # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156;JL # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157;JL # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-1158;JL # HANGUL CHOSEONG SSANGHIEUH
-1159;JL # HANGUL CHOSEONG YEORINHIEUH
-115A;JL # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B;JL # HANGUL CHOSEONG NIEUN-SIOS
-115C;JL # HANGUL CHOSEONG NIEUN-CIEUC
-115D;JL # HANGUL CHOSEONG NIEUN-HIEUH
-115E;JL # HANGUL CHOSEONG TIKEUT-RIEUL
-115F;JL # HANGUL CHOSEONG FILLER
-1160;JV # HANGUL JUNGSEONG FILLER
-1161;JV # HANGUL JUNGSEONG A
-1162;JV # HANGUL JUNGSEONG AE
-1163;JV # HANGUL JUNGSEONG YA
-1164;JV # HANGUL JUNGSEONG YAE
-1165;JV # HANGUL JUNGSEONG EO
-1166;JV # HANGUL JUNGSEONG E
-1167;JV # HANGUL JUNGSEONG YEO
-1168;JV # HANGUL JUNGSEONG YE
-1169;JV # HANGUL JUNGSEONG O
-116A;JV # HANGUL JUNGSEONG WA
-116B;JV # HANGUL JUNGSEONG WAE
-116C;JV # HANGUL JUNGSEONG OE
-116D;JV # HANGUL JUNGSEONG YO
-116E;JV # HANGUL JUNGSEONG U
-116F;JV # HANGUL JUNGSEONG WEO
-1170;JV # HANGUL JUNGSEONG WE
-1171;JV # HANGUL JUNGSEONG WI
-1172;JV # HANGUL JUNGSEONG YU
-1173;JV # HANGUL JUNGSEONG EU
-1174;JV # HANGUL JUNGSEONG YI
-1175;JV # HANGUL JUNGSEONG I
-1176;JV # HANGUL JUNGSEONG A-O
-1177;JV # HANGUL JUNGSEONG A-U
-1178;JV # HANGUL JUNGSEONG YA-O
-1179;JV # HANGUL JUNGSEONG YA-YO
-117A;JV # HANGUL JUNGSEONG EO-O
-117B;JV # HANGUL JUNGSEONG EO-U
-117C;JV # HANGUL JUNGSEONG EO-EU
-117D;JV # HANGUL JUNGSEONG YEO-O
-117E;JV # HANGUL JUNGSEONG YEO-U
-117F;JV # HANGUL JUNGSEONG O-EO
-1180;JV # HANGUL JUNGSEONG O-E
-1181;JV # HANGUL JUNGSEONG O-YE
-1182;JV # HANGUL JUNGSEONG O-O
-1183;JV # HANGUL JUNGSEONG O-U
-1184;JV # HANGUL JUNGSEONG YO-YA
-1185;JV # HANGUL JUNGSEONG YO-YAE
-1186;JV # HANGUL JUNGSEONG YO-YEO
-1187;JV # HANGUL JUNGSEONG YO-O
-1188;JV # HANGUL JUNGSEONG YO-I
-1189;JV # HANGUL JUNGSEONG U-A
-118A;JV # HANGUL JUNGSEONG U-AE
-118B;JV # HANGUL JUNGSEONG U-EO-EU
-118C;JV # HANGUL JUNGSEONG U-YE
-118D;JV # HANGUL JUNGSEONG U-U
-118E;JV # HANGUL JUNGSEONG YU-A
-118F;JV # HANGUL JUNGSEONG YU-EO
-1190;JV # HANGUL JUNGSEONG YU-E
-1191;JV # HANGUL JUNGSEONG YU-YEO
-1192;JV # HANGUL JUNGSEONG YU-YE
-1193;JV # HANGUL JUNGSEONG YU-U
-1194;JV # HANGUL JUNGSEONG YU-I
-1195;JV # HANGUL JUNGSEONG EU-U
-1196;JV # HANGUL JUNGSEONG EU-EU
-1197;JV # HANGUL JUNGSEONG YI-U
-1198;JV # HANGUL JUNGSEONG I-A
-1199;JV # HANGUL JUNGSEONG I-YA
-119A;JV # HANGUL JUNGSEONG I-O
-119B;JV # HANGUL JUNGSEONG I-U
-119C;JV # HANGUL JUNGSEONG I-EU
-119D;JV # HANGUL JUNGSEONG I-ARAEA
-119E;JV # HANGUL JUNGSEONG ARAEA
-119F;JV # HANGUL JUNGSEONG ARAEA-EO
-11A0;JV # HANGUL JUNGSEONG ARAEA-U
-11A1;JV # HANGUL JUNGSEONG ARAEA-I
-11A2;JV # HANGUL JUNGSEONG SSANGARAEA
-11A3;JV # HANGUL JUNGSEONG A-EU
-11A4;JV # HANGUL JUNGSEONG YA-U
-11A5;JV # HANGUL JUNGSEONG YEO-YA
-11A6;JV # HANGUL JUNGSEONG O-YA
-11A7;JV # HANGUL JUNGSEONG O-YAE
-11A8;JT # HANGUL JONGSEONG KIYEOK
-11A9;JT # HANGUL JONGSEONG SSANGKIYEOK
-11AA;JT # HANGUL JONGSEONG KIYEOK-SIOS
-11AB;JT # HANGUL JONGSEONG NIEUN
-11AC;JT # HANGUL JONGSEONG NIEUN-CIEUC
-11AD;JT # HANGUL JONGSEONG NIEUN-HIEUH
-11AE;JT # HANGUL JONGSEONG TIKEUT
-11AF;JT # HANGUL JONGSEONG RIEUL
-11B0;JT # HANGUL JONGSEONG RIEUL-KIYEOK
-11B1;JT # HANGUL JONGSEONG RIEUL-MIEUM
-11B2;JT # HANGUL JONGSEONG RIEUL-PIEUP
-11B3;JT # HANGUL JONGSEONG RIEUL-SIOS
-11B4;JT # HANGUL JONGSEONG RIEUL-THIEUTH
-11B5;JT # HANGUL JONGSEONG RIEUL-PHIEUPH
-11B6;JT # HANGUL JONGSEONG RIEUL-HIEUH
-11B7;JT # HANGUL JONGSEONG MIEUM
-11B8;JT # HANGUL JONGSEONG PIEUP
-11B9;JT # HANGUL JONGSEONG PIEUP-SIOS
-11BA;JT # HANGUL JONGSEONG SIOS
-11BB;JT # HANGUL JONGSEONG SSANGSIOS
-11BC;JT # HANGUL JONGSEONG IEUNG
-11BD;JT # HANGUL JONGSEONG CIEUC
-11BE;JT # HANGUL JONGSEONG CHIEUCH
-11BF;JT # HANGUL JONGSEONG KHIEUKH
-11C0;JT # HANGUL JONGSEONG THIEUTH
-11C1;JT # HANGUL JONGSEONG PHIEUPH
-11C2;JT # HANGUL JONGSEONG HIEUH
-11C3;JT # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4;JT # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5;JT # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6;JT # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7;JT # HANGUL JONGSEONG NIEUN-SIOS
-11C8;JT # HANGUL JONGSEONG NIEUN-PANSIOS
-11C9;JT # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA;JT # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB;JT # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC;JT # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-11CD;JT # HANGUL JONGSEONG RIEUL-NIEUN
-11CE;JT # HANGUL JONGSEONG RIEUL-TIKEUT
-11CF;JT # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0;JT # HANGUL JONGSEONG SSANGRIEUL
-11D1;JT # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2;JT # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3;JT # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-11D4;JT # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5;JT # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6;JT # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7;JT # HANGUL JONGSEONG RIEUL-PANSIOS
-11D8;JT # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9;JT # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-11DA;JT # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB;JT # HANGUL JONGSEONG MIEUM-RIEUL
-11DC;JT # HANGUL JONGSEONG MIEUM-PIEUP
-11DD;JT # HANGUL JONGSEONG MIEUM-SIOS
-11DE;JT # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF;JT # HANGUL JONGSEONG MIEUM-PANSIOS
-11E0;JT # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1;JT # HANGUL JONGSEONG MIEUM-HIEUH
-11E2;JT # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3;JT # HANGUL JONGSEONG PIEUP-RIEUL
-11E4;JT # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5;JT # HANGUL JONGSEONG PIEUP-HIEUH
-11E6;JT # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7;JT # HANGUL JONGSEONG SIOS-KIYEOK
-11E8;JT # HANGUL JONGSEONG SIOS-TIKEUT
-11E9;JT # HANGUL JONGSEONG SIOS-RIEUL
-11EA;JT # HANGUL JONGSEONG SIOS-PIEUP
-11EB;JT # HANGUL JONGSEONG PANSIOS
-11EC;JT # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED;JT # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE;JT # HANGUL JONGSEONG SSANGIEUNG
-11EF;JT # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0;JT # HANGUL JONGSEONG YESIEUNG
-11F1;JT # HANGUL JONGSEONG YESIEUNG-SIOS
-11F2;JT # HANGUL JONGSEONG YESIEUNG-PANSIOS
-11F3;JT # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4;JT # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5;JT # HANGUL JONGSEONG HIEUH-NIEUN
-11F6;JT # HANGUL JONGSEONG HIEUH-RIEUL
-11F7;JT # HANGUL JONGSEONG HIEUH-MIEUM
-11F8;JT # HANGUL JONGSEONG HIEUH-PIEUP
-11F9;JT # HANGUL JONGSEONG YEORINHIEUH
-11FA;JT # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB;JT # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC;JT # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD;JT # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE;JT # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF;JT # HANGUL JONGSEONG SSANGNIEUN
-1200;AL # ETHIOPIC SYLLABLE HA
-1201;AL # ETHIOPIC SYLLABLE HU
-1202;AL # ETHIOPIC SYLLABLE HI
-1203;AL # ETHIOPIC SYLLABLE HAA
-1204;AL # ETHIOPIC SYLLABLE HEE
-1205;AL # ETHIOPIC SYLLABLE HE
-1206;AL # ETHIOPIC SYLLABLE HO
-1207;AL # ETHIOPIC SYLLABLE HOA
-1208;AL # ETHIOPIC SYLLABLE LA
-1209;AL # ETHIOPIC SYLLABLE LU
-120A;AL # ETHIOPIC SYLLABLE LI
-120B;AL # ETHIOPIC SYLLABLE LAA
-120C;AL # ETHIOPIC SYLLABLE LEE
-120D;AL # ETHIOPIC SYLLABLE LE
-120E;AL # ETHIOPIC SYLLABLE LO
-120F;AL # ETHIOPIC SYLLABLE LWA
-1210;AL # ETHIOPIC SYLLABLE HHA
-1211;AL # ETHIOPIC SYLLABLE HHU
-1212;AL # ETHIOPIC SYLLABLE HHI
-1213;AL # ETHIOPIC SYLLABLE HHAA
-1214;AL # ETHIOPIC SYLLABLE HHEE
-1215;AL # ETHIOPIC SYLLABLE HHE
-1216;AL # ETHIOPIC SYLLABLE HHO
-1217;AL # ETHIOPIC SYLLABLE HHWA
-1218;AL # ETHIOPIC SYLLABLE MA
-1219;AL # ETHIOPIC SYLLABLE MU
-121A;AL # ETHIOPIC SYLLABLE MI
-121B;AL # ETHIOPIC SYLLABLE MAA
-121C;AL # ETHIOPIC SYLLABLE MEE
-121D;AL # ETHIOPIC SYLLABLE ME
-121E;AL # ETHIOPIC SYLLABLE MO
-121F;AL # ETHIOPIC SYLLABLE MWA
-1220;AL # ETHIOPIC SYLLABLE SZA
-1221;AL # ETHIOPIC SYLLABLE SZU
-1222;AL # ETHIOPIC SYLLABLE SZI
-1223;AL # ETHIOPIC SYLLABLE SZAA
-1224;AL # ETHIOPIC SYLLABLE SZEE
-1225;AL # ETHIOPIC SYLLABLE SZE
-1226;AL # ETHIOPIC SYLLABLE SZO
-1227;AL # ETHIOPIC SYLLABLE SZWA
-1228;AL # ETHIOPIC SYLLABLE RA
-1229;AL # ETHIOPIC SYLLABLE RU
-122A;AL # ETHIOPIC SYLLABLE RI
-122B;AL # ETHIOPIC SYLLABLE RAA
-122C;AL # ETHIOPIC SYLLABLE REE
-122D;AL # ETHIOPIC SYLLABLE RE
-122E;AL # ETHIOPIC SYLLABLE RO
-122F;AL # ETHIOPIC SYLLABLE RWA
-1230;AL # ETHIOPIC SYLLABLE SA
-1231;AL # ETHIOPIC SYLLABLE SU
-1232;AL # ETHIOPIC SYLLABLE SI
-1233;AL # ETHIOPIC SYLLABLE SAA
-1234;AL # ETHIOPIC SYLLABLE SEE
-1235;AL # ETHIOPIC SYLLABLE SE
-1236;AL # ETHIOPIC SYLLABLE SO
-1237;AL # ETHIOPIC SYLLABLE SWA
-1238;AL # ETHIOPIC SYLLABLE SHA
-1239;AL # ETHIOPIC SYLLABLE SHU
-123A;AL # ETHIOPIC SYLLABLE SHI
-123B;AL # ETHIOPIC SYLLABLE SHAA
-123C;AL # ETHIOPIC SYLLABLE SHEE
-123D;AL # ETHIOPIC SYLLABLE SHE
-123E;AL # ETHIOPIC SYLLABLE SHO
-123F;AL # ETHIOPIC SYLLABLE SHWA
-1240;AL # ETHIOPIC SYLLABLE QA
-1241;AL # ETHIOPIC SYLLABLE QU
-1242;AL # ETHIOPIC SYLLABLE QI
-1243;AL # ETHIOPIC SYLLABLE QAA
-1244;AL # ETHIOPIC SYLLABLE QEE
-1245;AL # ETHIOPIC SYLLABLE QE
-1246;AL # ETHIOPIC SYLLABLE QO
-1247;AL # ETHIOPIC SYLLABLE QOA
-1248;AL # ETHIOPIC SYLLABLE QWA
-124A;AL # ETHIOPIC SYLLABLE QWI
-124B;AL # ETHIOPIC SYLLABLE QWAA
-124C;AL # ETHIOPIC SYLLABLE QWEE
-124D;AL # ETHIOPIC SYLLABLE QWE
-1250;AL # ETHIOPIC SYLLABLE QHA
-1251;AL # ETHIOPIC SYLLABLE QHU
-1252;AL # ETHIOPIC SYLLABLE QHI
-1253;AL # ETHIOPIC SYLLABLE QHAA
-1254;AL # ETHIOPIC SYLLABLE QHEE
-1255;AL # ETHIOPIC SYLLABLE QHE
-1256;AL # ETHIOPIC SYLLABLE QHO
-1258;AL # ETHIOPIC SYLLABLE QHWA
-125A;AL # ETHIOPIC SYLLABLE QHWI
-125B;AL # ETHIOPIC SYLLABLE QHWAA
-125C;AL # ETHIOPIC SYLLABLE QHWEE
-125D;AL # ETHIOPIC SYLLABLE QHWE
-1260;AL # ETHIOPIC SYLLABLE BA
-1261;AL # ETHIOPIC SYLLABLE BU
-1262;AL # ETHIOPIC SYLLABLE BI
-1263;AL # ETHIOPIC SYLLABLE BAA
-1264;AL # ETHIOPIC SYLLABLE BEE
-1265;AL # ETHIOPIC SYLLABLE BE
-1266;AL # ETHIOPIC SYLLABLE BO
-1267;AL # ETHIOPIC SYLLABLE BWA
-1268;AL # ETHIOPIC SYLLABLE VA
-1269;AL # ETHIOPIC SYLLABLE VU
-126A;AL # ETHIOPIC SYLLABLE VI
-126B;AL # ETHIOPIC SYLLABLE VAA
-126C;AL # ETHIOPIC SYLLABLE VEE
-126D;AL # ETHIOPIC SYLLABLE VE
-126E;AL # ETHIOPIC SYLLABLE VO
-126F;AL # ETHIOPIC SYLLABLE VWA
-1270;AL # ETHIOPIC SYLLABLE TA
-1271;AL # ETHIOPIC SYLLABLE TU
-1272;AL # ETHIOPIC SYLLABLE TI
-1273;AL # ETHIOPIC SYLLABLE TAA
-1274;AL # ETHIOPIC SYLLABLE TEE
-1275;AL # ETHIOPIC SYLLABLE TE
-1276;AL # ETHIOPIC SYLLABLE TO
-1277;AL # ETHIOPIC SYLLABLE TWA
-1278;AL # ETHIOPIC SYLLABLE CA
-1279;AL # ETHIOPIC SYLLABLE CU
-127A;AL # ETHIOPIC SYLLABLE CI
-127B;AL # ETHIOPIC SYLLABLE CAA
-127C;AL # ETHIOPIC SYLLABLE CEE
-127D;AL # ETHIOPIC SYLLABLE CE
-127E;AL # ETHIOPIC SYLLABLE CO
-127F;AL # ETHIOPIC SYLLABLE CWA
-1280;AL # ETHIOPIC SYLLABLE XA
-1281;AL # ETHIOPIC SYLLABLE XU
-1282;AL # ETHIOPIC SYLLABLE XI
-1283;AL # ETHIOPIC SYLLABLE XAA
-1284;AL # ETHIOPIC SYLLABLE XEE
-1285;AL # ETHIOPIC SYLLABLE XE
-1286;AL # ETHIOPIC SYLLABLE XO
-1287;AL # ETHIOPIC SYLLABLE XOA
-1288;AL # ETHIOPIC SYLLABLE XWA
-128A;AL # ETHIOPIC SYLLABLE XWI
-128B;AL # ETHIOPIC SYLLABLE XWAA
-128C;AL # ETHIOPIC SYLLABLE XWEE
-128D;AL # ETHIOPIC SYLLABLE XWE
-1290;AL # ETHIOPIC SYLLABLE NA
-1291;AL # ETHIOPIC SYLLABLE NU
-1292;AL # ETHIOPIC SYLLABLE NI
-1293;AL # ETHIOPIC SYLLABLE NAA
-1294;AL # ETHIOPIC SYLLABLE NEE
-1295;AL # ETHIOPIC SYLLABLE NE
-1296;AL # ETHIOPIC SYLLABLE NO
-1297;AL # ETHIOPIC SYLLABLE NWA
-1298;AL # ETHIOPIC SYLLABLE NYA
-1299;AL # ETHIOPIC SYLLABLE NYU
-129A;AL # ETHIOPIC SYLLABLE NYI
-129B;AL # ETHIOPIC SYLLABLE NYAA
-129C;AL # ETHIOPIC SYLLABLE NYEE
-129D;AL # ETHIOPIC SYLLABLE NYE
-129E;AL # ETHIOPIC SYLLABLE NYO
-129F;AL # ETHIOPIC SYLLABLE NYWA
-12A0;AL # ETHIOPIC SYLLABLE GLOTTAL A
-12A1;AL # ETHIOPIC SYLLABLE GLOTTAL U
-12A2;AL # ETHIOPIC SYLLABLE GLOTTAL I
-12A3;AL # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4;AL # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5;AL # ETHIOPIC SYLLABLE GLOTTAL E
-12A6;AL # ETHIOPIC SYLLABLE GLOTTAL O
-12A7;AL # ETHIOPIC SYLLABLE GLOTTAL WA
-12A8;AL # ETHIOPIC SYLLABLE KA
-12A9;AL # ETHIOPIC SYLLABLE KU
-12AA;AL # ETHIOPIC SYLLABLE KI
-12AB;AL # ETHIOPIC SYLLABLE KAA
-12AC;AL # ETHIOPIC SYLLABLE KEE
-12AD;AL # ETHIOPIC SYLLABLE KE
-12AE;AL # ETHIOPIC SYLLABLE KO
-12AF;AL # ETHIOPIC SYLLABLE KOA
-12B0;AL # ETHIOPIC SYLLABLE KWA
-12B2;AL # ETHIOPIC SYLLABLE KWI
-12B3;AL # ETHIOPIC SYLLABLE KWAA
-12B4;AL # ETHIOPIC SYLLABLE KWEE
-12B5;AL # ETHIOPIC SYLLABLE KWE
-12B8;AL # ETHIOPIC SYLLABLE KXA
-12B9;AL # ETHIOPIC SYLLABLE KXU
-12BA;AL # ETHIOPIC SYLLABLE KXI
-12BB;AL # ETHIOPIC SYLLABLE KXAA
-12BC;AL # ETHIOPIC SYLLABLE KXEE
-12BD;AL # ETHIOPIC SYLLABLE KXE
-12BE;AL # ETHIOPIC SYLLABLE KXO
-12C0;AL # ETHIOPIC SYLLABLE KXWA
-12C2;AL # ETHIOPIC SYLLABLE KXWI
-12C3;AL # ETHIOPIC SYLLABLE KXWAA
-12C4;AL # ETHIOPIC SYLLABLE KXWEE
-12C5;AL # ETHIOPIC SYLLABLE KXWE
-12C8;AL # ETHIOPIC SYLLABLE WA
-12C9;AL # ETHIOPIC SYLLABLE WU
-12CA;AL # ETHIOPIC SYLLABLE WI
-12CB;AL # ETHIOPIC SYLLABLE WAA
-12CC;AL # ETHIOPIC SYLLABLE WEE
-12CD;AL # ETHIOPIC SYLLABLE WE
-12CE;AL # ETHIOPIC SYLLABLE WO
-12CF;AL # ETHIOPIC SYLLABLE WOA
-12D0;AL # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1;AL # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2;AL # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3;AL # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4;AL # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5;AL # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6;AL # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8;AL # ETHIOPIC SYLLABLE ZA
-12D9;AL # ETHIOPIC SYLLABLE ZU
-12DA;AL # ETHIOPIC SYLLABLE ZI
-12DB;AL # ETHIOPIC SYLLABLE ZAA
-12DC;AL # ETHIOPIC SYLLABLE ZEE
-12DD;AL # ETHIOPIC SYLLABLE ZE
-12DE;AL # ETHIOPIC SYLLABLE ZO
-12DF;AL # ETHIOPIC SYLLABLE ZWA
-12E0;AL # ETHIOPIC SYLLABLE ZHA
-12E1;AL # ETHIOPIC SYLLABLE ZHU
-12E2;AL # ETHIOPIC SYLLABLE ZHI
-12E3;AL # ETHIOPIC SYLLABLE ZHAA
-12E4;AL # ETHIOPIC SYLLABLE ZHEE
-12E5;AL # ETHIOPIC SYLLABLE ZHE
-12E6;AL # ETHIOPIC SYLLABLE ZHO
-12E7;AL # ETHIOPIC SYLLABLE ZHWA
-12E8;AL # ETHIOPIC SYLLABLE YA
-12E9;AL # ETHIOPIC SYLLABLE YU
-12EA;AL # ETHIOPIC SYLLABLE YI
-12EB;AL # ETHIOPIC SYLLABLE YAA
-12EC;AL # ETHIOPIC SYLLABLE YEE
-12ED;AL # ETHIOPIC SYLLABLE YE
-12EE;AL # ETHIOPIC SYLLABLE YO
-12EF;AL # ETHIOPIC SYLLABLE YOA
-12F0;AL # ETHIOPIC SYLLABLE DA
-12F1;AL # ETHIOPIC SYLLABLE DU
-12F2;AL # ETHIOPIC SYLLABLE DI
-12F3;AL # ETHIOPIC SYLLABLE DAA
-12F4;AL # ETHIOPIC SYLLABLE DEE
-12F5;AL # ETHIOPIC SYLLABLE DE
-12F6;AL # ETHIOPIC SYLLABLE DO
-12F7;AL # ETHIOPIC SYLLABLE DWA
-12F8;AL # ETHIOPIC SYLLABLE DDA
-12F9;AL # ETHIOPIC SYLLABLE DDU
-12FA;AL # ETHIOPIC SYLLABLE DDI
-12FB;AL # ETHIOPIC SYLLABLE DDAA
-12FC;AL # ETHIOPIC SYLLABLE DDEE
-12FD;AL # ETHIOPIC SYLLABLE DDE
-12FE;AL # ETHIOPIC SYLLABLE DDO
-12FF;AL # ETHIOPIC SYLLABLE DDWA
-1300;AL # ETHIOPIC SYLLABLE JA
-1301;AL # ETHIOPIC SYLLABLE JU
-1302;AL # ETHIOPIC SYLLABLE JI
-1303;AL # ETHIOPIC SYLLABLE JAA
-1304;AL # ETHIOPIC SYLLABLE JEE
-1305;AL # ETHIOPIC SYLLABLE JE
-1306;AL # ETHIOPIC SYLLABLE JO
-1307;AL # ETHIOPIC SYLLABLE JWA
-1308;AL # ETHIOPIC SYLLABLE GA
-1309;AL # ETHIOPIC SYLLABLE GU
-130A;AL # ETHIOPIC SYLLABLE GI
-130B;AL # ETHIOPIC SYLLABLE GAA
-130C;AL # ETHIOPIC SYLLABLE GEE
-130D;AL # ETHIOPIC SYLLABLE GE
-130E;AL # ETHIOPIC SYLLABLE GO
-130F;AL # ETHIOPIC SYLLABLE GOA
-1310;AL # ETHIOPIC SYLLABLE GWA
-1312;AL # ETHIOPIC SYLLABLE GWI
-1313;AL # ETHIOPIC SYLLABLE GWAA
-1314;AL # ETHIOPIC SYLLABLE GWEE
-1315;AL # ETHIOPIC SYLLABLE GWE
-1318;AL # ETHIOPIC SYLLABLE GGA
-1319;AL # ETHIOPIC SYLLABLE GGU
-131A;AL # ETHIOPIC SYLLABLE GGI
-131B;AL # ETHIOPIC SYLLABLE GGAA
-131C;AL # ETHIOPIC SYLLABLE GGEE
-131D;AL # ETHIOPIC SYLLABLE GGE
-131E;AL # ETHIOPIC SYLLABLE GGO
-131F;AL # ETHIOPIC SYLLABLE GGWAA
-1320;AL # ETHIOPIC SYLLABLE THA
-1321;AL # ETHIOPIC SYLLABLE THU
-1322;AL # ETHIOPIC SYLLABLE THI
-1323;AL # ETHIOPIC SYLLABLE THAA
-1324;AL # ETHIOPIC SYLLABLE THEE
-1325;AL # ETHIOPIC SYLLABLE THE
-1326;AL # ETHIOPIC SYLLABLE THO
-1327;AL # ETHIOPIC SYLLABLE THWA
-1328;AL # ETHIOPIC SYLLABLE CHA
-1329;AL # ETHIOPIC SYLLABLE CHU
-132A;AL # ETHIOPIC SYLLABLE CHI
-132B;AL # ETHIOPIC SYLLABLE CHAA
-132C;AL # ETHIOPIC SYLLABLE CHEE
-132D;AL # ETHIOPIC SYLLABLE CHE
-132E;AL # ETHIOPIC SYLLABLE CHO
-132F;AL # ETHIOPIC SYLLABLE CHWA
-1330;AL # ETHIOPIC SYLLABLE PHA
-1331;AL # ETHIOPIC SYLLABLE PHU
-1332;AL # ETHIOPIC SYLLABLE PHI
-1333;AL # ETHIOPIC SYLLABLE PHAA
-1334;AL # ETHIOPIC SYLLABLE PHEE
-1335;AL # ETHIOPIC SYLLABLE PHE
-1336;AL # ETHIOPIC SYLLABLE PHO
-1337;AL # ETHIOPIC SYLLABLE PHWA
-1338;AL # ETHIOPIC SYLLABLE TSA
-1339;AL # ETHIOPIC SYLLABLE TSU
-133A;AL # ETHIOPIC SYLLABLE TSI
-133B;AL # ETHIOPIC SYLLABLE TSAA
-133C;AL # ETHIOPIC SYLLABLE TSEE
-133D;AL # ETHIOPIC SYLLABLE TSE
-133E;AL # ETHIOPIC SYLLABLE TSO
-133F;AL # ETHIOPIC SYLLABLE TSWA
-1340;AL # ETHIOPIC SYLLABLE TZA
-1341;AL # ETHIOPIC SYLLABLE TZU
-1342;AL # ETHIOPIC SYLLABLE TZI
-1343;AL # ETHIOPIC SYLLABLE TZAA
-1344;AL # ETHIOPIC SYLLABLE TZEE
-1345;AL # ETHIOPIC SYLLABLE TZE
-1346;AL # ETHIOPIC SYLLABLE TZO
-1347;AL # ETHIOPIC SYLLABLE TZOA
-1348;AL # ETHIOPIC SYLLABLE FA
-1349;AL # ETHIOPIC SYLLABLE FU
-134A;AL # ETHIOPIC SYLLABLE FI
-134B;AL # ETHIOPIC SYLLABLE FAA
-134C;AL # ETHIOPIC SYLLABLE FEE
-134D;AL # ETHIOPIC SYLLABLE FE
-134E;AL # ETHIOPIC SYLLABLE FO
-134F;AL # ETHIOPIC SYLLABLE FWA
-1350;AL # ETHIOPIC SYLLABLE PA
-1351;AL # ETHIOPIC SYLLABLE PU
-1352;AL # ETHIOPIC SYLLABLE PI
-1353;AL # ETHIOPIC SYLLABLE PAA
-1354;AL # ETHIOPIC SYLLABLE PEE
-1355;AL # ETHIOPIC SYLLABLE PE
-1356;AL # ETHIOPIC SYLLABLE PO
-1357;AL # ETHIOPIC SYLLABLE PWA
-1358;AL # ETHIOPIC SYLLABLE RYA
-1359;AL # ETHIOPIC SYLLABLE MYA
-135A;AL # ETHIOPIC SYLLABLE FYA
-135D;CM # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-135E;CM # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135F;CM # ETHIOPIC COMBINING GEMINATION MARK
-1360;AL # ETHIOPIC SECTION MARK
-1361;BA # ETHIOPIC WORDSPACE
-1362;AL # ETHIOPIC FULL STOP
-1363;AL # ETHIOPIC COMMA
-1364;AL # ETHIOPIC SEMICOLON
-1365;AL # ETHIOPIC COLON
-1366;AL # ETHIOPIC PREFACE COLON
-1367;AL # ETHIOPIC QUESTION MARK
-1368;AL # ETHIOPIC PARAGRAPH SEPARATOR
-1369;AL # ETHIOPIC DIGIT ONE
-136A;AL # ETHIOPIC DIGIT TWO
-136B;AL # ETHIOPIC DIGIT THREE
-136C;AL # ETHIOPIC DIGIT FOUR
-136D;AL # ETHIOPIC DIGIT FIVE
-136E;AL # ETHIOPIC DIGIT SIX
-136F;AL # ETHIOPIC DIGIT SEVEN
-1370;AL # ETHIOPIC DIGIT EIGHT
-1371;AL # ETHIOPIC DIGIT NINE
-1372;AL # ETHIOPIC NUMBER TEN
-1373;AL # ETHIOPIC NUMBER TWENTY
-1374;AL # ETHIOPIC NUMBER THIRTY
-1375;AL # ETHIOPIC NUMBER FORTY
-1376;AL # ETHIOPIC NUMBER FIFTY
-1377;AL # ETHIOPIC NUMBER SIXTY
-1378;AL # ETHIOPIC NUMBER SEVENTY
-1379;AL # ETHIOPIC NUMBER EIGHTY
-137A;AL # ETHIOPIC NUMBER NINETY
-137B;AL # ETHIOPIC NUMBER HUNDRED
-137C;AL # ETHIOPIC NUMBER TEN THOUSAND
-1380;AL # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381;AL # ETHIOPIC SYLLABLE MWI
-1382;AL # ETHIOPIC SYLLABLE MWEE
-1383;AL # ETHIOPIC SYLLABLE MWE
-1384;AL # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385;AL # ETHIOPIC SYLLABLE BWI
-1386;AL # ETHIOPIC SYLLABLE BWEE
-1387;AL # ETHIOPIC SYLLABLE BWE
-1388;AL # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389;AL # ETHIOPIC SYLLABLE FWI
-138A;AL # ETHIOPIC SYLLABLE FWEE
-138B;AL # ETHIOPIC SYLLABLE FWE
-138C;AL # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D;AL # ETHIOPIC SYLLABLE PWI
-138E;AL # ETHIOPIC SYLLABLE PWEE
-138F;AL # ETHIOPIC SYLLABLE PWE
-1390;AL # ETHIOPIC TONAL MARK YIZET
-1391;AL # ETHIOPIC TONAL MARK DERET
-1392;AL # ETHIOPIC TONAL MARK RIKRIK
-1393;AL # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394;AL # ETHIOPIC TONAL MARK DIFAT
-1395;AL # ETHIOPIC TONAL MARK KENAT
-1396;AL # ETHIOPIC TONAL MARK CHIRET
-1397;AL # ETHIOPIC TONAL MARK HIDET
-1398;AL # ETHIOPIC TONAL MARK DERET-HIDET
-1399;AL # ETHIOPIC TONAL MARK KURT
-13A0;AL # CHEROKEE LETTER A
-13A1;AL # CHEROKEE LETTER E
-13A2;AL # CHEROKEE LETTER I
-13A3;AL # CHEROKEE LETTER O
-13A4;AL # CHEROKEE LETTER U
-13A5;AL # CHEROKEE LETTER V
-13A6;AL # CHEROKEE LETTER GA
-13A7;AL # CHEROKEE LETTER KA
-13A8;AL # CHEROKEE LETTER GE
-13A9;AL # CHEROKEE LETTER GI
-13AA;AL # CHEROKEE LETTER GO
-13AB;AL # CHEROKEE LETTER GU
-13AC;AL # CHEROKEE LETTER GV
-13AD;AL # CHEROKEE LETTER HA
-13AE;AL # CHEROKEE LETTER HE
-13AF;AL # CHEROKEE LETTER HI
-13B0;AL # CHEROKEE LETTER HO
-13B1;AL # CHEROKEE LETTER HU
-13B2;AL # CHEROKEE LETTER HV
-13B3;AL # CHEROKEE LETTER LA
-13B4;AL # CHEROKEE LETTER LE
-13B5;AL # CHEROKEE LETTER LI
-13B6;AL # CHEROKEE LETTER LO
-13B7;AL # CHEROKEE LETTER LU
-13B8;AL # CHEROKEE LETTER LV
-13B9;AL # CHEROKEE LETTER MA
-13BA;AL # CHEROKEE LETTER ME
-13BB;AL # CHEROKEE LETTER MI
-13BC;AL # CHEROKEE LETTER MO
-13BD;AL # CHEROKEE LETTER MU
-13BE;AL # CHEROKEE LETTER NA
-13BF;AL # CHEROKEE LETTER HNA
-13C0;AL # CHEROKEE LETTER NAH
-13C1;AL # CHEROKEE LETTER NE
-13C2;AL # CHEROKEE LETTER NI
-13C3;AL # CHEROKEE LETTER NO
-13C4;AL # CHEROKEE LETTER NU
-13C5;AL # CHEROKEE LETTER NV
-13C6;AL # CHEROKEE LETTER QUA
-13C7;AL # CHEROKEE LETTER QUE
-13C8;AL # CHEROKEE LETTER QUI
-13C9;AL # CHEROKEE LETTER QUO
-13CA;AL # CHEROKEE LETTER QUU
-13CB;AL # CHEROKEE LETTER QUV
-13CC;AL # CHEROKEE LETTER SA
-13CD;AL # CHEROKEE LETTER S
-13CE;AL # CHEROKEE LETTER SE
-13CF;AL # CHEROKEE LETTER SI
-13D0;AL # CHEROKEE LETTER SO
-13D1;AL # CHEROKEE LETTER SU
-13D2;AL # CHEROKEE LETTER SV
-13D3;AL # CHEROKEE LETTER DA
-13D4;AL # CHEROKEE LETTER TA
-13D5;AL # CHEROKEE LETTER DE
-13D6;AL # CHEROKEE LETTER TE
-13D7;AL # CHEROKEE LETTER DI
-13D8;AL # CHEROKEE LETTER TI
-13D9;AL # CHEROKEE LETTER DO
-13DA;AL # CHEROKEE LETTER DU
-13DB;AL # CHEROKEE LETTER DV
-13DC;AL # CHEROKEE LETTER DLA
-13DD;AL # CHEROKEE LETTER TLA
-13DE;AL # CHEROKEE LETTER TLE
-13DF;AL # CHEROKEE LETTER TLI
-13E0;AL # CHEROKEE LETTER TLO
-13E1;AL # CHEROKEE LETTER TLU
-13E2;AL # CHEROKEE LETTER TLV
-13E3;AL # CHEROKEE LETTER TSA
-13E4;AL # CHEROKEE LETTER TSE
-13E5;AL # CHEROKEE LETTER TSI
-13E6;AL # CHEROKEE LETTER TSO
-13E7;AL # CHEROKEE LETTER TSU
-13E8;AL # CHEROKEE LETTER TSV
-13E9;AL # CHEROKEE LETTER WA
-13EA;AL # CHEROKEE LETTER WE
-13EB;AL # CHEROKEE LETTER WI
-13EC;AL # CHEROKEE LETTER WO
-13ED;AL # CHEROKEE LETTER WU
-13EE;AL # CHEROKEE LETTER WV
-13EF;AL # CHEROKEE LETTER YA
-13F0;AL # CHEROKEE LETTER YE
-13F1;AL # CHEROKEE LETTER YI
-13F2;AL # CHEROKEE LETTER YO
-13F3;AL # CHEROKEE LETTER YU
-13F4;AL # CHEROKEE LETTER YV
-1400;BA # CANADIAN SYLLABICS HYPHEN
-1401;AL # CANADIAN SYLLABICS E
-1402;AL # CANADIAN SYLLABICS AAI
-1403;AL # CANADIAN SYLLABICS I
-1404;AL # CANADIAN SYLLABICS II
-1405;AL # CANADIAN SYLLABICS O
-1406;AL # CANADIAN SYLLABICS OO
-1407;AL # CANADIAN SYLLABICS Y-CREE OO
-1408;AL # CANADIAN SYLLABICS CARRIER EE
-1409;AL # CANADIAN SYLLABICS CARRIER I
-140A;AL # CANADIAN SYLLABICS A
-140B;AL # CANADIAN SYLLABICS AA
-140C;AL # CANADIAN SYLLABICS WE
-140D;AL # CANADIAN SYLLABICS WEST-CREE WE
-140E;AL # CANADIAN SYLLABICS WI
-140F;AL # CANADIAN SYLLABICS WEST-CREE WI
-1410;AL # CANADIAN SYLLABICS WII
-1411;AL # CANADIAN SYLLABICS WEST-CREE WII
-1412;AL # CANADIAN SYLLABICS WO
-1413;AL # CANADIAN SYLLABICS WEST-CREE WO
-1414;AL # CANADIAN SYLLABICS WOO
-1415;AL # CANADIAN SYLLABICS WEST-CREE WOO
-1416;AL # CANADIAN SYLLABICS NASKAPI WOO
-1417;AL # CANADIAN SYLLABICS WA
-1418;AL # CANADIAN SYLLABICS WEST-CREE WA
-1419;AL # CANADIAN SYLLABICS WAA
-141A;AL # CANADIAN SYLLABICS WEST-CREE WAA
-141B;AL # CANADIAN SYLLABICS NASKAPI WAA
-141C;AL # CANADIAN SYLLABICS AI
-141D;AL # CANADIAN SYLLABICS Y-CREE W
-141E;AL # CANADIAN SYLLABICS GLOTTAL STOP
-141F;AL # CANADIAN SYLLABICS FINAL ACUTE
-1420;AL # CANADIAN SYLLABICS FINAL GRAVE
-1421;AL # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422;AL # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423;AL # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424;AL # CANADIAN SYLLABICS FINAL RING
-1425;AL # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426;AL # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427;AL # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428;AL # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429;AL # CANADIAN SYLLABICS FINAL PLUS
-142A;AL # CANADIAN SYLLABICS FINAL DOWN TACK
-142B;AL # CANADIAN SYLLABICS EN
-142C;AL # CANADIAN SYLLABICS IN
-142D;AL # CANADIAN SYLLABICS ON
-142E;AL # CANADIAN SYLLABICS AN
-142F;AL # CANADIAN SYLLABICS PE
-1430;AL # CANADIAN SYLLABICS PAAI
-1431;AL # CANADIAN SYLLABICS PI
-1432;AL # CANADIAN SYLLABICS PII
-1433;AL # CANADIAN SYLLABICS PO
-1434;AL # CANADIAN SYLLABICS POO
-1435;AL # CANADIAN SYLLABICS Y-CREE POO
-1436;AL # CANADIAN SYLLABICS CARRIER HEE
-1437;AL # CANADIAN SYLLABICS CARRIER HI
-1438;AL # CANADIAN SYLLABICS PA
-1439;AL # CANADIAN SYLLABICS PAA
-143A;AL # CANADIAN SYLLABICS PWE
-143B;AL # CANADIAN SYLLABICS WEST-CREE PWE
-143C;AL # CANADIAN SYLLABICS PWI
-143D;AL # CANADIAN SYLLABICS WEST-CREE PWI
-143E;AL # CANADIAN SYLLABICS PWII
-143F;AL # CANADIAN SYLLABICS WEST-CREE PWII
-1440;AL # CANADIAN SYLLABICS PWO
-1441;AL # CANADIAN SYLLABICS WEST-CREE PWO
-1442;AL # CANADIAN SYLLABICS PWOO
-1443;AL # CANADIAN SYLLABICS WEST-CREE PWOO
-1444;AL # CANADIAN SYLLABICS PWA
-1445;AL # CANADIAN SYLLABICS WEST-CREE PWA
-1446;AL # CANADIAN SYLLABICS PWAA
-1447;AL # CANADIAN SYLLABICS WEST-CREE PWAA
-1448;AL # CANADIAN SYLLABICS Y-CREE PWAA
-1449;AL # CANADIAN SYLLABICS P
-144A;AL # CANADIAN SYLLABICS WEST-CREE P
-144B;AL # CANADIAN SYLLABICS CARRIER H
-144C;AL # CANADIAN SYLLABICS TE
-144D;AL # CANADIAN SYLLABICS TAAI
-144E;AL # CANADIAN SYLLABICS TI
-144F;AL # CANADIAN SYLLABICS TII
-1450;AL # CANADIAN SYLLABICS TO
-1451;AL # CANADIAN SYLLABICS TOO
-1452;AL # CANADIAN SYLLABICS Y-CREE TOO
-1453;AL # CANADIAN SYLLABICS CARRIER DEE
-1454;AL # CANADIAN SYLLABICS CARRIER DI
-1455;AL # CANADIAN SYLLABICS TA
-1456;AL # CANADIAN SYLLABICS TAA
-1457;AL # CANADIAN SYLLABICS TWE
-1458;AL # CANADIAN SYLLABICS WEST-CREE TWE
-1459;AL # CANADIAN SYLLABICS TWI
-145A;AL # CANADIAN SYLLABICS WEST-CREE TWI
-145B;AL # CANADIAN SYLLABICS TWII
-145C;AL # CANADIAN SYLLABICS WEST-CREE TWII
-145D;AL # CANADIAN SYLLABICS TWO
-145E;AL # CANADIAN SYLLABICS WEST-CREE TWO
-145F;AL # CANADIAN SYLLABICS TWOO
-1460;AL # CANADIAN SYLLABICS WEST-CREE TWOO
-1461;AL # CANADIAN SYLLABICS TWA
-1462;AL # CANADIAN SYLLABICS WEST-CREE TWA
-1463;AL # CANADIAN SYLLABICS TWAA
-1464;AL # CANADIAN SYLLABICS WEST-CREE TWAA
-1465;AL # CANADIAN SYLLABICS NASKAPI TWAA
-1466;AL # CANADIAN SYLLABICS T
-1467;AL # CANADIAN SYLLABICS TTE
-1468;AL # CANADIAN SYLLABICS TTI
-1469;AL # CANADIAN SYLLABICS TTO
-146A;AL # CANADIAN SYLLABICS TTA
-146B;AL # CANADIAN SYLLABICS KE
-146C;AL # CANADIAN SYLLABICS KAAI
-146D;AL # CANADIAN SYLLABICS KI
-146E;AL # CANADIAN SYLLABICS KII
-146F;AL # CANADIAN SYLLABICS KO
-1470;AL # CANADIAN SYLLABICS KOO
-1471;AL # CANADIAN SYLLABICS Y-CREE KOO
-1472;AL # CANADIAN SYLLABICS KA
-1473;AL # CANADIAN SYLLABICS KAA
-1474;AL # CANADIAN SYLLABICS KWE
-1475;AL # CANADIAN SYLLABICS WEST-CREE KWE
-1476;AL # CANADIAN SYLLABICS KWI
-1477;AL # CANADIAN SYLLABICS WEST-CREE KWI
-1478;AL # CANADIAN SYLLABICS KWII
-1479;AL # CANADIAN SYLLABICS WEST-CREE KWII
-147A;AL # CANADIAN SYLLABICS KWO
-147B;AL # CANADIAN SYLLABICS WEST-CREE KWO
-147C;AL # CANADIAN SYLLABICS KWOO
-147D;AL # CANADIAN SYLLABICS WEST-CREE KWOO
-147E;AL # CANADIAN SYLLABICS KWA
-147F;AL # CANADIAN SYLLABICS WEST-CREE KWA
-1480;AL # CANADIAN SYLLABICS KWAA
-1481;AL # CANADIAN SYLLABICS WEST-CREE KWAA
-1482;AL # CANADIAN SYLLABICS NASKAPI KWAA
-1483;AL # CANADIAN SYLLABICS K
-1484;AL # CANADIAN SYLLABICS KW
-1485;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489;AL # CANADIAN SYLLABICS CE
-148A;AL # CANADIAN SYLLABICS CAAI
-148B;AL # CANADIAN SYLLABICS CI
-148C;AL # CANADIAN SYLLABICS CII
-148D;AL # CANADIAN SYLLABICS CO
-148E;AL # CANADIAN SYLLABICS COO
-148F;AL # CANADIAN SYLLABICS Y-CREE COO
-1490;AL # CANADIAN SYLLABICS CA
-1491;AL # CANADIAN SYLLABICS CAA
-1492;AL # CANADIAN SYLLABICS CWE
-1493;AL # CANADIAN SYLLABICS WEST-CREE CWE
-1494;AL # CANADIAN SYLLABICS CWI
-1495;AL # CANADIAN SYLLABICS WEST-CREE CWI
-1496;AL # CANADIAN SYLLABICS CWII
-1497;AL # CANADIAN SYLLABICS WEST-CREE CWII
-1498;AL # CANADIAN SYLLABICS CWO
-1499;AL # CANADIAN SYLLABICS WEST-CREE CWO
-149A;AL # CANADIAN SYLLABICS CWOO
-149B;AL # CANADIAN SYLLABICS WEST-CREE CWOO
-149C;AL # CANADIAN SYLLABICS CWA
-149D;AL # CANADIAN SYLLABICS WEST-CREE CWA
-149E;AL # CANADIAN SYLLABICS CWAA
-149F;AL # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0;AL # CANADIAN SYLLABICS NASKAPI CWAA
-14A1;AL # CANADIAN SYLLABICS C
-14A2;AL # CANADIAN SYLLABICS SAYISI TH
-14A3;AL # CANADIAN SYLLABICS ME
-14A4;AL # CANADIAN SYLLABICS MAAI
-14A5;AL # CANADIAN SYLLABICS MI
-14A6;AL # CANADIAN SYLLABICS MII
-14A7;AL # CANADIAN SYLLABICS MO
-14A8;AL # CANADIAN SYLLABICS MOO
-14A9;AL # CANADIAN SYLLABICS Y-CREE MOO
-14AA;AL # CANADIAN SYLLABICS MA
-14AB;AL # CANADIAN SYLLABICS MAA
-14AC;AL # CANADIAN SYLLABICS MWE
-14AD;AL # CANADIAN SYLLABICS WEST-CREE MWE
-14AE;AL # CANADIAN SYLLABICS MWI
-14AF;AL # CANADIAN SYLLABICS WEST-CREE MWI
-14B0;AL # CANADIAN SYLLABICS MWII
-14B1;AL # CANADIAN SYLLABICS WEST-CREE MWII
-14B2;AL # CANADIAN SYLLABICS MWO
-14B3;AL # CANADIAN SYLLABICS WEST-CREE MWO
-14B4;AL # CANADIAN SYLLABICS MWOO
-14B5;AL # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6;AL # CANADIAN SYLLABICS MWA
-14B7;AL # CANADIAN SYLLABICS WEST-CREE MWA
-14B8;AL # CANADIAN SYLLABICS MWAA
-14B9;AL # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA;AL # CANADIAN SYLLABICS NASKAPI MWAA
-14BB;AL # CANADIAN SYLLABICS M
-14BC;AL # CANADIAN SYLLABICS WEST-CREE M
-14BD;AL # CANADIAN SYLLABICS MH
-14BE;AL # CANADIAN SYLLABICS ATHAPASCAN M
-14BF;AL # CANADIAN SYLLABICS SAYISI M
-14C0;AL # CANADIAN SYLLABICS NE
-14C1;AL # CANADIAN SYLLABICS NAAI
-14C2;AL # CANADIAN SYLLABICS NI
-14C3;AL # CANADIAN SYLLABICS NII
-14C4;AL # CANADIAN SYLLABICS NO
-14C5;AL # CANADIAN SYLLABICS NOO
-14C6;AL # CANADIAN SYLLABICS Y-CREE NOO
-14C7;AL # CANADIAN SYLLABICS NA
-14C8;AL # CANADIAN SYLLABICS NAA
-14C9;AL # CANADIAN SYLLABICS NWE
-14CA;AL # CANADIAN SYLLABICS WEST-CREE NWE
-14CB;AL # CANADIAN SYLLABICS NWA
-14CC;AL # CANADIAN SYLLABICS WEST-CREE NWA
-14CD;AL # CANADIAN SYLLABICS NWAA
-14CE;AL # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF;AL # CANADIAN SYLLABICS NASKAPI NWAA
-14D0;AL # CANADIAN SYLLABICS N
-14D1;AL # CANADIAN SYLLABICS CARRIER NG
-14D2;AL # CANADIAN SYLLABICS NH
-14D3;AL # CANADIAN SYLLABICS LE
-14D4;AL # CANADIAN SYLLABICS LAAI
-14D5;AL # CANADIAN SYLLABICS LI
-14D6;AL # CANADIAN SYLLABICS LII
-14D7;AL # CANADIAN SYLLABICS LO
-14D8;AL # CANADIAN SYLLABICS LOO
-14D9;AL # CANADIAN SYLLABICS Y-CREE LOO
-14DA;AL # CANADIAN SYLLABICS LA
-14DB;AL # CANADIAN SYLLABICS LAA
-14DC;AL # CANADIAN SYLLABICS LWE
-14DD;AL # CANADIAN SYLLABICS WEST-CREE LWE
-14DE;AL # CANADIAN SYLLABICS LWI
-14DF;AL # CANADIAN SYLLABICS WEST-CREE LWI
-14E0;AL # CANADIAN SYLLABICS LWII
-14E1;AL # CANADIAN SYLLABICS WEST-CREE LWII
-14E2;AL # CANADIAN SYLLABICS LWO
-14E3;AL # CANADIAN SYLLABICS WEST-CREE LWO
-14E4;AL # CANADIAN SYLLABICS LWOO
-14E5;AL # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6;AL # CANADIAN SYLLABICS LWA
-14E7;AL # CANADIAN SYLLABICS WEST-CREE LWA
-14E8;AL # CANADIAN SYLLABICS LWAA
-14E9;AL # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA;AL # CANADIAN SYLLABICS L
-14EB;AL # CANADIAN SYLLABICS WEST-CREE L
-14EC;AL # CANADIAN SYLLABICS MEDIAL L
-14ED;AL # CANADIAN SYLLABICS SE
-14EE;AL # CANADIAN SYLLABICS SAAI
-14EF;AL # CANADIAN SYLLABICS SI
-14F0;AL # CANADIAN SYLLABICS SII
-14F1;AL # CANADIAN SYLLABICS SO
-14F2;AL # CANADIAN SYLLABICS SOO
-14F3;AL # CANADIAN SYLLABICS Y-CREE SOO
-14F4;AL # CANADIAN SYLLABICS SA
-14F5;AL # CANADIAN SYLLABICS SAA
-14F6;AL # CANADIAN SYLLABICS SWE
-14F7;AL # CANADIAN SYLLABICS WEST-CREE SWE
-14F8;AL # CANADIAN SYLLABICS SWI
-14F9;AL # CANADIAN SYLLABICS WEST-CREE SWI
-14FA;AL # CANADIAN SYLLABICS SWII
-14FB;AL # CANADIAN SYLLABICS WEST-CREE SWII
-14FC;AL # CANADIAN SYLLABICS SWO
-14FD;AL # CANADIAN SYLLABICS WEST-CREE SWO
-14FE;AL # CANADIAN SYLLABICS SWOO
-14FF;AL # CANADIAN SYLLABICS WEST-CREE SWOO
-1500;AL # CANADIAN SYLLABICS SWA
-1501;AL # CANADIAN SYLLABICS WEST-CREE SWA
-1502;AL # CANADIAN SYLLABICS SWAA
-1503;AL # CANADIAN SYLLABICS WEST-CREE SWAA
-1504;AL # CANADIAN SYLLABICS NASKAPI SWAA
-1505;AL # CANADIAN SYLLABICS S
-1506;AL # CANADIAN SYLLABICS ATHAPASCAN S
-1507;AL # CANADIAN SYLLABICS SW
-1508;AL # CANADIAN SYLLABICS BLACKFOOT S
-1509;AL # CANADIAN SYLLABICS MOOSE-CREE SK
-150A;AL # CANADIAN SYLLABICS NASKAPI SKW
-150B;AL # CANADIAN SYLLABICS NASKAPI S-W
-150C;AL # CANADIAN SYLLABICS NASKAPI SPWA
-150D;AL # CANADIAN SYLLABICS NASKAPI STWA
-150E;AL # CANADIAN SYLLABICS NASKAPI SKWA
-150F;AL # CANADIAN SYLLABICS NASKAPI SCWA
-1510;AL # CANADIAN SYLLABICS SHE
-1511;AL # CANADIAN SYLLABICS SHI
-1512;AL # CANADIAN SYLLABICS SHII
-1513;AL # CANADIAN SYLLABICS SHO
-1514;AL # CANADIAN SYLLABICS SHOO
-1515;AL # CANADIAN SYLLABICS SHA
-1516;AL # CANADIAN SYLLABICS SHAA
-1517;AL # CANADIAN SYLLABICS SHWE
-1518;AL # CANADIAN SYLLABICS WEST-CREE SHWE
-1519;AL # CANADIAN SYLLABICS SHWI
-151A;AL # CANADIAN SYLLABICS WEST-CREE SHWI
-151B;AL # CANADIAN SYLLABICS SHWII
-151C;AL # CANADIAN SYLLABICS WEST-CREE SHWII
-151D;AL # CANADIAN SYLLABICS SHWO
-151E;AL # CANADIAN SYLLABICS WEST-CREE SHWO
-151F;AL # CANADIAN SYLLABICS SHWOO
-1520;AL # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521;AL # CANADIAN SYLLABICS SHWA
-1522;AL # CANADIAN SYLLABICS WEST-CREE SHWA
-1523;AL # CANADIAN SYLLABICS SHWAA
-1524;AL # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525;AL # CANADIAN SYLLABICS SH
-1526;AL # CANADIAN SYLLABICS YE
-1527;AL # CANADIAN SYLLABICS YAAI
-1528;AL # CANADIAN SYLLABICS YI
-1529;AL # CANADIAN SYLLABICS YII
-152A;AL # CANADIAN SYLLABICS YO
-152B;AL # CANADIAN SYLLABICS YOO
-152C;AL # CANADIAN SYLLABICS Y-CREE YOO
-152D;AL # CANADIAN SYLLABICS YA
-152E;AL # CANADIAN SYLLABICS YAA
-152F;AL # CANADIAN SYLLABICS YWE
-1530;AL # CANADIAN SYLLABICS WEST-CREE YWE
-1531;AL # CANADIAN SYLLABICS YWI
-1532;AL # CANADIAN SYLLABICS WEST-CREE YWI
-1533;AL # CANADIAN SYLLABICS YWII
-1534;AL # CANADIAN SYLLABICS WEST-CREE YWII
-1535;AL # CANADIAN SYLLABICS YWO
-1536;AL # CANADIAN SYLLABICS WEST-CREE YWO
-1537;AL # CANADIAN SYLLABICS YWOO
-1538;AL # CANADIAN SYLLABICS WEST-CREE YWOO
-1539;AL # CANADIAN SYLLABICS YWA
-153A;AL # CANADIAN SYLLABICS WEST-CREE YWA
-153B;AL # CANADIAN SYLLABICS YWAA
-153C;AL # CANADIAN SYLLABICS WEST-CREE YWAA
-153D;AL # CANADIAN SYLLABICS NASKAPI YWAA
-153E;AL # CANADIAN SYLLABICS Y
-153F;AL # CANADIAN SYLLABICS BIBLE-CREE Y
-1540;AL # CANADIAN SYLLABICS WEST-CREE Y
-1541;AL # CANADIAN SYLLABICS SAYISI YI
-1542;AL # CANADIAN SYLLABICS RE
-1543;AL # CANADIAN SYLLABICS R-CREE RE
-1544;AL # CANADIAN SYLLABICS WEST-CREE LE
-1545;AL # CANADIAN SYLLABICS RAAI
-1546;AL # CANADIAN SYLLABICS RI
-1547;AL # CANADIAN SYLLABICS RII
-1548;AL # CANADIAN SYLLABICS RO
-1549;AL # CANADIAN SYLLABICS ROO
-154A;AL # CANADIAN SYLLABICS WEST-CREE LO
-154B;AL # CANADIAN SYLLABICS RA
-154C;AL # CANADIAN SYLLABICS RAA
-154D;AL # CANADIAN SYLLABICS WEST-CREE LA
-154E;AL # CANADIAN SYLLABICS RWAA
-154F;AL # CANADIAN SYLLABICS WEST-CREE RWAA
-1550;AL # CANADIAN SYLLABICS R
-1551;AL # CANADIAN SYLLABICS WEST-CREE R
-1552;AL # CANADIAN SYLLABICS MEDIAL R
-1553;AL # CANADIAN SYLLABICS FE
-1554;AL # CANADIAN SYLLABICS FAAI
-1555;AL # CANADIAN SYLLABICS FI
-1556;AL # CANADIAN SYLLABICS FII
-1557;AL # CANADIAN SYLLABICS FO
-1558;AL # CANADIAN SYLLABICS FOO
-1559;AL # CANADIAN SYLLABICS FA
-155A;AL # CANADIAN SYLLABICS FAA
-155B;AL # CANADIAN SYLLABICS FWAA
-155C;AL # CANADIAN SYLLABICS WEST-CREE FWAA
-155D;AL # CANADIAN SYLLABICS F
-155E;AL # CANADIAN SYLLABICS THE
-155F;AL # CANADIAN SYLLABICS N-CREE THE
-1560;AL # CANADIAN SYLLABICS THI
-1561;AL # CANADIAN SYLLABICS N-CREE THI
-1562;AL # CANADIAN SYLLABICS THII
-1563;AL # CANADIAN SYLLABICS N-CREE THII
-1564;AL # CANADIAN SYLLABICS THO
-1565;AL # CANADIAN SYLLABICS THOO
-1566;AL # CANADIAN SYLLABICS THA
-1567;AL # CANADIAN SYLLABICS THAA
-1568;AL # CANADIAN SYLLABICS THWAA
-1569;AL # CANADIAN SYLLABICS WEST-CREE THWAA
-156A;AL # CANADIAN SYLLABICS TH
-156B;AL # CANADIAN SYLLABICS TTHE
-156C;AL # CANADIAN SYLLABICS TTHI
-156D;AL # CANADIAN SYLLABICS TTHO
-156E;AL # CANADIAN SYLLABICS TTHA
-156F;AL # CANADIAN SYLLABICS TTH
-1570;AL # CANADIAN SYLLABICS TYE
-1571;AL # CANADIAN SYLLABICS TYI
-1572;AL # CANADIAN SYLLABICS TYO
-1573;AL # CANADIAN SYLLABICS TYA
-1574;AL # CANADIAN SYLLABICS NUNAVIK HE
-1575;AL # CANADIAN SYLLABICS NUNAVIK HI
-1576;AL # CANADIAN SYLLABICS NUNAVIK HII
-1577;AL # CANADIAN SYLLABICS NUNAVIK HO
-1578;AL # CANADIAN SYLLABICS NUNAVIK HOO
-1579;AL # CANADIAN SYLLABICS NUNAVIK HA
-157A;AL # CANADIAN SYLLABICS NUNAVIK HAA
-157B;AL # CANADIAN SYLLABICS NUNAVIK H
-157C;AL # CANADIAN SYLLABICS NUNAVUT H
-157D;AL # CANADIAN SYLLABICS HK
-157E;AL # CANADIAN SYLLABICS QAAI
-157F;AL # CANADIAN SYLLABICS QI
-1580;AL # CANADIAN SYLLABICS QII
-1581;AL # CANADIAN SYLLABICS QO
-1582;AL # CANADIAN SYLLABICS QOO
-1583;AL # CANADIAN SYLLABICS QA
-1584;AL # CANADIAN SYLLABICS QAA
-1585;AL # CANADIAN SYLLABICS Q
-1586;AL # CANADIAN SYLLABICS TLHE
-1587;AL # CANADIAN SYLLABICS TLHI
-1588;AL # CANADIAN SYLLABICS TLHO
-1589;AL # CANADIAN SYLLABICS TLHA
-158A;AL # CANADIAN SYLLABICS WEST-CREE RE
-158B;AL # CANADIAN SYLLABICS WEST-CREE RI
-158C;AL # CANADIAN SYLLABICS WEST-CREE RO
-158D;AL # CANADIAN SYLLABICS WEST-CREE RA
-158E;AL # CANADIAN SYLLABICS NGAAI
-158F;AL # CANADIAN SYLLABICS NGI
-1590;AL # CANADIAN SYLLABICS NGII
-1591;AL # CANADIAN SYLLABICS NGO
-1592;AL # CANADIAN SYLLABICS NGOO
-1593;AL # CANADIAN SYLLABICS NGA
-1594;AL # CANADIAN SYLLABICS NGAA
-1595;AL # CANADIAN SYLLABICS NG
-1596;AL # CANADIAN SYLLABICS NNG
-1597;AL # CANADIAN SYLLABICS SAYISI SHE
-1598;AL # CANADIAN SYLLABICS SAYISI SHI
-1599;AL # CANADIAN SYLLABICS SAYISI SHO
-159A;AL # CANADIAN SYLLABICS SAYISI SHA
-159B;AL # CANADIAN SYLLABICS WOODS-CREE THE
-159C;AL # CANADIAN SYLLABICS WOODS-CREE THI
-159D;AL # CANADIAN SYLLABICS WOODS-CREE THO
-159E;AL # CANADIAN SYLLABICS WOODS-CREE THA
-159F;AL # CANADIAN SYLLABICS WOODS-CREE TH
-15A0;AL # CANADIAN SYLLABICS LHI
-15A1;AL # CANADIAN SYLLABICS LHII
-15A2;AL # CANADIAN SYLLABICS LHO
-15A3;AL # CANADIAN SYLLABICS LHOO
-15A4;AL # CANADIAN SYLLABICS LHA
-15A5;AL # CANADIAN SYLLABICS LHAA
-15A6;AL # CANADIAN SYLLABICS LH
-15A7;AL # CANADIAN SYLLABICS TH-CREE THE
-15A8;AL # CANADIAN SYLLABICS TH-CREE THI
-15A9;AL # CANADIAN SYLLABICS TH-CREE THII
-15AA;AL # CANADIAN SYLLABICS TH-CREE THO
-15AB;AL # CANADIAN SYLLABICS TH-CREE THOO
-15AC;AL # CANADIAN SYLLABICS TH-CREE THA
-15AD;AL # CANADIAN SYLLABICS TH-CREE THAA
-15AE;AL # CANADIAN SYLLABICS TH-CREE TH
-15AF;AL # CANADIAN SYLLABICS AIVILIK B
-15B0;AL # CANADIAN SYLLABICS BLACKFOOT E
-15B1;AL # CANADIAN SYLLABICS BLACKFOOT I
-15B2;AL # CANADIAN SYLLABICS BLACKFOOT O
-15B3;AL # CANADIAN SYLLABICS BLACKFOOT A
-15B4;AL # CANADIAN SYLLABICS BLACKFOOT WE
-15B5;AL # CANADIAN SYLLABICS BLACKFOOT WI
-15B6;AL # CANADIAN SYLLABICS BLACKFOOT WO
-15B7;AL # CANADIAN SYLLABICS BLACKFOOT WA
-15B8;AL # CANADIAN SYLLABICS BLACKFOOT NE
-15B9;AL # CANADIAN SYLLABICS BLACKFOOT NI
-15BA;AL # CANADIAN SYLLABICS BLACKFOOT NO
-15BB;AL # CANADIAN SYLLABICS BLACKFOOT NA
-15BC;AL # CANADIAN SYLLABICS BLACKFOOT KE
-15BD;AL # CANADIAN SYLLABICS BLACKFOOT KI
-15BE;AL # CANADIAN SYLLABICS BLACKFOOT KO
-15BF;AL # CANADIAN SYLLABICS BLACKFOOT KA
-15C0;AL # CANADIAN SYLLABICS SAYISI HE
-15C1;AL # CANADIAN SYLLABICS SAYISI HI
-15C2;AL # CANADIAN SYLLABICS SAYISI HO
-15C3;AL # CANADIAN SYLLABICS SAYISI HA
-15C4;AL # CANADIAN SYLLABICS CARRIER GHU
-15C5;AL # CANADIAN SYLLABICS CARRIER GHO
-15C6;AL # CANADIAN SYLLABICS CARRIER GHE
-15C7;AL # CANADIAN SYLLABICS CARRIER GHEE
-15C8;AL # CANADIAN SYLLABICS CARRIER GHI
-15C9;AL # CANADIAN SYLLABICS CARRIER GHA
-15CA;AL # CANADIAN SYLLABICS CARRIER RU
-15CB;AL # CANADIAN SYLLABICS CARRIER RO
-15CC;AL # CANADIAN SYLLABICS CARRIER RE
-15CD;AL # CANADIAN SYLLABICS CARRIER REE
-15CE;AL # CANADIAN SYLLABICS CARRIER RI
-15CF;AL # CANADIAN SYLLABICS CARRIER RA
-15D0;AL # CANADIAN SYLLABICS CARRIER WU
-15D1;AL # CANADIAN SYLLABICS CARRIER WO
-15D2;AL # CANADIAN SYLLABICS CARRIER WE
-15D3;AL # CANADIAN SYLLABICS CARRIER WEE
-15D4;AL # CANADIAN SYLLABICS CARRIER WI
-15D5;AL # CANADIAN SYLLABICS CARRIER WA
-15D6;AL # CANADIAN SYLLABICS CARRIER HWU
-15D7;AL # CANADIAN SYLLABICS CARRIER HWO
-15D8;AL # CANADIAN SYLLABICS CARRIER HWE
-15D9;AL # CANADIAN SYLLABICS CARRIER HWEE
-15DA;AL # CANADIAN SYLLABICS CARRIER HWI
-15DB;AL # CANADIAN SYLLABICS CARRIER HWA
-15DC;AL # CANADIAN SYLLABICS CARRIER THU
-15DD;AL # CANADIAN SYLLABICS CARRIER THO
-15DE;AL # CANADIAN SYLLABICS CARRIER THE
-15DF;AL # CANADIAN SYLLABICS CARRIER THEE
-15E0;AL # CANADIAN SYLLABICS CARRIER THI
-15E1;AL # CANADIAN SYLLABICS CARRIER THA
-15E2;AL # CANADIAN SYLLABICS CARRIER TTU
-15E3;AL # CANADIAN SYLLABICS CARRIER TTO
-15E4;AL # CANADIAN SYLLABICS CARRIER TTE
-15E5;AL # CANADIAN SYLLABICS CARRIER TTEE
-15E6;AL # CANADIAN SYLLABICS CARRIER TTI
-15E7;AL # CANADIAN SYLLABICS CARRIER TTA
-15E8;AL # CANADIAN SYLLABICS CARRIER PU
-15E9;AL # CANADIAN SYLLABICS CARRIER PO
-15EA;AL # CANADIAN SYLLABICS CARRIER PE
-15EB;AL # CANADIAN SYLLABICS CARRIER PEE
-15EC;AL # CANADIAN SYLLABICS CARRIER PI
-15ED;AL # CANADIAN SYLLABICS CARRIER PA
-15EE;AL # CANADIAN SYLLABICS CARRIER P
-15EF;AL # CANADIAN SYLLABICS CARRIER GU
-15F0;AL # CANADIAN SYLLABICS CARRIER GO
-15F1;AL # CANADIAN SYLLABICS CARRIER GE
-15F2;AL # CANADIAN SYLLABICS CARRIER GEE
-15F3;AL # CANADIAN SYLLABICS CARRIER GI
-15F4;AL # CANADIAN SYLLABICS CARRIER GA
-15F5;AL # CANADIAN SYLLABICS CARRIER KHU
-15F6;AL # CANADIAN SYLLABICS CARRIER KHO
-15F7;AL # CANADIAN SYLLABICS CARRIER KHE
-15F8;AL # CANADIAN SYLLABICS CARRIER KHEE
-15F9;AL # CANADIAN SYLLABICS CARRIER KHI
-15FA;AL # CANADIAN SYLLABICS CARRIER KHA
-15FB;AL # CANADIAN SYLLABICS CARRIER KKU
-15FC;AL # CANADIAN SYLLABICS CARRIER KKO
-15FD;AL # CANADIAN SYLLABICS CARRIER KKE
-15FE;AL # CANADIAN SYLLABICS CARRIER KKEE
-15FF;AL # CANADIAN SYLLABICS CARRIER KKI
-1600;AL # CANADIAN SYLLABICS CARRIER KKA
-1601;AL # CANADIAN SYLLABICS CARRIER KK
-1602;AL # CANADIAN SYLLABICS CARRIER NU
-1603;AL # CANADIAN SYLLABICS CARRIER NO
-1604;AL # CANADIAN SYLLABICS CARRIER NE
-1605;AL # CANADIAN SYLLABICS CARRIER NEE
-1606;AL # CANADIAN SYLLABICS CARRIER NI
-1607;AL # CANADIAN SYLLABICS CARRIER NA
-1608;AL # CANADIAN SYLLABICS CARRIER MU
-1609;AL # CANADIAN SYLLABICS CARRIER MO
-160A;AL # CANADIAN SYLLABICS CARRIER ME
-160B;AL # CANADIAN SYLLABICS CARRIER MEE
-160C;AL # CANADIAN SYLLABICS CARRIER MI
-160D;AL # CANADIAN SYLLABICS CARRIER MA
-160E;AL # CANADIAN SYLLABICS CARRIER YU
-160F;AL # CANADIAN SYLLABICS CARRIER YO
-1610;AL # CANADIAN SYLLABICS CARRIER YE
-1611;AL # CANADIAN SYLLABICS CARRIER YEE
-1612;AL # CANADIAN SYLLABICS CARRIER YI
-1613;AL # CANADIAN SYLLABICS CARRIER YA
-1614;AL # CANADIAN SYLLABICS CARRIER JU
-1615;AL # CANADIAN SYLLABICS SAYISI JU
-1616;AL # CANADIAN SYLLABICS CARRIER JO
-1617;AL # CANADIAN SYLLABICS CARRIER JE
-1618;AL # CANADIAN SYLLABICS CARRIER JEE
-1619;AL # CANADIAN SYLLABICS CARRIER JI
-161A;AL # CANADIAN SYLLABICS SAYISI JI
-161B;AL # CANADIAN SYLLABICS CARRIER JA
-161C;AL # CANADIAN SYLLABICS CARRIER JJU
-161D;AL # CANADIAN SYLLABICS CARRIER JJO
-161E;AL # CANADIAN SYLLABICS CARRIER JJE
-161F;AL # CANADIAN SYLLABICS CARRIER JJEE
-1620;AL # CANADIAN SYLLABICS CARRIER JJI
-1621;AL # CANADIAN SYLLABICS CARRIER JJA
-1622;AL # CANADIAN SYLLABICS CARRIER LU
-1623;AL # CANADIAN SYLLABICS CARRIER LO
-1624;AL # CANADIAN SYLLABICS CARRIER LE
-1625;AL # CANADIAN SYLLABICS CARRIER LEE
-1626;AL # CANADIAN SYLLABICS CARRIER LI
-1627;AL # CANADIAN SYLLABICS CARRIER LA
-1628;AL # CANADIAN SYLLABICS CARRIER DLU
-1629;AL # CANADIAN SYLLABICS CARRIER DLO
-162A;AL # CANADIAN SYLLABICS CARRIER DLE
-162B;AL # CANADIAN SYLLABICS CARRIER DLEE
-162C;AL # CANADIAN SYLLABICS CARRIER DLI
-162D;AL # CANADIAN SYLLABICS CARRIER DLA
-162E;AL # CANADIAN SYLLABICS CARRIER LHU
-162F;AL # CANADIAN SYLLABICS CARRIER LHO
-1630;AL # CANADIAN SYLLABICS CARRIER LHE
-1631;AL # CANADIAN SYLLABICS CARRIER LHEE
-1632;AL # CANADIAN SYLLABICS CARRIER LHI
-1633;AL # CANADIAN SYLLABICS CARRIER LHA
-1634;AL # CANADIAN SYLLABICS CARRIER TLHU
-1635;AL # CANADIAN SYLLABICS CARRIER TLHO
-1636;AL # CANADIAN SYLLABICS CARRIER TLHE
-1637;AL # CANADIAN SYLLABICS CARRIER TLHEE
-1638;AL # CANADIAN SYLLABICS CARRIER TLHI
-1639;AL # CANADIAN SYLLABICS CARRIER TLHA
-163A;AL # CANADIAN SYLLABICS CARRIER TLU
-163B;AL # CANADIAN SYLLABICS CARRIER TLO
-163C;AL # CANADIAN SYLLABICS CARRIER TLE
-163D;AL # CANADIAN SYLLABICS CARRIER TLEE
-163E;AL # CANADIAN SYLLABICS CARRIER TLI
-163F;AL # CANADIAN SYLLABICS CARRIER TLA
-1640;AL # CANADIAN SYLLABICS CARRIER ZU
-1641;AL # CANADIAN SYLLABICS CARRIER ZO
-1642;AL # CANADIAN SYLLABICS CARRIER ZE
-1643;AL # CANADIAN SYLLABICS CARRIER ZEE
-1644;AL # CANADIAN SYLLABICS CARRIER ZI
-1645;AL # CANADIAN SYLLABICS CARRIER ZA
-1646;AL # CANADIAN SYLLABICS CARRIER Z
-1647;AL # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648;AL # CANADIAN SYLLABICS CARRIER DZU
-1649;AL # CANADIAN SYLLABICS CARRIER DZO
-164A;AL # CANADIAN SYLLABICS CARRIER DZE
-164B;AL # CANADIAN SYLLABICS CARRIER DZEE
-164C;AL # CANADIAN SYLLABICS CARRIER DZI
-164D;AL # CANADIAN SYLLABICS CARRIER DZA
-164E;AL # CANADIAN SYLLABICS CARRIER SU
-164F;AL # CANADIAN SYLLABICS CARRIER SO
-1650;AL # CANADIAN SYLLABICS CARRIER SE
-1651;AL # CANADIAN SYLLABICS CARRIER SEE
-1652;AL # CANADIAN SYLLABICS CARRIER SI
-1653;AL # CANADIAN SYLLABICS CARRIER SA
-1654;AL # CANADIAN SYLLABICS CARRIER SHU
-1655;AL # CANADIAN SYLLABICS CARRIER SHO
-1656;AL # CANADIAN SYLLABICS CARRIER SHE
-1657;AL # CANADIAN SYLLABICS CARRIER SHEE
-1658;AL # CANADIAN SYLLABICS CARRIER SHI
-1659;AL # CANADIAN SYLLABICS CARRIER SHA
-165A;AL # CANADIAN SYLLABICS CARRIER SH
-165B;AL # CANADIAN SYLLABICS CARRIER TSU
-165C;AL # CANADIAN SYLLABICS CARRIER TSO
-165D;AL # CANADIAN SYLLABICS CARRIER TSE
-165E;AL # CANADIAN SYLLABICS CARRIER TSEE
-165F;AL # CANADIAN SYLLABICS CARRIER TSI
-1660;AL # CANADIAN SYLLABICS CARRIER TSA
-1661;AL # CANADIAN SYLLABICS CARRIER CHU
-1662;AL # CANADIAN SYLLABICS CARRIER CHO
-1663;AL # CANADIAN SYLLABICS CARRIER CHE
-1664;AL # CANADIAN SYLLABICS CARRIER CHEE
-1665;AL # CANADIAN SYLLABICS CARRIER CHI
-1666;AL # CANADIAN SYLLABICS CARRIER CHA
-1667;AL # CANADIAN SYLLABICS CARRIER TTSU
-1668;AL # CANADIAN SYLLABICS CARRIER TTSO
-1669;AL # CANADIAN SYLLABICS CARRIER TTSE
-166A;AL # CANADIAN SYLLABICS CARRIER TTSEE
-166B;AL # CANADIAN SYLLABICS CARRIER TTSI
-166C;AL # CANADIAN SYLLABICS CARRIER TTSA
-166D;AL # CANADIAN SYLLABICS CHI SIGN
-166E;AL # CANADIAN SYLLABICS FULL STOP
-166F;AL # CANADIAN SYLLABICS QAI
-1670;AL # CANADIAN SYLLABICS NGAI
-1671;AL # CANADIAN SYLLABICS NNGI
-1672;AL # CANADIAN SYLLABICS NNGII
-1673;AL # CANADIAN SYLLABICS NNGO
-1674;AL # CANADIAN SYLLABICS NNGOO
-1675;AL # CANADIAN SYLLABICS NNGA
-1676;AL # CANADIAN SYLLABICS NNGAA
-1677;AL # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678;AL # CANADIAN SYLLABICS WOODS-CREE THWI
-1679;AL # CANADIAN SYLLABICS WOODS-CREE THWII
-167A;AL # CANADIAN SYLLABICS WOODS-CREE THWO
-167B;AL # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C;AL # CANADIAN SYLLABICS WOODS-CREE THWA
-167D;AL # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E;AL # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F;AL # CANADIAN SYLLABICS BLACKFOOT W
-1680;BA # OGHAM SPACE MARK
-1681;AL # OGHAM LETTER BEITH
-1682;AL # OGHAM LETTER LUIS
-1683;AL # OGHAM LETTER FEARN
-1684;AL # OGHAM LETTER SAIL
-1685;AL # OGHAM LETTER NION
-1686;AL # OGHAM LETTER UATH
-1687;AL # OGHAM LETTER DAIR
-1688;AL # OGHAM LETTER TINNE
-1689;AL # OGHAM LETTER COLL
-168A;AL # OGHAM LETTER CEIRT
-168B;AL # OGHAM LETTER MUIN
-168C;AL # OGHAM LETTER GORT
-168D;AL # OGHAM LETTER NGEADAL
-168E;AL # OGHAM LETTER STRAIF
-168F;AL # OGHAM LETTER RUIS
-1690;AL # OGHAM LETTER AILM
-1691;AL # OGHAM LETTER ONN
-1692;AL # OGHAM LETTER UR
-1693;AL # OGHAM LETTER EADHADH
-1694;AL # OGHAM LETTER IODHADH
-1695;AL # OGHAM LETTER EABHADH
-1696;AL # OGHAM LETTER OR
-1697;AL # OGHAM LETTER UILLEANN
-1698;AL # OGHAM LETTER IFIN
-1699;AL # OGHAM LETTER EAMHANCHOLL
-169A;AL # OGHAM LETTER PEITH
-169B;OP # OGHAM FEATHER MARK
-169C;CL # OGHAM REVERSED FEATHER MARK
-16A0;AL # RUNIC LETTER FEHU FEOH FE F
-16A1;AL # RUNIC LETTER V
-16A2;AL # RUNIC LETTER URUZ UR U
-16A3;AL # RUNIC LETTER YR
-16A4;AL # RUNIC LETTER Y
-16A5;AL # RUNIC LETTER W
-16A6;AL # RUNIC LETTER THURISAZ THURS THORN
-16A7;AL # RUNIC LETTER ETH
-16A8;AL # RUNIC LETTER ANSUZ A
-16A9;AL # RUNIC LETTER OS O
-16AA;AL # RUNIC LETTER AC A
-16AB;AL # RUNIC LETTER AESC
-16AC;AL # RUNIC LETTER LONG-BRANCH-OSS O
-16AD;AL # RUNIC LETTER SHORT-TWIG-OSS O
-16AE;AL # RUNIC LETTER O
-16AF;AL # RUNIC LETTER OE
-16B0;AL # RUNIC LETTER ON
-16B1;AL # RUNIC LETTER RAIDO RAD REID R
-16B2;AL # RUNIC LETTER KAUNA
-16B3;AL # RUNIC LETTER CEN
-16B4;AL # RUNIC LETTER KAUN K
-16B5;AL # RUNIC LETTER G
-16B6;AL # RUNIC LETTER ENG
-16B7;AL # RUNIC LETTER GEBO GYFU G
-16B8;AL # RUNIC LETTER GAR
-16B9;AL # RUNIC LETTER WUNJO WYNN W
-16BA;AL # RUNIC LETTER HAGLAZ H
-16BB;AL # RUNIC LETTER HAEGL H
-16BC;AL # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD;AL # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE;AL # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF;AL # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0;AL # RUNIC LETTER DOTTED-N
-16C1;AL # RUNIC LETTER ISAZ IS ISS I
-16C2;AL # RUNIC LETTER E
-16C3;AL # RUNIC LETTER JERAN J
-16C4;AL # RUNIC LETTER GER
-16C5;AL # RUNIC LETTER LONG-BRANCH-AR AE
-16C6;AL # RUNIC LETTER SHORT-TWIG-AR A
-16C7;AL # RUNIC LETTER IWAZ EOH
-16C8;AL # RUNIC LETTER PERTHO PEORTH P
-16C9;AL # RUNIC LETTER ALGIZ EOLHX
-16CA;AL # RUNIC LETTER SOWILO S
-16CB;AL # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16CC;AL # RUNIC LETTER SHORT-TWIG-SOL S
-16CD;AL # RUNIC LETTER C
-16CE;AL # RUNIC LETTER Z
-16CF;AL # RUNIC LETTER TIWAZ TIR TYR T
-16D0;AL # RUNIC LETTER SHORT-TWIG-TYR T
-16D1;AL # RUNIC LETTER D
-16D2;AL # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3;AL # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4;AL # RUNIC LETTER DOTTED-P
-16D5;AL # RUNIC LETTER OPEN-P
-16D6;AL # RUNIC LETTER EHWAZ EH E
-16D7;AL # RUNIC LETTER MANNAZ MAN M
-16D8;AL # RUNIC LETTER LONG-BRANCH-MADR M
-16D9;AL # RUNIC LETTER SHORT-TWIG-MADR M
-16DA;AL # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB;AL # RUNIC LETTER DOTTED-L
-16DC;AL # RUNIC LETTER INGWAZ
-16DD;AL # RUNIC LETTER ING
-16DE;AL # RUNIC LETTER DAGAZ DAEG D
-16DF;AL # RUNIC LETTER OTHALAN ETHEL O
-16E0;AL # RUNIC LETTER EAR
-16E1;AL # RUNIC LETTER IOR
-16E2;AL # RUNIC LETTER CWEORTH
-16E3;AL # RUNIC LETTER CALC
-16E4;AL # RUNIC LETTER CEALC
-16E5;AL # RUNIC LETTER STAN
-16E6;AL # RUNIC LETTER LONG-BRANCH-YR
-16E7;AL # RUNIC LETTER SHORT-TWIG-YR
-16E8;AL # RUNIC LETTER ICELANDIC-YR
-16E9;AL # RUNIC LETTER Q
-16EA;AL # RUNIC LETTER X
-16EB;BA # RUNIC SINGLE PUNCTUATION
-16EC;BA # RUNIC MULTIPLE PUNCTUATION
-16ED;BA # RUNIC CROSS PUNCTUATION
-16EE;AL # RUNIC ARLAUG SYMBOL
-16EF;AL # RUNIC TVIMADUR SYMBOL
-16F0;AL # RUNIC BELGTHOR SYMBOL
-1700;AL # TAGALOG LETTER A
-1701;AL # TAGALOG LETTER I
-1702;AL # TAGALOG LETTER U
-1703;AL # TAGALOG LETTER KA
-1704;AL # TAGALOG LETTER GA
-1705;AL # TAGALOG LETTER NGA
-1706;AL # TAGALOG LETTER TA
-1707;AL # TAGALOG LETTER DA
-1708;AL # TAGALOG LETTER NA
-1709;AL # TAGALOG LETTER PA
-170A;AL # TAGALOG LETTER BA
-170B;AL # TAGALOG LETTER MA
-170C;AL # TAGALOG LETTER YA
-170E;AL # TAGALOG LETTER LA
-170F;AL # TAGALOG LETTER WA
-1710;AL # TAGALOG LETTER SA
-1711;AL # TAGALOG LETTER HA
-1712;CM # TAGALOG VOWEL SIGN I
-1713;CM # TAGALOG VOWEL SIGN U
-1714;CM # TAGALOG SIGN VIRAMA
-1720;AL # HANUNOO LETTER A
-1721;AL # HANUNOO LETTER I
-1722;AL # HANUNOO LETTER U
-1723;AL # HANUNOO LETTER KA
-1724;AL # HANUNOO LETTER GA
-1725;AL # HANUNOO LETTER NGA
-1726;AL # HANUNOO LETTER TA
-1727;AL # HANUNOO LETTER DA
-1728;AL # HANUNOO LETTER NA
-1729;AL # HANUNOO LETTER PA
-172A;AL # HANUNOO LETTER BA
-172B;AL # HANUNOO LETTER MA
-172C;AL # HANUNOO LETTER YA
-172D;AL # HANUNOO LETTER RA
-172E;AL # HANUNOO LETTER LA
-172F;AL # HANUNOO LETTER WA
-1730;AL # HANUNOO LETTER SA
-1731;AL # HANUNOO LETTER HA
-1732;CM # HANUNOO VOWEL SIGN I
-1733;CM # HANUNOO VOWEL SIGN U
-1734;CM # HANUNOO SIGN PAMUDPOD
-1735;BA # PHILIPPINE SINGLE PUNCTUATION
-1736;BA # PHILIPPINE DOUBLE PUNCTUATION
-1740;AL # BUHID LETTER A
-1741;AL # BUHID LETTER I
-1742;AL # BUHID LETTER U
-1743;AL # BUHID LETTER KA
-1744;AL # BUHID LETTER GA
-1745;AL # BUHID LETTER NGA
-1746;AL # BUHID LETTER TA
-1747;AL # BUHID LETTER DA
-1748;AL # BUHID LETTER NA
-1749;AL # BUHID LETTER PA
-174A;AL # BUHID LETTER BA
-174B;AL # BUHID LETTER MA
-174C;AL # BUHID LETTER YA
-174D;AL # BUHID LETTER RA
-174E;AL # BUHID LETTER LA
-174F;AL # BUHID LETTER WA
-1750;AL # BUHID LETTER SA
-1751;AL # BUHID LETTER HA
-1752;CM # BUHID VOWEL SIGN I
-1753;CM # BUHID VOWEL SIGN U
-1760;AL # TAGBANWA LETTER A
-1761;AL # TAGBANWA LETTER I
-1762;AL # TAGBANWA LETTER U
-1763;AL # TAGBANWA LETTER KA
-1764;AL # TAGBANWA LETTER GA
-1765;AL # TAGBANWA LETTER NGA
-1766;AL # TAGBANWA LETTER TA
-1767;AL # TAGBANWA LETTER DA
-1768;AL # TAGBANWA LETTER NA
-1769;AL # TAGBANWA LETTER PA
-176A;AL # TAGBANWA LETTER BA
-176B;AL # TAGBANWA LETTER MA
-176C;AL # TAGBANWA LETTER YA
-176E;AL # TAGBANWA LETTER LA
-176F;AL # TAGBANWA LETTER WA
-1770;AL # TAGBANWA LETTER SA
-1772;CM # TAGBANWA VOWEL SIGN I
-1773;CM # TAGBANWA VOWEL SIGN U
-1780;SA # KHMER LETTER KA
-1781;SA # KHMER LETTER KHA
-1782;SA # KHMER LETTER KO
-1783;SA # KHMER LETTER KHO
-1784;SA # KHMER LETTER NGO
-1785;SA # KHMER LETTER CA
-1786;SA # KHMER LETTER CHA
-1787;SA # KHMER LETTER CO
-1788;SA # KHMER LETTER CHO
-1789;SA # KHMER LETTER NYO
-178A;SA # KHMER LETTER DA
-178B;SA # KHMER LETTER TTHA
-178C;SA # KHMER LETTER DO
-178D;SA # KHMER LETTER TTHO
-178E;SA # KHMER LETTER NNO
-178F;SA # KHMER LETTER TA
-1790;SA # KHMER LETTER THA
-1791;SA # KHMER LETTER TO
-1792;SA # KHMER LETTER THO
-1793;SA # KHMER LETTER NO
-1794;SA # KHMER LETTER BA
-1795;SA # KHMER LETTER PHA
-1796;SA # KHMER LETTER PO
-1797;SA # KHMER LETTER PHO
-1798;SA # KHMER LETTER MO
-1799;SA # KHMER LETTER YO
-179A;SA # KHMER LETTER RO
-179B;SA # KHMER LETTER LO
-179C;SA # KHMER LETTER VO
-179D;SA # KHMER LETTER SHA
-179E;SA # KHMER LETTER SSO
-179F;SA # KHMER LETTER SA
-17A0;SA # KHMER LETTER HA
-17A1;SA # KHMER LETTER LA
-17A2;SA # KHMER LETTER QA
-17A3;SA # KHMER INDEPENDENT VOWEL QAQ
-17A4;SA # KHMER INDEPENDENT VOWEL QAA
-17A5;SA # KHMER INDEPENDENT VOWEL QI
-17A6;SA # KHMER INDEPENDENT VOWEL QII
-17A7;SA # KHMER INDEPENDENT VOWEL QU
-17A8;SA # KHMER INDEPENDENT VOWEL QUK
-17A9;SA # KHMER INDEPENDENT VOWEL QUU
-17AA;SA # KHMER INDEPENDENT VOWEL QUUV
-17AB;SA # KHMER INDEPENDENT VOWEL RY
-17AC;SA # KHMER INDEPENDENT VOWEL RYY
-17AD;SA # KHMER INDEPENDENT VOWEL LY
-17AE;SA # KHMER INDEPENDENT VOWEL LYY
-17AF;SA # KHMER INDEPENDENT VOWEL QE
-17B0;SA # KHMER INDEPENDENT VOWEL QAI
-17B1;SA # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2;SA # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3;SA # KHMER INDEPENDENT VOWEL QAU
-17B4;SA # KHMER VOWEL INHERENT AQ
-17B5;SA # KHMER VOWEL INHERENT AA
-17B6;SA # KHMER VOWEL SIGN AA
-17B7;SA # KHMER VOWEL SIGN I
-17B8;SA # KHMER VOWEL SIGN II
-17B9;SA # KHMER VOWEL SIGN Y
-17BA;SA # KHMER VOWEL SIGN YY
-17BB;SA # KHMER VOWEL SIGN U
-17BC;SA # KHMER VOWEL SIGN UU
-17BD;SA # KHMER VOWEL SIGN UA
-17BE;SA # KHMER VOWEL SIGN OE
-17BF;SA # KHMER VOWEL SIGN YA
-17C0;SA # KHMER VOWEL SIGN IE
-17C1;SA # KHMER VOWEL SIGN E
-17C2;SA # KHMER VOWEL SIGN AE
-17C3;SA # KHMER VOWEL SIGN AI
-17C4;SA # KHMER VOWEL SIGN OO
-17C5;SA # KHMER VOWEL SIGN AU
-17C6;SA # KHMER SIGN NIKAHIT
-17C7;SA # KHMER SIGN REAHMUK
-17C8;SA # KHMER SIGN YUUKALEAPINTU
-17C9;SA # KHMER SIGN MUUSIKATOAN
-17CA;SA # KHMER SIGN TRIISAP
-17CB;SA # KHMER SIGN BANTOC
-17CC;SA # KHMER SIGN ROBAT
-17CD;SA # KHMER SIGN TOANDAKHIAT
-17CE;SA # KHMER SIGN KAKABAT
-17CF;SA # KHMER SIGN AHSDA
-17D0;SA # KHMER SIGN SAMYOK SANNYA
-17D1;SA # KHMER SIGN VIRIAM
-17D2;SA # KHMER SIGN COENG
-17D3;SA # KHMER SIGN BATHAMASAT
-17D4;BA # KHMER SIGN KHAN
-17D5;BA # KHMER SIGN BARIYOOSAN
-17D6;NS # KHMER SIGN CAMNUC PII KUUH
-17D7;SA # KHMER SIGN LEK TOO
-17D8;BA # KHMER SIGN BEYYAL
-17D9;AL # KHMER SIGN PHNAEK MUAN
-17DA;BA # KHMER SIGN KOOMUUT
-17DB;PR # KHMER CURRENCY SYMBOL RIEL
-17DC;SA # KHMER SIGN AVAKRAHASANYA
-17DD;SA # KHMER SIGN ATTHACAN
-17E0;NU # KHMER DIGIT ZERO
-17E1;NU # KHMER DIGIT ONE
-17E2;NU # KHMER DIGIT TWO
-17E3;NU # KHMER DIGIT THREE
-17E4;NU # KHMER DIGIT FOUR
-17E5;NU # KHMER DIGIT FIVE
-17E6;NU # KHMER DIGIT SIX
-17E7;NU # KHMER DIGIT SEVEN
-17E8;NU # KHMER DIGIT EIGHT
-17E9;NU # KHMER DIGIT NINE
-17F0;AL # KHMER SYMBOL LEK ATTAK SON
-17F1;AL # KHMER SYMBOL LEK ATTAK MUOY
-17F2;AL # KHMER SYMBOL LEK ATTAK PII
-17F3;AL # KHMER SYMBOL LEK ATTAK BEI
-17F4;AL # KHMER SYMBOL LEK ATTAK BUON
-17F5;AL # KHMER SYMBOL LEK ATTAK PRAM
-17F6;AL # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-17F7;AL # KHMER SYMBOL LEK ATTAK PRAM-PII
-17F8;AL # KHMER SYMBOL LEK ATTAK PRAM-BEI
-17F9;AL # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1800;AL # MONGOLIAN BIRGA
-1801;AL # MONGOLIAN ELLIPSIS
-1802;EX # MONGOLIAN COMMA
-1803;EX # MONGOLIAN FULL STOP
-1804;BA # MONGOLIAN COLON
-1805;BA # MONGOLIAN FOUR DOTS
-1806;BB # MONGOLIAN TODO SOFT HYPHEN
-1807;AL # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808;EX # MONGOLIAN MANCHU COMMA
-1809;EX # MONGOLIAN MANCHU FULL STOP
-180A;AL # MONGOLIAN NIRUGU
-180B;CM # MONGOLIAN FREE VARIATION SELECTOR ONE
-180C;CM # MONGOLIAN FREE VARIATION SELECTOR TWO
-180D;CM # MONGOLIAN FREE VARIATION SELECTOR THREE
-180E;GL # MONGOLIAN VOWEL SEPARATOR
-1810;NU # MONGOLIAN DIGIT ZERO
-1811;NU # MONGOLIAN DIGIT ONE
-1812;NU # MONGOLIAN DIGIT TWO
-1813;NU # MONGOLIAN DIGIT THREE
-1814;NU # MONGOLIAN DIGIT FOUR
-1815;NU # MONGOLIAN DIGIT FIVE
-1816;NU # MONGOLIAN DIGIT SIX
-1817;NU # MONGOLIAN DIGIT SEVEN
-1818;NU # MONGOLIAN DIGIT EIGHT
-1819;NU # MONGOLIAN DIGIT NINE
-1820;AL # MONGOLIAN LETTER A
-1821;AL # MONGOLIAN LETTER E
-1822;AL # MONGOLIAN LETTER I
-1823;AL # MONGOLIAN LETTER O
-1824;AL # MONGOLIAN LETTER U
-1825;AL # MONGOLIAN LETTER OE
-1826;AL # MONGOLIAN LETTER UE
-1827;AL # MONGOLIAN LETTER EE
-1828;AL # MONGOLIAN LETTER NA
-1829;AL # MONGOLIAN LETTER ANG
-182A;AL # MONGOLIAN LETTER BA
-182B;AL # MONGOLIAN LETTER PA
-182C;AL # MONGOLIAN LETTER QA
-182D;AL # MONGOLIAN LETTER GA
-182E;AL # MONGOLIAN LETTER MA
-182F;AL # MONGOLIAN LETTER LA
-1830;AL # MONGOLIAN LETTER SA
-1831;AL # MONGOLIAN LETTER SHA
-1832;AL # MONGOLIAN LETTER TA
-1833;AL # MONGOLIAN LETTER DA
-1834;AL # MONGOLIAN LETTER CHA
-1835;AL # MONGOLIAN LETTER JA
-1836;AL # MONGOLIAN LETTER YA
-1837;AL # MONGOLIAN LETTER RA
-1838;AL # MONGOLIAN LETTER WA
-1839;AL # MONGOLIAN LETTER FA
-183A;AL # MONGOLIAN LETTER KA
-183B;AL # MONGOLIAN LETTER KHA
-183C;AL # MONGOLIAN LETTER TSA
-183D;AL # MONGOLIAN LETTER ZA
-183E;AL # MONGOLIAN LETTER HAA
-183F;AL # MONGOLIAN LETTER ZRA
-1840;AL # MONGOLIAN LETTER LHA
-1841;AL # MONGOLIAN LETTER ZHI
-1842;AL # MONGOLIAN LETTER CHI
-1843;AL # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844;AL # MONGOLIAN LETTER TODO E
-1845;AL # MONGOLIAN LETTER TODO I
-1846;AL # MONGOLIAN LETTER TODO O
-1847;AL # MONGOLIAN LETTER TODO U
-1848;AL # MONGOLIAN LETTER TODO OE
-1849;AL # MONGOLIAN LETTER TODO UE
-184A;AL # MONGOLIAN LETTER TODO ANG
-184B;AL # MONGOLIAN LETTER TODO BA
-184C;AL # MONGOLIAN LETTER TODO PA
-184D;AL # MONGOLIAN LETTER TODO QA
-184E;AL # MONGOLIAN LETTER TODO GA
-184F;AL # MONGOLIAN LETTER TODO MA
-1850;AL # MONGOLIAN LETTER TODO TA
-1851;AL # MONGOLIAN LETTER TODO DA
-1852;AL # MONGOLIAN LETTER TODO CHA
-1853;AL # MONGOLIAN LETTER TODO JA
-1854;AL # MONGOLIAN LETTER TODO TSA
-1855;AL # MONGOLIAN LETTER TODO YA
-1856;AL # MONGOLIAN LETTER TODO WA
-1857;AL # MONGOLIAN LETTER TODO KA
-1858;AL # MONGOLIAN LETTER TODO GAA
-1859;AL # MONGOLIAN LETTER TODO HAA
-185A;AL # MONGOLIAN LETTER TODO JIA
-185B;AL # MONGOLIAN LETTER TODO NIA
-185C;AL # MONGOLIAN LETTER TODO DZA
-185D;AL # MONGOLIAN LETTER SIBE E
-185E;AL # MONGOLIAN LETTER SIBE I
-185F;AL # MONGOLIAN LETTER SIBE IY
-1860;AL # MONGOLIAN LETTER SIBE UE
-1861;AL # MONGOLIAN LETTER SIBE U
-1862;AL # MONGOLIAN LETTER SIBE ANG
-1863;AL # MONGOLIAN LETTER SIBE KA
-1864;AL # MONGOLIAN LETTER SIBE GA
-1865;AL # MONGOLIAN LETTER SIBE HA
-1866;AL # MONGOLIAN LETTER SIBE PA
-1867;AL # MONGOLIAN LETTER SIBE SHA
-1868;AL # MONGOLIAN LETTER SIBE TA
-1869;AL # MONGOLIAN LETTER SIBE DA
-186A;AL # MONGOLIAN LETTER SIBE JA
-186B;AL # MONGOLIAN LETTER SIBE FA
-186C;AL # MONGOLIAN LETTER SIBE GAA
-186D;AL # MONGOLIAN LETTER SIBE HAA
-186E;AL # MONGOLIAN LETTER SIBE TSA
-186F;AL # MONGOLIAN LETTER SIBE ZA
-1870;AL # MONGOLIAN LETTER SIBE RAA
-1871;AL # MONGOLIAN LETTER SIBE CHA
-1872;AL # MONGOLIAN LETTER SIBE ZHA
-1873;AL # MONGOLIAN LETTER MANCHU I
-1874;AL # MONGOLIAN LETTER MANCHU KA
-1875;AL # MONGOLIAN LETTER MANCHU RA
-1876;AL # MONGOLIAN LETTER MANCHU FA
-1877;AL # MONGOLIAN LETTER MANCHU ZHA
-1880;AL # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881;AL # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882;AL # MONGOLIAN LETTER ALI GALI DAMARU
-1883;AL # MONGOLIAN LETTER ALI GALI UBADAMA
-1884;AL # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885;AL # MONGOLIAN LETTER ALI GALI BALUDA
-1886;AL # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1887;AL # MONGOLIAN LETTER ALI GALI A
-1888;AL # MONGOLIAN LETTER ALI GALI I
-1889;AL # MONGOLIAN LETTER ALI GALI KA
-188A;AL # MONGOLIAN LETTER ALI GALI NGA
-188B;AL # MONGOLIAN LETTER ALI GALI CA
-188C;AL # MONGOLIAN LETTER ALI GALI TTA
-188D;AL # MONGOLIAN LETTER ALI GALI TTHA
-188E;AL # MONGOLIAN LETTER ALI GALI DDA
-188F;AL # MONGOLIAN LETTER ALI GALI NNA
-1890;AL # MONGOLIAN LETTER ALI GALI TA
-1891;AL # MONGOLIAN LETTER ALI GALI DA
-1892;AL # MONGOLIAN LETTER ALI GALI PA
-1893;AL # MONGOLIAN LETTER ALI GALI PHA
-1894;AL # MONGOLIAN LETTER ALI GALI SSA
-1895;AL # MONGOLIAN LETTER ALI GALI ZHA
-1896;AL # MONGOLIAN LETTER ALI GALI ZA
-1897;AL # MONGOLIAN LETTER ALI GALI AH
-1898;AL # MONGOLIAN LETTER TODO ALI GALI TA
-1899;AL # MONGOLIAN LETTER TODO ALI GALI ZHA
-189A;AL # MONGOLIAN LETTER MANCHU ALI GALI GHA
-189B;AL # MONGOLIAN LETTER MANCHU ALI GALI NGA
-189C;AL # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D;AL # MONGOLIAN LETTER MANCHU ALI GALI JHA
-189E;AL # MONGOLIAN LETTER MANCHU ALI GALI TTA
-189F;AL # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-18A0;AL # MONGOLIAN LETTER MANCHU ALI GALI TA
-18A1;AL # MONGOLIAN LETTER MANCHU ALI GALI DHA
-18A2;AL # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A3;AL # MONGOLIAN LETTER MANCHU ALI GALI CYA
-18A4;AL # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5;AL # MONGOLIAN LETTER MANCHU ALI GALI ZA
-18A6;AL # MONGOLIAN LETTER ALI GALI HALF U
-18A7;AL # MONGOLIAN LETTER ALI GALI HALF YA
-18A8;AL # MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9;CM # MONGOLIAN LETTER ALI GALI DAGALGA
-18AA;AL # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18B0;AL # CANADIAN SYLLABICS OY
-18B1;AL # CANADIAN SYLLABICS AY
-18B2;AL # CANADIAN SYLLABICS AAY
-18B3;AL # CANADIAN SYLLABICS WAY
-18B4;AL # CANADIAN SYLLABICS POY
-18B5;AL # CANADIAN SYLLABICS PAY
-18B6;AL # CANADIAN SYLLABICS PWOY
-18B7;AL # CANADIAN SYLLABICS TAY
-18B8;AL # CANADIAN SYLLABICS KAY
-18B9;AL # CANADIAN SYLLABICS KWAY
-18BA;AL # CANADIAN SYLLABICS MAY
-18BB;AL # CANADIAN SYLLABICS NOY
-18BC;AL # CANADIAN SYLLABICS NAY
-18BD;AL # CANADIAN SYLLABICS LAY
-18BE;AL # CANADIAN SYLLABICS SOY
-18BF;AL # CANADIAN SYLLABICS SAY
-18C0;AL # CANADIAN SYLLABICS SHOY
-18C1;AL # CANADIAN SYLLABICS SHAY
-18C2;AL # CANADIAN SYLLABICS SHWOY
-18C3;AL # CANADIAN SYLLABICS YOY
-18C4;AL # CANADIAN SYLLABICS YAY
-18C5;AL # CANADIAN SYLLABICS RAY
-18C6;AL # CANADIAN SYLLABICS NWI
-18C7;AL # CANADIAN SYLLABICS OJIBWAY NWI
-18C8;AL # CANADIAN SYLLABICS NWII
-18C9;AL # CANADIAN SYLLABICS OJIBWAY NWII
-18CA;AL # CANADIAN SYLLABICS NWO
-18CB;AL # CANADIAN SYLLABICS OJIBWAY NWO
-18CC;AL # CANADIAN SYLLABICS NWOO
-18CD;AL # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE;AL # CANADIAN SYLLABICS RWEE
-18CF;AL # CANADIAN SYLLABICS RWI
-18D0;AL # CANADIAN SYLLABICS RWII
-18D1;AL # CANADIAN SYLLABICS RWO
-18D2;AL # CANADIAN SYLLABICS RWOO
-18D3;AL # CANADIAN SYLLABICS RWA
-18D4;AL # CANADIAN SYLLABICS OJIBWAY P
-18D5;AL # CANADIAN SYLLABICS OJIBWAY T
-18D6;AL # CANADIAN SYLLABICS OJIBWAY K
-18D7;AL # CANADIAN SYLLABICS OJIBWAY C
-18D8;AL # CANADIAN SYLLABICS OJIBWAY M
-18D9;AL # CANADIAN SYLLABICS OJIBWAY N
-18DA;AL # CANADIAN SYLLABICS OJIBWAY S
-18DB;AL # CANADIAN SYLLABICS OJIBWAY SH
-18DC;AL # CANADIAN SYLLABICS EASTERN W
-18DD;AL # CANADIAN SYLLABICS WESTERN W
-18DE;AL # CANADIAN SYLLABICS FINAL SMALL RING
-18DF;AL # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0;AL # CANADIAN SYLLABICS R-CREE RWE
-18E1;AL # CANADIAN SYLLABICS WEST-CREE LOO
-18E2;AL # CANADIAN SYLLABICS WEST-CREE LAA
-18E3;AL # CANADIAN SYLLABICS THWE
-18E4;AL # CANADIAN SYLLABICS THWA
-18E5;AL # CANADIAN SYLLABICS TTHWE
-18E6;AL # CANADIAN SYLLABICS TTHOO
-18E7;AL # CANADIAN SYLLABICS TTHAA
-18E8;AL # CANADIAN SYLLABICS TLHWE
-18E9;AL # CANADIAN SYLLABICS TLHOO
-18EA;AL # CANADIAN SYLLABICS SAYISI SHWE
-18EB;AL # CANADIAN SYLLABICS SAYISI SHOO
-18EC;AL # CANADIAN SYLLABICS SAYISI HOO
-18ED;AL # CANADIAN SYLLABICS CARRIER GWU
-18EE;AL # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF;AL # CANADIAN SYLLABICS CARRIER GAA
-18F0;AL # CANADIAN SYLLABICS CARRIER GWA
-18F1;AL # CANADIAN SYLLABICS SAYISI JUU
-18F2;AL # CANADIAN SYLLABICS CARRIER JWA
-18F3;AL # CANADIAN SYLLABICS BEAVER DENE L
-18F4;AL # CANADIAN SYLLABICS BEAVER DENE R
-18F5;AL # CANADIAN SYLLABICS CARRIER DENTAL S
-1900;AL # LIMBU VOWEL-CARRIER LETTER
-1901;AL # LIMBU LETTER KA
-1902;AL # LIMBU LETTER KHA
-1903;AL # LIMBU LETTER GA
-1904;AL # LIMBU LETTER GHA
-1905;AL # LIMBU LETTER NGA
-1906;AL # LIMBU LETTER CA
-1907;AL # LIMBU LETTER CHA
-1908;AL # LIMBU LETTER JA
-1909;AL # LIMBU LETTER JHA
-190A;AL # LIMBU LETTER YAN
-190B;AL # LIMBU LETTER TA
-190C;AL # LIMBU LETTER THA
-190D;AL # LIMBU LETTER DA
-190E;AL # LIMBU LETTER DHA
-190F;AL # LIMBU LETTER NA
-1910;AL # LIMBU LETTER PA
-1911;AL # LIMBU LETTER PHA
-1912;AL # LIMBU LETTER BA
-1913;AL # LIMBU LETTER BHA
-1914;AL # LIMBU LETTER MA
-1915;AL # LIMBU LETTER YA
-1916;AL # LIMBU LETTER RA
-1917;AL # LIMBU LETTER LA
-1918;AL # LIMBU LETTER WA
-1919;AL # LIMBU LETTER SHA
-191A;AL # LIMBU LETTER SSA
-191B;AL # LIMBU LETTER SA
-191C;AL # LIMBU LETTER HA
-1920;CM # LIMBU VOWEL SIGN A
-1921;CM # LIMBU VOWEL SIGN I
-1922;CM # LIMBU VOWEL SIGN U
-1923;CM # LIMBU VOWEL SIGN EE
-1924;CM # LIMBU VOWEL SIGN AI
-1925;CM # LIMBU VOWEL SIGN OO
-1926;CM # LIMBU VOWEL SIGN AU
-1927;CM # LIMBU VOWEL SIGN E
-1928;CM # LIMBU VOWEL SIGN O
-1929;CM # LIMBU SUBJOINED LETTER YA
-192A;CM # LIMBU SUBJOINED LETTER RA
-192B;CM # LIMBU SUBJOINED LETTER WA
-1930;CM # LIMBU SMALL LETTER KA
-1931;CM # LIMBU SMALL LETTER NGA
-1932;CM # LIMBU SMALL LETTER ANUSVARA
-1933;CM # LIMBU SMALL LETTER TA
-1934;CM # LIMBU SMALL LETTER NA
-1935;CM # LIMBU SMALL LETTER PA
-1936;CM # LIMBU SMALL LETTER MA
-1937;CM # LIMBU SMALL LETTER RA
-1938;CM # LIMBU SMALL LETTER LA
-1939;CM # LIMBU SIGN MUKPHRENG
-193A;CM # LIMBU SIGN KEMPHRENG
-193B;CM # LIMBU SIGN SA-I
-1940;AL # LIMBU SIGN LOO
-1944;EX # LIMBU EXCLAMATION MARK
-1945;EX # LIMBU QUESTION MARK
-1946;NU # LIMBU DIGIT ZERO
-1947;NU # LIMBU DIGIT ONE
-1948;NU # LIMBU DIGIT TWO
-1949;NU # LIMBU DIGIT THREE
-194A;NU # LIMBU DIGIT FOUR
-194B;NU # LIMBU DIGIT FIVE
-194C;NU # LIMBU DIGIT SIX
-194D;NU # LIMBU DIGIT SEVEN
-194E;NU # LIMBU DIGIT EIGHT
-194F;NU # LIMBU DIGIT NINE
-1950;SA # TAI LE LETTER KA
-1951;SA # TAI LE LETTER XA
-1952;SA # TAI LE LETTER NGA
-1953;SA # TAI LE LETTER TSA
-1954;SA # TAI LE LETTER SA
-1955;SA # TAI LE LETTER YA
-1956;SA # TAI LE LETTER TA
-1957;SA # TAI LE LETTER THA
-1958;SA # TAI LE LETTER LA
-1959;SA # TAI LE LETTER PA
-195A;SA # TAI LE LETTER PHA
-195B;SA # TAI LE LETTER MA
-195C;SA # TAI LE LETTER FA
-195D;SA # TAI LE LETTER VA
-195E;SA # TAI LE LETTER HA
-195F;SA # TAI LE LETTER QA
-1960;SA # TAI LE LETTER KHA
-1961;SA # TAI LE LETTER TSHA
-1962;SA # TAI LE LETTER NA
-1963;SA # TAI LE LETTER A
-1964;SA # TAI LE LETTER I
-1965;SA # TAI LE LETTER EE
-1966;SA # TAI LE LETTER EH
-1967;SA # TAI LE LETTER U
-1968;SA # TAI LE LETTER OO
-1969;SA # TAI LE LETTER O
-196A;SA # TAI LE LETTER UE
-196B;SA # TAI LE LETTER E
-196C;SA # TAI LE LETTER AUE
-196D;SA # TAI LE LETTER AI
-1970;SA # TAI LE LETTER TONE-2
-1971;SA # TAI LE LETTER TONE-3
-1972;SA # TAI LE LETTER TONE-4
-1973;SA # TAI LE LETTER TONE-5
-1974;SA # TAI LE LETTER TONE-6
-1980;SA # NEW TAI LUE LETTER HIGH QA
-1981;SA # NEW TAI LUE LETTER LOW QA
-1982;SA # NEW TAI LUE LETTER HIGH KA
-1983;SA # NEW TAI LUE LETTER HIGH XA
-1984;SA # NEW TAI LUE LETTER HIGH NGA
-1985;SA # NEW TAI LUE LETTER LOW KA
-1986;SA # NEW TAI LUE LETTER LOW XA
-1987;SA # NEW TAI LUE LETTER LOW NGA
-1988;SA # NEW TAI LUE LETTER HIGH TSA
-1989;SA # NEW TAI LUE LETTER HIGH SA
-198A;SA # NEW TAI LUE LETTER HIGH YA
-198B;SA # NEW TAI LUE LETTER LOW TSA
-198C;SA # NEW TAI LUE LETTER LOW SA
-198D;SA # NEW TAI LUE LETTER LOW YA
-198E;SA # NEW TAI LUE LETTER HIGH TA
-198F;SA # NEW TAI LUE LETTER HIGH THA
-1990;SA # NEW TAI LUE LETTER HIGH NA
-1991;SA # NEW TAI LUE LETTER LOW TA
-1992;SA # NEW TAI LUE LETTER LOW THA
-1993;SA # NEW TAI LUE LETTER LOW NA
-1994;SA # NEW TAI LUE LETTER HIGH PA
-1995;SA # NEW TAI LUE LETTER HIGH PHA
-1996;SA # NEW TAI LUE LETTER HIGH MA
-1997;SA # NEW TAI LUE LETTER LOW PA
-1998;SA # NEW TAI LUE LETTER LOW PHA
-1999;SA # NEW TAI LUE LETTER LOW MA
-199A;SA # NEW TAI LUE LETTER HIGH FA
-199B;SA # NEW TAI LUE LETTER HIGH VA
-199C;SA # NEW TAI LUE LETTER HIGH LA
-199D;SA # NEW TAI LUE LETTER LOW FA
-199E;SA # NEW TAI LUE LETTER LOW VA
-199F;SA # NEW TAI LUE LETTER LOW LA
-19A0;SA # NEW TAI LUE LETTER HIGH HA
-19A1;SA # NEW TAI LUE LETTER HIGH DA
-19A2;SA # NEW TAI LUE LETTER HIGH BA
-19A3;SA # NEW TAI LUE LETTER LOW HA
-19A4;SA # NEW TAI LUE LETTER LOW DA
-19A5;SA # NEW TAI LUE LETTER LOW BA
-19A6;SA # NEW TAI LUE LETTER HIGH KVA
-19A7;SA # NEW TAI LUE LETTER HIGH XVA
-19A8;SA # NEW TAI LUE LETTER LOW KVA
-19A9;SA # NEW TAI LUE LETTER LOW XVA
-19AA;SA # NEW TAI LUE LETTER HIGH SUA
-19AB;SA # NEW TAI LUE LETTER LOW SUA
-19B0;SA # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1;SA # NEW TAI LUE VOWEL SIGN AA
-19B2;SA # NEW TAI LUE VOWEL SIGN II
-19B3;SA # NEW TAI LUE VOWEL SIGN U
-19B4;SA # NEW TAI LUE VOWEL SIGN UU
-19B5;SA # NEW TAI LUE VOWEL SIGN E
-19B6;SA # NEW TAI LUE VOWEL SIGN AE
-19B7;SA # NEW TAI LUE VOWEL SIGN O
-19B8;SA # NEW TAI LUE VOWEL SIGN OA
-19B9;SA # NEW TAI LUE VOWEL SIGN UE
-19BA;SA # NEW TAI LUE VOWEL SIGN AY
-19BB;SA # NEW TAI LUE VOWEL SIGN AAY
-19BC;SA # NEW TAI LUE VOWEL SIGN UY
-19BD;SA # NEW TAI LUE VOWEL SIGN OY
-19BE;SA # NEW TAI LUE VOWEL SIGN OAY
-19BF;SA # NEW TAI LUE VOWEL SIGN UEY
-19C0;SA # NEW TAI LUE VOWEL SIGN IY
-19C1;SA # NEW TAI LUE LETTER FINAL V
-19C2;SA # NEW TAI LUE LETTER FINAL NG
-19C3;SA # NEW TAI LUE LETTER FINAL N
-19C4;SA # NEW TAI LUE LETTER FINAL M
-19C5;SA # NEW TAI LUE LETTER FINAL K
-19C6;SA # NEW TAI LUE LETTER FINAL D
-19C7;SA # NEW TAI LUE LETTER FINAL B
-19C8;SA # NEW TAI LUE TONE MARK-1
-19C9;SA # NEW TAI LUE TONE MARK-2
-19D0;NU # NEW TAI LUE DIGIT ZERO
-19D1;NU # NEW TAI LUE DIGIT ONE
-19D2;NU # NEW TAI LUE DIGIT TWO
-19D3;NU # NEW TAI LUE DIGIT THREE
-19D4;NU # NEW TAI LUE DIGIT FOUR
-19D5;NU # NEW TAI LUE DIGIT FIVE
-19D6;NU # NEW TAI LUE DIGIT SIX
-19D7;NU # NEW TAI LUE DIGIT SEVEN
-19D8;NU # NEW TAI LUE DIGIT EIGHT
-19D9;NU # NEW TAI LUE DIGIT NINE
-19DA;SA # NEW TAI LUE THAM DIGIT ONE
-19DE;SA # NEW TAI LUE SIGN LAE
-19DF;SA # NEW TAI LUE SIGN LAEV
-19E0;AL # KHMER SYMBOL PATHAMASAT
-19E1;AL # KHMER SYMBOL MUOY KOET
-19E2;AL # KHMER SYMBOL PII KOET
-19E3;AL # KHMER SYMBOL BEI KOET
-19E4;AL # KHMER SYMBOL BUON KOET
-19E5;AL # KHMER SYMBOL PRAM KOET
-19E6;AL # KHMER SYMBOL PRAM-MUOY KOET
-19E7;AL # KHMER SYMBOL PRAM-PII KOET
-19E8;AL # KHMER SYMBOL PRAM-BEI KOET
-19E9;AL # KHMER SYMBOL PRAM-BUON KOET
-19EA;AL # KHMER SYMBOL DAP KOET
-19EB;AL # KHMER SYMBOL DAP-MUOY KOET
-19EC;AL # KHMER SYMBOL DAP-PII KOET
-19ED;AL # KHMER SYMBOL DAP-BEI KOET
-19EE;AL # KHMER SYMBOL DAP-BUON KOET
-19EF;AL # KHMER SYMBOL DAP-PRAM KOET
-19F0;AL # KHMER SYMBOL TUTEYASAT
-19F1;AL # KHMER SYMBOL MUOY ROC
-19F2;AL # KHMER SYMBOL PII ROC
-19F3;AL # KHMER SYMBOL BEI ROC
-19F4;AL # KHMER SYMBOL BUON ROC
-19F5;AL # KHMER SYMBOL PRAM ROC
-19F6;AL # KHMER SYMBOL PRAM-MUOY ROC
-19F7;AL # KHMER SYMBOL PRAM-PII ROC
-19F8;AL # KHMER SYMBOL PRAM-BEI ROC
-19F9;AL # KHMER SYMBOL PRAM-BUON ROC
-19FA;AL # KHMER SYMBOL DAP ROC
-19FB;AL # KHMER SYMBOL DAP-MUOY ROC
-19FC;AL # KHMER SYMBOL DAP-PII ROC
-19FD;AL # KHMER SYMBOL DAP-BEI ROC
-19FE;AL # KHMER SYMBOL DAP-BUON ROC
-19FF;AL # KHMER SYMBOL DAP-PRAM ROC
-1A00;AL # BUGINESE LETTER KA
-1A01;AL # BUGINESE LETTER GA
-1A02;AL # BUGINESE LETTER NGA
-1A03;AL # BUGINESE LETTER NGKA
-1A04;AL # BUGINESE LETTER PA
-1A05;AL # BUGINESE LETTER BA
-1A06;AL # BUGINESE LETTER MA
-1A07;AL # BUGINESE LETTER MPA
-1A08;AL # BUGINESE LETTER TA
-1A09;AL # BUGINESE LETTER DA
-1A0A;AL # BUGINESE LETTER NA
-1A0B;AL # BUGINESE LETTER NRA
-1A0C;AL # BUGINESE LETTER CA
-1A0D;AL # BUGINESE LETTER JA
-1A0E;AL # BUGINESE LETTER NYA
-1A0F;AL # BUGINESE LETTER NYCA
-1A10;AL # BUGINESE LETTER YA
-1A11;AL # BUGINESE LETTER RA
-1A12;AL # BUGINESE LETTER LA
-1A13;AL # BUGINESE LETTER VA
-1A14;AL # BUGINESE LETTER SA
-1A15;AL # BUGINESE LETTER A
-1A16;AL # BUGINESE LETTER HA
-1A17;CM # BUGINESE VOWEL SIGN I
-1A18;CM # BUGINESE VOWEL SIGN U
-1A19;CM # BUGINESE VOWEL SIGN E
-1A1A;CM # BUGINESE VOWEL SIGN O
-1A1B;CM # BUGINESE VOWEL SIGN AE
-1A1E;AL # BUGINESE PALLAWA
-1A1F;AL # BUGINESE END OF SECTION
-1A20;SA # TAI THAM LETTER HIGH KA
-1A21;SA # TAI THAM LETTER HIGH KHA
-1A22;SA # TAI THAM LETTER HIGH KXA
-1A23;SA # TAI THAM LETTER LOW KA
-1A24;SA # TAI THAM LETTER LOW KXA
-1A25;SA # TAI THAM LETTER LOW KHA
-1A26;SA # TAI THAM LETTER NGA
-1A27;SA # TAI THAM LETTER HIGH CA
-1A28;SA # TAI THAM LETTER HIGH CHA
-1A29;SA # TAI THAM LETTER LOW CA
-1A2A;SA # TAI THAM LETTER LOW SA
-1A2B;SA # TAI THAM LETTER LOW CHA
-1A2C;SA # TAI THAM LETTER NYA
-1A2D;SA # TAI THAM LETTER RATA
-1A2E;SA # TAI THAM LETTER HIGH RATHA
-1A2F;SA # TAI THAM LETTER DA
-1A30;SA # TAI THAM LETTER LOW RATHA
-1A31;SA # TAI THAM LETTER RANA
-1A32;SA # TAI THAM LETTER HIGH TA
-1A33;SA # TAI THAM LETTER HIGH THA
-1A34;SA # TAI THAM LETTER LOW TA
-1A35;SA # TAI THAM LETTER LOW THA
-1A36;SA # TAI THAM LETTER NA
-1A37;SA # TAI THAM LETTER BA
-1A38;SA # TAI THAM LETTER HIGH PA
-1A39;SA # TAI THAM LETTER HIGH PHA
-1A3A;SA # TAI THAM LETTER HIGH FA
-1A3B;SA # TAI THAM LETTER LOW PA
-1A3C;SA # TAI THAM LETTER LOW FA
-1A3D;SA # TAI THAM LETTER LOW PHA
-1A3E;SA # TAI THAM LETTER MA
-1A3F;SA # TAI THAM LETTER LOW YA
-1A40;SA # TAI THAM LETTER HIGH YA
-1A41;SA # TAI THAM LETTER RA
-1A42;SA # TAI THAM LETTER RUE
-1A43;SA # TAI THAM LETTER LA
-1A44;SA # TAI THAM LETTER LUE
-1A45;SA # TAI THAM LETTER WA
-1A46;SA # TAI THAM LETTER HIGH SHA
-1A47;SA # TAI THAM LETTER HIGH SSA
-1A48;SA # TAI THAM LETTER HIGH SA
-1A49;SA # TAI THAM LETTER HIGH HA
-1A4A;SA # TAI THAM LETTER LLA
-1A4B;SA # TAI THAM LETTER A
-1A4C;SA # TAI THAM LETTER LOW HA
-1A4D;SA # TAI THAM LETTER I
-1A4E;SA # TAI THAM LETTER II
-1A4F;SA # TAI THAM LETTER U
-1A50;SA # TAI THAM LETTER UU
-1A51;SA # TAI THAM LETTER EE
-1A52;SA # TAI THAM LETTER OO
-1A53;SA # TAI THAM LETTER LAE
-1A54;SA # TAI THAM LETTER GREAT SA
-1A55;SA # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56;SA # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57;SA # TAI THAM CONSONANT SIGN LA TANG LAI
-1A58;SA # TAI THAM SIGN MAI KANG LAI
-1A59;SA # TAI THAM CONSONANT SIGN FINAL NGA
-1A5A;SA # TAI THAM CONSONANT SIGN LOW PA
-1A5B;SA # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A5C;SA # TAI THAM CONSONANT SIGN MA
-1A5D;SA # TAI THAM CONSONANT SIGN BA
-1A5E;SA # TAI THAM CONSONANT SIGN SA
-1A60;SA # TAI THAM SIGN SAKOT
-1A61;SA # TAI THAM VOWEL SIGN A
-1A62;SA # TAI THAM VOWEL SIGN MAI SAT
-1A63;SA # TAI THAM VOWEL SIGN AA
-1A64;SA # TAI THAM VOWEL SIGN TALL AA
-1A65;SA # TAI THAM VOWEL SIGN I
-1A66;SA # TAI THAM VOWEL SIGN II
-1A67;SA # TAI THAM VOWEL SIGN UE
-1A68;SA # TAI THAM VOWEL SIGN UUE
-1A69;SA # TAI THAM VOWEL SIGN U
-1A6A;SA # TAI THAM VOWEL SIGN UU
-1A6B;SA # TAI THAM VOWEL SIGN O
-1A6C;SA # TAI THAM VOWEL SIGN OA BELOW
-1A6D;SA # TAI THAM VOWEL SIGN OY
-1A6E;SA # TAI THAM VOWEL SIGN E
-1A6F;SA # TAI THAM VOWEL SIGN AE
-1A70;SA # TAI THAM VOWEL SIGN OO
-1A71;SA # TAI THAM VOWEL SIGN AI
-1A72;SA # TAI THAM VOWEL SIGN THAM AI
-1A73;SA # TAI THAM VOWEL SIGN OA ABOVE
-1A74;SA # TAI THAM SIGN MAI KANG
-1A75;SA # TAI THAM SIGN TONE-1
-1A76;SA # TAI THAM SIGN TONE-2
-1A77;SA # TAI THAM SIGN KHUEN TONE-3
-1A78;SA # TAI THAM SIGN KHUEN TONE-4
-1A79;SA # TAI THAM SIGN KHUEN TONE-5
-1A7A;SA # TAI THAM SIGN RA HAAM
-1A7B;SA # TAI THAM SIGN MAI SAM
-1A7C;SA # TAI THAM SIGN KHUEN-LUE KARAN
-1A7F;CM # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1A80;NU # TAI THAM HORA DIGIT ZERO
-1A81;NU # TAI THAM HORA DIGIT ONE
-1A82;NU # TAI THAM HORA DIGIT TWO
-1A83;NU # TAI THAM HORA DIGIT THREE
-1A84;NU # TAI THAM HORA DIGIT FOUR
-1A85;NU # TAI THAM HORA DIGIT FIVE
-1A86;NU # TAI THAM HORA DIGIT SIX
-1A87;NU # TAI THAM HORA DIGIT SEVEN
-1A88;NU # TAI THAM HORA DIGIT EIGHT
-1A89;NU # TAI THAM HORA DIGIT NINE
-1A90;NU # TAI THAM THAM DIGIT ZERO
-1A91;NU # TAI THAM THAM DIGIT ONE
-1A92;NU # TAI THAM THAM DIGIT TWO
-1A93;NU # TAI THAM THAM DIGIT THREE
-1A94;NU # TAI THAM THAM DIGIT FOUR
-1A95;NU # TAI THAM THAM DIGIT FIVE
-1A96;NU # TAI THAM THAM DIGIT SIX
-1A97;NU # TAI THAM THAM DIGIT SEVEN
-1A98;NU # TAI THAM THAM DIGIT EIGHT
-1A99;NU # TAI THAM THAM DIGIT NINE
-1AA0;SA # TAI THAM SIGN WIANG
-1AA1;SA # TAI THAM SIGN WIANGWAAK
-1AA2;SA # TAI THAM SIGN SAWAN
-1AA3;SA # TAI THAM SIGN KEOW
-1AA4;SA # TAI THAM SIGN HOY
-1AA5;SA # TAI THAM SIGN DOKMAI
-1AA6;SA # TAI THAM SIGN REVERSED ROTATED RANA
-1AA7;SA # TAI THAM SIGN MAI YAMOK
-1AA8;SA # TAI THAM SIGN KAAN
-1AA9;SA # TAI THAM SIGN KAANKUU
-1AAA;SA # TAI THAM SIGN SATKAAN
-1AAB;SA # TAI THAM SIGN SATKAANKUU
-1AAC;SA # TAI THAM SIGN HANG
-1AAD;SA # TAI THAM SIGN CAANG
-1B00;CM # BALINESE SIGN ULU RICEM
-1B01;CM # BALINESE SIGN ULU CANDRA
-1B02;CM # BALINESE SIGN CECEK
-1B03;CM # BALINESE SIGN SURANG
-1B04;CM # BALINESE SIGN BISAH
-1B05;AL # BALINESE LETTER AKARA
-1B06;AL # BALINESE LETTER AKARA TEDUNG
-1B07;AL # BALINESE LETTER IKARA
-1B08;AL # BALINESE LETTER IKARA TEDUNG
-1B09;AL # BALINESE LETTER UKARA
-1B0A;AL # BALINESE LETTER UKARA TEDUNG
-1B0B;AL # BALINESE LETTER RA REPA
-1B0C;AL # BALINESE LETTER RA REPA TEDUNG
-1B0D;AL # BALINESE LETTER LA LENGA
-1B0E;AL # BALINESE LETTER LA LENGA TEDUNG
-1B0F;AL # BALINESE LETTER EKARA
-1B10;AL # BALINESE LETTER AIKARA
-1B11;AL # BALINESE LETTER OKARA
-1B12;AL # BALINESE LETTER OKARA TEDUNG
-1B13;AL # BALINESE LETTER KA
-1B14;AL # BALINESE LETTER KA MAHAPRANA
-1B15;AL # BALINESE LETTER GA
-1B16;AL # BALINESE LETTER GA GORA
-1B17;AL # BALINESE LETTER NGA
-1B18;AL # BALINESE LETTER CA
-1B19;AL # BALINESE LETTER CA LACA
-1B1A;AL # BALINESE LETTER JA
-1B1B;AL # BALINESE LETTER JA JERA
-1B1C;AL # BALINESE LETTER NYA
-1B1D;AL # BALINESE LETTER TA LATIK
-1B1E;AL # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F;AL # BALINESE LETTER DA MURDA ALPAPRANA
-1B20;AL # BALINESE LETTER DA MURDA MAHAPRANA
-1B21;AL # BALINESE LETTER NA RAMBAT
-1B22;AL # BALINESE LETTER TA
-1B23;AL # BALINESE LETTER TA TAWA
-1B24;AL # BALINESE LETTER DA
-1B25;AL # BALINESE LETTER DA MADU
-1B26;AL # BALINESE LETTER NA
-1B27;AL # BALINESE LETTER PA
-1B28;AL # BALINESE LETTER PA KAPAL
-1B29;AL # BALINESE LETTER BA
-1B2A;AL # BALINESE LETTER BA KEMBANG
-1B2B;AL # BALINESE LETTER MA
-1B2C;AL # BALINESE LETTER YA
-1B2D;AL # BALINESE LETTER RA
-1B2E;AL # BALINESE LETTER LA
-1B2F;AL # BALINESE LETTER WA
-1B30;AL # BALINESE LETTER SA SAGA
-1B31;AL # BALINESE LETTER SA SAPA
-1B32;AL # BALINESE LETTER SA
-1B33;AL # BALINESE LETTER HA
-1B34;CM # BALINESE SIGN REREKAN
-1B35;CM # BALINESE VOWEL SIGN TEDUNG
-1B36;CM # BALINESE VOWEL SIGN ULU
-1B37;CM # BALINESE VOWEL SIGN ULU SARI
-1B38;CM # BALINESE VOWEL SIGN SUKU
-1B39;CM # BALINESE VOWEL SIGN SUKU ILUT
-1B3A;CM # BALINESE VOWEL SIGN RA REPA
-1B3B;CM # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C;CM # BALINESE VOWEL SIGN LA LENGA
-1B3D;CM # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E;CM # BALINESE VOWEL SIGN TALING
-1B3F;CM # BALINESE VOWEL SIGN TALING REPA
-1B40;CM # BALINESE VOWEL SIGN TALING TEDUNG
-1B41;CM # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42;CM # BALINESE VOWEL SIGN PEPET
-1B43;CM # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44;CM # BALINESE ADEG ADEG
-1B45;AL # BALINESE LETTER KAF SASAK
-1B46;AL # BALINESE LETTER KHOT SASAK
-1B47;AL # BALINESE LETTER TZIR SASAK
-1B48;AL # BALINESE LETTER EF SASAK
-1B49;AL # BALINESE LETTER VE SASAK
-1B4A;AL # BALINESE LETTER ZAL SASAK
-1B4B;AL # BALINESE LETTER ASYURA SASAK
-1B50;NU # BALINESE DIGIT ZERO
-1B51;NU # BALINESE DIGIT ONE
-1B52;NU # BALINESE DIGIT TWO
-1B53;NU # BALINESE DIGIT THREE
-1B54;NU # BALINESE DIGIT FOUR
-1B55;NU # BALINESE DIGIT FIVE
-1B56;NU # BALINESE DIGIT SIX
-1B57;NU # BALINESE DIGIT SEVEN
-1B58;NU # BALINESE DIGIT EIGHT
-1B59;NU # BALINESE DIGIT NINE
-1B5A;BA # BALINESE PANTI
-1B5B;BA # BALINESE PAMADA
-1B5C;AL # BALINESE WINDU
-1B5D;BA # BALINESE CARIK PAMUNGKAH
-1B5E;BA # BALINESE CARIK SIKI
-1B5F;BA # BALINESE CARIK PAREREN
-1B60;BA # BALINESE PAMENENG
-1B61;AL # BALINESE MUSICAL SYMBOL DONG
-1B62;AL # BALINESE MUSICAL SYMBOL DENG
-1B63;AL # BALINESE MUSICAL SYMBOL DUNG
-1B64;AL # BALINESE MUSICAL SYMBOL DANG
-1B65;AL # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66;AL # BALINESE MUSICAL SYMBOL DING
-1B67;AL # BALINESE MUSICAL SYMBOL DAENG
-1B68;AL # BALINESE MUSICAL SYMBOL DEUNG
-1B69;AL # BALINESE MUSICAL SYMBOL DAING
-1B6A;AL # BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B;CM # BALINESE MUSICAL SYMBOL COMBINING TEGEH
-1B6C;CM # BALINESE MUSICAL SYMBOL COMBINING ENDEP
-1B6D;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
-1B6E;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPLI
-1B6F;CM # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN
-1B70;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN
-1B71;CM # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
-1B72;CM # BALINESE MUSICAL SYMBOL COMBINING BENDE
-1B73;CM # BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77;AL # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A;AL # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B;AL # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C;AL # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B80;CM # SUNDANESE SIGN PANYECEK
-1B81;CM # SUNDANESE SIGN PANGLAYAR
-1B82;CM # SUNDANESE SIGN PANGWISAD
-1B83;AL # SUNDANESE LETTER A
-1B84;AL # SUNDANESE LETTER I
-1B85;AL # SUNDANESE LETTER U
-1B86;AL # SUNDANESE LETTER AE
-1B87;AL # SUNDANESE LETTER O
-1B88;AL # SUNDANESE LETTER E
-1B89;AL # SUNDANESE LETTER EU
-1B8A;AL # SUNDANESE LETTER KA
-1B8B;AL # SUNDANESE LETTER QA
-1B8C;AL # SUNDANESE LETTER GA
-1B8D;AL # SUNDANESE LETTER NGA
-1B8E;AL # SUNDANESE LETTER CA
-1B8F;AL # SUNDANESE LETTER JA
-1B90;AL # SUNDANESE LETTER ZA
-1B91;AL # SUNDANESE LETTER NYA
-1B92;AL # SUNDANESE LETTER TA
-1B93;AL # SUNDANESE LETTER DA
-1B94;AL # SUNDANESE LETTER NA
-1B95;AL # SUNDANESE LETTER PA
-1B96;AL # SUNDANESE LETTER FA
-1B97;AL # SUNDANESE LETTER VA
-1B98;AL # SUNDANESE LETTER BA
-1B99;AL # SUNDANESE LETTER MA
-1B9A;AL # SUNDANESE LETTER YA
-1B9B;AL # SUNDANESE LETTER RA
-1B9C;AL # SUNDANESE LETTER LA
-1B9D;AL # SUNDANESE LETTER WA
-1B9E;AL # SUNDANESE LETTER SA
-1B9F;AL # SUNDANESE LETTER XA
-1BA0;AL # SUNDANESE LETTER HA
-1BA1;CM # SUNDANESE CONSONANT SIGN PAMINGKAL
-1BA2;CM # SUNDANESE CONSONANT SIGN PANYAKRA
-1BA3;CM # SUNDANESE CONSONANT SIGN PANYIKU
-1BA4;CM # SUNDANESE VOWEL SIGN PANGHULU
-1BA5;CM # SUNDANESE VOWEL SIGN PANYUKU
-1BA6;CM # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7;CM # SUNDANESE VOWEL SIGN PANOLONG
-1BA8;CM # SUNDANESE VOWEL SIGN PAMEPET
-1BA9;CM # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA;CM # SUNDANESE SIGN PAMAAEH
-1BAB;CM # SUNDANESE SIGN VIRAMA
-1BAC;CM # SUNDANESE CONSONANT SIGN PASANGAN MA
-1BAD;CM # SUNDANESE CONSONANT SIGN PASANGAN WA
-1BAE;AL # SUNDANESE LETTER KHA
-1BAF;AL # SUNDANESE LETTER SYA
-1BB0;NU # SUNDANESE DIGIT ZERO
-1BB1;NU # SUNDANESE DIGIT ONE
-1BB2;NU # SUNDANESE DIGIT TWO
-1BB3;NU # SUNDANESE DIGIT THREE
-1BB4;NU # SUNDANESE DIGIT FOUR
-1BB5;NU # SUNDANESE DIGIT FIVE
-1BB6;NU # SUNDANESE DIGIT SIX
-1BB7;NU # SUNDANESE DIGIT SEVEN
-1BB8;NU # SUNDANESE DIGIT EIGHT
-1BB9;NU # SUNDANESE DIGIT NINE
-1BBA;AL # SUNDANESE AVAGRAHA
-1BBB;AL # SUNDANESE LETTER REU
-1BBC;AL # SUNDANESE LETTER LEU
-1BBD;AL # SUNDANESE LETTER BHA
-1BBE;AL # SUNDANESE LETTER FINAL K
-1BBF;AL # SUNDANESE LETTER FINAL M
-1BC0;AL # BATAK LETTER A
-1BC1;AL # BATAK LETTER SIMALUNGUN A
-1BC2;AL # BATAK LETTER HA
-1BC3;AL # BATAK LETTER SIMALUNGUN HA
-1BC4;AL # BATAK LETTER MANDAILING HA
-1BC5;AL # BATAK LETTER BA
-1BC6;AL # BATAK LETTER KARO BA
-1BC7;AL # BATAK LETTER PA
-1BC8;AL # BATAK LETTER SIMALUNGUN PA
-1BC9;AL # BATAK LETTER NA
-1BCA;AL # BATAK LETTER MANDAILING NA
-1BCB;AL # BATAK LETTER WA
-1BCC;AL # BATAK LETTER SIMALUNGUN WA
-1BCD;AL # BATAK LETTER PAKPAK WA
-1BCE;AL # BATAK LETTER GA
-1BCF;AL # BATAK LETTER SIMALUNGUN GA
-1BD0;AL # BATAK LETTER JA
-1BD1;AL # BATAK LETTER DA
-1BD2;AL # BATAK LETTER RA
-1BD3;AL # BATAK LETTER SIMALUNGUN RA
-1BD4;AL # BATAK LETTER MA
-1BD5;AL # BATAK LETTER SIMALUNGUN MA
-1BD6;AL # BATAK LETTER SOUTHERN TA
-1BD7;AL # BATAK LETTER NORTHERN TA
-1BD8;AL # BATAK LETTER SA
-1BD9;AL # BATAK LETTER SIMALUNGUN SA
-1BDA;AL # BATAK LETTER MANDAILING SA
-1BDB;AL # BATAK LETTER YA
-1BDC;AL # BATAK LETTER SIMALUNGUN YA
-1BDD;AL # BATAK LETTER NGA
-1BDE;AL # BATAK LETTER LA
-1BDF;AL # BATAK LETTER SIMALUNGUN LA
-1BE0;AL # BATAK LETTER NYA
-1BE1;AL # BATAK LETTER CA
-1BE2;AL # BATAK LETTER NDA
-1BE3;AL # BATAK LETTER MBA
-1BE4;AL # BATAK LETTER I
-1BE5;AL # BATAK LETTER U
-1BE6;CM # BATAK SIGN TOMPI
-1BE7;CM # BATAK VOWEL SIGN E
-1BE8;CM # BATAK VOWEL SIGN PAKPAK E
-1BE9;CM # BATAK VOWEL SIGN EE
-1BEA;CM # BATAK VOWEL SIGN I
-1BEB;CM # BATAK VOWEL SIGN KARO I
-1BEC;CM # BATAK VOWEL SIGN O
-1BED;CM # BATAK VOWEL SIGN KARO O
-1BEE;CM # BATAK VOWEL SIGN U
-1BEF;CM # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0;CM # BATAK CONSONANT SIGN NG
-1BF1;CM # BATAK CONSONANT SIGN H
-1BF2;CM # BATAK PANGOLAT
-1BF3;CM # BATAK PANONGONAN
-1BFC;AL # BATAK SYMBOL BINDU NA METEK
-1BFD;AL # BATAK SYMBOL BINDU PINARBORAS
-1BFE;AL # BATAK SYMBOL BINDU JUDUL
-1BFF;AL # BATAK SYMBOL BINDU PANGOLAT
-1C00;AL # LEPCHA LETTER KA
-1C01;AL # LEPCHA LETTER KLA
-1C02;AL # LEPCHA LETTER KHA
-1C03;AL # LEPCHA LETTER GA
-1C04;AL # LEPCHA LETTER GLA
-1C05;AL # LEPCHA LETTER NGA
-1C06;AL # LEPCHA LETTER CA
-1C07;AL # LEPCHA LETTER CHA
-1C08;AL # LEPCHA LETTER JA
-1C09;AL # LEPCHA LETTER NYA
-1C0A;AL # LEPCHA LETTER TA
-1C0B;AL # LEPCHA LETTER THA
-1C0C;AL # LEPCHA LETTER DA
-1C0D;AL # LEPCHA LETTER NA
-1C0E;AL # LEPCHA LETTER PA
-1C0F;AL # LEPCHA LETTER PLA
-1C10;AL # LEPCHA LETTER PHA
-1C11;AL # LEPCHA LETTER FA
-1C12;AL # LEPCHA LETTER FLA
-1C13;AL # LEPCHA LETTER BA
-1C14;AL # LEPCHA LETTER BLA
-1C15;AL # LEPCHA LETTER MA
-1C16;AL # LEPCHA LETTER MLA
-1C17;AL # LEPCHA LETTER TSA
-1C18;AL # LEPCHA LETTER TSHA
-1C19;AL # LEPCHA LETTER DZA
-1C1A;AL # LEPCHA LETTER YA
-1C1B;AL # LEPCHA LETTER RA
-1C1C;AL # LEPCHA LETTER LA
-1C1D;AL # LEPCHA LETTER HA
-1C1E;AL # LEPCHA LETTER HLA
-1C1F;AL # LEPCHA LETTER VA
-1C20;AL # LEPCHA LETTER SA
-1C21;AL # LEPCHA LETTER SHA
-1C22;AL # LEPCHA LETTER WA
-1C23;AL # LEPCHA LETTER A
-1C24;CM # LEPCHA SUBJOINED LETTER YA
-1C25;CM # LEPCHA SUBJOINED LETTER RA
-1C26;CM # LEPCHA VOWEL SIGN AA
-1C27;CM # LEPCHA VOWEL SIGN I
-1C28;CM # LEPCHA VOWEL SIGN O
-1C29;CM # LEPCHA VOWEL SIGN OO
-1C2A;CM # LEPCHA VOWEL SIGN U
-1C2B;CM # LEPCHA VOWEL SIGN UU
-1C2C;CM # LEPCHA VOWEL SIGN E
-1C2D;CM # LEPCHA CONSONANT SIGN K
-1C2E;CM # LEPCHA CONSONANT SIGN M
-1C2F;CM # LEPCHA CONSONANT SIGN L
-1C30;CM # LEPCHA CONSONANT SIGN N
-1C31;CM # LEPCHA CONSONANT SIGN P
-1C32;CM # LEPCHA CONSONANT SIGN R
-1C33;CM # LEPCHA CONSONANT SIGN T
-1C34;CM # LEPCHA CONSONANT SIGN NYIN-DO
-1C35;CM # LEPCHA CONSONANT SIGN KANG
-1C36;CM # LEPCHA SIGN RAN
-1C37;CM # LEPCHA SIGN NUKTA
-1C3B;BA # LEPCHA PUNCTUATION TA-ROL
-1C3C;BA # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D;BA # LEPCHA PUNCTUATION CER-WA
-1C3E;BA # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F;BA # LEPCHA PUNCTUATION TSHOOK
-1C40;NU # LEPCHA DIGIT ZERO
-1C41;NU # LEPCHA DIGIT ONE
-1C42;NU # LEPCHA DIGIT TWO
-1C43;NU # LEPCHA DIGIT THREE
-1C44;NU # LEPCHA DIGIT FOUR
-1C45;NU # LEPCHA DIGIT FIVE
-1C46;NU # LEPCHA DIGIT SIX
-1C47;NU # LEPCHA DIGIT SEVEN
-1C48;NU # LEPCHA DIGIT EIGHT
-1C49;NU # LEPCHA DIGIT NINE
-1C4D;AL # LEPCHA LETTER TTA
-1C4E;AL # LEPCHA LETTER TTHA
-1C4F;AL # LEPCHA LETTER DDA
-1C50;NU # OL CHIKI DIGIT ZERO
-1C51;NU # OL CHIKI DIGIT ONE
-1C52;NU # OL CHIKI DIGIT TWO
-1C53;NU # OL CHIKI DIGIT THREE
-1C54;NU # OL CHIKI DIGIT FOUR
-1C55;NU # OL CHIKI DIGIT FIVE
-1C56;NU # OL CHIKI DIGIT SIX
-1C57;NU # OL CHIKI DIGIT SEVEN
-1C58;NU # OL CHIKI DIGIT EIGHT
-1C59;NU # OL CHIKI DIGIT NINE
-1C5A;AL # OL CHIKI LETTER LA
-1C5B;AL # OL CHIKI LETTER AT
-1C5C;AL # OL CHIKI LETTER AG
-1C5D;AL # OL CHIKI LETTER ANG
-1C5E;AL # OL CHIKI LETTER AL
-1C5F;AL # OL CHIKI LETTER LAA
-1C60;AL # OL CHIKI LETTER AAK
-1C61;AL # OL CHIKI LETTER AAJ
-1C62;AL # OL CHIKI LETTER AAM
-1C63;AL # OL CHIKI LETTER AAW
-1C64;AL # OL CHIKI LETTER LI
-1C65;AL # OL CHIKI LETTER IS
-1C66;AL # OL CHIKI LETTER IH
-1C67;AL # OL CHIKI LETTER INY
-1C68;AL # OL CHIKI LETTER IR
-1C69;AL # OL CHIKI LETTER LU
-1C6A;AL # OL CHIKI LETTER UC
-1C6B;AL # OL CHIKI LETTER UD
-1C6C;AL # OL CHIKI LETTER UNN
-1C6D;AL # OL CHIKI LETTER UY
-1C6E;AL # OL CHIKI LETTER LE
-1C6F;AL # OL CHIKI LETTER EP
-1C70;AL # OL CHIKI LETTER EDD
-1C71;AL # OL CHIKI LETTER EN
-1C72;AL # OL CHIKI LETTER ERR
-1C73;AL # OL CHIKI LETTER LO
-1C74;AL # OL CHIKI LETTER OTT
-1C75;AL # OL CHIKI LETTER OB
-1C76;AL # OL CHIKI LETTER OV
-1C77;AL # OL CHIKI LETTER OH
-1C78;AL # OL CHIKI MU TTUDDAG
-1C79;AL # OL CHIKI GAAHLAA TTUDDAAG
-1C7A;AL # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B;AL # OL CHIKI RELAA
-1C7C;AL # OL CHIKI PHAARKAA
-1C7D;AL # OL CHIKI AHAD
-1C7E;BA # OL CHIKI PUNCTUATION MUCAAD
-1C7F;BA # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0;AL # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1;AL # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2;AL # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3;AL # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4;AL # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5;AL # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6;AL # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7;AL # SUNDANESE PUNCTUATION BINDU BA SATANGA
-1CD0;CM # VEDIC TONE KARSHANA
-1CD1;CM # VEDIC TONE SHARA
-1CD2;CM # VEDIC TONE PRENKHA
-1CD3;AL # VEDIC SIGN NIHSHVASA
-1CD4;CM # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
-1CD5;CM # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
-1CD6;CM # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
-1CD7;CM # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
-1CD8;CM # VEDIC TONE CANDRA BELOW
-1CD9;CM # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
-1CDA;CM # VEDIC TONE DOUBLE SVARITA
-1CDB;CM # VEDIC TONE TRIPLE SVARITA
-1CDC;CM # VEDIC TONE KATHAKA ANUDATTA
-1CDD;CM # VEDIC TONE DOT BELOW
-1CDE;CM # VEDIC TONE TWO DOTS BELOW
-1CDF;CM # VEDIC TONE THREE DOTS BELOW
-1CE0;CM # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
-1CE1;CM # VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
-1CE2;CM # VEDIC SIGN VISARGA SVARITA
-1CE3;CM # VEDIC SIGN VISARGA UDATTA
-1CE4;CM # VEDIC SIGN REVERSED VISARGA UDATTA
-1CE5;CM # VEDIC SIGN VISARGA ANUDATTA
-1CE6;CM # VEDIC SIGN REVERSED VISARGA ANUDATTA
-1CE7;CM # VEDIC SIGN VISARGA UDATTA WITH TAIL
-1CE8;CM # VEDIC SIGN VISARGA ANUDATTA WITH TAIL
-1CE9;AL # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA;AL # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB;AL # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC;AL # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CED;CM # VEDIC SIGN TIRYAK
-1CEE;AL # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF;AL # VEDIC SIGN LONG ANUSVARA
-1CF0;AL # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1;AL # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2;CM # VEDIC SIGN ARDHAVISARGA
-1CF3;CM # VEDIC SIGN ROTATED ARDHAVISARGA
-1CF4;CM # VEDIC TONE CANDRA ABOVE
-1CF5;AL # VEDIC SIGN JIHVAMULIYA
-1CF6;AL # VEDIC SIGN UPADHMANIYA
-1D00;AL # LATIN LETTER SMALL CAPITAL A
-1D01;AL # LATIN LETTER SMALL CAPITAL AE
-1D02;AL # LATIN SMALL LETTER TURNED AE
-1D03;AL # LATIN LETTER SMALL CAPITAL BARRED B
-1D04;AL # LATIN LETTER SMALL CAPITAL C
-1D05;AL # LATIN LETTER SMALL CAPITAL D
-1D06;AL # LATIN LETTER SMALL CAPITAL ETH
-1D07;AL # LATIN LETTER SMALL CAPITAL E
-1D08;AL # LATIN SMALL LETTER TURNED OPEN E
-1D09;AL # LATIN SMALL LETTER TURNED I
-1D0A;AL # LATIN LETTER SMALL CAPITAL J
-1D0B;AL # LATIN LETTER SMALL CAPITAL K
-1D0C;AL # LATIN LETTER SMALL CAPITAL L WITH STROKE
-1D0D;AL # LATIN LETTER SMALL CAPITAL M
-1D0E;AL # LATIN LETTER SMALL CAPITAL REVERSED N
-1D0F;AL # LATIN LETTER SMALL CAPITAL O
-1D10;AL # LATIN LETTER SMALL CAPITAL OPEN O
-1D11;AL # LATIN SMALL LETTER SIDEWAYS O
-1D12;AL # LATIN SMALL LETTER SIDEWAYS OPEN O
-1D13;AL # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-1D14;AL # LATIN SMALL LETTER TURNED OE
-1D15;AL # LATIN LETTER SMALL CAPITAL OU
-1D16;AL # LATIN SMALL LETTER TOP HALF O
-1D17;AL # LATIN SMALL LETTER BOTTOM HALF O
-1D18;AL # LATIN LETTER SMALL CAPITAL P
-1D19;AL # LATIN LETTER SMALL CAPITAL REVERSED R
-1D1A;AL # LATIN LETTER SMALL CAPITAL TURNED R
-1D1B;AL # LATIN LETTER SMALL CAPITAL T
-1D1C;AL # LATIN LETTER SMALL CAPITAL U
-1D1D;AL # LATIN SMALL LETTER SIDEWAYS U
-1D1E;AL # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D1F;AL # LATIN SMALL LETTER SIDEWAYS TURNED M
-1D20;AL # LATIN LETTER SMALL CAPITAL V
-1D21;AL # LATIN LETTER SMALL CAPITAL W
-1D22;AL # LATIN LETTER SMALL CAPITAL Z
-1D23;AL # LATIN LETTER SMALL CAPITAL EZH
-1D24;AL # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25;AL # LATIN LETTER AIN
-1D26;AL # GREEK LETTER SMALL CAPITAL GAMMA
-1D27;AL # GREEK LETTER SMALL CAPITAL LAMDA
-1D28;AL # GREEK LETTER SMALL CAPITAL PI
-1D29;AL # GREEK LETTER SMALL CAPITAL RHO
-1D2A;AL # GREEK LETTER SMALL CAPITAL PSI
-1D2B;AL # CYRILLIC LETTER SMALL CAPITAL EL
-1D2C;AL # MODIFIER LETTER CAPITAL A
-1D2D;AL # MODIFIER LETTER CAPITAL AE
-1D2E;AL # MODIFIER LETTER CAPITAL B
-1D2F;AL # MODIFIER LETTER CAPITAL BARRED B
-1D30;AL # MODIFIER LETTER CAPITAL D
-1D31;AL # MODIFIER LETTER CAPITAL E
-1D32;AL # MODIFIER LETTER CAPITAL REVERSED E
-1D33;AL # MODIFIER LETTER CAPITAL G
-1D34;AL # MODIFIER LETTER CAPITAL H
-1D35;AL # MODIFIER LETTER CAPITAL I
-1D36;AL # MODIFIER LETTER CAPITAL J
-1D37;AL # MODIFIER LETTER CAPITAL K
-1D38;AL # MODIFIER LETTER CAPITAL L
-1D39;AL # MODIFIER LETTER CAPITAL M
-1D3A;AL # MODIFIER LETTER CAPITAL N
-1D3B;AL # MODIFIER LETTER CAPITAL REVERSED N
-1D3C;AL # MODIFIER LETTER CAPITAL O
-1D3D;AL # MODIFIER LETTER CAPITAL OU
-1D3E;AL # MODIFIER LETTER CAPITAL P
-1D3F;AL # MODIFIER LETTER CAPITAL R
-1D40;AL # MODIFIER LETTER CAPITAL T
-1D41;AL # MODIFIER LETTER CAPITAL U
-1D42;AL # MODIFIER LETTER CAPITAL W
-1D43;AL # MODIFIER LETTER SMALL A
-1D44;AL # MODIFIER LETTER SMALL TURNED A
-1D45;AL # MODIFIER LETTER SMALL ALPHA
-1D46;AL # MODIFIER LETTER SMALL TURNED AE
-1D47;AL # MODIFIER LETTER SMALL B
-1D48;AL # MODIFIER LETTER SMALL D
-1D49;AL # MODIFIER LETTER SMALL E
-1D4A;AL # MODIFIER LETTER SMALL SCHWA
-1D4B;AL # MODIFIER LETTER SMALL OPEN E
-1D4C;AL # MODIFIER LETTER SMALL TURNED OPEN E
-1D4D;AL # MODIFIER LETTER SMALL G
-1D4E;AL # MODIFIER LETTER SMALL TURNED I
-1D4F;AL # MODIFIER LETTER SMALL K
-1D50;AL # MODIFIER LETTER SMALL M
-1D51;AL # MODIFIER LETTER SMALL ENG
-1D52;AL # MODIFIER LETTER SMALL O
-1D53;AL # MODIFIER LETTER SMALL OPEN O
-1D54;AL # MODIFIER LETTER SMALL TOP HALF O
-1D55;AL # MODIFIER LETTER SMALL BOTTOM HALF O
-1D56;AL # MODIFIER LETTER SMALL P
-1D57;AL # MODIFIER LETTER SMALL T
-1D58;AL # MODIFIER LETTER SMALL U
-1D59;AL # MODIFIER LETTER SMALL SIDEWAYS U
-1D5A;AL # MODIFIER LETTER SMALL TURNED M
-1D5B;AL # MODIFIER LETTER SMALL V
-1D5C;AL # MODIFIER LETTER SMALL AIN
-1D5D;AL # MODIFIER LETTER SMALL BETA
-1D5E;AL # MODIFIER LETTER SMALL GREEK GAMMA
-1D5F;AL # MODIFIER LETTER SMALL DELTA
-1D60;AL # MODIFIER LETTER SMALL GREEK PHI
-1D61;AL # MODIFIER LETTER SMALL CHI
-1D62;AL # LATIN SUBSCRIPT SMALL LETTER I
-1D63;AL # LATIN SUBSCRIPT SMALL LETTER R
-1D64;AL # LATIN SUBSCRIPT SMALL LETTER U
-1D65;AL # LATIN SUBSCRIPT SMALL LETTER V
-1D66;AL # GREEK SUBSCRIPT SMALL LETTER BETA
-1D67;AL # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D68;AL # GREEK SUBSCRIPT SMALL LETTER RHO
-1D69;AL # GREEK SUBSCRIPT SMALL LETTER PHI
-1D6A;AL # GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B;AL # LATIN SMALL LETTER UE
-1D6C;AL # LATIN SMALL LETTER B WITH MIDDLE TILDE
-1D6D;AL # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D6E;AL # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D6F;AL # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D70;AL # LATIN SMALL LETTER N WITH MIDDLE TILDE
-1D71;AL # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D72;AL # LATIN SMALL LETTER R WITH MIDDLE TILDE
-1D73;AL # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-1D74;AL # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D75;AL # LATIN SMALL LETTER T WITH MIDDLE TILDE
-1D76;AL # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D77;AL # LATIN SMALL LETTER TURNED G
-1D78;AL # MODIFIER LETTER CYRILLIC EN
-1D79;AL # LATIN SMALL LETTER INSULAR G
-1D7A;AL # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-1D7B;AL # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1D7C;AL # LATIN SMALL LETTER IOTA WITH STROKE
-1D7D;AL # LATIN SMALL LETTER P WITH STROKE
-1D7E;AL # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D7F;AL # LATIN SMALL LETTER UPSILON WITH STROKE
-1D80;AL # LATIN SMALL LETTER B WITH PALATAL HOOK
-1D81;AL # LATIN SMALL LETTER D WITH PALATAL HOOK
-1D82;AL # LATIN SMALL LETTER F WITH PALATAL HOOK
-1D83;AL # LATIN SMALL LETTER G WITH PALATAL HOOK
-1D84;AL # LATIN SMALL LETTER K WITH PALATAL HOOK
-1D85;AL # LATIN SMALL LETTER L WITH PALATAL HOOK
-1D86;AL # LATIN SMALL LETTER M WITH PALATAL HOOK
-1D87;AL # LATIN SMALL LETTER N WITH PALATAL HOOK
-1D88;AL # LATIN SMALL LETTER P WITH PALATAL HOOK
-1D89;AL # LATIN SMALL LETTER R WITH PALATAL HOOK
-1D8A;AL # LATIN SMALL LETTER S WITH PALATAL HOOK
-1D8B;AL # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-1D8C;AL # LATIN SMALL LETTER V WITH PALATAL HOOK
-1D8D;AL # LATIN SMALL LETTER X WITH PALATAL HOOK
-1D8E;AL # LATIN SMALL LETTER Z WITH PALATAL HOOK
-1D8F;AL # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D90;AL # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-1D91;AL # LATIN SMALL LETTER D WITH HOOK AND TAIL
-1D92;AL # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-1D93;AL # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-1D94;AL # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D95;AL # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-1D96;AL # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-1D97;AL # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-1D98;AL # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-1D99;AL # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-1D9A;AL # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B;AL # MODIFIER LETTER SMALL TURNED ALPHA
-1D9C;AL # MODIFIER LETTER SMALL C
-1D9D;AL # MODIFIER LETTER SMALL C WITH CURL
-1D9E;AL # MODIFIER LETTER SMALL ETH
-1D9F;AL # MODIFIER LETTER SMALL REVERSED OPEN E
-1DA0;AL # MODIFIER LETTER SMALL F
-1DA1;AL # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-1DA2;AL # MODIFIER LETTER SMALL SCRIPT G
-1DA3;AL # MODIFIER LETTER SMALL TURNED H
-1DA4;AL # MODIFIER LETTER SMALL I WITH STROKE
-1DA5;AL # MODIFIER LETTER SMALL IOTA
-1DA6;AL # MODIFIER LETTER SMALL CAPITAL I
-1DA7;AL # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1DA8;AL # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-1DA9;AL # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-1DAA;AL # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-1DAB;AL # MODIFIER LETTER SMALL CAPITAL L
-1DAC;AL # MODIFIER LETTER SMALL M WITH HOOK
-1DAD;AL # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-1DAE;AL # MODIFIER LETTER SMALL N WITH LEFT HOOK
-1DAF;AL # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-1DB0;AL # MODIFIER LETTER SMALL CAPITAL N
-1DB1;AL # MODIFIER LETTER SMALL BARRED O
-1DB2;AL # MODIFIER LETTER SMALL PHI
-1DB3;AL # MODIFIER LETTER SMALL S WITH HOOK
-1DB4;AL # MODIFIER LETTER SMALL ESH
-1DB5;AL # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-1DB6;AL # MODIFIER LETTER SMALL U BAR
-1DB7;AL # MODIFIER LETTER SMALL UPSILON
-1DB8;AL # MODIFIER LETTER SMALL CAPITAL U
-1DB9;AL # MODIFIER LETTER SMALL V WITH HOOK
-1DBA;AL # MODIFIER LETTER SMALL TURNED V
-1DBB;AL # MODIFIER LETTER SMALL Z
-1DBC;AL # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-1DBD;AL # MODIFIER LETTER SMALL Z WITH CURL
-1DBE;AL # MODIFIER LETTER SMALL EZH
-1DBF;AL # MODIFIER LETTER SMALL THETA
-1DC0;CM # COMBINING DOTTED GRAVE ACCENT
-1DC1;CM # COMBINING DOTTED ACUTE ACCENT
-1DC2;CM # COMBINING SNAKE BELOW
-1DC3;CM # COMBINING SUSPENSION MARK
-1DC4;CM # COMBINING MACRON-ACUTE
-1DC5;CM # COMBINING GRAVE-MACRON
-1DC6;CM # COMBINING MACRON-GRAVE
-1DC7;CM # COMBINING ACUTE-MACRON
-1DC8;CM # COMBINING GRAVE-ACUTE-GRAVE
-1DC9;CM # COMBINING ACUTE-GRAVE-ACUTE
-1DCA;CM # COMBINING LATIN SMALL LETTER R BELOW
-1DCB;CM # COMBINING BREVE-MACRON
-1DCC;CM # COMBINING MACRON-BREVE
-1DCD;CM # COMBINING DOUBLE CIRCUMFLEX ABOVE
-1DCE;CM # COMBINING OGONEK ABOVE
-1DCF;CM # COMBINING ZIGZAG BELOW
-1DD0;CM # COMBINING IS BELOW
-1DD1;CM # COMBINING UR ABOVE
-1DD2;CM # COMBINING US ABOVE
-1DD3;CM # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-1DD4;CM # COMBINING LATIN SMALL LETTER AE
-1DD5;CM # COMBINING LATIN SMALL LETTER AO
-1DD6;CM # COMBINING LATIN SMALL LETTER AV
-1DD7;CM # COMBINING LATIN SMALL LETTER C CEDILLA
-1DD8;CM # COMBINING LATIN SMALL LETTER INSULAR D
-1DD9;CM # COMBINING LATIN SMALL LETTER ETH
-1DDA;CM # COMBINING LATIN SMALL LETTER G
-1DDB;CM # COMBINING LATIN LETTER SMALL CAPITAL G
-1DDC;CM # COMBINING LATIN SMALL LETTER K
-1DDD;CM # COMBINING LATIN SMALL LETTER L
-1DDE;CM # COMBINING LATIN LETTER SMALL CAPITAL L
-1DDF;CM # COMBINING LATIN LETTER SMALL CAPITAL M
-1DE0;CM # COMBINING LATIN SMALL LETTER N
-1DE1;CM # COMBINING LATIN LETTER SMALL CAPITAL N
-1DE2;CM # COMBINING LATIN LETTER SMALL CAPITAL R
-1DE3;CM # COMBINING LATIN SMALL LETTER R ROTUNDA
-1DE4;CM # COMBINING LATIN SMALL LETTER S
-1DE5;CM # COMBINING LATIN SMALL LETTER LONG S
-1DE6;CM # COMBINING LATIN SMALL LETTER Z
-1DFC;CM # COMBINING DOUBLE INVERTED BREVE BELOW
-1DFD;CM # COMBINING ALMOST EQUAL TO BELOW
-1DFE;CM # COMBINING LEFT ARROWHEAD ABOVE
-1DFF;CM # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00;AL # LATIN CAPITAL LETTER A WITH RING BELOW
-1E01;AL # LATIN SMALL LETTER A WITH RING BELOW
-1E02;AL # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E03;AL # LATIN SMALL LETTER B WITH DOT ABOVE
-1E04;AL # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E05;AL # LATIN SMALL LETTER B WITH DOT BELOW
-1E06;AL # LATIN CAPITAL LETTER B WITH LINE BELOW
-1E07;AL # LATIN SMALL LETTER B WITH LINE BELOW
-1E08;AL # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-1E09;AL # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E0A;AL # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E0B;AL # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0C;AL # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E0D;AL # LATIN SMALL LETTER D WITH DOT BELOW
-1E0E;AL # LATIN CAPITAL LETTER D WITH LINE BELOW
-1E0F;AL # LATIN SMALL LETTER D WITH LINE BELOW
-1E10;AL # LATIN CAPITAL LETTER D WITH CEDILLA
-1E11;AL # LATIN SMALL LETTER D WITH CEDILLA
-1E12;AL # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E13;AL # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E14;AL # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1E15;AL # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E16;AL # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E17;AL # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E18;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E19;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E1A;AL # LATIN CAPITAL LETTER E WITH TILDE BELOW
-1E1B;AL # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1C;AL # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-1E1D;AL # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1E;AL # LATIN CAPITAL LETTER F WITH DOT ABOVE
-1E1F;AL # LATIN SMALL LETTER F WITH DOT ABOVE
-1E20;AL # LATIN CAPITAL LETTER G WITH MACRON
-1E21;AL # LATIN SMALL LETTER G WITH MACRON
-1E22;AL # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E23;AL # LATIN SMALL LETTER H WITH DOT ABOVE
-1E24;AL # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E25;AL # LATIN SMALL LETTER H WITH DOT BELOW
-1E26;AL # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E27;AL # LATIN SMALL LETTER H WITH DIAERESIS
-1E28;AL # LATIN CAPITAL LETTER H WITH CEDILLA
-1E29;AL # LATIN SMALL LETTER H WITH CEDILLA
-1E2A;AL # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E2B;AL # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2C;AL # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1E2D;AL # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2E;AL # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-1E2F;AL # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E30;AL # LATIN CAPITAL LETTER K WITH ACUTE
-1E31;AL # LATIN SMALL LETTER K WITH ACUTE
-1E32;AL # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E33;AL # LATIN SMALL LETTER K WITH DOT BELOW
-1E34;AL # LATIN CAPITAL LETTER K WITH LINE BELOW
-1E35;AL # LATIN SMALL LETTER K WITH LINE BELOW
-1E36;AL # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E37;AL # LATIN SMALL LETTER L WITH DOT BELOW
-1E38;AL # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E39;AL # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E3A;AL # LATIN CAPITAL LETTER L WITH LINE BELOW
-1E3B;AL # LATIN SMALL LETTER L WITH LINE BELOW
-1E3C;AL # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3D;AL # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3E;AL # LATIN CAPITAL LETTER M WITH ACUTE
-1E3F;AL # LATIN SMALL LETTER M WITH ACUTE
-1E40;AL # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E41;AL # LATIN SMALL LETTER M WITH DOT ABOVE
-1E42;AL # LATIN CAPITAL LETTER M WITH DOT BELOW
-1E43;AL # LATIN SMALL LETTER M WITH DOT BELOW
-1E44;AL # LATIN CAPITAL LETTER N WITH DOT ABOVE
-1E45;AL # LATIN SMALL LETTER N WITH DOT ABOVE
-1E46;AL # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E47;AL # LATIN SMALL LETTER N WITH DOT BELOW
-1E48;AL # LATIN CAPITAL LETTER N WITH LINE BELOW
-1E49;AL # LATIN SMALL LETTER N WITH LINE BELOW
-1E4A;AL # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E4B;AL # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4C;AL # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4D;AL # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4E;AL # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1E4F;AL # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E50;AL # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1E51;AL # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E52;AL # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E53;AL # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E54;AL # LATIN CAPITAL LETTER P WITH ACUTE
-1E55;AL # LATIN SMALL LETTER P WITH ACUTE
-1E56;AL # LATIN CAPITAL LETTER P WITH DOT ABOVE
-1E57;AL # LATIN SMALL LETTER P WITH DOT ABOVE
-1E58;AL # LATIN CAPITAL LETTER R WITH DOT ABOVE
-1E59;AL # LATIN SMALL LETTER R WITH DOT ABOVE
-1E5A;AL # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5B;AL # LATIN SMALL LETTER R WITH DOT BELOW
-1E5C;AL # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5D;AL # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5E;AL # LATIN CAPITAL LETTER R WITH LINE BELOW
-1E5F;AL # LATIN SMALL LETTER R WITH LINE BELOW
-1E60;AL # LATIN CAPITAL LETTER S WITH DOT ABOVE
-1E61;AL # LATIN SMALL LETTER S WITH DOT ABOVE
-1E62;AL # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E63;AL # LATIN SMALL LETTER S WITH DOT BELOW
-1E64;AL # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-1E65;AL # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E66;AL # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E67;AL # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E68;AL # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E69;AL # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E6A;AL # LATIN CAPITAL LETTER T WITH DOT ABOVE
-1E6B;AL # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6C;AL # LATIN CAPITAL LETTER T WITH DOT BELOW
-1E6D;AL # LATIN SMALL LETTER T WITH DOT BELOW
-1E6E;AL # LATIN CAPITAL LETTER T WITH LINE BELOW
-1E6F;AL # LATIN SMALL LETTER T WITH LINE BELOW
-1E70;AL # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E71;AL # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E72;AL # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E73;AL # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E74;AL # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1E75;AL # LATIN SMALL LETTER U WITH TILDE BELOW
-1E76;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E77;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E78;AL # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-1E79;AL # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E7A;AL # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1E7B;AL # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7C;AL # LATIN CAPITAL LETTER V WITH TILDE
-1E7D;AL # LATIN SMALL LETTER V WITH TILDE
-1E7E;AL # LATIN CAPITAL LETTER V WITH DOT BELOW
-1E7F;AL # LATIN SMALL LETTER V WITH DOT BELOW
-1E80;AL # LATIN CAPITAL LETTER W WITH GRAVE
-1E81;AL # LATIN SMALL LETTER W WITH GRAVE
-1E82;AL # LATIN CAPITAL LETTER W WITH ACUTE
-1E83;AL # LATIN SMALL LETTER W WITH ACUTE
-1E84;AL # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E85;AL # LATIN SMALL LETTER W WITH DIAERESIS
-1E86;AL # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E87;AL # LATIN SMALL LETTER W WITH DOT ABOVE
-1E88;AL # LATIN CAPITAL LETTER W WITH DOT BELOW
-1E89;AL # LATIN SMALL LETTER W WITH DOT BELOW
-1E8A;AL # LATIN CAPITAL LETTER X WITH DOT ABOVE
-1E8B;AL # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8C;AL # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8D;AL # LATIN SMALL LETTER X WITH DIAERESIS
-1E8E;AL # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-1E8F;AL # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E90;AL # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-1E91;AL # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E92;AL # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E93;AL # LATIN SMALL LETTER Z WITH DOT BELOW
-1E94;AL # LATIN CAPITAL LETTER Z WITH LINE BELOW
-1E95;AL # LATIN SMALL LETTER Z WITH LINE BELOW
-1E96;AL # LATIN SMALL LETTER H WITH LINE BELOW
-1E97;AL # LATIN SMALL LETTER T WITH DIAERESIS
-1E98;AL # LATIN SMALL LETTER W WITH RING ABOVE
-1E99;AL # LATIN SMALL LETTER Y WITH RING ABOVE
-1E9A;AL # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1E9B;AL # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1E9C;AL # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D;AL # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-1E9E;AL # LATIN CAPITAL LETTER SHARP S
-1E9F;AL # LATIN SMALL LETTER DELTA
-1EA0;AL # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EA1;AL # LATIN SMALL LETTER A WITH DOT BELOW
-1EA2;AL # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EA3;AL # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA4;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA5;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA6;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA7;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA8;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA9;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAA;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAB;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAC;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAD;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAE;AL # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EAF;AL # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EB0;AL # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB1;AL # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB2;AL # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB3;AL # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB4;AL # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB5;AL # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB6;AL # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EB7;AL # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB8;AL # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EB9;AL # LATIN SMALL LETTER E WITH DOT BELOW
-1EBA;AL # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EBB;AL # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBC;AL # LATIN CAPITAL LETTER E WITH TILDE
-1EBD;AL # LATIN SMALL LETTER E WITH TILDE
-1EBE;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBF;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC0;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC1;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC2;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC3;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC4;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC5;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC6;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC7;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC8;AL # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1EC9;AL # LATIN SMALL LETTER I WITH HOOK ABOVE
-1ECA;AL # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECB;AL # LATIN SMALL LETTER I WITH DOT BELOW
-1ECC;AL # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ECD;AL # LATIN SMALL LETTER O WITH DOT BELOW
-1ECE;AL # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1ECF;AL # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ED0;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED1;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED2;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED3;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED5;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED6;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED7;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED8;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED9;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EDA;AL # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDB;AL # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDC;AL # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDD;AL # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDE;AL # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EDF;AL # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EE0;AL # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EE1;AL # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE2;AL # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1EE3;AL # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE4;AL # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EE5;AL # LATIN SMALL LETTER U WITH DOT BELOW
-1EE6;AL # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EE7;AL # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE8;AL # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EE9;AL # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EEA;AL # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEB;AL # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEC;AL # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EED;AL # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEE;AL # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EEF;AL # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EF0;AL # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EF1;AL # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF2;AL # LATIN CAPITAL LETTER Y WITH GRAVE
-1EF3;AL # LATIN SMALL LETTER Y WITH GRAVE
-1EF4;AL # LATIN CAPITAL LETTER Y WITH DOT BELOW
-1EF5;AL # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF6;AL # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF7;AL # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF8;AL # LATIN CAPITAL LETTER Y WITH TILDE
-1EF9;AL # LATIN SMALL LETTER Y WITH TILDE
-1EFA;AL # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-1EFB;AL # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFC;AL # LATIN CAPITAL LETTER MIDDLE-WELSH V
-1EFD;AL # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFE;AL # LATIN CAPITAL LETTER Y WITH LOOP
-1EFF;AL # LATIN SMALL LETTER Y WITH LOOP
-1F00;AL # GREEK SMALL LETTER ALPHA WITH PSILI
-1F01;AL # GREEK SMALL LETTER ALPHA WITH DASIA
-1F02;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F03;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F04;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F05;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F06;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F07;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F08;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F09;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F0A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F0B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F0C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F0D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F0E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F10;AL # GREEK SMALL LETTER EPSILON WITH PSILI
-1F11;AL # GREEK SMALL LETTER EPSILON WITH DASIA
-1F12;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F13;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F14;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F15;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F19;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F1A;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F1B;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-1F1C;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F1D;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20;AL # GREEK SMALL LETTER ETA WITH PSILI
-1F21;AL # GREEK SMALL LETTER ETA WITH DASIA
-1F22;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F23;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F24;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F25;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F26;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F27;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F28;AL # GREEK CAPITAL LETTER ETA WITH PSILI
-1F29;AL # GREEK CAPITAL LETTER ETA WITH DASIA
-1F2A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F2B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F2C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F2D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F2E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F30;AL # GREEK SMALL LETTER IOTA WITH PSILI
-1F31;AL # GREEK SMALL LETTER IOTA WITH DASIA
-1F32;AL # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F33;AL # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F34;AL # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F35;AL # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F36;AL # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F37;AL # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F38;AL # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F39;AL # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F3A;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F3B;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F3C;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F3D;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F3E;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3F;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F40;AL # GREEK SMALL LETTER OMICRON WITH PSILI
-1F41;AL # GREEK SMALL LETTER OMICRON WITH DASIA
-1F42;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F43;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F44;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F45;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F49;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F4A;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F4B;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-1F4C;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F4D;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50;AL # GREEK SMALL LETTER UPSILON WITH PSILI
-1F51;AL # GREEK SMALL LETTER UPSILON WITH DASIA
-1F52;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F53;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F54;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F55;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F56;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F57;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F60;AL # GREEK SMALL LETTER OMEGA WITH PSILI
-1F61;AL # GREEK SMALL LETTER OMEGA WITH DASIA
-1F62;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F63;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F64;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F65;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F66;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F67;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F68;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F69;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F6A;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1F6B;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1F6C;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1F6D;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1F6E;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6F;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F70;AL # GREEK SMALL LETTER ALPHA WITH VARIA
-1F71;AL # GREEK SMALL LETTER ALPHA WITH OXIA
-1F72;AL # GREEK SMALL LETTER EPSILON WITH VARIA
-1F73;AL # GREEK SMALL LETTER EPSILON WITH OXIA
-1F74;AL # GREEK SMALL LETTER ETA WITH VARIA
-1F75;AL # GREEK SMALL LETTER ETA WITH OXIA
-1F76;AL # GREEK SMALL LETTER IOTA WITH VARIA
-1F77;AL # GREEK SMALL LETTER IOTA WITH OXIA
-1F78;AL # GREEK SMALL LETTER OMICRON WITH VARIA
-1F79;AL # GREEK SMALL LETTER OMICRON WITH OXIA
-1F7A;AL # GREEK SMALL LETTER UPSILON WITH VARIA
-1F7B;AL # GREEK SMALL LETTER UPSILON WITH OXIA
-1F7C;AL # GREEK SMALL LETTER OMEGA WITH VARIA
-1F7D;AL # GREEK SMALL LETTER OMEGA WITH OXIA
-1F80;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F81;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F82;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F83;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F84;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F85;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F86;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F87;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F88;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F89;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-1F8A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F8B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F8C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F8D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F8E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F8F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F90;AL # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F91;AL # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F92;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F93;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F94;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F95;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F96;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F97;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F98;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F99;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-1F9A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F9B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F9C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F9D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F9E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F9F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA1;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA2;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FA3;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FA4;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FA5;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FA6;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FA7;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FA8;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1FA9;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-1FAA;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1FAB;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1FAC;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1FAD;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1FAE;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FAF;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FB0;AL # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB1;AL # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB2;AL # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB3;AL # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FB4;AL # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB8;AL # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB9;AL # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FBA;AL # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FBB;AL # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FBC;AL # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD;AL # GREEK KORONIS
-1FBE;AL # GREEK PROSGEGRAMMENI
-1FBF;AL # GREEK PSILI
-1FC0;AL # GREEK PERISPOMENI
-1FC1;AL # GREEK DIALYTIKA AND PERISPOMENI
-1FC2;AL # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC3;AL # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FC4;AL # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC8;AL # GREEK CAPITAL LETTER EPSILON WITH VARIA
-1FC9;AL # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1FCA;AL # GREEK CAPITAL LETTER ETA WITH VARIA
-1FCB;AL # GREEK CAPITAL LETTER ETA WITH OXIA
-1FCC;AL # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD;AL # GREEK PSILI AND VARIA
-1FCE;AL # GREEK PSILI AND OXIA
-1FCF;AL # GREEK PSILI AND PERISPOMENI
-1FD0;AL # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD1;AL # GREEK SMALL LETTER IOTA WITH MACRON
-1FD2;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD3;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6;AL # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-1FD7;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD8;AL # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD9;AL # GREEK CAPITAL LETTER IOTA WITH MACRON
-1FDA;AL # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FDB;AL # GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD;AL # GREEK DASIA AND VARIA
-1FDE;AL # GREEK DASIA AND OXIA
-1FDF;AL # GREEK DASIA AND PERISPOMENI
-1FE0;AL # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE1;AL # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE2;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE3;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE4;AL # GREEK SMALL LETTER RHO WITH PSILI
-1FE5;AL # GREEK SMALL LETTER RHO WITH DASIA
-1FE6;AL # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-1FE7;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE8;AL # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE9;AL # GREEK CAPITAL LETTER UPSILON WITH MACRON
-1FEA;AL # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FEB;AL # GREEK CAPITAL LETTER UPSILON WITH OXIA
-1FEC;AL # GREEK CAPITAL LETTER RHO WITH DASIA
-1FED;AL # GREEK DIALYTIKA AND VARIA
-1FEE;AL # GREEK DIALYTIKA AND OXIA
-1FEF;AL # GREEK VARIA
-1FF2;AL # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF3;AL # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FF4;AL # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF8;AL # GREEK CAPITAL LETTER OMICRON WITH VARIA
-1FF9;AL # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1FFA;AL # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FFB;AL # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FFC;AL # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD;BB # GREEK OXIA
-1FFE;AL # GREEK DASIA
-2000;BA # EN QUAD
-2001;BA # EM QUAD
-2002;BA # EN SPACE
-2003;BA # EM SPACE
-2004;BA # THREE-PER-EM SPACE
-2005;BA # FOUR-PER-EM SPACE
-2006;BA # SIX-PER-EM SPACE
-2007;GL # FIGURE SPACE
-2008;BA # PUNCTUATION SPACE
-2009;BA # THIN SPACE
-200A;BA # HAIR SPACE
-200B;ZW # ZERO WIDTH SPACE
-200C;CM # ZERO WIDTH NON-JOINER
-200D;CM # ZERO WIDTH JOINER
-200E;CM # LEFT-TO-RIGHT MARK
-200F;CM # RIGHT-TO-LEFT MARK
-2010;BA # HYPHEN
-2011;GL # NON-BREAKING HYPHEN
-2012;BA # FIGURE DASH
-2013;BA # EN DASH
-2014;B2 # EM DASH
-2015;AI # HORIZONTAL BAR
-2016;AI # DOUBLE VERTICAL LINE
-2017;AL # DOUBLE LOW LINE
-2018;QU # LEFT SINGLE QUOTATION MARK
-2019;QU # RIGHT SINGLE QUOTATION MARK
-201A;OP # SINGLE LOW-9 QUOTATION MARK
-201B;QU # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C;QU # LEFT DOUBLE QUOTATION MARK
-201D;QU # RIGHT DOUBLE QUOTATION MARK
-201E;OP # DOUBLE LOW-9 QUOTATION MARK
-201F;QU # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020;AI # DAGGER
-2021;AI # DOUBLE DAGGER
-2022;AL # BULLET
-2023;AL # TRIANGULAR BULLET
-2024;IN # ONE DOT LEADER
-2025;IN # TWO DOT LEADER
-2026;IN # HORIZONTAL ELLIPSIS
-2027;BA # HYPHENATION POINT
-2028;BK # LINE SEPARATOR
-2029;BK # PARAGRAPH SEPARATOR
-202A;CM # LEFT-TO-RIGHT EMBEDDING
-202B;CM # RIGHT-TO-LEFT EMBEDDING
-202C;CM # POP DIRECTIONAL FORMATTING
-202D;CM # LEFT-TO-RIGHT OVERRIDE
-202E;CM # RIGHT-TO-LEFT OVERRIDE
-202F;GL # NARROW NO-BREAK SPACE
-2030;PO # PER MILLE SIGN
-2031;PO # PER TEN THOUSAND SIGN
-2032;PO # PRIME
-2033;PO # DOUBLE PRIME
-2034;PO # TRIPLE PRIME
-2035;PO # REVERSED PRIME
-2036;PO # REVERSED DOUBLE PRIME
-2037;PO # REVERSED TRIPLE PRIME
-2038;AL # CARET
-2039;QU # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A;QU # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B;AI # REFERENCE MARK
-203C;NS # DOUBLE EXCLAMATION MARK
-203D;NS # INTERROBANG
-203E;AL # OVERLINE
-203F;AL # UNDERTIE
-2040;AL # CHARACTER TIE
-2041;AL # CARET INSERTION POINT
-2042;AL # ASTERISM
-2043;AL # HYPHEN BULLET
-2044;IS # FRACTION SLASH
-2045;OP # LEFT SQUARE BRACKET WITH QUILL
-2046;CL # RIGHT SQUARE BRACKET WITH QUILL
-2047;NS # DOUBLE QUESTION MARK
-2048;NS # QUESTION EXCLAMATION MARK
-2049;NS # EXCLAMATION QUESTION MARK
-204A;AL # TIRONIAN SIGN ET
-204B;AL # REVERSED PILCROW SIGN
-204C;AL # BLACK LEFTWARDS BULLET
-204D;AL # BLACK RIGHTWARDS BULLET
-204E;AL # LOW ASTERISK
-204F;AL # REVERSED SEMICOLON
-2050;AL # CLOSE UP
-2051;AL # TWO ASTERISKS ALIGNED VERTICALLY
-2052;AL # COMMERCIAL MINUS SIGN
-2053;AL # SWUNG DASH
-2054;AL # INVERTED UNDERTIE
-2055;AL # FLOWER PUNCTUATION MARK
-2056;BA # THREE DOT PUNCTUATION
-2057;AL # QUADRUPLE PRIME
-2058;BA # FOUR DOT PUNCTUATION
-2059;BA # FIVE DOT PUNCTUATION
-205A;BA # TWO DOT PUNCTUATION
-205B;BA # FOUR DOT MARK
-205C;AL # DOTTED CROSS
-205D;BA # TRICOLON
-205E;BA # VERTICAL FOUR DOTS
-205F;BA # MEDIUM MATHEMATICAL SPACE
-2060;WJ # WORD JOINER
-2061;AL # FUNCTION APPLICATION
-2062;AL # INVISIBLE TIMES
-2063;AL # INVISIBLE SEPARATOR
-2064;AL # INVISIBLE PLUS
-2066;CM # LEFT-TO-RIGHT ISOLATE
-2067;CM # RIGHT-TO-LEFT ISOLATE
-2068;CM # FIRST STRONG ISOLATE
-2069;CM # POP DIRECTIONAL ISOLATE
-206A;CM # INHIBIT SYMMETRIC SWAPPING
-206B;CM # ACTIVATE SYMMETRIC SWAPPING
-206C;CM # INHIBIT ARABIC FORM SHAPING
-206D;CM # ACTIVATE ARABIC FORM SHAPING
-206E;CM # NATIONAL DIGIT SHAPES
-206F;CM # NOMINAL DIGIT SHAPES
-2070;AL # SUPERSCRIPT ZERO
-2071;AL # SUPERSCRIPT LATIN SMALL LETTER I
-2074;AI # SUPERSCRIPT FOUR
-2075;AL # SUPERSCRIPT FIVE
-2076;AL # SUPERSCRIPT SIX
-2077;AL # SUPERSCRIPT SEVEN
-2078;AL # SUPERSCRIPT EIGHT
-2079;AL # SUPERSCRIPT NINE
-207A;AL # SUPERSCRIPT PLUS SIGN
-207B;AL # SUPERSCRIPT MINUS
-207C;AL # SUPERSCRIPT EQUALS SIGN
-207D;OP # SUPERSCRIPT LEFT PARENTHESIS
-207E;CL # SUPERSCRIPT RIGHT PARENTHESIS
-207F;AI # SUPERSCRIPT LATIN SMALL LETTER N
-2080;AL # SUBSCRIPT ZERO
-2081;AI # SUBSCRIPT ONE
-2082;AI # SUBSCRIPT TWO
-2083;AI # SUBSCRIPT THREE
-2084;AI # SUBSCRIPT FOUR
-2085;AL # SUBSCRIPT FIVE
-2086;AL # SUBSCRIPT SIX
-2087;AL # SUBSCRIPT SEVEN
-2088;AL # SUBSCRIPT EIGHT
-2089;AL # SUBSCRIPT NINE
-208A;AL # SUBSCRIPT PLUS SIGN
-208B;AL # SUBSCRIPT MINUS
-208C;AL # SUBSCRIPT EQUALS SIGN
-208D;OP # SUBSCRIPT LEFT PARENTHESIS
-208E;CL # SUBSCRIPT RIGHT PARENTHESIS
-2090;AL # LATIN SUBSCRIPT SMALL LETTER A
-2091;AL # LATIN SUBSCRIPT SMALL LETTER E
-2092;AL # LATIN SUBSCRIPT SMALL LETTER O
-2093;AL # LATIN SUBSCRIPT SMALL LETTER X
-2094;AL # LATIN SUBSCRIPT SMALL LETTER SCHWA
-2095;AL # LATIN SUBSCRIPT SMALL LETTER H
-2096;AL # LATIN SUBSCRIPT SMALL LETTER K
-2097;AL # LATIN SUBSCRIPT SMALL LETTER L
-2098;AL # LATIN SUBSCRIPT SMALL LETTER M
-2099;AL # LATIN SUBSCRIPT SMALL LETTER N
-209A;AL # LATIN SUBSCRIPT SMALL LETTER P
-209B;AL # LATIN SUBSCRIPT SMALL LETTER S
-209C;AL # LATIN SUBSCRIPT SMALL LETTER T
-20A0;PR # EURO-CURRENCY SIGN
-20A1;PR # COLON SIGN
-20A2;PR # CRUZEIRO SIGN
-20A3;PR # FRENCH FRANC SIGN
-20A4;PR # LIRA SIGN
-20A5;PR # MILL SIGN
-20A6;PR # NAIRA SIGN
-20A7;PO # PESETA SIGN
-20A8;PR # RUPEE SIGN
-20A9;PR # WON SIGN
-20AA;PR # NEW SHEQEL SIGN
-20AB;PR # DONG SIGN
-20AC;PR # EURO SIGN
-20AD;PR # KIP SIGN
-20AE;PR # TUGRIK SIGN
-20AF;PR # DRACHMA SIGN
-20B0;PR # GERMAN PENNY SIGN
-20B1;PR # PESO SIGN
-20B2;PR # GUARANI SIGN
-20B3;PR # AUSTRAL SIGN
-20B4;PR # HRYVNIA SIGN
-20B5;PR # CEDI SIGN
-20B6;PO # LIVRE TOURNOIS SIGN
-20B7;PR # SPESMILO SIGN
-20B8;PR # TENGE SIGN
-20B9;PR # INDIAN RUPEE SIGN
-20BA;PR # TURKISH LIRA SIGN
-20BB..20CF;PR # <reserved-20BB>..<reserved-20CF>
-20D0;CM # COMBINING LEFT HARPOON ABOVE
-20D1;CM # COMBINING RIGHT HARPOON ABOVE
-20D2;CM # COMBINING LONG VERTICAL LINE OVERLAY
-20D3;CM # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4;CM # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5;CM # COMBINING CLOCKWISE ARROW ABOVE
-20D6;CM # COMBINING LEFT ARROW ABOVE
-20D7;CM # COMBINING RIGHT ARROW ABOVE
-20D8;CM # COMBINING RING OVERLAY
-20D9;CM # COMBINING CLOCKWISE RING OVERLAY
-20DA;CM # COMBINING ANTICLOCKWISE RING OVERLAY
-20DB;CM # COMBINING THREE DOTS ABOVE
-20DC;CM # COMBINING FOUR DOTS ABOVE
-20DD;CM # COMBINING ENCLOSING CIRCLE
-20DE;CM # COMBINING ENCLOSING SQUARE
-20DF;CM # COMBINING ENCLOSING DIAMOND
-20E0;CM # COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1;CM # COMBINING LEFT RIGHT ARROW ABOVE
-20E2;CM # COMBINING ENCLOSING SCREEN
-20E3;CM # COMBINING ENCLOSING KEYCAP
-20E4;CM # COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5;CM # COMBINING REVERSE SOLIDUS OVERLAY
-20E6;CM # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7;CM # COMBINING ANNUITY SYMBOL
-20E8;CM # COMBINING TRIPLE UNDERDOT
-20E9;CM # COMBINING WIDE BRIDGE ABOVE
-20EA;CM # COMBINING LEFTWARDS ARROW OVERLAY
-20EB;CM # COMBINING LONG DOUBLE SOLIDUS OVERLAY
-20EC;CM # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-20ED;CM # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS
-20EE;CM # COMBINING LEFT ARROW BELOW
-20EF;CM # COMBINING RIGHT ARROW BELOW
-20F0;CM # COMBINING ASTERISK ABOVE
-2100;AL # ACCOUNT OF
-2101;AL # ADDRESSED TO THE SUBJECT
-2102;AL # DOUBLE-STRUCK CAPITAL C
-2103;PO # DEGREE CELSIUS
-2104;AL # CENTRE LINE SYMBOL
-2105;AI # CARE OF
-2106;AL # CADA UNA
-2107;AL # EULER CONSTANT
-2108;AL # SCRUPLE
-2109;PO # DEGREE FAHRENHEIT
-210A;AL # SCRIPT SMALL G
-210B;AL # SCRIPT CAPITAL H
-210C;AL # BLACK-LETTER CAPITAL H
-210D;AL # DOUBLE-STRUCK CAPITAL H
-210E;AL # PLANCK CONSTANT
-210F;AL # PLANCK CONSTANT OVER TWO PI
-2110;AL # SCRIPT CAPITAL I
-2111;AL # BLACK-LETTER CAPITAL I
-2112;AL # SCRIPT CAPITAL L
-2113;AI # SCRIPT SMALL L
-2114;AL # L B BAR SYMBOL
-2115;AL # DOUBLE-STRUCK CAPITAL N
-2116;PR # NUMERO SIGN
-2117;AL # SOUND RECORDING COPYRIGHT
-2118;AL # SCRIPT CAPITAL P
-2119;AL # DOUBLE-STRUCK CAPITAL P
-211A;AL # DOUBLE-STRUCK CAPITAL Q
-211B;AL # SCRIPT CAPITAL R
-211C;AL # BLACK-LETTER CAPITAL R
-211D;AL # DOUBLE-STRUCK CAPITAL R
-211E;AL # PRESCRIPTION TAKE
-211F;AL # RESPONSE
-2120;AL # SERVICE MARK
-2121;AI # TELEPHONE SIGN
-2122;AI # TRADE MARK SIGN
-2123;AL # VERSICLE
-2124;AL # DOUBLE-STRUCK CAPITAL Z
-2125;AL # OUNCE SIGN
-2126;AL # OHM SIGN
-2127;AL # INVERTED OHM SIGN
-2128;AL # BLACK-LETTER CAPITAL Z
-2129;AL # TURNED GREEK SMALL LETTER IOTA
-212A;AL # KELVIN SIGN
-212B;AI # ANGSTROM SIGN
-212C;AL # SCRIPT CAPITAL B
-212D;AL # BLACK-LETTER CAPITAL C
-212E;AL # ESTIMATED SYMBOL
-212F;AL # SCRIPT SMALL E
-2130;AL # SCRIPT CAPITAL E
-2131;AL # SCRIPT CAPITAL F
-2132;AL # TURNED CAPITAL F
-2133;AL # SCRIPT CAPITAL M
-2134;AL # SCRIPT SMALL O
-2135;AL # ALEF SYMBOL
-2136;AL # BET SYMBOL
-2137;AL # GIMEL SYMBOL
-2138;AL # DALET SYMBOL
-2139;AL # INFORMATION SOURCE
-213A;AL # ROTATED CAPITAL Q
-213B;AL # FACSIMILE SIGN
-213C;AL # DOUBLE-STRUCK SMALL PI
-213D;AL # DOUBLE-STRUCK SMALL GAMMA
-213E;AL # DOUBLE-STRUCK CAPITAL GAMMA
-213F;AL # DOUBLE-STRUCK CAPITAL PI
-2140;AL # DOUBLE-STRUCK N-ARY SUMMATION
-2141;AL # TURNED SANS-SERIF CAPITAL G
-2142;AL # TURNED SANS-SERIF CAPITAL L
-2143;AL # REVERSED SANS-SERIF CAPITAL L
-2144;AL # TURNED SANS-SERIF CAPITAL Y
-2145;AL # DOUBLE-STRUCK ITALIC CAPITAL D
-2146;AL # DOUBLE-STRUCK ITALIC SMALL D
-2147;AL # DOUBLE-STRUCK ITALIC SMALL E
-2148;AL # DOUBLE-STRUCK ITALIC SMALL I
-2149;AL # DOUBLE-STRUCK ITALIC SMALL J
-214A;AL # PROPERTY LINE
-214B;AL # TURNED AMPERSAND
-214C;AL # PER SIGN
-214D;AL # AKTIESELSKAB
-214E;AL # TURNED SMALL F
-214F;AL # SYMBOL FOR SAMARITAN SOURCE
-2150;AL # VULGAR FRACTION ONE SEVENTH
-2151;AL # VULGAR FRACTION ONE NINTH
-2152;AL # VULGAR FRACTION ONE TENTH
-2153;AL # VULGAR FRACTION ONE THIRD
-2154;AI # VULGAR FRACTION TWO THIRDS
-2155;AI # VULGAR FRACTION ONE FIFTH
-2156;AL # VULGAR FRACTION TWO FIFTHS
-2157;AL # VULGAR FRACTION THREE FIFTHS
-2158;AL # VULGAR FRACTION FOUR FIFTHS
-2159;AL # VULGAR FRACTION ONE SIXTH
-215A;AL # VULGAR FRACTION FIVE SIXTHS
-215B;AI # VULGAR FRACTION ONE EIGHTH
-215C;AL # VULGAR FRACTION THREE EIGHTHS
-215D;AL # VULGAR FRACTION FIVE EIGHTHS
-215E;AI # VULGAR FRACTION SEVEN EIGHTHS
-215F;AL # FRACTION NUMERATOR ONE
-2160;AI # ROMAN NUMERAL ONE
-2161;AI # ROMAN NUMERAL TWO
-2162;AI # ROMAN NUMERAL THREE
-2163;AI # ROMAN NUMERAL FOUR
-2164;AI # ROMAN NUMERAL FIVE
-2165;AI # ROMAN NUMERAL SIX
-2166;AI # ROMAN NUMERAL SEVEN
-2167;AI # ROMAN NUMERAL EIGHT
-2168;AI # ROMAN NUMERAL NINE
-2169;AI # ROMAN NUMERAL TEN
-216A;AI # ROMAN NUMERAL ELEVEN
-216B;AI # ROMAN NUMERAL TWELVE
-216C;AL # ROMAN NUMERAL FIFTY
-216D;AL # ROMAN NUMERAL ONE HUNDRED
-216E;AL # ROMAN NUMERAL FIVE HUNDRED
-216F;AL # ROMAN NUMERAL ONE THOUSAND
-2170;AI # SMALL ROMAN NUMERAL ONE
-2171;AI # SMALL ROMAN NUMERAL TWO
-2172;AI # SMALL ROMAN NUMERAL THREE
-2173;AI # SMALL ROMAN NUMERAL FOUR
-2174;AI # SMALL ROMAN NUMERAL FIVE
-2175;AI # SMALL ROMAN NUMERAL SIX
-2176;AI # SMALL ROMAN NUMERAL SEVEN
-2177;AI # SMALL ROMAN NUMERAL EIGHT
-2178;AI # SMALL ROMAN NUMERAL NINE
-2179;AI # SMALL ROMAN NUMERAL TEN
-217A;AL # SMALL ROMAN NUMERAL ELEVEN
-217B;AL # SMALL ROMAN NUMERAL TWELVE
-217C;AL # SMALL ROMAN NUMERAL FIFTY
-217D;AL # SMALL ROMAN NUMERAL ONE HUNDRED
-217E;AL # SMALL ROMAN NUMERAL FIVE HUNDRED
-217F;AL # SMALL ROMAN NUMERAL ONE THOUSAND
-2180;AL # ROMAN NUMERAL ONE THOUSAND C D
-2181;AL # ROMAN NUMERAL FIVE THOUSAND
-2182;AL # ROMAN NUMERAL TEN THOUSAND
-2183;AL # ROMAN NUMERAL REVERSED ONE HUNDRED
-2184;AL # LATIN SMALL LETTER REVERSED C
-2185;AL # ROMAN NUMERAL SIX LATE FORM
-2186;AL # ROMAN NUMERAL FIFTY EARLY FORM
-2187;AL # ROMAN NUMERAL FIFTY THOUSAND
-2188;AL # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2189;AI # VULGAR FRACTION ZERO THIRDS
-2190;AI # LEFTWARDS ARROW
-2191;AI # UPWARDS ARROW
-2192;AI # RIGHTWARDS ARROW
-2193;AI # DOWNWARDS ARROW
-2194;AI # LEFT RIGHT ARROW
-2195;AI # UP DOWN ARROW
-2196;AI # NORTH WEST ARROW
-2197;AI # NORTH EAST ARROW
-2198;AI # SOUTH EAST ARROW
-2199;AI # SOUTH WEST ARROW
-219A;AL # LEFTWARDS ARROW WITH STROKE
-219B;AL # RIGHTWARDS ARROW WITH STROKE
-219C;AL # LEFTWARDS WAVE ARROW
-219D;AL # RIGHTWARDS WAVE ARROW
-219E;AL # LEFTWARDS TWO HEADED ARROW
-219F;AL # UPWARDS TWO HEADED ARROW
-21A0;AL # RIGHTWARDS TWO HEADED ARROW
-21A1;AL # DOWNWARDS TWO HEADED ARROW
-21A2;AL # LEFTWARDS ARROW WITH TAIL
-21A3;AL # RIGHTWARDS ARROW WITH TAIL
-21A4;AL # LEFTWARDS ARROW FROM BAR
-21A5;AL # UPWARDS ARROW FROM BAR
-21A6;AL # RIGHTWARDS ARROW FROM BAR
-21A7;AL # DOWNWARDS ARROW FROM BAR
-21A8;AL # UP DOWN ARROW WITH BASE
-21A9;AL # LEFTWARDS ARROW WITH HOOK
-21AA;AL # RIGHTWARDS ARROW WITH HOOK
-21AB;AL # LEFTWARDS ARROW WITH LOOP
-21AC;AL # RIGHTWARDS ARROW WITH LOOP
-21AD;AL # LEFT RIGHT WAVE ARROW
-21AE;AL # LEFT RIGHT ARROW WITH STROKE
-21AF;AL # DOWNWARDS ZIGZAG ARROW
-21B0;AL # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1;AL # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2;AL # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3;AL # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4;AL # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5;AL # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6;AL # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7;AL # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8;AL # NORTH WEST ARROW TO LONG BAR
-21B9;AL # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA;AL # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB;AL # CLOCKWISE OPEN CIRCLE ARROW
-21BC;AL # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD;AL # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE;AL # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF;AL # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0;AL # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1;AL # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2;AL # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3;AL # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4;AL # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5;AL # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6;AL # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7;AL # LEFTWARDS PAIRED ARROWS
-21C8;AL # UPWARDS PAIRED ARROWS
-21C9;AL # RIGHTWARDS PAIRED ARROWS
-21CA;AL # DOWNWARDS PAIRED ARROWS
-21CB;AL # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC;AL # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD;AL # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE;AL # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF;AL # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0;AL # LEFTWARDS DOUBLE ARROW
-21D1;AL # UPWARDS DOUBLE ARROW
-21D2;AI # RIGHTWARDS DOUBLE ARROW
-21D3;AL # DOWNWARDS DOUBLE ARROW
-21D4;AI # LEFT RIGHT DOUBLE ARROW
-21D5;AL # UP DOWN DOUBLE ARROW
-21D6;AL # NORTH WEST DOUBLE ARROW
-21D7;AL # NORTH EAST DOUBLE ARROW
-21D8;AL # SOUTH EAST DOUBLE ARROW
-21D9;AL # SOUTH WEST DOUBLE ARROW
-21DA;AL # LEFTWARDS TRIPLE ARROW
-21DB;AL # RIGHTWARDS TRIPLE ARROW
-21DC;AL # LEFTWARDS SQUIGGLE ARROW
-21DD;AL # RIGHTWARDS SQUIGGLE ARROW
-21DE;AL # UPWARDS ARROW WITH DOUBLE STROKE
-21DF;AL # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0;AL # LEFTWARDS DASHED ARROW
-21E1;AL # UPWARDS DASHED ARROW
-21E2;AL # RIGHTWARDS DASHED ARROW
-21E3;AL # DOWNWARDS DASHED ARROW
-21E4;AL # LEFTWARDS ARROW TO BAR
-21E5;AL # RIGHTWARDS ARROW TO BAR
-21E6;AL # LEFTWARDS WHITE ARROW
-21E7;AL # UPWARDS WHITE ARROW
-21E8;AL # RIGHTWARDS WHITE ARROW
-21E9;AL # DOWNWARDS WHITE ARROW
-21EA;AL # UPWARDS WHITE ARROW FROM BAR
-21EB;AL # UPWARDS WHITE ARROW ON PEDESTAL
-21EC;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE;AL # UPWARDS WHITE DOUBLE ARROW
-21EF;AL # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0;AL # RIGHTWARDS WHITE ARROW FROM WALL
-21F1;AL # NORTH WEST ARROW TO CORNER
-21F2;AL # SOUTH EAST ARROW TO CORNER
-21F3;AL # UP DOWN WHITE ARROW
-21F4;AL # RIGHT ARROW WITH SMALL CIRCLE
-21F5;AL # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6;AL # THREE RIGHTWARDS ARROWS
-21F7;AL # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8;AL # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9;AL # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA;AL # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB;AL # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC;AL # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD;AL # LEFTWARDS OPEN-HEADED ARROW
-21FE;AL # RIGHTWARDS OPEN-HEADED ARROW
-21FF;AL # LEFT RIGHT OPEN-HEADED ARROW
-2200;AI # FOR ALL
-2201;AL # COMPLEMENT
-2202;AI # PARTIAL DIFFERENTIAL
-2203;AI # THERE EXISTS
-2204;AL # THERE DOES NOT EXIST
-2205;AL # EMPTY SET
-2206;AL # INCREMENT
-2207;AI # NABLA
-2208;AI # ELEMENT OF
-2209;AL # NOT AN ELEMENT OF
-220A;AL # SMALL ELEMENT OF
-220B;AI # CONTAINS AS MEMBER
-220C;AL # DOES NOT CONTAIN AS MEMBER
-220D;AL # SMALL CONTAINS AS MEMBER
-220E;AL # END OF PROOF
-220F;AI # N-ARY PRODUCT
-2210;AL # N-ARY COPRODUCT
-2211;AI # N-ARY SUMMATION
-2212;PR # MINUS SIGN
-2213;PR # MINUS-OR-PLUS SIGN
-2214;AL # DOT PLUS
-2215;AI # DIVISION SLASH
-2216;AL # SET MINUS
-2217;AL # ASTERISK OPERATOR
-2218;AL # RING OPERATOR
-2219;AL # BULLET OPERATOR
-221A;AI # SQUARE ROOT
-221B;AL # CUBE ROOT
-221C;AL # FOURTH ROOT
-221D;AI # PROPORTIONAL TO
-221E;AI # INFINITY
-221F;AI # RIGHT ANGLE
-2220;AI # ANGLE
-2221;AL # MEASURED ANGLE
-2222;AL # SPHERICAL ANGLE
-2223;AI # DIVIDES
-2224;AL # DOES NOT DIVIDE
-2225;AI # PARALLEL TO
-2226;AL # NOT PARALLEL TO
-2227;AI # LOGICAL AND
-2228;AI # LOGICAL OR
-2229;AI # INTERSECTION
-222A;AI # UNION
-222B;AI # INTEGRAL
-222C;AI # DOUBLE INTEGRAL
-222D;AL # TRIPLE INTEGRAL
-222E;AI # CONTOUR INTEGRAL
-222F;AL # SURFACE INTEGRAL
-2230;AL # VOLUME INTEGRAL
-2231;AL # CLOCKWISE INTEGRAL
-2232;AL # CLOCKWISE CONTOUR INTEGRAL
-2233;AL # ANTICLOCKWISE CONTOUR INTEGRAL
-2234;AI # THEREFORE
-2235;AI # BECAUSE
-2236;AI # RATIO
-2237;AI # PROPORTION
-2238;AL # DOT MINUS
-2239;AL # EXCESS
-223A;AL # GEOMETRIC PROPORTION
-223B;AL # HOMOTHETIC
-223C;AI # TILDE OPERATOR
-223D;AI # REVERSED TILDE
-223E;AL # INVERTED LAZY S
-223F;AL # SINE WAVE
-2240;AL # WREATH PRODUCT
-2241;AL # NOT TILDE
-2242;AL # MINUS TILDE
-2243;AL # ASYMPTOTICALLY EQUAL TO
-2244;AL # NOT ASYMPTOTICALLY EQUAL TO
-2245;AL # APPROXIMATELY EQUAL TO
-2246;AL # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247;AL # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248;AI # ALMOST EQUAL TO
-2249;AL # NOT ALMOST EQUAL TO
-224A;AL # ALMOST EQUAL OR EQUAL TO
-224B;AL # TRIPLE TILDE
-224C;AI # ALL EQUAL TO
-224D;AL # EQUIVALENT TO
-224E;AL # GEOMETRICALLY EQUIVALENT TO
-224F;AL # DIFFERENCE BETWEEN
-2250;AL # APPROACHES THE LIMIT
-2251;AL # GEOMETRICALLY EQUAL TO
-2252;AI # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253;AL # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254;AL # COLON EQUALS
-2255;AL # EQUALS COLON
-2256;AL # RING IN EQUAL TO
-2257;AL # RING EQUAL TO
-2258;AL # CORRESPONDS TO
-2259;AL # ESTIMATES
-225A;AL # EQUIANGULAR TO
-225B;AL # STAR EQUALS
-225C;AL # DELTA EQUAL TO
-225D;AL # EQUAL TO BY DEFINITION
-225E;AL # MEASURED BY
-225F;AL # QUESTIONED EQUAL TO
-2260;AI # NOT EQUAL TO
-2261;AI # IDENTICAL TO
-2262;AL # NOT IDENTICAL TO
-2263;AL # STRICTLY EQUIVALENT TO
-2264;AI # LESS-THAN OR EQUAL TO
-2265;AI # GREATER-THAN OR EQUAL TO
-2266;AI # LESS-THAN OVER EQUAL TO
-2267;AI # GREATER-THAN OVER EQUAL TO
-2268;AL # LESS-THAN BUT NOT EQUAL TO
-2269;AL # GREATER-THAN BUT NOT EQUAL TO
-226A;AI # MUCH LESS-THAN
-226B;AI # MUCH GREATER-THAN
-226C;AL # BETWEEN
-226D;AL # NOT EQUIVALENT TO
-226E;AI # NOT LESS-THAN
-226F;AI # NOT GREATER-THAN
-2270;AL # NEITHER LESS-THAN NOR EQUAL TO
-2271;AL # NEITHER GREATER-THAN NOR EQUAL TO
-2272;AL # LESS-THAN OR EQUIVALENT TO
-2273;AL # GREATER-THAN OR EQUIVALENT TO
-2274;AL # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275;AL # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276;AL # LESS-THAN OR GREATER-THAN
-2277;AL # GREATER-THAN OR LESS-THAN
-2278;AL # NEITHER LESS-THAN NOR GREATER-THAN
-2279;AL # NEITHER GREATER-THAN NOR LESS-THAN
-227A;AL # PRECEDES
-227B;AL # SUCCEEDS
-227C;AL # PRECEDES OR EQUAL TO
-227D;AL # SUCCEEDS OR EQUAL TO
-227E;AL # PRECEDES OR EQUIVALENT TO
-227F;AL # SUCCEEDS OR EQUIVALENT TO
-2280;AL # DOES NOT PRECEDE
-2281;AL # DOES NOT SUCCEED
-2282;AI # SUBSET OF
-2283;AI # SUPERSET OF
-2284;AL # NOT A SUBSET OF
-2285;AL # NOT A SUPERSET OF
-2286;AI # SUBSET OF OR EQUAL TO
-2287;AI # SUPERSET OF OR EQUAL TO
-2288;AL # NEITHER A SUBSET OF NOR EQUAL TO
-2289;AL # NEITHER A SUPERSET OF NOR EQUAL TO
-228A;AL # SUBSET OF WITH NOT EQUAL TO
-228B;AL # SUPERSET OF WITH NOT EQUAL TO
-228C;AL # MULTISET
-228D;AL # MULTISET MULTIPLICATION
-228E;AL # MULTISET UNION
-228F;AL # SQUARE IMAGE OF
-2290;AL # SQUARE ORIGINAL OF
-2291;AL # SQUARE IMAGE OF OR EQUAL TO
-2292;AL # SQUARE ORIGINAL OF OR EQUAL TO
-2293;AL # SQUARE CAP
-2294;AL # SQUARE CUP
-2295;AI # CIRCLED PLUS
-2296;AL # CIRCLED MINUS
-2297;AL # CIRCLED TIMES
-2298;AL # CIRCLED DIVISION SLASH
-2299;AI # CIRCLED DOT OPERATOR
-229A;AL # CIRCLED RING OPERATOR
-229B;AL # CIRCLED ASTERISK OPERATOR
-229C;AL # CIRCLED EQUALS
-229D;AL # CIRCLED DASH
-229E;AL # SQUARED PLUS
-229F;AL # SQUARED MINUS
-22A0;AL # SQUARED TIMES
-22A1;AL # SQUARED DOT OPERATOR
-22A2;AL # RIGHT TACK
-22A3;AL # LEFT TACK
-22A4;AL # DOWN TACK
-22A5;AI # UP TACK
-22A6;AL # ASSERTION
-22A7;AL # MODELS
-22A8;AL # TRUE
-22A9;AL # FORCES
-22AA;AL # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB;AL # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC;AL # DOES NOT PROVE
-22AD;AL # NOT TRUE
-22AE;AL # DOES NOT FORCE
-22AF;AL # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0;AL # PRECEDES UNDER RELATION
-22B1;AL # SUCCEEDS UNDER RELATION
-22B2;AL # NORMAL SUBGROUP OF
-22B3;AL # CONTAINS AS NORMAL SUBGROUP
-22B4;AL # NORMAL SUBGROUP OF OR EQUAL TO
-22B5;AL # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6;AL # ORIGINAL OF
-22B7;AL # IMAGE OF
-22B8;AL # MULTIMAP
-22B9;AL # HERMITIAN CONJUGATE MATRIX
-22BA;AL # INTERCALATE
-22BB;AL # XOR
-22BC;AL # NAND
-22BD;AL # NOR
-22BE;AL # RIGHT ANGLE WITH ARC
-22BF;AI # RIGHT TRIANGLE
-22C0;AL # N-ARY LOGICAL AND
-22C1;AL # N-ARY LOGICAL OR
-22C2;AL # N-ARY INTERSECTION
-22C3;AL # N-ARY UNION
-22C4;AL # DIAMOND OPERATOR
-22C5;AL # DOT OPERATOR
-22C6;AL # STAR OPERATOR
-22C7;AL # DIVISION TIMES
-22C8;AL # BOWTIE
-22C9;AL # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA;AL # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB;AL # LEFT SEMIDIRECT PRODUCT
-22CC;AL # RIGHT SEMIDIRECT PRODUCT
-22CD;AL # REVERSED TILDE EQUALS
-22CE;AL # CURLY LOGICAL OR
-22CF;AL # CURLY LOGICAL AND
-22D0;AL # DOUBLE SUBSET
-22D1;AL # DOUBLE SUPERSET
-22D2;AL # DOUBLE INTERSECTION
-22D3;AL # DOUBLE UNION
-22D4;AL # PITCHFORK
-22D5;AL # EQUAL AND PARALLEL TO
-22D6;AL # LESS-THAN WITH DOT
-22D7;AL # GREATER-THAN WITH DOT
-22D8;AL # VERY MUCH LESS-THAN
-22D9;AL # VERY MUCH GREATER-THAN
-22DA;AL # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB;AL # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC;AL # EQUAL TO OR LESS-THAN
-22DD;AL # EQUAL TO OR GREATER-THAN
-22DE;AL # EQUAL TO OR PRECEDES
-22DF;AL # EQUAL TO OR SUCCEEDS
-22E0;AL # DOES NOT PRECEDE OR EQUAL
-22E1;AL # DOES NOT SUCCEED OR EQUAL
-22E2;AL # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3;AL # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4;AL # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5;AL # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6;AL # LESS-THAN BUT NOT EQUIVALENT TO
-22E7;AL # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8;AL # PRECEDES BUT NOT EQUIVALENT TO
-22E9;AL # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA;AL # NOT NORMAL SUBGROUP OF
-22EB;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC;AL # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE;AL # VERTICAL ELLIPSIS
-22EF;AL # MIDLINE HORIZONTAL ELLIPSIS
-22F0;AL # UP RIGHT DIAGONAL ELLIPSIS
-22F1;AL # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2;AL # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3;AL # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4;AL # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5;AL # ELEMENT OF WITH DOT ABOVE
-22F6;AL # ELEMENT OF WITH OVERBAR
-22F7;AL # SMALL ELEMENT OF WITH OVERBAR
-22F8;AL # ELEMENT OF WITH UNDERBAR
-22F9;AL # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA;AL # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB;AL # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC;AL # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD;AL # CONTAINS WITH OVERBAR
-22FE;AL # SMALL CONTAINS WITH OVERBAR
-22FF;AL # Z NOTATION BAG MEMBERSHIP
-2300;AL # DIAMETER SIGN
-2301;AL # ELECTRIC ARROW
-2302;AL # HOUSE
-2303;AL # UP ARROWHEAD
-2304;AL # DOWN ARROWHEAD
-2305;AL # PROJECTIVE
-2306;AL # PERSPECTIVE
-2307;AL # WAVY LINE
-2308;AL # LEFT CEILING
-2309;AL # RIGHT CEILING
-230A;AL # LEFT FLOOR
-230B;AL # RIGHT FLOOR
-230C;AL # BOTTOM RIGHT CROP
-230D;AL # BOTTOM LEFT CROP
-230E;AL # TOP RIGHT CROP
-230F;AL # TOP LEFT CROP
-2310;AL # REVERSED NOT SIGN
-2311;AL # SQUARE LOZENGE
-2312;AI # ARC
-2313;AL # SEGMENT
-2314;AL # SECTOR
-2315;AL # TELEPHONE RECORDER
-2316;AL # POSITION INDICATOR
-2317;AL # VIEWDATA SQUARE
-2318;AL # PLACE OF INTEREST SIGN
-2319;AL # TURNED NOT SIGN
-231A;ID # WATCH
-231B;ID # HOURGLASS
-231C;AL # TOP LEFT CORNER
-231D;AL # TOP RIGHT CORNER
-231E;AL # BOTTOM LEFT CORNER
-231F;AL # BOTTOM RIGHT CORNER
-2320;AL # TOP HALF INTEGRAL
-2321;AL # BOTTOM HALF INTEGRAL
-2322;AL # FROWN
-2323;AL # SMILE
-2324;AL # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325;AL # OPTION KEY
-2326;AL # ERASE TO THE RIGHT
-2327;AL # X IN A RECTANGLE BOX
-2328;AL # KEYBOARD
-2329;OP # LEFT-POINTING ANGLE BRACKET
-232A;CL # RIGHT-POINTING ANGLE BRACKET
-232B;AL # ERASE TO THE LEFT
-232C;AL # BENZENE RING
-232D;AL # CYLINDRICITY
-232E;AL # ALL AROUND-PROFILE
-232F;AL # SYMMETRY
-2330;AL # TOTAL RUNOUT
-2331;AL # DIMENSION ORIGIN
-2332;AL # CONICAL TAPER
-2333;AL # SLOPE
-2334;AL # COUNTERBORE
-2335;AL # COUNTERSINK
-2336;AL # APL FUNCTIONAL SYMBOL I-BEAM
-2337;AL # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338;AL # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339;AL # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A;AL # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B;AL # APL FUNCTIONAL SYMBOL QUAD JOT
-233C;AL # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D;AL # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E;AL # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F;AL # APL FUNCTIONAL SYMBOL SLASH BAR
-2340;AL # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341;AL # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342;AL # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343;AL # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344;AL # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345;AL # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346;AL # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347;AL # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348;AL # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349;AL # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A;AL # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B;AL # APL FUNCTIONAL SYMBOL DELTA STILE
-234C;AL # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D;AL # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E;AL # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F;AL # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350;AL # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351;AL # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352;AL # APL FUNCTIONAL SYMBOL DEL STILE
-2353;AL # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354;AL # APL FUNCTIONAL SYMBOL QUAD DEL
-2355;AL # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356;AL # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357;AL # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358;AL # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359;AL # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A;AL # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B;AL # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C;AL # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D;AL # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E;AL # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F;AL # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360;AL # APL FUNCTIONAL SYMBOL QUAD COLON
-2361;AL # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362;AL # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363;AL # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364;AL # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365;AL # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366;AL # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367;AL # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368;AL # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369;AL # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A;AL # APL FUNCTIONAL SYMBOL COMMA BAR
-236B;AL # APL FUNCTIONAL SYMBOL DEL TILDE
-236C;AL # APL FUNCTIONAL SYMBOL ZILDE
-236D;AL # APL FUNCTIONAL SYMBOL STILE TILDE
-236E;AL # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F;AL # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370;AL # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371;AL # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372;AL # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373;AL # APL FUNCTIONAL SYMBOL IOTA
-2374;AL # APL FUNCTIONAL SYMBOL RHO
-2375;AL # APL FUNCTIONAL SYMBOL OMEGA
-2376;AL # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377;AL # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378;AL # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379;AL # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A;AL # APL FUNCTIONAL SYMBOL ALPHA
-237B;AL # NOT CHECK MARK
-237C;AL # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D;AL # SHOULDERED OPEN BOX
-237E;AL # BELL SYMBOL
-237F;AL # VERTICAL LINE WITH MIDDLE DOT
-2380;AL # INSERTION SYMBOL
-2381;AL # CONTINUOUS UNDERLINE SYMBOL
-2382;AL # DISCONTINUOUS UNDERLINE SYMBOL
-2383;AL # EMPHASIS SYMBOL
-2384;AL # COMPOSITION SYMBOL
-2385;AL # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386;AL # ENTER SYMBOL
-2387;AL # ALTERNATIVE KEY SYMBOL
-2388;AL # HELM SYMBOL
-2389;AL # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A;AL # CIRCLED TRIANGLE DOWN
-238B;AL # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C;AL # UNDO SYMBOL
-238D;AL # MONOSTABLE SYMBOL
-238E;AL # HYSTERESIS SYMBOL
-238F;AL # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390;AL # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391;AL # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392;AL # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393;AL # DIRECT CURRENT SYMBOL FORM TWO
-2394;AL # SOFTWARE-FUNCTION SYMBOL
-2395;AL # APL FUNCTIONAL SYMBOL QUAD
-2396;AL # DECIMAL SEPARATOR KEY SYMBOL
-2397;AL # PREVIOUS PAGE
-2398;AL # NEXT PAGE
-2399;AL # PRINT SCREEN SYMBOL
-239A;AL # CLEAR SCREEN SYMBOL
-239B;AL # LEFT PARENTHESIS UPPER HOOK
-239C;AL # LEFT PARENTHESIS EXTENSION
-239D;AL # LEFT PARENTHESIS LOWER HOOK
-239E;AL # RIGHT PARENTHESIS UPPER HOOK
-239F;AL # RIGHT PARENTHESIS EXTENSION
-23A0;AL # RIGHT PARENTHESIS LOWER HOOK
-23A1;AL # LEFT SQUARE BRACKET UPPER CORNER
-23A2;AL # LEFT SQUARE BRACKET EXTENSION
-23A3;AL # LEFT SQUARE BRACKET LOWER CORNER
-23A4;AL # RIGHT SQUARE BRACKET UPPER CORNER
-23A5;AL # RIGHT SQUARE BRACKET EXTENSION
-23A6;AL # RIGHT SQUARE BRACKET LOWER CORNER
-23A7;AL # LEFT CURLY BRACKET UPPER HOOK
-23A8;AL # LEFT CURLY BRACKET MIDDLE PIECE
-23A9;AL # LEFT CURLY BRACKET LOWER HOOK
-23AA;AL # CURLY BRACKET EXTENSION
-23AB;AL # RIGHT CURLY BRACKET UPPER HOOK
-23AC;AL # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD;AL # RIGHT CURLY BRACKET LOWER HOOK
-23AE;AL # INTEGRAL EXTENSION
-23AF;AL # HORIZONTAL LINE EXTENSION
-23B0;AL # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1;AL # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2;AL # SUMMATION TOP
-23B3;AL # SUMMATION BOTTOM
-23B4;AL # TOP SQUARE BRACKET
-23B5;AL # BOTTOM SQUARE BRACKET
-23B6;AL # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7;AL # RADICAL SYMBOL BOTTOM
-23B8;AL # LEFT VERTICAL BOX LINE
-23B9;AL # RIGHT VERTICAL BOX LINE
-23BA;AL # HORIZONTAL SCAN LINE-1
-23BB;AL # HORIZONTAL SCAN LINE-3
-23BC;AL # HORIZONTAL SCAN LINE-7
-23BD;AL # HORIZONTAL SCAN LINE-9
-23BE;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD;AL # SQUARE FOOT
-23CE;AL # RETURN SYMBOL
-23CF;AL # EJECT SYMBOL
-23D0;AL # VERTICAL LINE EXTENSION
-23D1;AL # METRICAL BREVE
-23D2;AL # METRICAL LONG OVER SHORT
-23D3;AL # METRICAL SHORT OVER LONG
-23D4;AL # METRICAL LONG OVER TWO SHORTS
-23D5;AL # METRICAL TWO SHORTS OVER LONG
-23D6;AL # METRICAL TWO SHORTS JOINED
-23D7;AL # METRICAL TRISEME
-23D8;AL # METRICAL TETRASEME
-23D9;AL # METRICAL PENTASEME
-23DA;AL # EARTH GROUND
-23DB;AL # FUSE
-23DC;AL # TOP PARENTHESIS
-23DD;AL # BOTTOM PARENTHESIS
-23DE;AL # TOP CURLY BRACKET
-23DF;AL # BOTTOM CURLY BRACKET
-23E0;AL # TOP TORTOISE SHELL BRACKET
-23E1;AL # BOTTOM TORTOISE SHELL BRACKET
-23E2;AL # WHITE TRAPEZIUM
-23E3;AL # BENZENE RING WITH CIRCLE
-23E4;AL # STRAIGHTNESS
-23E5;AL # FLATNESS
-23E6;AL # AC CURRENT
-23E7;AL # ELECTRICAL INTERSECTION
-23E8;AL # DECIMAL EXPONENT SYMBOL
-23E9;AL # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA;AL # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB;AL # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC;AL # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED;AL # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE;AL # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF;AL # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0;ID # ALARM CLOCK
-23F1;ID # STOPWATCH
-23F2;ID # TIMER CLOCK
-23F3;ID # HOURGLASS WITH FLOWING SAND
-2400;AL # SYMBOL FOR NULL
-2401;AL # SYMBOL FOR START OF HEADING
-2402;AL # SYMBOL FOR START OF TEXT
-2403;AL # SYMBOL FOR END OF TEXT
-2404;AL # SYMBOL FOR END OF TRANSMISSION
-2405;AL # SYMBOL FOR ENQUIRY
-2406;AL # SYMBOL FOR ACKNOWLEDGE
-2407;AL # SYMBOL FOR BELL
-2408;AL # SYMBOL FOR BACKSPACE
-2409;AL # SYMBOL FOR HORIZONTAL TABULATION
-240A;AL # SYMBOL FOR LINE FEED
-240B;AL # SYMBOL FOR VERTICAL TABULATION
-240C;AL # SYMBOL FOR FORM FEED
-240D;AL # SYMBOL FOR CARRIAGE RETURN
-240E;AL # SYMBOL FOR SHIFT OUT
-240F;AL # SYMBOL FOR SHIFT IN
-2410;AL # SYMBOL FOR DATA LINK ESCAPE
-2411;AL # SYMBOL FOR DEVICE CONTROL ONE
-2412;AL # SYMBOL FOR DEVICE CONTROL TWO
-2413;AL # SYMBOL FOR DEVICE CONTROL THREE
-2414;AL # SYMBOL FOR DEVICE CONTROL FOUR
-2415;AL # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416;AL # SYMBOL FOR SYNCHRONOUS IDLE
-2417;AL # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418;AL # SYMBOL FOR CANCEL
-2419;AL # SYMBOL FOR END OF MEDIUM
-241A;AL # SYMBOL FOR SUBSTITUTE
-241B;AL # SYMBOL FOR ESCAPE
-241C;AL # SYMBOL FOR FILE SEPARATOR
-241D;AL # SYMBOL FOR GROUP SEPARATOR
-241E;AL # SYMBOL FOR RECORD SEPARATOR
-241F;AL # SYMBOL FOR UNIT SEPARATOR
-2420;AL # SYMBOL FOR SPACE
-2421;AL # SYMBOL FOR DELETE
-2422;AL # BLANK SYMBOL
-2423;AL # OPEN BOX
-2424;AL # SYMBOL FOR NEWLINE
-2425;AL # SYMBOL FOR DELETE FORM TWO
-2426;AL # SYMBOL FOR SUBSTITUTE FORM TWO
-2440;AL # OCR HOOK
-2441;AL # OCR CHAIR
-2442;AL # OCR FORK
-2443;AL # OCR INVERTED FORK
-2444;AL # OCR BELT BUCKLE
-2445;AL # OCR BOW TIE
-2446;AL # OCR BRANCH BANK IDENTIFICATION
-2447;AL # OCR AMOUNT OF CHECK
-2448;AL # OCR DASH
-2449;AL # OCR CUSTOMER ACCOUNT NUMBER
-244A;AL # OCR DOUBLE BACKSLASH
-2460;AI # CIRCLED DIGIT ONE
-2461;AI # CIRCLED DIGIT TWO
-2462;AI # CIRCLED DIGIT THREE
-2463;AI # CIRCLED DIGIT FOUR
-2464;AI # CIRCLED DIGIT FIVE
-2465;AI # CIRCLED DIGIT SIX
-2466;AI # CIRCLED DIGIT SEVEN
-2467;AI # CIRCLED DIGIT EIGHT
-2468;AI # CIRCLED DIGIT NINE
-2469;AI # CIRCLED NUMBER TEN
-246A;AI # CIRCLED NUMBER ELEVEN
-246B;AI # CIRCLED NUMBER TWELVE
-246C;AI # CIRCLED NUMBER THIRTEEN
-246D;AI # CIRCLED NUMBER FOURTEEN
-246E;AI # CIRCLED NUMBER FIFTEEN
-246F;AI # CIRCLED NUMBER SIXTEEN
-2470;AI # CIRCLED NUMBER SEVENTEEN
-2471;AI # CIRCLED NUMBER EIGHTEEN
-2472;AI # CIRCLED NUMBER NINETEEN
-2473;AI # CIRCLED NUMBER TWENTY
-2474;AI # PARENTHESIZED DIGIT ONE
-2475;AI # PARENTHESIZED DIGIT TWO
-2476;AI # PARENTHESIZED DIGIT THREE
-2477;AI # PARENTHESIZED DIGIT FOUR
-2478;AI # PARENTHESIZED DIGIT FIVE
-2479;AI # PARENTHESIZED DIGIT SIX
-247A;AI # PARENTHESIZED DIGIT SEVEN
-247B;AI # PARENTHESIZED DIGIT EIGHT
-247C;AI # PARENTHESIZED DIGIT NINE
-247D;AI # PARENTHESIZED NUMBER TEN
-247E;AI # PARENTHESIZED NUMBER ELEVEN
-247F;AI # PARENTHESIZED NUMBER TWELVE
-2480;AI # PARENTHESIZED NUMBER THIRTEEN
-2481;AI # PARENTHESIZED NUMBER FOURTEEN
-2482;AI # PARENTHESIZED NUMBER FIFTEEN
-2483;AI # PARENTHESIZED NUMBER SIXTEEN
-2484;AI # PARENTHESIZED NUMBER SEVENTEEN
-2485;AI # PARENTHESIZED NUMBER EIGHTEEN
-2486;AI # PARENTHESIZED NUMBER NINETEEN
-2487;AI # PARENTHESIZED NUMBER TWENTY
-2488;AI # DIGIT ONE FULL STOP
-2489;AI # DIGIT TWO FULL STOP
-248A;AI # DIGIT THREE FULL STOP
-248B;AI # DIGIT FOUR FULL STOP
-248C;AI # DIGIT FIVE FULL STOP
-248D;AI # DIGIT SIX FULL STOP
-248E;AI # DIGIT SEVEN FULL STOP
-248F;AI # DIGIT EIGHT FULL STOP
-2490;AI # DIGIT NINE FULL STOP
-2491;AI # NUMBER TEN FULL STOP
-2492;AI # NUMBER ELEVEN FULL STOP
-2493;AI # NUMBER TWELVE FULL STOP
-2494;AI # NUMBER THIRTEEN FULL STOP
-2495;AI # NUMBER FOURTEEN FULL STOP
-2496;AI # NUMBER FIFTEEN FULL STOP
-2497;AI # NUMBER SIXTEEN FULL STOP
-2498;AI # NUMBER SEVENTEEN FULL STOP
-2499;AI # NUMBER EIGHTEEN FULL STOP
-249A;AI # NUMBER NINETEEN FULL STOP
-249B;AI # NUMBER TWENTY FULL STOP
-249C;AI # PARENTHESIZED LATIN SMALL LETTER A
-249D;AI # PARENTHESIZED LATIN SMALL LETTER B
-249E;AI # PARENTHESIZED LATIN SMALL LETTER C
-249F;AI # PARENTHESIZED LATIN SMALL LETTER D
-24A0;AI # PARENTHESIZED LATIN SMALL LETTER E
-24A1;AI # PARENTHESIZED LATIN SMALL LETTER F
-24A2;AI # PARENTHESIZED LATIN SMALL LETTER G
-24A3;AI # PARENTHESIZED LATIN SMALL LETTER H
-24A4;AI # PARENTHESIZED LATIN SMALL LETTER I
-24A5;AI # PARENTHESIZED LATIN SMALL LETTER J
-24A6;AI # PARENTHESIZED LATIN SMALL LETTER K
-24A7;AI # PARENTHESIZED LATIN SMALL LETTER L
-24A8;AI # PARENTHESIZED LATIN SMALL LETTER M
-24A9;AI # PARENTHESIZED LATIN SMALL LETTER N
-24AA;AI # PARENTHESIZED LATIN SMALL LETTER O
-24AB;AI # PARENTHESIZED LATIN SMALL LETTER P
-24AC;AI # PARENTHESIZED LATIN SMALL LETTER Q
-24AD;AI # PARENTHESIZED LATIN SMALL LETTER R
-24AE;AI # PARENTHESIZED LATIN SMALL LETTER S
-24AF;AI # PARENTHESIZED LATIN SMALL LETTER T
-24B0;AI # PARENTHESIZED LATIN SMALL LETTER U
-24B1;AI # PARENTHESIZED LATIN SMALL LETTER V
-24B2;AI # PARENTHESIZED LATIN SMALL LETTER W
-24B3;AI # PARENTHESIZED LATIN SMALL LETTER X
-24B4;AI # PARENTHESIZED LATIN SMALL LETTER Y
-24B5;AI # PARENTHESIZED LATIN SMALL LETTER Z
-24B6;AI # CIRCLED LATIN CAPITAL LETTER A
-24B7;AI # CIRCLED LATIN CAPITAL LETTER B
-24B8;AI # CIRCLED LATIN CAPITAL LETTER C
-24B9;AI # CIRCLED LATIN CAPITAL LETTER D
-24BA;AI # CIRCLED LATIN CAPITAL LETTER E
-24BB;AI # CIRCLED LATIN CAPITAL LETTER F
-24BC;AI # CIRCLED LATIN CAPITAL LETTER G
-24BD;AI # CIRCLED LATIN CAPITAL LETTER H
-24BE;AI # CIRCLED LATIN CAPITAL LETTER I
-24BF;AI # CIRCLED LATIN CAPITAL LETTER J
-24C0;AI # CIRCLED LATIN CAPITAL LETTER K
-24C1;AI # CIRCLED LATIN CAPITAL LETTER L
-24C2;AI # CIRCLED LATIN CAPITAL LETTER M
-24C3;AI # CIRCLED LATIN CAPITAL LETTER N
-24C4;AI # CIRCLED LATIN CAPITAL LETTER O
-24C5;AI # CIRCLED LATIN CAPITAL LETTER P
-24C6;AI # CIRCLED LATIN CAPITAL LETTER Q
-24C7;AI # CIRCLED LATIN CAPITAL LETTER R
-24C8;AI # CIRCLED LATIN CAPITAL LETTER S
-24C9;AI # CIRCLED LATIN CAPITAL LETTER T
-24CA;AI # CIRCLED LATIN CAPITAL LETTER U
-24CB;AI # CIRCLED LATIN CAPITAL LETTER V
-24CC;AI # CIRCLED LATIN CAPITAL LETTER W
-24CD;AI # CIRCLED LATIN CAPITAL LETTER X
-24CE;AI # CIRCLED LATIN CAPITAL LETTER Y
-24CF;AI # CIRCLED LATIN CAPITAL LETTER Z
-24D0;AI # CIRCLED LATIN SMALL LETTER A
-24D1;AI # CIRCLED LATIN SMALL LETTER B
-24D2;AI # CIRCLED LATIN SMALL LETTER C
-24D3;AI # CIRCLED LATIN SMALL LETTER D
-24D4;AI # CIRCLED LATIN SMALL LETTER E
-24D5;AI # CIRCLED LATIN SMALL LETTER F
-24D6;AI # CIRCLED LATIN SMALL LETTER G
-24D7;AI # CIRCLED LATIN SMALL LETTER H
-24D8;AI # CIRCLED LATIN SMALL LETTER I
-24D9;AI # CIRCLED LATIN SMALL LETTER J
-24DA;AI # CIRCLED LATIN SMALL LETTER K
-24DB;AI # CIRCLED LATIN SMALL LETTER L
-24DC;AI # CIRCLED LATIN SMALL LETTER M
-24DD;AI # CIRCLED LATIN SMALL LETTER N
-24DE;AI # CIRCLED LATIN SMALL LETTER O
-24DF;AI # CIRCLED LATIN SMALL LETTER P
-24E0;AI # CIRCLED LATIN SMALL LETTER Q
-24E1;AI # CIRCLED LATIN SMALL LETTER R
-24E2;AI # CIRCLED LATIN SMALL LETTER S
-24E3;AI # CIRCLED LATIN SMALL LETTER T
-24E4;AI # CIRCLED LATIN SMALL LETTER U
-24E5;AI # CIRCLED LATIN SMALL LETTER V
-24E6;AI # CIRCLED LATIN SMALL LETTER W
-24E7;AI # CIRCLED LATIN SMALL LETTER X
-24E8;AI # CIRCLED LATIN SMALL LETTER Y
-24E9;AI # CIRCLED LATIN SMALL LETTER Z
-24EA;AI # CIRCLED DIGIT ZERO
-24EB;AI # NEGATIVE CIRCLED NUMBER ELEVEN
-24EC;AI # NEGATIVE CIRCLED NUMBER TWELVE
-24ED;AI # NEGATIVE CIRCLED NUMBER THIRTEEN
-24EE;AI # NEGATIVE CIRCLED NUMBER FOURTEEN
-24EF;AI # NEGATIVE CIRCLED NUMBER FIFTEEN
-24F0;AI # NEGATIVE CIRCLED NUMBER SIXTEEN
-24F1;AI # NEGATIVE CIRCLED NUMBER SEVENTEEN
-24F2;AI # NEGATIVE CIRCLED NUMBER EIGHTEEN
-24F3;AI # NEGATIVE CIRCLED NUMBER NINETEEN
-24F4;AI # NEGATIVE CIRCLED NUMBER TWENTY
-24F5;AI # DOUBLE CIRCLED DIGIT ONE
-24F6;AI # DOUBLE CIRCLED DIGIT TWO
-24F7;AI # DOUBLE CIRCLED DIGIT THREE
-24F8;AI # DOUBLE CIRCLED DIGIT FOUR
-24F9;AI # DOUBLE CIRCLED DIGIT FIVE
-24FA;AI # DOUBLE CIRCLED DIGIT SIX
-24FB;AI # DOUBLE CIRCLED DIGIT SEVEN
-24FC;AI # DOUBLE CIRCLED DIGIT EIGHT
-24FD;AI # DOUBLE CIRCLED DIGIT NINE
-24FE;AI # DOUBLE CIRCLED NUMBER TEN
-24FF;AL # NEGATIVE CIRCLED DIGIT ZERO
-2500;AI # BOX DRAWINGS LIGHT HORIZONTAL
-2501;AI # BOX DRAWINGS HEAVY HORIZONTAL
-2502;AI # BOX DRAWINGS LIGHT VERTICAL
-2503;AI # BOX DRAWINGS HEAVY VERTICAL
-2504;AI # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505;AI # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506;AI # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507;AI # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C;AI # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F;AI # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510;AI # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511;AI # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512;AI # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513;AI # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514;AI # BOX DRAWINGS LIGHT UP AND RIGHT
-2515;AI # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516;AI # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517;AI # BOX DRAWINGS HEAVY UP AND RIGHT
-2518;AI # BOX DRAWINGS LIGHT UP AND LEFT
-2519;AI # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A;AI # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B;AI # BOX DRAWINGS HEAVY UP AND LEFT
-251C;AI # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D;AI # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E;AI # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520;AI # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522;AI # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523;AI # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524;AI # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525;AI # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526;AI # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527;AI # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528;AI # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529;AI # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A;AI # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B;AI # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C;AI # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F;AI # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530;AI # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533;AI # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534;AI # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537;AI # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538;AI # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B;AI # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C;AI # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F;AI # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540;AI # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541;AI # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542;AI # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543;AI # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544;AI # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545;AI # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546;AI # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547;AI # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548;AI # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B;AI # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C;AL # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D;AL # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E;AL # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F;AL # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550;AI # BOX DRAWINGS DOUBLE HORIZONTAL
-2551;AI # BOX DRAWINGS DOUBLE VERTICAL
-2552;AI # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553;AI # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554;AI # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555;AI # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556;AI # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557;AI # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558;AI # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559;AI # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A;AI # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B;AI # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C;AI # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D;AI # BOX DRAWINGS DOUBLE UP AND LEFT
-255E;AI # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F;AI # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560;AI # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561;AI # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562;AI # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563;AI # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564;AI # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565;AI # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566;AI # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567;AI # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568;AI # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569;AI # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A;AI # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B;AI # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C;AI # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D;AI # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E;AI # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F;AI # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570;AI # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573;AI # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574;AI # BOX DRAWINGS LIGHT LEFT
-2575;AL # BOX DRAWINGS LIGHT UP
-2576;AL # BOX DRAWINGS LIGHT RIGHT
-2577;AL # BOX DRAWINGS LIGHT DOWN
-2578;AL # BOX DRAWINGS HEAVY LEFT
-2579;AL # BOX DRAWINGS HEAVY UP
-257A;AL # BOX DRAWINGS HEAVY RIGHT
-257B;AL # BOX DRAWINGS HEAVY DOWN
-257C;AL # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D;AL # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E;AL # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F;AL # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580;AI # UPPER HALF BLOCK
-2581;AI # LOWER ONE EIGHTH BLOCK
-2582;AI # LOWER ONE QUARTER BLOCK
-2583;AI # LOWER THREE EIGHTHS BLOCK
-2584;AI # LOWER HALF BLOCK
-2585;AI # LOWER FIVE EIGHTHS BLOCK
-2586;AI # LOWER THREE QUARTERS BLOCK
-2587;AI # LOWER SEVEN EIGHTHS BLOCK
-2588;AI # FULL BLOCK
-2589;AI # LEFT SEVEN EIGHTHS BLOCK
-258A;AI # LEFT THREE QUARTERS BLOCK
-258B;AI # LEFT FIVE EIGHTHS BLOCK
-258C;AI # LEFT HALF BLOCK
-258D;AI # LEFT THREE EIGHTHS BLOCK
-258E;AI # LEFT ONE QUARTER BLOCK
-258F;AI # LEFT ONE EIGHTH BLOCK
-2590;AL # RIGHT HALF BLOCK
-2591;AL # LIGHT SHADE
-2592;AI # MEDIUM SHADE
-2593;AI # DARK SHADE
-2594;AI # UPPER ONE EIGHTH BLOCK
-2595;AI # RIGHT ONE EIGHTH BLOCK
-2596;AL # QUADRANT LOWER LEFT
-2597;AL # QUADRANT LOWER RIGHT
-2598;AL # QUADRANT UPPER LEFT
-2599;AL # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A;AL # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D;AL # QUADRANT UPPER RIGHT
-259E;AL # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F;AL # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0;AI # BLACK SQUARE
-25A1;AI # WHITE SQUARE
-25A2;AL # WHITE SQUARE WITH ROUNDED CORNERS
-25A3;AI # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4;AI # SQUARE WITH HORIZONTAL FILL
-25A5;AI # SQUARE WITH VERTICAL FILL
-25A6;AI # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7;AI # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8;AI # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9;AI # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA;AL # BLACK SMALL SQUARE
-25AB;AL # WHITE SMALL SQUARE
-25AC;AL # BLACK RECTANGLE
-25AD;AL # WHITE RECTANGLE
-25AE;AL # BLACK VERTICAL RECTANGLE
-25AF;AL # WHITE VERTICAL RECTANGLE
-25B0;AL # BLACK PARALLELOGRAM
-25B1;AL # WHITE PARALLELOGRAM
-25B2;AI # BLACK UP-POINTING TRIANGLE
-25B3;AI # WHITE UP-POINTING TRIANGLE
-25B4;AL # BLACK UP-POINTING SMALL TRIANGLE
-25B5;AL # WHITE UP-POINTING SMALL TRIANGLE
-25B6;AI # BLACK RIGHT-POINTING TRIANGLE
-25B7;AI # WHITE RIGHT-POINTING TRIANGLE
-25B8;AL # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9;AL # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA;AL # BLACK RIGHT-POINTING POINTER
-25BB;AL # WHITE RIGHT-POINTING POINTER
-25BC;AI # BLACK DOWN-POINTING TRIANGLE
-25BD;AI # WHITE DOWN-POINTING TRIANGLE
-25BE;AL # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF;AL # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0;AI # BLACK LEFT-POINTING TRIANGLE
-25C1;AI # WHITE LEFT-POINTING TRIANGLE
-25C2;AL # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3;AL # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4;AL # BLACK LEFT-POINTING POINTER
-25C5;AL # WHITE LEFT-POINTING POINTER
-25C6;AI # BLACK DIAMOND
-25C7;AI # WHITE DIAMOND
-25C8;AI # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9;AL # FISHEYE
-25CA;AL # LOZENGE
-25CB;AI # WHITE CIRCLE
-25CC;AL # DOTTED CIRCLE
-25CD;AL # CIRCLE WITH VERTICAL FILL
-25CE;AI # BULLSEYE
-25CF;AI # BLACK CIRCLE
-25D0;AI # CIRCLE WITH LEFT HALF BLACK
-25D1;AI # CIRCLE WITH RIGHT HALF BLACK
-25D2;AL # CIRCLE WITH LOWER HALF BLACK
-25D3;AL # CIRCLE WITH UPPER HALF BLACK
-25D4;AL # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5;AL # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6;AL # LEFT HALF BLACK CIRCLE
-25D7;AL # RIGHT HALF BLACK CIRCLE
-25D8;AL # INVERSE BULLET
-25D9;AL # INVERSE WHITE CIRCLE
-25DA;AL # UPPER HALF INVERSE WHITE CIRCLE
-25DB;AL # LOWER HALF INVERSE WHITE CIRCLE
-25DC;AL # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD;AL # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE;AL # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF;AL # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0;AL # UPPER HALF CIRCLE
-25E1;AL # LOWER HALF CIRCLE
-25E2;AI # BLACK LOWER RIGHT TRIANGLE
-25E3;AI # BLACK LOWER LEFT TRIANGLE
-25E4;AI # BLACK UPPER LEFT TRIANGLE
-25E5;AI # BLACK UPPER RIGHT TRIANGLE
-25E6;AL # WHITE BULLET
-25E7;AL # SQUARE WITH LEFT HALF BLACK
-25E8;AL # SQUARE WITH RIGHT HALF BLACK
-25E9;AL # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA;AL # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB;AL # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC;AL # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED;AL # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE;AL # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF;AI # LARGE CIRCLE
-25F0;AL # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1;AL # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2;AL # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3;AL # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4;AL # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5;AL # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6;AL # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7;AL # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8;AL # UPPER LEFT TRIANGLE
-25F9;AL # UPPER RIGHT TRIANGLE
-25FA;AL # LOWER LEFT TRIANGLE
-25FB;AL # WHITE MEDIUM SQUARE
-25FC;AL # BLACK MEDIUM SQUARE
-25FD;AL # WHITE MEDIUM SMALL SQUARE
-25FE;AL # BLACK MEDIUM SMALL SQUARE
-25FF;AL # LOWER RIGHT TRIANGLE
-2600;ID # BLACK SUN WITH RAYS
-2601;ID # CLOUD
-2602;ID # UMBRELLA
-2603;ID # SNOWMAN
-2604;AL # COMET
-2605;AI # BLACK STAR
-2606;AI # WHITE STAR
-2607;AL # LIGHTNING
-2608;AL # THUNDERSTORM
-2609;AI # SUN
-260A;AL # ASCENDING NODE
-260B;AL # DESCENDING NODE
-260C;AL # CONJUNCTION
-260D;AL # OPPOSITION
-260E;AI # BLACK TELEPHONE
-260F;AI # WHITE TELEPHONE
-2610;AL # BALLOT BOX
-2611;AL # BALLOT BOX WITH CHECK
-2612;AL # BALLOT BOX WITH X
-2613;AL # SALTIRE
-2614;ID # UMBRELLA WITH RAIN DROPS
-2615;ID # HOT BEVERAGE
-2616;AI # WHITE SHOGI PIECE
-2617;AI # BLACK SHOGI PIECE
-2618;ID # SHAMROCK
-2619;AL # REVERSED ROTATED FLORAL HEART BULLET
-261A;ID # BLACK LEFT POINTING INDEX
-261B;ID # BLACK RIGHT POINTING INDEX
-261C;ID # WHITE LEFT POINTING INDEX
-261D;ID # WHITE UP POINTING INDEX
-261E;ID # WHITE RIGHT POINTING INDEX
-261F;ID # WHITE DOWN POINTING INDEX
-2620;AL # SKULL AND CROSSBONES
-2621;AL # CAUTION SIGN
-2622;AL # RADIOACTIVE SIGN
-2623;AL # BIOHAZARD SIGN
-2624;AL # CADUCEUS
-2625;AL # ANKH
-2626;AL # ORTHODOX CROSS
-2627;AL # CHI RHO
-2628;AL # CROSS OF LORRAINE
-2629;AL # CROSS OF JERUSALEM
-262A;AL # STAR AND CRESCENT
-262B;AL # FARSI SYMBOL
-262C;AL # ADI SHAKTI
-262D;AL # HAMMER AND SICKLE
-262E;AL # PEACE SYMBOL
-262F;AL # YIN YANG
-2630;AL # TRIGRAM FOR HEAVEN
-2631;AL # TRIGRAM FOR LAKE
-2632;AL # TRIGRAM FOR FIRE
-2633;AL # TRIGRAM FOR THUNDER
-2634;AL # TRIGRAM FOR WIND
-2635;AL # TRIGRAM FOR WATER
-2636;AL # TRIGRAM FOR MOUNTAIN
-2637;AL # TRIGRAM FOR EARTH
-2638;AL # WHEEL OF DHARMA
-2639;ID # WHITE FROWNING FACE
-263A;ID # WHITE SMILING FACE
-263B;ID # BLACK SMILING FACE
-263C;AL # WHITE SUN WITH RAYS
-263D;AL # FIRST QUARTER MOON
-263E;AL # LAST QUARTER MOON
-263F;AL # MERCURY
-2640;AI # FEMALE SIGN
-2641;AL # EARTH
-2642;AI # MALE SIGN
-2643;AL # JUPITER
-2644;AL # SATURN
-2645;AL # URANUS
-2646;AL # NEPTUNE
-2647;AL # PLUTO
-2648;AL # ARIES
-2649;AL # TAURUS
-264A;AL # GEMINI
-264B;AL # CANCER
-264C;AL # LEO
-264D;AL # VIRGO
-264E;AL # LIBRA
-264F;AL # SCORPIUS
-2650;AL # SAGITTARIUS
-2651;AL # CAPRICORN
-2652;AL # AQUARIUS
-2653;AL # PISCES
-2654;AL # WHITE CHESS KING
-2655;AL # WHITE CHESS QUEEN
-2656;AL # WHITE CHESS ROOK
-2657;AL # WHITE CHESS BISHOP
-2658;AL # WHITE CHESS KNIGHT
-2659;AL # WHITE CHESS PAWN
-265A;AL # BLACK CHESS KING
-265B;AL # BLACK CHESS QUEEN
-265C;AL # BLACK CHESS ROOK
-265D;AL # BLACK CHESS BISHOP
-265E;AL # BLACK CHESS KNIGHT
-265F;AL # BLACK CHESS PAWN
-2660;AI # BLACK SPADE SUIT
-2661;AI # WHITE HEART SUIT
-2662;AL # WHITE DIAMOND SUIT
-2663;AI # BLACK CLUB SUIT
-2664;AI # WHITE SPADE SUIT
-2665;AI # BLACK HEART SUIT
-2666;AL # BLACK DIAMOND SUIT
-2667;AI # WHITE CLUB SUIT
-2668;ID # HOT SPRINGS
-2669;AI # QUARTER NOTE
-266A;AI # EIGHTH NOTE
-266B;AL # BEAMED EIGHTH NOTES
-266C;AI # BEAMED SIXTEENTH NOTES
-266D;AI # MUSIC FLAT SIGN
-266E;AL # MUSIC NATURAL SIGN
-266F;AI # MUSIC SHARP SIGN
-2670;AL # WEST SYRIAC CROSS
-2671;AL # EAST SYRIAC CROSS
-2672;AL # UNIVERSAL RECYCLING SYMBOL
-2673;AL # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674;AL # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675;AL # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676;AL # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677;AL # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678;AL # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679;AL # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A;AL # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B;AL # BLACK UNIVERSAL RECYCLING SYMBOL
-267C;AL # RECYCLED PAPER SYMBOL
-267D;AL # PARTIALLY-RECYCLED PAPER SYMBOL
-267E;AL # PERMANENT PAPER SIGN
-267F;ID # WHEELCHAIR SYMBOL
-2680;AL # DIE FACE-1
-2681;AL # DIE FACE-2
-2682;AL # DIE FACE-3
-2683;AL # DIE FACE-4
-2684;AL # DIE FACE-5
-2685;AL # DIE FACE-6
-2686;AL # WHITE CIRCLE WITH DOT RIGHT
-2687;AL # WHITE CIRCLE WITH TWO DOTS
-2688;AL # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689;AL # BLACK CIRCLE WITH TWO WHITE DOTS
-268A;AL # MONOGRAM FOR YANG
-268B;AL # MONOGRAM FOR YIN
-268C;AL # DIGRAM FOR GREATER YANG
-268D;AL # DIGRAM FOR LESSER YIN
-268E;AL # DIGRAM FOR LESSER YANG
-268F;AL # DIGRAM FOR GREATER YIN
-2690;AL # WHITE FLAG
-2691;AL # BLACK FLAG
-2692;AL # HAMMER AND PICK
-2693;AL # ANCHOR
-2694;AL # CROSSED SWORDS
-2695;AL # STAFF OF AESCULAPIUS
-2696;AL # SCALES
-2697;AL # ALEMBIC
-2698;AL # FLOWER
-2699;AL # GEAR
-269A;AL # STAFF OF HERMES
-269B;AL # ATOM SYMBOL
-269C;AL # FLEUR-DE-LIS
-269D;AL # OUTLINED WHITE STAR
-269E;AI # THREE LINES CONVERGING RIGHT
-269F;AI # THREE LINES CONVERGING LEFT
-26A0;AL # WARNING SIGN
-26A1;AL # HIGH VOLTAGE SIGN
-26A2;AL # DOUBLED FEMALE SIGN
-26A3;AL # DOUBLED MALE SIGN
-26A4;AL # INTERLOCKED FEMALE AND MALE SIGN
-26A5;AL # MALE AND FEMALE SIGN
-26A6;AL # MALE WITH STROKE SIGN
-26A7;AL # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8;AL # VERTICAL MALE WITH STROKE SIGN
-26A9;AL # HORIZONTAL MALE WITH STROKE SIGN
-26AA;AL # MEDIUM WHITE CIRCLE
-26AB;AL # MEDIUM BLACK CIRCLE
-26AC;AL # MEDIUM SMALL WHITE CIRCLE
-26AD;AL # MARRIAGE SYMBOL
-26AE;AL # DIVORCE SYMBOL
-26AF;AL # UNMARRIED PARTNERSHIP SYMBOL
-26B0;AL # COFFIN
-26B1;AL # FUNERAL URN
-26B2;AL # NEUTER
-26B3;AL # CERES
-26B4;AL # PALLAS
-26B5;AL # JUNO
-26B6;AL # VESTA
-26B7;AL # CHIRON
-26B8;AL # BLACK MOON LILITH
-26B9;AL # SEXTILE
-26BA;AL # SEMISEXTILE
-26BB;AL # QUINCUNX
-26BC;AL # SESQUIQUADRATE
-26BD;ID # SOCCER BALL
-26BE;ID # BASEBALL
-26BF;ID # SQUARED KEY
-26C0;ID # WHITE DRAUGHTS MAN
-26C1;ID # WHITE DRAUGHTS KING
-26C2;ID # BLACK DRAUGHTS MAN
-26C3;ID # BLACK DRAUGHTS KING
-26C4;ID # SNOWMAN WITHOUT SNOW
-26C5;ID # SUN BEHIND CLOUD
-26C6;ID # RAIN
-26C7;ID # BLACK SNOWMAN
-26C8;ID # THUNDER CLOUD AND RAIN
-26C9;AI # TURNED WHITE SHOGI PIECE
-26CA;AI # TURNED BLACK SHOGI PIECE
-26CB;AI # WHITE DIAMOND IN SQUARE
-26CC;AI # CROSSING LANES
-26CD;ID # DISABLED CAR
-26CE;AL # OPHIUCHUS
-26CF;ID # PICK
-26D0;ID # CAR SLIDING
-26D1;ID # HELMET WITH WHITE CROSS
-26D2;AI # CIRCLED CROSSING LANES
-26D3;ID # CHAINS
-26D4;ID # NO ENTRY
-26D5;AI # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6;AI # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7;AI # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8;ID # BLACK LEFT LANE MERGE
-26D9;ID # WHITE LEFT LANE MERGE
-26DA;AI # DRIVE SLOW SIGN
-26DB;AI # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC;ID # LEFT CLOSED ENTRY
-26DD;AI # SQUARED SALTIRE
-26DE;AI # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF;ID # BLACK TRUCK
-26E0;ID # RESTRICTED LEFT ENTRY-1
-26E1;ID # RESTRICTED LEFT ENTRY-2
-26E2;AL # ASTRONOMICAL SYMBOL FOR URANUS
-26E3;AI # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4;AL # PENTAGRAM
-26E5;AL # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6;AL # LEFT-HANDED INTERLACED PENTAGRAM
-26E7;AL # INVERTED PENTAGRAM
-26E8;AI # BLACK CROSS ON SHIELD
-26E9;AI # SHINTO SHRINE
-26EA;ID # CHURCH
-26EB;AI # CASTLE
-26EC;AI # HISTORIC SITE
-26ED;AI # GEAR WITHOUT HUB
-26EE;AI # GEAR WITH HANDLES
-26EF;AI # MAP SYMBOL FOR LIGHTHOUSE
-26F0;AI # MOUNTAIN
-26F1;ID # UMBRELLA ON GROUND
-26F2;ID # FOUNTAIN
-26F3;ID # FLAG IN HOLE
-26F4;ID # FERRY
-26F5;ID # SAILBOAT
-26F6;AI # SQUARE FOUR CORNERS
-26F7;ID # SKIER
-26F8;ID # ICE SKATE
-26F9;ID # PERSON WITH BALL
-26FA;ID # TENT
-26FB;AI # JAPANESE BANK SYMBOL
-26FC;AI # HEADSTONE GRAVEYARD SYMBOL
-26FD;ID # FUEL PUMP
-26FE;ID # CUP ON BLACK SQUARE
-26FF;ID # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701;ID # UPPER BLADE SCISSORS
-2702;ID # BLACK SCISSORS
-2703;ID # LOWER BLADE SCISSORS
-2704;ID # WHITE SCISSORS
-2705;AL # WHITE HEAVY CHECK MARK
-2706;AL # TELEPHONE LOCATION SIGN
-2707;AL # TAPE DRIVE
-2708;ID # AIRPLANE
-2709;ID # ENVELOPE
-270A;ID # RAISED FIST
-270B;ID # RAISED HAND
-270C;ID # VICTORY HAND
-270D;ID # WRITING HAND
-270E;AL # LOWER RIGHT PENCIL
-270F;AL # PENCIL
-2710;AL # UPPER RIGHT PENCIL
-2711;AL # WHITE NIB
-2712;AL # BLACK NIB
-2713;AL # CHECK MARK
-2714;AL # HEAVY CHECK MARK
-2715;AL # MULTIPLICATION X
-2716;AL # HEAVY MULTIPLICATION X
-2717;AL # BALLOT X
-2718;AL # HEAVY BALLOT X
-2719;AL # OUTLINED GREEK CROSS
-271A;AL # HEAVY GREEK CROSS
-271B;AL # OPEN CENTRE CROSS
-271C;AL # HEAVY OPEN CENTRE CROSS
-271D;AL # LATIN CROSS
-271E;AL # SHADOWED WHITE LATIN CROSS
-271F;AL # OUTLINED LATIN CROSS
-2720;AL # MALTESE CROSS
-2721;AL # STAR OF DAVID
-2722;AL # FOUR TEARDROP-SPOKED ASTERISK
-2723;AL # FOUR BALLOON-SPOKED ASTERISK
-2724;AL # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725;AL # FOUR CLUB-SPOKED ASTERISK
-2726;AL # BLACK FOUR POINTED STAR
-2727;AL # WHITE FOUR POINTED STAR
-2728;AL # SPARKLES
-2729;AL # STRESS OUTLINED WHITE STAR
-272A;AL # CIRCLED WHITE STAR
-272B;AL # OPEN CENTRE BLACK STAR
-272C;AL # BLACK CENTRE WHITE STAR
-272D;AL # OUTLINED BLACK STAR
-272E;AL # HEAVY OUTLINED BLACK STAR
-272F;AL # PINWHEEL STAR
-2730;AL # SHADOWED WHITE STAR
-2731;AL # HEAVY ASTERISK
-2732;AL # OPEN CENTRE ASTERISK
-2733;AL # EIGHT SPOKED ASTERISK
-2734;AL # EIGHT POINTED BLACK STAR
-2735;AL # EIGHT POINTED PINWHEEL STAR
-2736;AL # SIX POINTED BLACK STAR
-2737;AL # EIGHT POINTED RECTILINEAR BLACK STAR
-2738;AL # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739;AL # TWELVE POINTED BLACK STAR
-273A;AL # SIXTEEN POINTED ASTERISK
-273B;AL # TEARDROP-SPOKED ASTERISK
-273C;AL # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D;AL # HEAVY TEARDROP-SPOKED ASTERISK
-273E;AL # SIX PETALLED BLACK AND WHITE FLORETTE
-273F;AL # BLACK FLORETTE
-2740;AL # WHITE FLORETTE
-2741;AL # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742;AL # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743;AL # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744;AL # SNOWFLAKE
-2745;AL # TIGHT TRIFOLIATE SNOWFLAKE
-2746;AL # HEAVY CHEVRON SNOWFLAKE
-2747;AL # SPARKLE
-2748;AL # HEAVY SPARKLE
-2749;AL # BALLOON-SPOKED ASTERISK
-274A;AL # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B;AL # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C;AL # CROSS MARK
-274D;AL # SHADOWED WHITE CIRCLE
-274E;AL # NEGATIVE SQUARED CROSS MARK
-274F;AL # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750;AL # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751;AL # LOWER RIGHT SHADOWED WHITE SQUARE
-2752;AL # UPPER RIGHT SHADOWED WHITE SQUARE
-2753;AL # BLACK QUESTION MARK ORNAMENT
-2754;AL # WHITE QUESTION MARK ORNAMENT
-2755;AL # WHITE EXCLAMATION MARK ORNAMENT
-2756;AL # BLACK DIAMOND MINUS WHITE X
-2757;AI # HEAVY EXCLAMATION MARK SYMBOL
-2758;AL # LIGHT VERTICAL BAR
-2759;AL # MEDIUM VERTICAL BAR
-275A;AL # HEAVY VERTICAL BAR
-275B;QU # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C;QU # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D;QU # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E;QU # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F;AL # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760;AL # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761;AL # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762;EX # HEAVY EXCLAMATION MARK ORNAMENT
-2763;EX # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764;AL # HEAVY BLACK HEART
-2765;AL # ROTATED HEAVY BLACK HEART BULLET
-2766;AL # FLORAL HEART
-2767;AL # ROTATED FLORAL HEART BULLET
-2768;OP # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769;CL # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A;OP # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B;CL # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C;OP # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D;CL # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E;OP # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F;CL # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770;OP # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771;CL # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772;OP # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773;CL # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774;OP # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775;CL # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776;AI # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2777;AI # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2778;AI # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2779;AI # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-277A;AI # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-277B;AI # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-277C;AI # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-277D;AI # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-277E;AI # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-277F;AI # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2780;AI # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-2781;AI # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-2782;AI # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-2783;AI # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-2784;AI # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-2785;AI # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-2786;AI # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2787;AI # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2788;AI # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2789;AI # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-278A;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-278B;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-278C;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-278D;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-278E;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-278F;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2790;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2791;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2792;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2793;AI # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794;AL # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795;AL # HEAVY PLUS SIGN
-2796;AL # HEAVY MINUS SIGN
-2797;AL # HEAVY DIVISION SIGN
-2798;AL # HEAVY SOUTH EAST ARROW
-2799;AL # HEAVY RIGHTWARDS ARROW
-279A;AL # HEAVY NORTH EAST ARROW
-279B;AL # DRAFTING POINT RIGHTWARDS ARROW
-279C;AL # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D;AL # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E;AL # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F;AL # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0;AL # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1;AL # BLACK RIGHTWARDS ARROW
-27A2;AL # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3;AL # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4;AL # BLACK RIGHTWARDS ARROWHEAD
-27A5;AL # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6;AL # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7;AL # SQUAT BLACK RIGHTWARDS ARROW
-27A8;AL # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9;AL # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA;AL # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB;AL # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC;AL # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD;AL # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE;AL # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF;AL # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0;AL # CURLY LOOP
-27B1;AL # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2;AL # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3;AL # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4;AL # BLACK-FEATHERED SOUTH EAST ARROW
-27B5;AL # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6;AL # BLACK-FEATHERED NORTH EAST ARROW
-27B7;AL # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8;AL # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9;AL # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA;AL # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB;AL # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC;AL # WEDGE-TAILED RIGHTWARDS ARROW
-27BD;AL # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE;AL # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF;AL # DOUBLE CURLY LOOP
-27C0;AL # THREE DIMENSIONAL ANGLE
-27C1;AL # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2;AL # PERPENDICULAR
-27C3;AL # OPEN SUBSET
-27C4;AL # OPEN SUPERSET
-27C5;OP # LEFT S-SHAPED BAG DELIMITER
-27C6;CL # RIGHT S-SHAPED BAG DELIMITER
-27C7;AL # OR WITH DOT INSIDE
-27C8;AL # REVERSE SOLIDUS PRECEDING SUBSET
-27C9;AL # SUPERSET PRECEDING SOLIDUS
-27CA;AL # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB;AL # MATHEMATICAL RISING DIAGONAL
-27CC;AL # LONG DIVISION
-27CD;AL # MATHEMATICAL FALLING DIAGONAL
-27CE;AL # SQUARED LOGICAL AND
-27CF;AL # SQUARED LOGICAL OR
-27D0;AL # WHITE DIAMOND WITH CENTRED DOT
-27D1;AL # AND WITH DOT
-27D2;AL # ELEMENT OF OPENING UPWARDS
-27D3;AL # LOWER RIGHT CORNER WITH DOT
-27D4;AL # UPPER LEFT CORNER WITH DOT
-27D5;AL # LEFT OUTER JOIN
-27D6;AL # RIGHT OUTER JOIN
-27D7;AL # FULL OUTER JOIN
-27D8;AL # LARGE UP TACK
-27D9;AL # LARGE DOWN TACK
-27DA;AL # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB;AL # LEFT AND RIGHT TACK
-27DC;AL # LEFT MULTIMAP
-27DD;AL # LONG RIGHT TACK
-27DE;AL # LONG LEFT TACK
-27DF;AL # UP TACK WITH CIRCLE ABOVE
-27E0;AL # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1;AL # WHITE CONCAVE-SIDED DIAMOND
-27E2;AL # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3;AL # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4;AL # WHITE SQUARE WITH LEFTWARDS TICK
-27E5;AL # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6;OP # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7;CL # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8;OP # MATHEMATICAL LEFT ANGLE BRACKET
-27E9;CL # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA;OP # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB;CL # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC;OP # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED;CL # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE;OP # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF;CL # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0;AL # UPWARDS QUADRUPLE ARROW
-27F1;AL # DOWNWARDS QUADRUPLE ARROW
-27F2;AL # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3;AL # CLOCKWISE GAPPED CIRCLE ARROW
-27F4;AL # RIGHT ARROW WITH CIRCLED PLUS
-27F5;AL # LONG LEFTWARDS ARROW
-27F6;AL # LONG RIGHTWARDS ARROW
-27F7;AL # LONG LEFT RIGHT ARROW
-27F8;AL # LONG LEFTWARDS DOUBLE ARROW
-27F9;AL # LONG RIGHTWARDS DOUBLE ARROW
-27FA;AL # LONG LEFT RIGHT DOUBLE ARROW
-27FB;AL # LONG LEFTWARDS ARROW FROM BAR
-27FC;AL # LONG RIGHTWARDS ARROW FROM BAR
-27FD;AL # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE;AL # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF;AL # LONG RIGHTWARDS SQUIGGLE ARROW
-2800;AL # BRAILLE PATTERN BLANK
-2801;AL # BRAILLE PATTERN DOTS-1
-2802;AL # BRAILLE PATTERN DOTS-2
-2803;AL # BRAILLE PATTERN DOTS-12
-2804;AL # BRAILLE PATTERN DOTS-3
-2805;AL # BRAILLE PATTERN DOTS-13
-2806;AL # BRAILLE PATTERN DOTS-23
-2807;AL # BRAILLE PATTERN DOTS-123
-2808;AL # BRAILLE PATTERN DOTS-4
-2809;AL # BRAILLE PATTERN DOTS-14
-280A;AL # BRAILLE PATTERN DOTS-24
-280B;AL # BRAILLE PATTERN DOTS-124
-280C;AL # BRAILLE PATTERN DOTS-34
-280D;AL # BRAILLE PATTERN DOTS-134
-280E;AL # BRAILLE PATTERN DOTS-234
-280F;AL # BRAILLE PATTERN DOTS-1234
-2810;AL # BRAILLE PATTERN DOTS-5
-2811;AL # BRAILLE PATTERN DOTS-15
-2812;AL # BRAILLE PATTERN DOTS-25
-2813;AL # BRAILLE PATTERN DOTS-125
-2814;AL # BRAILLE PATTERN DOTS-35
-2815;AL # BRAILLE PATTERN DOTS-135
-2816;AL # BRAILLE PATTERN DOTS-235
-2817;AL # BRAILLE PATTERN DOTS-1235
-2818;AL # BRAILLE PATTERN DOTS-45
-2819;AL # BRAILLE PATTERN DOTS-145
-281A;AL # BRAILLE PATTERN DOTS-245
-281B;AL # BRAILLE PATTERN DOTS-1245
-281C;AL # BRAILLE PATTERN DOTS-345
-281D;AL # BRAILLE PATTERN DOTS-1345
-281E;AL # BRAILLE PATTERN DOTS-2345
-281F;AL # BRAILLE PATTERN DOTS-12345
-2820;AL # BRAILLE PATTERN DOTS-6
-2821;AL # BRAILLE PATTERN DOTS-16
-2822;AL # BRAILLE PATTERN DOTS-26
-2823;AL # BRAILLE PATTERN DOTS-126
-2824;AL # BRAILLE PATTERN DOTS-36
-2825;AL # BRAILLE PATTERN DOTS-136
-2826;AL # BRAILLE PATTERN DOTS-236
-2827;AL # BRAILLE PATTERN DOTS-1236
-2828;AL # BRAILLE PATTERN DOTS-46
-2829;AL # BRAILLE PATTERN DOTS-146
-282A;AL # BRAILLE PATTERN DOTS-246
-282B;AL # BRAILLE PATTERN DOTS-1246
-282C;AL # BRAILLE PATTERN DOTS-346
-282D;AL # BRAILLE PATTERN DOTS-1346
-282E;AL # BRAILLE PATTERN DOTS-2346
-282F;AL # BRAILLE PATTERN DOTS-12346
-2830;AL # BRAILLE PATTERN DOTS-56
-2831;AL # BRAILLE PATTERN DOTS-156
-2832;AL # BRAILLE PATTERN DOTS-256
-2833;AL # BRAILLE PATTERN DOTS-1256
-2834;AL # BRAILLE PATTERN DOTS-356
-2835;AL # BRAILLE PATTERN DOTS-1356
-2836;AL # BRAILLE PATTERN DOTS-2356
-2837;AL # BRAILLE PATTERN DOTS-12356
-2838;AL # BRAILLE PATTERN DOTS-456
-2839;AL # BRAILLE PATTERN DOTS-1456
-283A;AL # BRAILLE PATTERN DOTS-2456
-283B;AL # BRAILLE PATTERN DOTS-12456
-283C;AL # BRAILLE PATTERN DOTS-3456
-283D;AL # BRAILLE PATTERN DOTS-13456
-283E;AL # BRAILLE PATTERN DOTS-23456
-283F;AL # BRAILLE PATTERN DOTS-123456
-2840;AL # BRAILLE PATTERN DOTS-7
-2841;AL # BRAILLE PATTERN DOTS-17
-2842;AL # BRAILLE PATTERN DOTS-27
-2843;AL # BRAILLE PATTERN DOTS-127
-2844;AL # BRAILLE PATTERN DOTS-37
-2845;AL # BRAILLE PATTERN DOTS-137
-2846;AL # BRAILLE PATTERN DOTS-237
-2847;AL # BRAILLE PATTERN DOTS-1237
-2848;AL # BRAILLE PATTERN DOTS-47
-2849;AL # BRAILLE PATTERN DOTS-147
-284A;AL # BRAILLE PATTERN DOTS-247
-284B;AL # BRAILLE PATTERN DOTS-1247
-284C;AL # BRAILLE PATTERN DOTS-347
-284D;AL # BRAILLE PATTERN DOTS-1347
-284E;AL # BRAILLE PATTERN DOTS-2347
-284F;AL # BRAILLE PATTERN DOTS-12347
-2850;AL # BRAILLE PATTERN DOTS-57
-2851;AL # BRAILLE PATTERN DOTS-157
-2852;AL # BRAILLE PATTERN DOTS-257
-2853;AL # BRAILLE PATTERN DOTS-1257
-2854;AL # BRAILLE PATTERN DOTS-357
-2855;AL # BRAILLE PATTERN DOTS-1357
-2856;AL # BRAILLE PATTERN DOTS-2357
-2857;AL # BRAILLE PATTERN DOTS-12357
-2858;AL # BRAILLE PATTERN DOTS-457
-2859;AL # BRAILLE PATTERN DOTS-1457
-285A;AL # BRAILLE PATTERN DOTS-2457
-285B;AL # BRAILLE PATTERN DOTS-12457
-285C;AL # BRAILLE PATTERN DOTS-3457
-285D;AL # BRAILLE PATTERN DOTS-13457
-285E;AL # BRAILLE PATTERN DOTS-23457
-285F;AL # BRAILLE PATTERN DOTS-123457
-2860;AL # BRAILLE PATTERN DOTS-67
-2861;AL # BRAILLE PATTERN DOTS-167
-2862;AL # BRAILLE PATTERN DOTS-267
-2863;AL # BRAILLE PATTERN DOTS-1267
-2864;AL # BRAILLE PATTERN DOTS-367
-2865;AL # BRAILLE PATTERN DOTS-1367
-2866;AL # BRAILLE PATTERN DOTS-2367
-2867;AL # BRAILLE PATTERN DOTS-12367
-2868;AL # BRAILLE PATTERN DOTS-467
-2869;AL # BRAILLE PATTERN DOTS-1467
-286A;AL # BRAILLE PATTERN DOTS-2467
-286B;AL # BRAILLE PATTERN DOTS-12467
-286C;AL # BRAILLE PATTERN DOTS-3467
-286D;AL # BRAILLE PATTERN DOTS-13467
-286E;AL # BRAILLE PATTERN DOTS-23467
-286F;AL # BRAILLE PATTERN DOTS-123467
-2870;AL # BRAILLE PATTERN DOTS-567
-2871;AL # BRAILLE PATTERN DOTS-1567
-2872;AL # BRAILLE PATTERN DOTS-2567
-2873;AL # BRAILLE PATTERN DOTS-12567
-2874;AL # BRAILLE PATTERN DOTS-3567
-2875;AL # BRAILLE PATTERN DOTS-13567
-2876;AL # BRAILLE PATTERN DOTS-23567
-2877;AL # BRAILLE PATTERN DOTS-123567
-2878;AL # BRAILLE PATTERN DOTS-4567
-2879;AL # BRAILLE PATTERN DOTS-14567
-287A;AL # BRAILLE PATTERN DOTS-24567
-287B;AL # BRAILLE PATTERN DOTS-124567
-287C;AL # BRAILLE PATTERN DOTS-34567
-287D;AL # BRAILLE PATTERN DOTS-134567
-287E;AL # BRAILLE PATTERN DOTS-234567
-287F;AL # BRAILLE PATTERN DOTS-1234567
-2880;AL # BRAILLE PATTERN DOTS-8
-2881;AL # BRAILLE PATTERN DOTS-18
-2882;AL # BRAILLE PATTERN DOTS-28
-2883;AL # BRAILLE PATTERN DOTS-128
-2884;AL # BRAILLE PATTERN DOTS-38
-2885;AL # BRAILLE PATTERN DOTS-138
-2886;AL # BRAILLE PATTERN DOTS-238
-2887;AL # BRAILLE PATTERN DOTS-1238
-2888;AL # BRAILLE PATTERN DOTS-48
-2889;AL # BRAILLE PATTERN DOTS-148
-288A;AL # BRAILLE PATTERN DOTS-248
-288B;AL # BRAILLE PATTERN DOTS-1248
-288C;AL # BRAILLE PATTERN DOTS-348
-288D;AL # BRAILLE PATTERN DOTS-1348
-288E;AL # BRAILLE PATTERN DOTS-2348
-288F;AL # BRAILLE PATTERN DOTS-12348
-2890;AL # BRAILLE PATTERN DOTS-58
-2891;AL # BRAILLE PATTERN DOTS-158
-2892;AL # BRAILLE PATTERN DOTS-258
-2893;AL # BRAILLE PATTERN DOTS-1258
-2894;AL # BRAILLE PATTERN DOTS-358
-2895;AL # BRAILLE PATTERN DOTS-1358
-2896;AL # BRAILLE PATTERN DOTS-2358
-2897;AL # BRAILLE PATTERN DOTS-12358
-2898;AL # BRAILLE PATTERN DOTS-458
-2899;AL # BRAILLE PATTERN DOTS-1458
-289A;AL # BRAILLE PATTERN DOTS-2458
-289B;AL # BRAILLE PATTERN DOTS-12458
-289C;AL # BRAILLE PATTERN DOTS-3458
-289D;AL # BRAILLE PATTERN DOTS-13458
-289E;AL # BRAILLE PATTERN DOTS-23458
-289F;AL # BRAILLE PATTERN DOTS-123458
-28A0;AL # BRAILLE PATTERN DOTS-68
-28A1;AL # BRAILLE PATTERN DOTS-168
-28A2;AL # BRAILLE PATTERN DOTS-268
-28A3;AL # BRAILLE PATTERN DOTS-1268
-28A4;AL # BRAILLE PATTERN DOTS-368
-28A5;AL # BRAILLE PATTERN DOTS-1368
-28A6;AL # BRAILLE PATTERN DOTS-2368
-28A7;AL # BRAILLE PATTERN DOTS-12368
-28A8;AL # BRAILLE PATTERN DOTS-468
-28A9;AL # BRAILLE PATTERN DOTS-1468
-28AA;AL # BRAILLE PATTERN DOTS-2468
-28AB;AL # BRAILLE PATTERN DOTS-12468
-28AC;AL # BRAILLE PATTERN DOTS-3468
-28AD;AL # BRAILLE PATTERN DOTS-13468
-28AE;AL # BRAILLE PATTERN DOTS-23468
-28AF;AL # BRAILLE PATTERN DOTS-123468
-28B0;AL # BRAILLE PATTERN DOTS-568
-28B1;AL # BRAILLE PATTERN DOTS-1568
-28B2;AL # BRAILLE PATTERN DOTS-2568
-28B3;AL # BRAILLE PATTERN DOTS-12568
-28B4;AL # BRAILLE PATTERN DOTS-3568
-28B5;AL # BRAILLE PATTERN DOTS-13568
-28B6;AL # BRAILLE PATTERN DOTS-23568
-28B7;AL # BRAILLE PATTERN DOTS-123568
-28B8;AL # BRAILLE PATTERN DOTS-4568
-28B9;AL # BRAILLE PATTERN DOTS-14568
-28BA;AL # BRAILLE PATTERN DOTS-24568
-28BB;AL # BRAILLE PATTERN DOTS-124568
-28BC;AL # BRAILLE PATTERN DOTS-34568
-28BD;AL # BRAILLE PATTERN DOTS-134568
-28BE;AL # BRAILLE PATTERN DOTS-234568
-28BF;AL # BRAILLE PATTERN DOTS-1234568
-28C0;AL # BRAILLE PATTERN DOTS-78
-28C1;AL # BRAILLE PATTERN DOTS-178
-28C2;AL # BRAILLE PATTERN DOTS-278
-28C3;AL # BRAILLE PATTERN DOTS-1278
-28C4;AL # BRAILLE PATTERN DOTS-378
-28C5;AL # BRAILLE PATTERN DOTS-1378
-28C6;AL # BRAILLE PATTERN DOTS-2378
-28C7;AL # BRAILLE PATTERN DOTS-12378
-28C8;AL # BRAILLE PATTERN DOTS-478
-28C9;AL # BRAILLE PATTERN DOTS-1478
-28CA;AL # BRAILLE PATTERN DOTS-2478
-28CB;AL # BRAILLE PATTERN DOTS-12478
-28CC;AL # BRAILLE PATTERN DOTS-3478
-28CD;AL # BRAILLE PATTERN DOTS-13478
-28CE;AL # BRAILLE PATTERN DOTS-23478
-28CF;AL # BRAILLE PATTERN DOTS-123478
-28D0;AL # BRAILLE PATTERN DOTS-578
-28D1;AL # BRAILLE PATTERN DOTS-1578
-28D2;AL # BRAILLE PATTERN DOTS-2578
-28D3;AL # BRAILLE PATTERN DOTS-12578
-28D4;AL # BRAILLE PATTERN DOTS-3578
-28D5;AL # BRAILLE PATTERN DOTS-13578
-28D6;AL # BRAILLE PATTERN DOTS-23578
-28D7;AL # BRAILLE PATTERN DOTS-123578
-28D8;AL # BRAILLE PATTERN DOTS-4578
-28D9;AL # BRAILLE PATTERN DOTS-14578
-28DA;AL # BRAILLE PATTERN DOTS-24578
-28DB;AL # BRAILLE PATTERN DOTS-124578
-28DC;AL # BRAILLE PATTERN DOTS-34578
-28DD;AL # BRAILLE PATTERN DOTS-134578
-28DE;AL # BRAILLE PATTERN DOTS-234578
-28DF;AL # BRAILLE PATTERN DOTS-1234578
-28E0;AL # BRAILLE PATTERN DOTS-678
-28E1;AL # BRAILLE PATTERN DOTS-1678
-28E2;AL # BRAILLE PATTERN DOTS-2678
-28E3;AL # BRAILLE PATTERN DOTS-12678
-28E4;AL # BRAILLE PATTERN DOTS-3678
-28E5;AL # BRAILLE PATTERN DOTS-13678
-28E6;AL # BRAILLE PATTERN DOTS-23678
-28E7;AL # BRAILLE PATTERN DOTS-123678
-28E8;AL # BRAILLE PATTERN DOTS-4678
-28E9;AL # BRAILLE PATTERN DOTS-14678
-28EA;AL # BRAILLE PATTERN DOTS-24678
-28EB;AL # BRAILLE PATTERN DOTS-124678
-28EC;AL # BRAILLE PATTERN DOTS-34678
-28ED;AL # BRAILLE PATTERN DOTS-134678
-28EE;AL # BRAILLE PATTERN DOTS-234678
-28EF;AL # BRAILLE PATTERN DOTS-1234678
-28F0;AL # BRAILLE PATTERN DOTS-5678
-28F1;AL # BRAILLE PATTERN DOTS-15678
-28F2;AL # BRAILLE PATTERN DOTS-25678
-28F3;AL # BRAILLE PATTERN DOTS-125678
-28F4;AL # BRAILLE PATTERN DOTS-35678
-28F5;AL # BRAILLE PATTERN DOTS-135678
-28F6;AL # BRAILLE PATTERN DOTS-235678
-28F7;AL # BRAILLE PATTERN DOTS-1235678
-28F8;AL # BRAILLE PATTERN DOTS-45678
-28F9;AL # BRAILLE PATTERN DOTS-145678
-28FA;AL # BRAILLE PATTERN DOTS-245678
-28FB;AL # BRAILLE PATTERN DOTS-1245678
-28FC;AL # BRAILLE PATTERN DOTS-345678
-28FD;AL # BRAILLE PATTERN DOTS-1345678
-28FE;AL # BRAILLE PATTERN DOTS-2345678
-28FF;AL # BRAILLE PATTERN DOTS-12345678
-2900;AL # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901;AL # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902;AL # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903;AL # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904;AL # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905;AL # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906;AL # LEFTWARDS DOUBLE ARROW FROM BAR
-2907;AL # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908;AL # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909;AL # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A;AL # UPWARDS TRIPLE ARROW
-290B;AL # DOWNWARDS TRIPLE ARROW
-290C;AL # LEFTWARDS DOUBLE DASH ARROW
-290D;AL # RIGHTWARDS DOUBLE DASH ARROW
-290E;AL # LEFTWARDS TRIPLE DASH ARROW
-290F;AL # RIGHTWARDS TRIPLE DASH ARROW
-2910;AL # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911;AL # RIGHTWARDS ARROW WITH DOTTED STEM
-2912;AL # UPWARDS ARROW TO BAR
-2913;AL # DOWNWARDS ARROW TO BAR
-2914;AL # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915;AL # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919;AL # LEFTWARDS ARROW-TAIL
-291A;AL # RIGHTWARDS ARROW-TAIL
-291B;AL # LEFTWARDS DOUBLE ARROW-TAIL
-291C;AL # RIGHTWARDS DOUBLE ARROW-TAIL
-291D;AL # LEFTWARDS ARROW TO BLACK DIAMOND
-291E;AL # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F;AL # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920;AL # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921;AL # NORTH WEST AND SOUTH EAST ARROW
-2922;AL # NORTH EAST AND SOUTH WEST ARROW
-2923;AL # NORTH WEST ARROW WITH HOOK
-2924;AL # NORTH EAST ARROW WITH HOOK
-2925;AL # SOUTH EAST ARROW WITH HOOK
-2926;AL # SOUTH WEST ARROW WITH HOOK
-2927;AL # NORTH WEST ARROW AND NORTH EAST ARROW
-2928;AL # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929;AL # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A;AL # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B;AL # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C;AL # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D;AL # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E;AL # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F;AL # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930;AL # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931;AL # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932;AL # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933;AL # WAVE ARROW POINTING DIRECTLY RIGHT
-2934;AL # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935;AL # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936;AL # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937;AL # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938;AL # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939;AL # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A;AL # TOP ARC ANTICLOCKWISE ARROW
-293B;AL # BOTTOM ARC ANTICLOCKWISE ARROW
-293C;AL # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D;AL # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E;AL # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F;AL # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940;AL # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941;AL # CLOCKWISE CLOSED CIRCLE ARROW
-2942;AL # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943;AL # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944;AL # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945;AL # RIGHTWARDS ARROW WITH PLUS BELOW
-2946;AL # LEFTWARDS ARROW WITH PLUS BELOW
-2947;AL # RIGHTWARDS ARROW THROUGH X
-2948;AL # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949;AL # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A;AL # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B;AL # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C;AL # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D;AL # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E;AL # LEFT BARB UP RIGHT BARB UP HARPOON
-294F;AL # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950;AL # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951;AL # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952;AL # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953;AL # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954;AL # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955;AL # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956;AL # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957;AL # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958;AL # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959;AL # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A;AL # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B;AL # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C;AL # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D;AL # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E;AL # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F;AL # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960;AL # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961;AL # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967;AL # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969;AL # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B;AL # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D;AL # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970;AL # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971;AL # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972;AL # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973;AL # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974;AL # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975;AL # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976;AL # LESS-THAN ABOVE LEFTWARDS ARROW
-2977;AL # LEFTWARDS ARROW THROUGH LESS-THAN
-2978;AL # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979;AL # SUBSET ABOVE RIGHTWARDS ARROW
-297A;AL # LEFTWARDS ARROW THROUGH SUBSET
-297B;AL # SUPERSET ABOVE LEFTWARDS ARROW
-297C;AL # LEFT FISH TAIL
-297D;AL # RIGHT FISH TAIL
-297E;AL # UP FISH TAIL
-297F;AL # DOWN FISH TAIL
-2980;AL # TRIPLE VERTICAL BAR DELIMITER
-2981;AL # Z NOTATION SPOT
-2982;AL # Z NOTATION TYPE COLON
-2983;OP # LEFT WHITE CURLY BRACKET
-2984;CL # RIGHT WHITE CURLY BRACKET
-2985;OP # LEFT WHITE PARENTHESIS
-2986;CL # RIGHT WHITE PARENTHESIS
-2987;OP # Z NOTATION LEFT IMAGE BRACKET
-2988;CL # Z NOTATION RIGHT IMAGE BRACKET
-2989;OP # Z NOTATION LEFT BINDING BRACKET
-298A;CL # Z NOTATION RIGHT BINDING BRACKET
-298B;OP # LEFT SQUARE BRACKET WITH UNDERBAR
-298C;CL # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D;OP # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E;CL # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F;OP # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990;CL # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991;OP # LEFT ANGLE BRACKET WITH DOT
-2992;CL # RIGHT ANGLE BRACKET WITH DOT
-2993;OP # LEFT ARC LESS-THAN BRACKET
-2994;CL # RIGHT ARC GREATER-THAN BRACKET
-2995;OP # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996;CL # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997;OP # LEFT BLACK TORTOISE SHELL BRACKET
-2998;CL # RIGHT BLACK TORTOISE SHELL BRACKET
-2999;AL # DOTTED FENCE
-299A;AL # VERTICAL ZIGZAG LINE
-299B;AL # MEASURED ANGLE OPENING LEFT
-299C;AL # RIGHT ANGLE VARIANT WITH SQUARE
-299D;AL # MEASURED RIGHT ANGLE WITH DOT
-299E;AL # ANGLE WITH S INSIDE
-299F;AL # ACUTE ANGLE
-29A0;AL # SPHERICAL ANGLE OPENING LEFT
-29A1;AL # SPHERICAL ANGLE OPENING UP
-29A2;AL # TURNED ANGLE
-29A3;AL # REVERSED ANGLE
-29A4;AL # ANGLE WITH UNDERBAR
-29A5;AL # REVERSED ANGLE WITH UNDERBAR
-29A6;AL # OBLIQUE ANGLE OPENING UP
-29A7;AL # OBLIQUE ANGLE OPENING DOWN
-29A8;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0;AL # REVERSED EMPTY SET
-29B1;AL # EMPTY SET WITH OVERBAR
-29B2;AL # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3;AL # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4;AL # EMPTY SET WITH LEFT ARROW ABOVE
-29B5;AL # CIRCLE WITH HORIZONTAL BAR
-29B6;AL # CIRCLED VERTICAL BAR
-29B7;AL # CIRCLED PARALLEL
-29B8;AL # CIRCLED REVERSE SOLIDUS
-29B9;AL # CIRCLED PERPENDICULAR
-29BA;AL # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB;AL # CIRCLE WITH SUPERIMPOSED X
-29BC;AL # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD;AL # UP ARROW THROUGH CIRCLE
-29BE;AL # CIRCLED WHITE BULLET
-29BF;AL # CIRCLED BULLET
-29C0;AL # CIRCLED LESS-THAN
-29C1;AL # CIRCLED GREATER-THAN
-29C2;AL # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3;AL # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4;AL # SQUARED RISING DIAGONAL SLASH
-29C5;AL # SQUARED FALLING DIAGONAL SLASH
-29C6;AL # SQUARED ASTERISK
-29C7;AL # SQUARED SMALL CIRCLE
-29C8;AL # SQUARED SQUARE
-29C9;AL # TWO JOINED SQUARES
-29CA;AL # TRIANGLE WITH DOT ABOVE
-29CB;AL # TRIANGLE WITH UNDERBAR
-29CC;AL # S IN TRIANGLE
-29CD;AL # TRIANGLE WITH SERIFS AT BOTTOM
-29CE;AL # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF;AL # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0;AL # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1;AL # BOWTIE WITH LEFT HALF BLACK
-29D2;AL # BOWTIE WITH RIGHT HALF BLACK
-29D3;AL # BLACK BOWTIE
-29D4;AL # TIMES WITH LEFT HALF BLACK
-29D5;AL # TIMES WITH RIGHT HALF BLACK
-29D6;AL # WHITE HOURGLASS
-29D7;AL # BLACK HOURGLASS
-29D8;OP # LEFT WIGGLY FENCE
-29D9;CL # RIGHT WIGGLY FENCE
-29DA;OP # LEFT DOUBLE WIGGLY FENCE
-29DB;CL # RIGHT DOUBLE WIGGLY FENCE
-29DC;AL # INCOMPLETE INFINITY
-29DD;AL # TIE OVER INFINITY
-29DE;AL # INFINITY NEGATED WITH VERTICAL BAR
-29DF;AL # DOUBLE-ENDED MULTIMAP
-29E0;AL # SQUARE WITH CONTOURED OUTLINE
-29E1;AL # INCREASES AS
-29E2;AL # SHUFFLE PRODUCT
-29E3;AL # EQUALS SIGN AND SLANTED PARALLEL
-29E4;AL # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5;AL # IDENTICAL TO AND SLANTED PARALLEL
-29E6;AL # GLEICH STARK
-29E7;AL # THERMODYNAMIC
-29E8;AL # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9;AL # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA;AL # BLACK DIAMOND WITH DOWN ARROW
-29EB;AL # BLACK LOZENGE
-29EC;AL # WHITE CIRCLE WITH DOWN ARROW
-29ED;AL # BLACK CIRCLE WITH DOWN ARROW
-29EE;AL # ERROR-BARRED WHITE SQUARE
-29EF;AL # ERROR-BARRED BLACK SQUARE
-29F0;AL # ERROR-BARRED WHITE DIAMOND
-29F1;AL # ERROR-BARRED BLACK DIAMOND
-29F2;AL # ERROR-BARRED WHITE CIRCLE
-29F3;AL # ERROR-BARRED BLACK CIRCLE
-29F4;AL # RULE-DELAYED
-29F5;AL # REVERSE SOLIDUS OPERATOR
-29F6;AL # SOLIDUS WITH OVERBAR
-29F7;AL # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8;AL # BIG SOLIDUS
-29F9;AL # BIG REVERSE SOLIDUS
-29FA;AL # DOUBLE PLUS
-29FB;AL # TRIPLE PLUS
-29FC;OP # LEFT-POINTING CURVED ANGLE BRACKET
-29FD;CL # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE;AL # TINY
-29FF;AL # MINY
-2A00;AL # N-ARY CIRCLED DOT OPERATOR
-2A01;AL # N-ARY CIRCLED PLUS OPERATOR
-2A02;AL # N-ARY CIRCLED TIMES OPERATOR
-2A03;AL # N-ARY UNION OPERATOR WITH DOT
-2A04;AL # N-ARY UNION OPERATOR WITH PLUS
-2A05;AL # N-ARY SQUARE INTERSECTION OPERATOR
-2A06;AL # N-ARY SQUARE UNION OPERATOR
-2A07;AL # TWO LOGICAL AND OPERATOR
-2A08;AL # TWO LOGICAL OR OPERATOR
-2A09;AL # N-ARY TIMES OPERATOR
-2A0A;AL # MODULO TWO SUM
-2A0B;AL # SUMMATION WITH INTEGRAL
-2A0C;AL # QUADRUPLE INTEGRAL OPERATOR
-2A0D;AL # FINITE PART INTEGRAL
-2A0E;AL # INTEGRAL WITH DOUBLE STROKE
-2A0F;AL # INTEGRAL AVERAGE WITH SLASH
-2A10;AL # CIRCULATION FUNCTION
-2A11;AL # ANTICLOCKWISE INTEGRATION
-2A12;AL # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13;AL # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14;AL # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15;AL # INTEGRAL AROUND A POINT OPERATOR
-2A16;AL # QUATERNION INTEGRAL OPERATOR
-2A17;AL # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18;AL # INTEGRAL WITH TIMES SIGN
-2A19;AL # INTEGRAL WITH INTERSECTION
-2A1A;AL # INTEGRAL WITH UNION
-2A1B;AL # INTEGRAL WITH OVERBAR
-2A1C;AL # INTEGRAL WITH UNDERBAR
-2A1D;AL # JOIN
-2A1E;AL # LARGE LEFT TRIANGLE OPERATOR
-2A1F;AL # Z NOTATION SCHEMA COMPOSITION
-2A20;AL # Z NOTATION SCHEMA PIPING
-2A21;AL # Z NOTATION SCHEMA PROJECTION
-2A22;AL # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23;AL # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24;AL # PLUS SIGN WITH TILDE ABOVE
-2A25;AL # PLUS SIGN WITH DOT BELOW
-2A26;AL # PLUS SIGN WITH TILDE BELOW
-2A27;AL # PLUS SIGN WITH SUBSCRIPT TWO
-2A28;AL # PLUS SIGN WITH BLACK TRIANGLE
-2A29;AL # MINUS SIGN WITH COMMA ABOVE
-2A2A;AL # MINUS SIGN WITH DOT BELOW
-2A2B;AL # MINUS SIGN WITH FALLING DOTS
-2A2C;AL # MINUS SIGN WITH RISING DOTS
-2A2D;AL # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E;AL # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F;AL # VECTOR OR CROSS PRODUCT
-2A30;AL # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31;AL # MULTIPLICATION SIGN WITH UNDERBAR
-2A32;AL # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33;AL # SMASH PRODUCT
-2A34;AL # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35;AL # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36;AL # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37;AL # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38;AL # CIRCLED DIVISION SIGN
-2A39;AL # PLUS SIGN IN TRIANGLE
-2A3A;AL # MINUS SIGN IN TRIANGLE
-2A3B;AL # MULTIPLICATION SIGN IN TRIANGLE
-2A3C;AL # INTERIOR PRODUCT
-2A3D;AL # RIGHTHAND INTERIOR PRODUCT
-2A3E;AL # Z NOTATION RELATIONAL COMPOSITION
-2A3F;AL # AMALGAMATION OR COPRODUCT
-2A40;AL # INTERSECTION WITH DOT
-2A41;AL # UNION WITH MINUS SIGN
-2A42;AL # UNION WITH OVERBAR
-2A43;AL # INTERSECTION WITH OVERBAR
-2A44;AL # INTERSECTION WITH LOGICAL AND
-2A45;AL # UNION WITH LOGICAL OR
-2A46;AL # UNION ABOVE INTERSECTION
-2A47;AL # INTERSECTION ABOVE UNION
-2A48;AL # UNION ABOVE BAR ABOVE INTERSECTION
-2A49;AL # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A;AL # UNION BESIDE AND JOINED WITH UNION
-2A4B;AL # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C;AL # CLOSED UNION WITH SERIFS
-2A4D;AL # CLOSED INTERSECTION WITH SERIFS
-2A4E;AL # DOUBLE SQUARE INTERSECTION
-2A4F;AL # DOUBLE SQUARE UNION
-2A50;AL # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51;AL # LOGICAL AND WITH DOT ABOVE
-2A52;AL # LOGICAL OR WITH DOT ABOVE
-2A53;AL # DOUBLE LOGICAL AND
-2A54;AL # DOUBLE LOGICAL OR
-2A55;AL # TWO INTERSECTING LOGICAL AND
-2A56;AL # TWO INTERSECTING LOGICAL OR
-2A57;AL # SLOPING LARGE OR
-2A58;AL # SLOPING LARGE AND
-2A59;AL # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A;AL # LOGICAL AND WITH MIDDLE STEM
-2A5B;AL # LOGICAL OR WITH MIDDLE STEM
-2A5C;AL # LOGICAL AND WITH HORIZONTAL DASH
-2A5D;AL # LOGICAL OR WITH HORIZONTAL DASH
-2A5E;AL # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F;AL # LOGICAL AND WITH UNDERBAR
-2A60;AL # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61;AL # SMALL VEE WITH UNDERBAR
-2A62;AL # LOGICAL OR WITH DOUBLE OVERBAR
-2A63;AL # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64;AL # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65;AL # Z NOTATION RANGE ANTIRESTRICTION
-2A66;AL # EQUALS SIGN WITH DOT BELOW
-2A67;AL # IDENTICAL WITH DOT ABOVE
-2A68;AL # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69;AL # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A;AL # TILDE OPERATOR WITH DOT ABOVE
-2A6B;AL # TILDE OPERATOR WITH RISING DOTS
-2A6C;AL # SIMILAR MINUS SIMILAR
-2A6D;AL # CONGRUENT WITH DOT ABOVE
-2A6E;AL # EQUALS WITH ASTERISK
-2A6F;AL # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70;AL # APPROXIMATELY EQUAL OR EQUAL TO
-2A71;AL # EQUALS SIGN ABOVE PLUS SIGN
-2A72;AL # PLUS SIGN ABOVE EQUALS SIGN
-2A73;AL # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74;AL # DOUBLE COLON EQUAL
-2A75;AL # TWO CONSECUTIVE EQUALS SIGNS
-2A76;AL # THREE CONSECUTIVE EQUALS SIGNS
-2A77;AL # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78;AL # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79;AL # LESS-THAN WITH CIRCLE INSIDE
-2A7A;AL # GREATER-THAN WITH CIRCLE INSIDE
-2A7B;AL # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C;AL # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D;AL # LESS-THAN OR SLANTED EQUAL TO
-2A7E;AL # GREATER-THAN OR SLANTED EQUAL TO
-2A7F;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85;AL # LESS-THAN OR APPROXIMATE
-2A86;AL # GREATER-THAN OR APPROXIMATE
-2A87;AL # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88;AL # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89;AL # LESS-THAN AND NOT APPROXIMATE
-2A8A;AL # GREATER-THAN AND NOT APPROXIMATE
-2A8B;AL # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C;AL # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D;AL # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E;AL # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F;AL # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90;AL # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91;AL # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92;AL # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93;AL # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94;AL # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95;AL # SLANTED EQUAL TO OR LESS-THAN
-2A96;AL # SLANTED EQUAL TO OR GREATER-THAN
-2A97;AL # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98;AL # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99;AL # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A;AL # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B;AL # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C;AL # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D;AL # SIMILAR OR LESS-THAN
-2A9E;AL # SIMILAR OR GREATER-THAN
-2A9F;AL # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0;AL # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1;AL # DOUBLE NESTED LESS-THAN
-2AA2;AL # DOUBLE NESTED GREATER-THAN
-2AA3;AL # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4;AL # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5;AL # GREATER-THAN BESIDE LESS-THAN
-2AA6;AL # LESS-THAN CLOSED BY CURVE
-2AA7;AL # GREATER-THAN CLOSED BY CURVE
-2AA8;AL # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9;AL # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA;AL # SMALLER THAN
-2AAB;AL # LARGER THAN
-2AAC;AL # SMALLER THAN OR EQUAL TO
-2AAD;AL # LARGER THAN OR EQUAL TO
-2AAE;AL # EQUALS SIGN WITH BUMPY ABOVE
-2AAF;AL # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0;AL # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1;AL # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2;AL # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3;AL # PRECEDES ABOVE EQUALS SIGN
-2AB4;AL # SUCCEEDS ABOVE EQUALS SIGN
-2AB5;AL # PRECEDES ABOVE NOT EQUAL TO
-2AB6;AL # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7;AL # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8;AL # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9;AL # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA;AL # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB;AL # DOUBLE PRECEDES
-2ABC;AL # DOUBLE SUCCEEDS
-2ABD;AL # SUBSET WITH DOT
-2ABE;AL # SUPERSET WITH DOT
-2ABF;AL # SUBSET WITH PLUS SIGN BELOW
-2AC0;AL # SUPERSET WITH PLUS SIGN BELOW
-2AC1;AL # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2;AL # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3;AL # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4;AL # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5;AL # SUBSET OF ABOVE EQUALS SIGN
-2AC6;AL # SUPERSET OF ABOVE EQUALS SIGN
-2AC7;AL # SUBSET OF ABOVE TILDE OPERATOR
-2AC8;AL # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9;AL # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA;AL # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB;AL # SUBSET OF ABOVE NOT EQUAL TO
-2ACC;AL # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD;AL # SQUARE LEFT OPEN BOX OPERATOR
-2ACE;AL # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF;AL # CLOSED SUBSET
-2AD0;AL # CLOSED SUPERSET
-2AD1;AL # CLOSED SUBSET OR EQUAL TO
-2AD2;AL # CLOSED SUPERSET OR EQUAL TO
-2AD3;AL # SUBSET ABOVE SUPERSET
-2AD4;AL # SUPERSET ABOVE SUBSET
-2AD5;AL # SUBSET ABOVE SUBSET
-2AD6;AL # SUPERSET ABOVE SUPERSET
-2AD7;AL # SUPERSET BESIDE SUBSET
-2AD8;AL # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9;AL # ELEMENT OF OPENING DOWNWARDS
-2ADA;AL # PITCHFORK WITH TEE TOP
-2ADB;AL # TRANSVERSAL INTERSECTION
-2ADC;AL # FORKING
-2ADD;AL # NONFORKING
-2ADE;AL # SHORT LEFT TACK
-2ADF;AL # SHORT DOWN TACK
-2AE0;AL # SHORT UP TACK
-2AE1;AL # PERPENDICULAR WITH S
-2AE2;AL # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3;AL # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4;AL # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5;AL # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6;AL # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7;AL # SHORT DOWN TACK WITH OVERBAR
-2AE8;AL # SHORT UP TACK WITH UNDERBAR
-2AE9;AL # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA;AL # DOUBLE DOWN TACK
-2AEB;AL # DOUBLE UP TACK
-2AEC;AL # DOUBLE STROKE NOT SIGN
-2AED;AL # REVERSED DOUBLE STROKE NOT SIGN
-2AEE;AL # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF;AL # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0;AL # VERTICAL LINE WITH CIRCLE BELOW
-2AF1;AL # DOWN TACK WITH CIRCLE BELOW
-2AF2;AL # PARALLEL WITH HORIZONTAL STROKE
-2AF3;AL # PARALLEL WITH TILDE OPERATOR
-2AF4;AL # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5;AL # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6;AL # TRIPLE COLON OPERATOR
-2AF7;AL # TRIPLE NESTED LESS-THAN
-2AF8;AL # TRIPLE NESTED GREATER-THAN
-2AF9;AL # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA;AL # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB;AL # TRIPLE SOLIDUS BINARY RELATION
-2AFC;AL # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD;AL # DOUBLE SOLIDUS OPERATOR
-2AFE;AL # WHITE VERTICAL BAR
-2AFF;AL # N-ARY WHITE VERTICAL BAR
-2B00;AL # NORTH EAST WHITE ARROW
-2B01;AL # NORTH WEST WHITE ARROW
-2B02;AL # SOUTH EAST WHITE ARROW
-2B03;AL # SOUTH WEST WHITE ARROW
-2B04;AL # LEFT RIGHT WHITE ARROW
-2B05;AL # LEFTWARDS BLACK ARROW
-2B06;AL # UPWARDS BLACK ARROW
-2B07;AL # DOWNWARDS BLACK ARROW
-2B08;AL # NORTH EAST BLACK ARROW
-2B09;AL # NORTH WEST BLACK ARROW
-2B0A;AL # SOUTH EAST BLACK ARROW
-2B0B;AL # SOUTH WEST BLACK ARROW
-2B0C;AL # LEFT RIGHT BLACK ARROW
-2B0D;AL # UP DOWN BLACK ARROW
-2B0E;AL # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F;AL # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10;AL # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11;AL # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12;AL # SQUARE WITH TOP HALF BLACK
-2B13;AL # SQUARE WITH BOTTOM HALF BLACK
-2B14;AL # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15;AL # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16;AL # DIAMOND WITH LEFT HALF BLACK
-2B17;AL # DIAMOND WITH RIGHT HALF BLACK
-2B18;AL # DIAMOND WITH TOP HALF BLACK
-2B19;AL # DIAMOND WITH BOTTOM HALF BLACK
-2B1A;AL # DOTTED SQUARE
-2B1B;AL # BLACK LARGE SQUARE
-2B1C;AL # WHITE LARGE SQUARE
-2B1D;AL # BLACK VERY SMALL SQUARE
-2B1E;AL # WHITE VERY SMALL SQUARE
-2B1F;AL # BLACK PENTAGON
-2B20;AL # WHITE PENTAGON
-2B21;AL # WHITE HEXAGON
-2B22;AL # BLACK HEXAGON
-2B23;AL # HORIZONTAL BLACK HEXAGON
-2B24;AL # BLACK LARGE CIRCLE
-2B25;AL # BLACK MEDIUM DIAMOND
-2B26;AL # WHITE MEDIUM DIAMOND
-2B27;AL # BLACK MEDIUM LOZENGE
-2B28;AL # WHITE MEDIUM LOZENGE
-2B29;AL # BLACK SMALL DIAMOND
-2B2A;AL # BLACK SMALL LOZENGE
-2B2B;AL # WHITE SMALL LOZENGE
-2B2C;AL # BLACK HORIZONTAL ELLIPSE
-2B2D;AL # WHITE HORIZONTAL ELLIPSE
-2B2E;AL # BLACK VERTICAL ELLIPSE
-2B2F;AL # WHITE VERTICAL ELLIPSE
-2B30;AL # LEFT ARROW WITH SMALL CIRCLE
-2B31;AL # THREE LEFTWARDS ARROWS
-2B32;AL # LEFT ARROW WITH CIRCLED PLUS
-2B33;AL # LONG LEFTWARDS SQUIGGLE ARROW
-2B34;AL # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35;AL # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36;AL # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37;AL # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38;AL # LEFTWARDS ARROW WITH DOTTED STEM
-2B39;AL # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A;AL # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D;AL # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E;AL # LEFTWARDS ARROW THROUGH X
-2B3F;AL # WAVE ARROW POINTING DIRECTLY LEFT
-2B40;AL # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41;AL # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42;AL # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43;AL # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44;AL # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45;AL # LEFTWARDS QUADRUPLE ARROW
-2B46;AL # RIGHTWARDS QUADRUPLE ARROW
-2B47;AL # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48;AL # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49;AL # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A;AL # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B;AL # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C;AL # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50;AL # WHITE MEDIUM STAR
-2B51;AL # BLACK SMALL STAR
-2B52;AL # WHITE SMALL STAR
-2B53;AL # BLACK RIGHT-POINTING PENTAGON
-2B54;AL # WHITE RIGHT-POINTING PENTAGON
-2B55;AI # HEAVY LARGE CIRCLE
-2B56;AI # HEAVY OVAL WITH OVAL INSIDE
-2B57;AI # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58;AI # HEAVY CIRCLE
-2B59;AI # HEAVY CIRCLED SALTIRE
-2C00;AL # GLAGOLITIC CAPITAL LETTER AZU
-2C01;AL # GLAGOLITIC CAPITAL LETTER BUKY
-2C02;AL # GLAGOLITIC CAPITAL LETTER VEDE
-2C03;AL # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C04;AL # GLAGOLITIC CAPITAL LETTER DOBRO
-2C05;AL # GLAGOLITIC CAPITAL LETTER YESTU
-2C06;AL # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C07;AL # GLAGOLITIC CAPITAL LETTER DZELO
-2C08;AL # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C09;AL # GLAGOLITIC CAPITAL LETTER IZHE
-2C0A;AL # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C0B;AL # GLAGOLITIC CAPITAL LETTER I
-2C0C;AL # GLAGOLITIC CAPITAL LETTER DJERVI
-2C0D;AL # GLAGOLITIC CAPITAL LETTER KAKO
-2C0E;AL # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C0F;AL # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C10;AL # GLAGOLITIC CAPITAL LETTER NASHI
-2C11;AL # GLAGOLITIC CAPITAL LETTER ONU
-2C12;AL # GLAGOLITIC CAPITAL LETTER POKOJI
-2C13;AL # GLAGOLITIC CAPITAL LETTER RITSI
-2C14;AL # GLAGOLITIC CAPITAL LETTER SLOVO
-2C15;AL # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C16;AL # GLAGOLITIC CAPITAL LETTER UKU
-2C17;AL # GLAGOLITIC CAPITAL LETTER FRITU
-2C18;AL # GLAGOLITIC CAPITAL LETTER HERU
-2C19;AL # GLAGOLITIC CAPITAL LETTER OTU
-2C1A;AL # GLAGOLITIC CAPITAL LETTER PE
-2C1B;AL # GLAGOLITIC CAPITAL LETTER SHTA
-2C1C;AL # GLAGOLITIC CAPITAL LETTER TSI
-2C1D;AL # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C1E;AL # GLAGOLITIC CAPITAL LETTER SHA
-2C1F;AL # GLAGOLITIC CAPITAL LETTER YERU
-2C20;AL # GLAGOLITIC CAPITAL LETTER YERI
-2C21;AL # GLAGOLITIC CAPITAL LETTER YATI
-2C22;AL # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C23;AL # GLAGOLITIC CAPITAL LETTER YU
-2C24;AL # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C25;AL # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C26;AL # GLAGOLITIC CAPITAL LETTER YO
-2C27;AL # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C28;AL # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C29;AL # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C2A;AL # GLAGOLITIC CAPITAL LETTER FITA
-2C2B;AL # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C2C;AL # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C2D;AL # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C2E;AL # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30;AL # GLAGOLITIC SMALL LETTER AZU
-2C31;AL # GLAGOLITIC SMALL LETTER BUKY
-2C32;AL # GLAGOLITIC SMALL LETTER VEDE
-2C33;AL # GLAGOLITIC SMALL LETTER GLAGOLI
-2C34;AL # GLAGOLITIC SMALL LETTER DOBRO
-2C35;AL # GLAGOLITIC SMALL LETTER YESTU
-2C36;AL # GLAGOLITIC SMALL LETTER ZHIVETE
-2C37;AL # GLAGOLITIC SMALL LETTER DZELO
-2C38;AL # GLAGOLITIC SMALL LETTER ZEMLJA
-2C39;AL # GLAGOLITIC SMALL LETTER IZHE
-2C3A;AL # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C3B;AL # GLAGOLITIC SMALL LETTER I
-2C3C;AL # GLAGOLITIC SMALL LETTER DJERVI
-2C3D;AL # GLAGOLITIC SMALL LETTER KAKO
-2C3E;AL # GLAGOLITIC SMALL LETTER LJUDIJE
-2C3F;AL # GLAGOLITIC SMALL LETTER MYSLITE
-2C40;AL # GLAGOLITIC SMALL LETTER NASHI
-2C41;AL # GLAGOLITIC SMALL LETTER ONU
-2C42;AL # GLAGOLITIC SMALL LETTER POKOJI
-2C43;AL # GLAGOLITIC SMALL LETTER RITSI
-2C44;AL # GLAGOLITIC SMALL LETTER SLOVO
-2C45;AL # GLAGOLITIC SMALL LETTER TVRIDO
-2C46;AL # GLAGOLITIC SMALL LETTER UKU
-2C47;AL # GLAGOLITIC SMALL LETTER FRITU
-2C48;AL # GLAGOLITIC SMALL LETTER HERU
-2C49;AL # GLAGOLITIC SMALL LETTER OTU
-2C4A;AL # GLAGOLITIC SMALL LETTER PE
-2C4B;AL # GLAGOLITIC SMALL LETTER SHTA
-2C4C;AL # GLAGOLITIC SMALL LETTER TSI
-2C4D;AL # GLAGOLITIC SMALL LETTER CHRIVI
-2C4E;AL # GLAGOLITIC SMALL LETTER SHA
-2C4F;AL # GLAGOLITIC SMALL LETTER YERU
-2C50;AL # GLAGOLITIC SMALL LETTER YERI
-2C51;AL # GLAGOLITIC SMALL LETTER YATI
-2C52;AL # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C53;AL # GLAGOLITIC SMALL LETTER YU
-2C54;AL # GLAGOLITIC SMALL LETTER SMALL YUS
-2C55;AL # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C56;AL # GLAGOLITIC SMALL LETTER YO
-2C57;AL # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C58;AL # GLAGOLITIC SMALL LETTER BIG YUS
-2C59;AL # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C5A;AL # GLAGOLITIC SMALL LETTER FITA
-2C5B;AL # GLAGOLITIC SMALL LETTER IZHITSA
-2C5C;AL # GLAGOLITIC SMALL LETTER SHTAPIC
-2C5D;AL # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C5E;AL # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C60;AL # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-2C61;AL # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C62;AL # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-2C63;AL # LATIN CAPITAL LETTER P WITH STROKE
-2C64;AL # LATIN CAPITAL LETTER R WITH TAIL
-2C65;AL # LATIN SMALL LETTER A WITH STROKE
-2C66;AL # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-2C67;AL # LATIN CAPITAL LETTER H WITH DESCENDER
-2C68;AL # LATIN SMALL LETTER H WITH DESCENDER
-2C69;AL # LATIN CAPITAL LETTER K WITH DESCENDER
-2C6A;AL # LATIN SMALL LETTER K WITH DESCENDER
-2C6B;AL # LATIN CAPITAL LETTER Z WITH DESCENDER
-2C6C;AL # LATIN SMALL LETTER Z WITH DESCENDER
-2C6D;AL # LATIN CAPITAL LETTER ALPHA
-2C6E;AL # LATIN CAPITAL LETTER M WITH HOOK
-2C6F;AL # LATIN CAPITAL LETTER TURNED A
-2C70;AL # LATIN CAPITAL LETTER TURNED ALPHA
-2C71;AL # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C72;AL # LATIN CAPITAL LETTER W WITH HOOK
-2C73;AL # LATIN SMALL LETTER W WITH HOOK
-2C74;AL # LATIN SMALL LETTER V WITH CURL
-2C75;AL # LATIN CAPITAL LETTER HALF H
-2C76;AL # LATIN SMALL LETTER HALF H
-2C77;AL # LATIN SMALL LETTER TAILLESS PHI
-2C78;AL # LATIN SMALL LETTER E WITH NOTCH
-2C79;AL # LATIN SMALL LETTER TURNED R WITH TAIL
-2C7A;AL # LATIN SMALL LETTER O WITH LOW RING INSIDE
-2C7B;AL # LATIN LETTER SMALL CAPITAL TURNED E
-2C7C;AL # LATIN SUBSCRIPT SMALL LETTER J
-2C7D;AL # MODIFIER LETTER CAPITAL V
-2C7E;AL # LATIN CAPITAL LETTER S WITH SWASH TAIL
-2C7F;AL # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C80;AL # COPTIC CAPITAL LETTER ALFA
-2C81;AL # COPTIC SMALL LETTER ALFA
-2C82;AL # COPTIC CAPITAL LETTER VIDA
-2C83;AL # COPTIC SMALL LETTER VIDA
-2C84;AL # COPTIC CAPITAL LETTER GAMMA
-2C85;AL # COPTIC SMALL LETTER GAMMA
-2C86;AL # COPTIC CAPITAL LETTER DALDA
-2C87;AL # COPTIC SMALL LETTER DALDA
-2C88;AL # COPTIC CAPITAL LETTER EIE
-2C89;AL # COPTIC SMALL LETTER EIE
-2C8A;AL # COPTIC CAPITAL LETTER SOU
-2C8B;AL # COPTIC SMALL LETTER SOU
-2C8C;AL # COPTIC CAPITAL LETTER ZATA
-2C8D;AL # COPTIC SMALL LETTER ZATA
-2C8E;AL # COPTIC CAPITAL LETTER HATE
-2C8F;AL # COPTIC SMALL LETTER HATE
-2C90;AL # COPTIC CAPITAL LETTER THETHE
-2C91;AL # COPTIC SMALL LETTER THETHE
-2C92;AL # COPTIC CAPITAL LETTER IAUDA
-2C93;AL # COPTIC SMALL LETTER IAUDA
-2C94;AL # COPTIC CAPITAL LETTER KAPA
-2C95;AL # COPTIC SMALL LETTER KAPA
-2C96;AL # COPTIC CAPITAL LETTER LAULA
-2C97;AL # COPTIC SMALL LETTER LAULA
-2C98;AL # COPTIC CAPITAL LETTER MI
-2C99;AL # COPTIC SMALL LETTER MI
-2C9A;AL # COPTIC CAPITAL LETTER NI
-2C9B;AL # COPTIC SMALL LETTER NI
-2C9C;AL # COPTIC CAPITAL LETTER KSI
-2C9D;AL # COPTIC SMALL LETTER KSI
-2C9E;AL # COPTIC CAPITAL LETTER O
-2C9F;AL # COPTIC SMALL LETTER O
-2CA0;AL # COPTIC CAPITAL LETTER PI
-2CA1;AL # COPTIC SMALL LETTER PI
-2CA2;AL # COPTIC CAPITAL LETTER RO
-2CA3;AL # COPTIC SMALL LETTER RO
-2CA4;AL # COPTIC CAPITAL LETTER SIMA
-2CA5;AL # COPTIC SMALL LETTER SIMA
-2CA6;AL # COPTIC CAPITAL LETTER TAU
-2CA7;AL # COPTIC SMALL LETTER TAU
-2CA8;AL # COPTIC CAPITAL LETTER UA
-2CA9;AL # COPTIC SMALL LETTER UA
-2CAA;AL # COPTIC CAPITAL LETTER FI
-2CAB;AL # COPTIC SMALL LETTER FI
-2CAC;AL # COPTIC CAPITAL LETTER KHI
-2CAD;AL # COPTIC SMALL LETTER KHI
-2CAE;AL # COPTIC CAPITAL LETTER PSI
-2CAF;AL # COPTIC SMALL LETTER PSI
-2CB0;AL # COPTIC CAPITAL LETTER OOU
-2CB1;AL # COPTIC SMALL LETTER OOU
-2CB2;AL # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB3;AL # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB4;AL # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CB5;AL # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB6;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2CB7;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB8;AL # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2CB9;AL # COPTIC SMALL LETTER DIALECT-P KAPA
-2CBA;AL # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBB;AL # COPTIC SMALL LETTER DIALECT-P NI
-2CBC;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2CBD;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBE;AL # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CBF;AL # COPTIC SMALL LETTER OLD COPTIC OOU
-2CC0;AL # COPTIC CAPITAL LETTER SAMPI
-2CC1;AL # COPTIC SMALL LETTER SAMPI
-2CC2;AL # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC3;AL # COPTIC SMALL LETTER CROSSED SHEI
-2CC4;AL # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC5;AL # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC6;AL # COPTIC CAPITAL LETTER OLD COPTIC ESH
-2CC7;AL # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC8;AL # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-2CC9;AL # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CCA;AL # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCB;AL # COPTIC SMALL LETTER DIALECT-P HORI
-2CCC;AL # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCD;AL # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCE;AL # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CCF;AL # COPTIC SMALL LETTER OLD COPTIC HA
-2CD0;AL # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD1;AL # COPTIC SMALL LETTER L-SHAPED HA
-2CD2;AL # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD3;AL # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD4;AL # COPTIC CAPITAL LETTER OLD COPTIC HAT
-2CD5;AL # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD6;AL # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-2CD7;AL # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD8;AL # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CD9;AL # COPTIC SMALL LETTER OLD COPTIC DJA
-2CDA;AL # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDB;AL # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDC;AL # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-2CDD;AL # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDE;AL # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CDF;AL # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CE0;AL # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE1;AL # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE2;AL # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-2CE3;AL # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE4;AL # COPTIC SYMBOL KAI
-2CE5;AL # COPTIC SYMBOL MI RO
-2CE6;AL # COPTIC SYMBOL PI RO
-2CE7;AL # COPTIC SYMBOL STAUROS
-2CE8;AL # COPTIC SYMBOL TAU RO
-2CE9;AL # COPTIC SYMBOL KHI RO
-2CEA;AL # COPTIC SYMBOL SHIMA SIMA
-2CEB;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CEC;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CED;AL # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CEE;AL # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CEF;CM # COPTIC COMBINING NI ABOVE
-2CF0;CM # COPTIC COMBINING SPIRITUS ASPER
-2CF1;CM # COPTIC COMBINING SPIRITUS LENIS
-2CF2;AL # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CF3;AL # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF9;EX # COPTIC OLD NUBIAN FULL STOP
-2CFA;BA # COPTIC OLD NUBIAN DIRECT QUESTION MARK
-2CFB;BA # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC;BA # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD;AL # COPTIC FRACTION ONE HALF
-2CFE;EX # COPTIC FULL STOP
-2CFF;BA # COPTIC MORPHOLOGICAL DIVIDER
-2D00;AL # GEORGIAN SMALL LETTER AN
-2D01;AL # GEORGIAN SMALL LETTER BAN
-2D02;AL # GEORGIAN SMALL LETTER GAN
-2D03;AL # GEORGIAN SMALL LETTER DON
-2D04;AL # GEORGIAN SMALL LETTER EN
-2D05;AL # GEORGIAN SMALL LETTER VIN
-2D06;AL # GEORGIAN SMALL LETTER ZEN
-2D07;AL # GEORGIAN SMALL LETTER TAN
-2D08;AL # GEORGIAN SMALL LETTER IN
-2D09;AL # GEORGIAN SMALL LETTER KAN
-2D0A;AL # GEORGIAN SMALL LETTER LAS
-2D0B;AL # GEORGIAN SMALL LETTER MAN
-2D0C;AL # GEORGIAN SMALL LETTER NAR
-2D0D;AL # GEORGIAN SMALL LETTER ON
-2D0E;AL # GEORGIAN SMALL LETTER PAR
-2D0F;AL # GEORGIAN SMALL LETTER ZHAR
-2D10;AL # GEORGIAN SMALL LETTER RAE
-2D11;AL # GEORGIAN SMALL LETTER SAN
-2D12;AL # GEORGIAN SMALL LETTER TAR
-2D13;AL # GEORGIAN SMALL LETTER UN
-2D14;AL # GEORGIAN SMALL LETTER PHAR
-2D15;AL # GEORGIAN SMALL LETTER KHAR
-2D16;AL # GEORGIAN SMALL LETTER GHAN
-2D17;AL # GEORGIAN SMALL LETTER QAR
-2D18;AL # GEORGIAN SMALL LETTER SHIN
-2D19;AL # GEORGIAN SMALL LETTER CHIN
-2D1A;AL # GEORGIAN SMALL LETTER CAN
-2D1B;AL # GEORGIAN SMALL LETTER JIL
-2D1C;AL # GEORGIAN SMALL LETTER CIL
-2D1D;AL # GEORGIAN SMALL LETTER CHAR
-2D1E;AL # GEORGIAN SMALL LETTER XAN
-2D1F;AL # GEORGIAN SMALL LETTER JHAN
-2D20;AL # GEORGIAN SMALL LETTER HAE
-2D21;AL # GEORGIAN SMALL LETTER HE
-2D22;AL # GEORGIAN SMALL LETTER HIE
-2D23;AL # GEORGIAN SMALL LETTER WE
-2D24;AL # GEORGIAN SMALL LETTER HAR
-2D25;AL # GEORGIAN SMALL LETTER HOE
-2D27;AL # GEORGIAN SMALL LETTER YN
-2D2D;AL # GEORGIAN SMALL LETTER AEN
-2D30;AL # TIFINAGH LETTER YA
-2D31;AL # TIFINAGH LETTER YAB
-2D32;AL # TIFINAGH LETTER YABH
-2D33;AL # TIFINAGH LETTER YAG
-2D34;AL # TIFINAGH LETTER YAGHH
-2D35;AL # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36;AL # TIFINAGH LETTER YAJ
-2D37;AL # TIFINAGH LETTER YAD
-2D38;AL # TIFINAGH LETTER YADH
-2D39;AL # TIFINAGH LETTER YADD
-2D3A;AL # TIFINAGH LETTER YADDH
-2D3B;AL # TIFINAGH LETTER YEY
-2D3C;AL # TIFINAGH LETTER YAF
-2D3D;AL # TIFINAGH LETTER YAK
-2D3E;AL # TIFINAGH LETTER TUAREG YAK
-2D3F;AL # TIFINAGH LETTER YAKHH
-2D40;AL # TIFINAGH LETTER YAH
-2D41;AL # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42;AL # TIFINAGH LETTER TUAREG YAH
-2D43;AL # TIFINAGH LETTER YAHH
-2D44;AL # TIFINAGH LETTER YAA
-2D45;AL # TIFINAGH LETTER YAKH
-2D46;AL # TIFINAGH LETTER TUAREG YAKH
-2D47;AL # TIFINAGH LETTER YAQ
-2D48;AL # TIFINAGH LETTER TUAREG YAQ
-2D49;AL # TIFINAGH LETTER YI
-2D4A;AL # TIFINAGH LETTER YAZH
-2D4B;AL # TIFINAGH LETTER AHAGGAR YAZH
-2D4C;AL # TIFINAGH LETTER TUAREG YAZH
-2D4D;AL # TIFINAGH LETTER YAL
-2D4E;AL # TIFINAGH LETTER YAM
-2D4F;AL # TIFINAGH LETTER YAN
-2D50;AL # TIFINAGH LETTER TUAREG YAGN
-2D51;AL # TIFINAGH LETTER TUAREG YANG
-2D52;AL # TIFINAGH LETTER YAP
-2D53;AL # TIFINAGH LETTER YU
-2D54;AL # TIFINAGH LETTER YAR
-2D55;AL # TIFINAGH LETTER YARR
-2D56;AL # TIFINAGH LETTER YAGH
-2D57;AL # TIFINAGH LETTER TUAREG YAGH
-2D58;AL # TIFINAGH LETTER AYER YAGH
-2D59;AL # TIFINAGH LETTER YAS
-2D5A;AL # TIFINAGH LETTER YASS
-2D5B;AL # TIFINAGH LETTER YASH
-2D5C;AL # TIFINAGH LETTER YAT
-2D5D;AL # TIFINAGH LETTER YATH
-2D5E;AL # TIFINAGH LETTER YACH
-2D5F;AL # TIFINAGH LETTER YATT
-2D60;AL # TIFINAGH LETTER YAV
-2D61;AL # TIFINAGH LETTER YAW
-2D62;AL # TIFINAGH LETTER YAY
-2D63;AL # TIFINAGH LETTER YAZ
-2D64;AL # TIFINAGH LETTER TAWELLEMET YAZ
-2D65;AL # TIFINAGH LETTER YAZZ
-2D66;AL # TIFINAGH LETTER YE
-2D67;AL # TIFINAGH LETTER YO
-2D6F;AL # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-2D70;BA # TIFINAGH SEPARATOR MARK
-2D7F;CM # TIFINAGH CONSONANT JOINER
-2D80;AL # ETHIOPIC SYLLABLE LOA
-2D81;AL # ETHIOPIC SYLLABLE MOA
-2D82;AL # ETHIOPIC SYLLABLE ROA
-2D83;AL # ETHIOPIC SYLLABLE SOA
-2D84;AL # ETHIOPIC SYLLABLE SHOA
-2D85;AL # ETHIOPIC SYLLABLE BOA
-2D86;AL # ETHIOPIC SYLLABLE TOA
-2D87;AL # ETHIOPIC SYLLABLE COA
-2D88;AL # ETHIOPIC SYLLABLE NOA
-2D89;AL # ETHIOPIC SYLLABLE NYOA
-2D8A;AL # ETHIOPIC SYLLABLE GLOTTAL OA
-2D8B;AL # ETHIOPIC SYLLABLE ZOA
-2D8C;AL # ETHIOPIC SYLLABLE DOA
-2D8D;AL # ETHIOPIC SYLLABLE DDOA
-2D8E;AL # ETHIOPIC SYLLABLE JOA
-2D8F;AL # ETHIOPIC SYLLABLE THOA
-2D90;AL # ETHIOPIC SYLLABLE CHOA
-2D91;AL # ETHIOPIC SYLLABLE PHOA
-2D92;AL # ETHIOPIC SYLLABLE POA
-2D93;AL # ETHIOPIC SYLLABLE GGWA
-2D94;AL # ETHIOPIC SYLLABLE GGWI
-2D95;AL # ETHIOPIC SYLLABLE GGWEE
-2D96;AL # ETHIOPIC SYLLABLE GGWE
-2DA0;AL # ETHIOPIC SYLLABLE SSA
-2DA1;AL # ETHIOPIC SYLLABLE SSU
-2DA2;AL # ETHIOPIC SYLLABLE SSI
-2DA3;AL # ETHIOPIC SYLLABLE SSAA
-2DA4;AL # ETHIOPIC SYLLABLE SSEE
-2DA5;AL # ETHIOPIC SYLLABLE SSE
-2DA6;AL # ETHIOPIC SYLLABLE SSO
-2DA8;AL # ETHIOPIC SYLLABLE CCA
-2DA9;AL # ETHIOPIC SYLLABLE CCU
-2DAA;AL # ETHIOPIC SYLLABLE CCI
-2DAB;AL # ETHIOPIC SYLLABLE CCAA
-2DAC;AL # ETHIOPIC SYLLABLE CCEE
-2DAD;AL # ETHIOPIC SYLLABLE CCE
-2DAE;AL # ETHIOPIC SYLLABLE CCO
-2DB0;AL # ETHIOPIC SYLLABLE ZZA
-2DB1;AL # ETHIOPIC SYLLABLE ZZU
-2DB2;AL # ETHIOPIC SYLLABLE ZZI
-2DB3;AL # ETHIOPIC SYLLABLE ZZAA
-2DB4;AL # ETHIOPIC SYLLABLE ZZEE
-2DB5;AL # ETHIOPIC SYLLABLE ZZE
-2DB6;AL # ETHIOPIC SYLLABLE ZZO
-2DB8;AL # ETHIOPIC SYLLABLE CCHA
-2DB9;AL # ETHIOPIC SYLLABLE CCHU
-2DBA;AL # ETHIOPIC SYLLABLE CCHI
-2DBB;AL # ETHIOPIC SYLLABLE CCHAA
-2DBC;AL # ETHIOPIC SYLLABLE CCHEE
-2DBD;AL # ETHIOPIC SYLLABLE CCHE
-2DBE;AL # ETHIOPIC SYLLABLE CCHO
-2DC0;AL # ETHIOPIC SYLLABLE QYA
-2DC1;AL # ETHIOPIC SYLLABLE QYU
-2DC2;AL # ETHIOPIC SYLLABLE QYI
-2DC3;AL # ETHIOPIC SYLLABLE QYAA
-2DC4;AL # ETHIOPIC SYLLABLE QYEE
-2DC5;AL # ETHIOPIC SYLLABLE QYE
-2DC6;AL # ETHIOPIC SYLLABLE QYO
-2DC8;AL # ETHIOPIC SYLLABLE KYA
-2DC9;AL # ETHIOPIC SYLLABLE KYU
-2DCA;AL # ETHIOPIC SYLLABLE KYI
-2DCB;AL # ETHIOPIC SYLLABLE KYAA
-2DCC;AL # ETHIOPIC SYLLABLE KYEE
-2DCD;AL # ETHIOPIC SYLLABLE KYE
-2DCE;AL # ETHIOPIC SYLLABLE KYO
-2DD0;AL # ETHIOPIC SYLLABLE XYA
-2DD1;AL # ETHIOPIC SYLLABLE XYU
-2DD2;AL # ETHIOPIC SYLLABLE XYI
-2DD3;AL # ETHIOPIC SYLLABLE XYAA
-2DD4;AL # ETHIOPIC SYLLABLE XYEE
-2DD5;AL # ETHIOPIC SYLLABLE XYE
-2DD6;AL # ETHIOPIC SYLLABLE XYO
-2DD8;AL # ETHIOPIC SYLLABLE GYA
-2DD9;AL # ETHIOPIC SYLLABLE GYU
-2DDA;AL # ETHIOPIC SYLLABLE GYI
-2DDB;AL # ETHIOPIC SYLLABLE GYAA
-2DDC;AL # ETHIOPIC SYLLABLE GYEE
-2DDD;AL # ETHIOPIC SYLLABLE GYE
-2DDE;AL # ETHIOPIC SYLLABLE GYO
-2DE0;CM # COMBINING CYRILLIC LETTER BE
-2DE1;CM # COMBINING CYRILLIC LETTER VE
-2DE2;CM # COMBINING CYRILLIC LETTER GHE
-2DE3;CM # COMBINING CYRILLIC LETTER DE
-2DE4;CM # COMBINING CYRILLIC LETTER ZHE
-2DE5;CM # COMBINING CYRILLIC LETTER ZE
-2DE6;CM # COMBINING CYRILLIC LETTER KA
-2DE7;CM # COMBINING CYRILLIC LETTER EL
-2DE8;CM # COMBINING CYRILLIC LETTER EM
-2DE9;CM # COMBINING CYRILLIC LETTER EN
-2DEA;CM # COMBINING CYRILLIC LETTER O
-2DEB;CM # COMBINING CYRILLIC LETTER PE
-2DEC;CM # COMBINING CYRILLIC LETTER ER
-2DED;CM # COMBINING CYRILLIC LETTER ES
-2DEE;CM # COMBINING CYRILLIC LETTER TE
-2DEF;CM # COMBINING CYRILLIC LETTER HA
-2DF0;CM # COMBINING CYRILLIC LETTER TSE
-2DF1;CM # COMBINING CYRILLIC LETTER CHE
-2DF2;CM # COMBINING CYRILLIC LETTER SHA
-2DF3;CM # COMBINING CYRILLIC LETTER SHCHA
-2DF4;CM # COMBINING CYRILLIC LETTER FITA
-2DF5;CM # COMBINING CYRILLIC LETTER ES-TE
-2DF6;CM # COMBINING CYRILLIC LETTER A
-2DF7;CM # COMBINING CYRILLIC LETTER IE
-2DF8;CM # COMBINING CYRILLIC LETTER DJERV
-2DF9;CM # COMBINING CYRILLIC LETTER MONOGRAPH UK
-2DFA;CM # COMBINING CYRILLIC LETTER YAT
-2DFB;CM # COMBINING CYRILLIC LETTER YU
-2DFC;CM # COMBINING CYRILLIC LETTER IOTIFIED A
-2DFD;CM # COMBINING CYRILLIC LETTER LITTLE YUS
-2DFE;CM # COMBINING CYRILLIC LETTER BIG YUS
-2DFF;CM # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-2E00;QU # RIGHT ANGLE SUBSTITUTION MARKER
-2E01;QU # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02;QU # LEFT SUBSTITUTION BRACKET
-2E03;QU # RIGHT SUBSTITUTION BRACKET
-2E04;QU # LEFT DOTTED SUBSTITUTION BRACKET
-2E05;QU # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06;QU # RAISED INTERPOLATION MARKER
-2E07;QU # RAISED DOTTED INTERPOLATION MARKER
-2E08;QU # DOTTED TRANSPOSITION MARKER
-2E09;QU # LEFT TRANSPOSITION BRACKET
-2E0A;QU # RIGHT TRANSPOSITION BRACKET
-2E0B;QU # RAISED SQUARE
-2E0C;QU # LEFT RAISED OMISSION BRACKET
-2E0D;QU # RIGHT RAISED OMISSION BRACKET
-2E0E;BA # EDITORIAL CORONIS
-2E0F;BA # PARAGRAPHOS
-2E10;BA # FORKED PARAGRAPHOS
-2E11;BA # REVERSED FORKED PARAGRAPHOS
-2E12;BA # HYPODIASTOLE
-2E13;BA # DOTTED OBELOS
-2E14;BA # DOWNWARDS ANCORA
-2E15;BA # UPWARDS ANCORA
-2E16;AL # DOTTED RIGHT-POINTING ANGLE
-2E17;BA # DOUBLE OBLIQUE HYPHEN
-2E18;OP # INVERTED INTERROBANG
-2E19;BA # PALM BRANCH
-2E1A;AL # HYPHEN WITH DIAERESIS
-2E1B;AL # TILDE WITH RING ABOVE
-2E1C;QU # LEFT LOW PARAPHRASE BRACKET
-2E1D;QU # RIGHT LOW PARAPHRASE BRACKET
-2E1E;AL # TILDE WITH DOT ABOVE
-2E1F;AL # TILDE WITH DOT BELOW
-2E20;QU # LEFT VERTICAL BAR WITH QUILL
-2E21;QU # RIGHT VERTICAL BAR WITH QUILL
-2E22;OP # TOP LEFT HALF BRACKET
-2E23;CL # TOP RIGHT HALF BRACKET
-2E24;OP # BOTTOM LEFT HALF BRACKET
-2E25;CL # BOTTOM RIGHT HALF BRACKET
-2E26;OP # LEFT SIDEWAYS U BRACKET
-2E27;CL # RIGHT SIDEWAYS U BRACKET
-2E28;OP # LEFT DOUBLE PARENTHESIS
-2E29;CL # RIGHT DOUBLE PARENTHESIS
-2E2A;BA # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B;BA # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C;BA # SQUARED FOUR DOT PUNCTUATION
-2E2D;BA # FIVE DOT MARK
-2E2E;EX # REVERSED QUESTION MARK
-2E2F;AL # VERTICAL TILDE
-2E30;BA # RING POINT
-2E31;BA # WORD SEPARATOR MIDDLE DOT
-2E32;AL # TURNED COMMA
-2E33;BA # RAISED DOT
-2E34;BA # RAISED COMMA
-2E35;AL # TURNED SEMICOLON
-2E36;AL # DAGGER WITH LEFT GUARD
-2E37;AL # DAGGER WITH RIGHT GUARD
-2E38;AL # TURNED DAGGER
-2E39;AL # TOP HALF SECTION SIGN
-2E3A;B2 # TWO-EM DASH
-2E3B;B2 # THREE-EM DASH
-2E80;ID # CJK RADICAL REPEAT
-2E81;ID # CJK RADICAL CLIFF
-2E82;ID # CJK RADICAL SECOND ONE
-2E83;ID # CJK RADICAL SECOND TWO
-2E84;ID # CJK RADICAL SECOND THREE
-2E85;ID # CJK RADICAL PERSON
-2E86;ID # CJK RADICAL BOX
-2E87;ID # CJK RADICAL TABLE
-2E88;ID # CJK RADICAL KNIFE ONE
-2E89;ID # CJK RADICAL KNIFE TWO
-2E8A;ID # CJK RADICAL DIVINATION
-2E8B;ID # CJK RADICAL SEAL
-2E8C;ID # CJK RADICAL SMALL ONE
-2E8D;ID # CJK RADICAL SMALL TWO
-2E8E;ID # CJK RADICAL LAME ONE
-2E8F;ID # CJK RADICAL LAME TWO
-2E90;ID # CJK RADICAL LAME THREE
-2E91;ID # CJK RADICAL LAME FOUR
-2E92;ID # CJK RADICAL SNAKE
-2E93;ID # CJK RADICAL THREAD
-2E94;ID # CJK RADICAL SNOUT ONE
-2E95;ID # CJK RADICAL SNOUT TWO
-2E96;ID # CJK RADICAL HEART ONE
-2E97;ID # CJK RADICAL HEART TWO
-2E98;ID # CJK RADICAL HAND
-2E99;ID # CJK RADICAL RAP
-2E9B;ID # CJK RADICAL CHOKE
-2E9C;ID # CJK RADICAL SUN
-2E9D;ID # CJK RADICAL MOON
-2E9E;ID # CJK RADICAL DEATH
-2E9F;ID # CJK RADICAL MOTHER
-2EA0;ID # CJK RADICAL CIVILIAN
-2EA1;ID # CJK RADICAL WATER ONE
-2EA2;ID # CJK RADICAL WATER TWO
-2EA3;ID # CJK RADICAL FIRE
-2EA4;ID # CJK RADICAL PAW ONE
-2EA5;ID # CJK RADICAL PAW TWO
-2EA6;ID # CJK RADICAL SIMPLIFIED HALF TREE TRUNK
-2EA7;ID # CJK RADICAL COW
-2EA8;ID # CJK RADICAL DOG
-2EA9;ID # CJK RADICAL JADE
-2EAA;ID # CJK RADICAL BOLT OF CLOTH
-2EAB;ID # CJK RADICAL EYE
-2EAC;ID # CJK RADICAL SPIRIT ONE
-2EAD;ID # CJK RADICAL SPIRIT TWO
-2EAE;ID # CJK RADICAL BAMBOO
-2EAF;ID # CJK RADICAL SILK
-2EB0;ID # CJK RADICAL C-SIMPLIFIED SILK
-2EB1;ID # CJK RADICAL NET ONE
-2EB2;ID # CJK RADICAL NET TWO
-2EB3;ID # CJK RADICAL NET THREE
-2EB4;ID # CJK RADICAL NET FOUR
-2EB5;ID # CJK RADICAL MESH
-2EB6;ID # CJK RADICAL SHEEP
-2EB7;ID # CJK RADICAL RAM
-2EB8;ID # CJK RADICAL EWE
-2EB9;ID # CJK RADICAL OLD
-2EBA;ID # CJK RADICAL BRUSH ONE
-2EBB;ID # CJK RADICAL BRUSH TWO
-2EBC;ID # CJK RADICAL MEAT
-2EBD;ID # CJK RADICAL MORTAR
-2EBE;ID # CJK RADICAL GRASS ONE
-2EBF;ID # CJK RADICAL GRASS TWO
-2EC0;ID # CJK RADICAL GRASS THREE
-2EC1;ID # CJK RADICAL TIGER
-2EC2;ID # CJK RADICAL CLOTHES
-2EC3;ID # CJK RADICAL WEST ONE
-2EC4;ID # CJK RADICAL WEST TWO
-2EC5;ID # CJK RADICAL C-SIMPLIFIED SEE
-2EC6;ID # CJK RADICAL SIMPLIFIED HORN
-2EC7;ID # CJK RADICAL HORN
-2EC8;ID # CJK RADICAL C-SIMPLIFIED SPEECH
-2EC9;ID # CJK RADICAL C-SIMPLIFIED SHELL
-2ECA;ID # CJK RADICAL FOOT
-2ECB;ID # CJK RADICAL C-SIMPLIFIED CART
-2ECC;ID # CJK RADICAL SIMPLIFIED WALK
-2ECD;ID # CJK RADICAL WALK ONE
-2ECE;ID # CJK RADICAL WALK TWO
-2ECF;ID # CJK RADICAL CITY
-2ED0;ID # CJK RADICAL C-SIMPLIFIED GOLD
-2ED1;ID # CJK RADICAL LONG ONE
-2ED2;ID # CJK RADICAL LONG TWO
-2ED3;ID # CJK RADICAL C-SIMPLIFIED LONG
-2ED4;ID # CJK RADICAL C-SIMPLIFIED GATE
-2ED5;ID # CJK RADICAL MOUND ONE
-2ED6;ID # CJK RADICAL MOUND TWO
-2ED7;ID # CJK RADICAL RAIN
-2ED8;ID # CJK RADICAL BLUE
-2ED9;ID # CJK RADICAL C-SIMPLIFIED TANNED LEATHER
-2EDA;ID # CJK RADICAL C-SIMPLIFIED LEAF
-2EDB;ID # CJK RADICAL C-SIMPLIFIED WIND
-2EDC;ID # CJK RADICAL C-SIMPLIFIED FLY
-2EDD;ID # CJK RADICAL EAT ONE
-2EDE;ID # CJK RADICAL EAT TWO
-2EDF;ID # CJK RADICAL EAT THREE
-2EE0;ID # CJK RADICAL C-SIMPLIFIED EAT
-2EE1;ID # CJK RADICAL HEAD
-2EE2;ID # CJK RADICAL C-SIMPLIFIED HORSE
-2EE3;ID # CJK RADICAL BONE
-2EE4;ID # CJK RADICAL GHOST
-2EE5;ID # CJK RADICAL C-SIMPLIFIED FISH
-2EE6;ID # CJK RADICAL C-SIMPLIFIED BIRD
-2EE7;ID # CJK RADICAL C-SIMPLIFIED SALT
-2EE8;ID # CJK RADICAL SIMPLIFIED WHEAT
-2EE9;ID # CJK RADICAL SIMPLIFIED YELLOW
-2EEA;ID # CJK RADICAL C-SIMPLIFIED FROG
-2EEB;ID # CJK RADICAL J-SIMPLIFIED EVEN
-2EEC;ID # CJK RADICAL C-SIMPLIFIED EVEN
-2EED;ID # CJK RADICAL J-SIMPLIFIED TOOTH
-2EEE;ID # CJK RADICAL C-SIMPLIFIED TOOTH
-2EEF;ID # CJK RADICAL J-SIMPLIFIED DRAGON
-2EF0;ID # CJK RADICAL C-SIMPLIFIED DRAGON
-2EF1;ID # CJK RADICAL TURTLE
-2EF2;ID # CJK RADICAL J-SIMPLIFIED TURTLE
-2EF3;ID # CJK RADICAL C-SIMPLIFIED TURTLE
-2F00;ID # KANGXI RADICAL ONE
-2F01;ID # KANGXI RADICAL LINE
-2F02;ID # KANGXI RADICAL DOT
-2F03;ID # KANGXI RADICAL SLASH
-2F04;ID # KANGXI RADICAL SECOND
-2F05;ID # KANGXI RADICAL HOOK
-2F06;ID # KANGXI RADICAL TWO
-2F07;ID # KANGXI RADICAL LID
-2F08;ID # KANGXI RADICAL MAN
-2F09;ID # KANGXI RADICAL LEGS
-2F0A;ID # KANGXI RADICAL ENTER
-2F0B;ID # KANGXI RADICAL EIGHT
-2F0C;ID # KANGXI RADICAL DOWN BOX
-2F0D;ID # KANGXI RADICAL COVER
-2F0E;ID # KANGXI RADICAL ICE
-2F0F;ID # KANGXI RADICAL TABLE
-2F10;ID # KANGXI RADICAL OPEN BOX
-2F11;ID # KANGXI RADICAL KNIFE
-2F12;ID # KANGXI RADICAL POWER
-2F13;ID # KANGXI RADICAL WRAP
-2F14;ID # KANGXI RADICAL SPOON
-2F15;ID # KANGXI RADICAL RIGHT OPEN BOX
-2F16;ID # KANGXI RADICAL HIDING ENCLOSURE
-2F17;ID # KANGXI RADICAL TEN
-2F18;ID # KANGXI RADICAL DIVINATION
-2F19;ID # KANGXI RADICAL SEAL
-2F1A;ID # KANGXI RADICAL CLIFF
-2F1B;ID # KANGXI RADICAL PRIVATE
-2F1C;ID # KANGXI RADICAL AGAIN
-2F1D;ID # KANGXI RADICAL MOUTH
-2F1E;ID # KANGXI RADICAL ENCLOSURE
-2F1F;ID # KANGXI RADICAL EARTH
-2F20;ID # KANGXI RADICAL SCHOLAR
-2F21;ID # KANGXI RADICAL GO
-2F22;ID # KANGXI RADICAL GO SLOWLY
-2F23;ID # KANGXI RADICAL EVENING
-2F24;ID # KANGXI RADICAL BIG
-2F25;ID # KANGXI RADICAL WOMAN
-2F26;ID # KANGXI RADICAL CHILD
-2F27;ID # KANGXI RADICAL ROOF
-2F28;ID # KANGXI RADICAL INCH
-2F29;ID # KANGXI RADICAL SMALL
-2F2A;ID # KANGXI RADICAL LAME
-2F2B;ID # KANGXI RADICAL CORPSE
-2F2C;ID # KANGXI RADICAL SPROUT
-2F2D;ID # KANGXI RADICAL MOUNTAIN
-2F2E;ID # KANGXI RADICAL RIVER
-2F2F;ID # KANGXI RADICAL WORK
-2F30;ID # KANGXI RADICAL ONESELF
-2F31;ID # KANGXI RADICAL TURBAN
-2F32;ID # KANGXI RADICAL DRY
-2F33;ID # KANGXI RADICAL SHORT THREAD
-2F34;ID # KANGXI RADICAL DOTTED CLIFF
-2F35;ID # KANGXI RADICAL LONG STRIDE
-2F36;ID # KANGXI RADICAL TWO HANDS
-2F37;ID # KANGXI RADICAL SHOOT
-2F38;ID # KANGXI RADICAL BOW
-2F39;ID # KANGXI RADICAL SNOUT
-2F3A;ID # KANGXI RADICAL BRISTLE
-2F3B;ID # KANGXI RADICAL STEP
-2F3C;ID # KANGXI RADICAL HEART
-2F3D;ID # KANGXI RADICAL HALBERD
-2F3E;ID # KANGXI RADICAL DOOR
-2F3F;ID # KANGXI RADICAL HAND
-2F40;ID # KANGXI RADICAL BRANCH
-2F41;ID # KANGXI RADICAL RAP
-2F42;ID # KANGXI RADICAL SCRIPT
-2F43;ID # KANGXI RADICAL DIPPER
-2F44;ID # KANGXI RADICAL AXE
-2F45;ID # KANGXI RADICAL SQUARE
-2F46;ID # KANGXI RADICAL NOT
-2F47;ID # KANGXI RADICAL SUN
-2F48;ID # KANGXI RADICAL SAY
-2F49;ID # KANGXI RADICAL MOON
-2F4A;ID # KANGXI RADICAL TREE
-2F4B;ID # KANGXI RADICAL LACK
-2F4C;ID # KANGXI RADICAL STOP
-2F4D;ID # KANGXI RADICAL DEATH
-2F4E;ID # KANGXI RADICAL WEAPON
-2F4F;ID # KANGXI RADICAL DO NOT
-2F50;ID # KANGXI RADICAL COMPARE
-2F51;ID # KANGXI RADICAL FUR
-2F52;ID # KANGXI RADICAL CLAN
-2F53;ID # KANGXI RADICAL STEAM
-2F54;ID # KANGXI RADICAL WATER
-2F55;ID # KANGXI RADICAL FIRE
-2F56;ID # KANGXI RADICAL CLAW
-2F57;ID # KANGXI RADICAL FATHER
-2F58;ID # KANGXI RADICAL DOUBLE X
-2F59;ID # KANGXI RADICAL HALF TREE TRUNK
-2F5A;ID # KANGXI RADICAL SLICE
-2F5B;ID # KANGXI RADICAL FANG
-2F5C;ID # KANGXI RADICAL COW
-2F5D;ID # KANGXI RADICAL DOG
-2F5E;ID # KANGXI RADICAL PROFOUND
-2F5F;ID # KANGXI RADICAL JADE
-2F60;ID # KANGXI RADICAL MELON
-2F61;ID # KANGXI RADICAL TILE
-2F62;ID # KANGXI RADICAL SWEET
-2F63;ID # KANGXI RADICAL LIFE
-2F64;ID # KANGXI RADICAL USE
-2F65;ID # KANGXI RADICAL FIELD
-2F66;ID # KANGXI RADICAL BOLT OF CLOTH
-2F67;ID # KANGXI RADICAL SICKNESS
-2F68;ID # KANGXI RADICAL DOTTED TENT
-2F69;ID # KANGXI RADICAL WHITE
-2F6A;ID # KANGXI RADICAL SKIN
-2F6B;ID # KANGXI RADICAL DISH
-2F6C;ID # KANGXI RADICAL EYE
-2F6D;ID # KANGXI RADICAL SPEAR
-2F6E;ID # KANGXI RADICAL ARROW
-2F6F;ID # KANGXI RADICAL STONE
-2F70;ID # KANGXI RADICAL SPIRIT
-2F71;ID # KANGXI RADICAL TRACK
-2F72;ID # KANGXI RADICAL GRAIN
-2F73;ID # KANGXI RADICAL CAVE
-2F74;ID # KANGXI RADICAL STAND
-2F75;ID # KANGXI RADICAL BAMBOO
-2F76;ID # KANGXI RADICAL RICE
-2F77;ID # KANGXI RADICAL SILK
-2F78;ID # KANGXI RADICAL JAR
-2F79;ID # KANGXI RADICAL NET
-2F7A;ID # KANGXI RADICAL SHEEP
-2F7B;ID # KANGXI RADICAL FEATHER
-2F7C;ID # KANGXI RADICAL OLD
-2F7D;ID # KANGXI RADICAL AND
-2F7E;ID # KANGXI RADICAL PLOW
-2F7F;ID # KANGXI RADICAL EAR
-2F80;ID # KANGXI RADICAL BRUSH
-2F81;ID # KANGXI RADICAL MEAT
-2F82;ID # KANGXI RADICAL MINISTER
-2F83;ID # KANGXI RADICAL SELF
-2F84;ID # KANGXI RADICAL ARRIVE
-2F85;ID # KANGXI RADICAL MORTAR
-2F86;ID # KANGXI RADICAL TONGUE
-2F87;ID # KANGXI RADICAL OPPOSE
-2F88;ID # KANGXI RADICAL BOAT
-2F89;ID # KANGXI RADICAL STOPPING
-2F8A;ID # KANGXI RADICAL COLOR
-2F8B;ID # KANGXI RADICAL GRASS
-2F8C;ID # KANGXI RADICAL TIGER
-2F8D;ID # KANGXI RADICAL INSECT
-2F8E;ID # KANGXI RADICAL BLOOD
-2F8F;ID # KANGXI RADICAL WALK ENCLOSURE
-2F90;ID # KANGXI RADICAL CLOTHES
-2F91;ID # KANGXI RADICAL WEST
-2F92;ID # KANGXI RADICAL SEE
-2F93;ID # KANGXI RADICAL HORN
-2F94;ID # KANGXI RADICAL SPEECH
-2F95;ID # KANGXI RADICAL VALLEY
-2F96;ID # KANGXI RADICAL BEAN
-2F97;ID # KANGXI RADICAL PIG
-2F98;ID # KANGXI RADICAL BADGER
-2F99;ID # KANGXI RADICAL SHELL
-2F9A;ID # KANGXI RADICAL RED
-2F9B;ID # KANGXI RADICAL RUN
-2F9C;ID # KANGXI RADICAL FOOT
-2F9D;ID # KANGXI RADICAL BODY
-2F9E;ID # KANGXI RADICAL CART
-2F9F;ID # KANGXI RADICAL BITTER
-2FA0;ID # KANGXI RADICAL MORNING
-2FA1;ID # KANGXI RADICAL WALK
-2FA2;ID # KANGXI RADICAL CITY
-2FA3;ID # KANGXI RADICAL WINE
-2FA4;ID # KANGXI RADICAL DISTINGUISH
-2FA5;ID # KANGXI RADICAL VILLAGE
-2FA6;ID # KANGXI RADICAL GOLD
-2FA7;ID # KANGXI RADICAL LONG
-2FA8;ID # KANGXI RADICAL GATE
-2FA9;ID # KANGXI RADICAL MOUND
-2FAA;ID # KANGXI RADICAL SLAVE
-2FAB;ID # KANGXI RADICAL SHORT TAILED BIRD
-2FAC;ID # KANGXI RADICAL RAIN
-2FAD;ID # KANGXI RADICAL BLUE
-2FAE;ID # KANGXI RADICAL WRONG
-2FAF;ID # KANGXI RADICAL FACE
-2FB0;ID # KANGXI RADICAL LEATHER
-2FB1;ID # KANGXI RADICAL TANNED LEATHER
-2FB2;ID # KANGXI RADICAL LEEK
-2FB3;ID # KANGXI RADICAL SOUND
-2FB4;ID # KANGXI RADICAL LEAF
-2FB5;ID # KANGXI RADICAL WIND
-2FB6;ID # KANGXI RADICAL FLY
-2FB7;ID # KANGXI RADICAL EAT
-2FB8;ID # KANGXI RADICAL HEAD
-2FB9;ID # KANGXI RADICAL FRAGRANT
-2FBA;ID # KANGXI RADICAL HORSE
-2FBB;ID # KANGXI RADICAL BONE
-2FBC;ID # KANGXI RADICAL TALL
-2FBD;ID # KANGXI RADICAL HAIR
-2FBE;ID # KANGXI RADICAL FIGHT
-2FBF;ID # KANGXI RADICAL SACRIFICIAL WINE
-2FC0;ID # KANGXI RADICAL CAULDRON
-2FC1;ID # KANGXI RADICAL GHOST
-2FC2;ID # KANGXI RADICAL FISH
-2FC3;ID # KANGXI RADICAL BIRD
-2FC4;ID # KANGXI RADICAL SALT
-2FC5;ID # KANGXI RADICAL DEER
-2FC6;ID # KANGXI RADICAL WHEAT
-2FC7;ID # KANGXI RADICAL HEMP
-2FC8;ID # KANGXI RADICAL YELLOW
-2FC9;ID # KANGXI RADICAL MILLET
-2FCA;ID # KANGXI RADICAL BLACK
-2FCB;ID # KANGXI RADICAL EMBROIDERY
-2FCC;ID # KANGXI RADICAL FROG
-2FCD;ID # KANGXI RADICAL TRIPOD
-2FCE;ID # KANGXI RADICAL DRUM
-2FCF;ID # KANGXI RADICAL RAT
-2FD0;ID # KANGXI RADICAL NOSE
-2FD1;ID # KANGXI RADICAL EVEN
-2FD2;ID # KANGXI RADICAL TOOTH
-2FD3;ID # KANGXI RADICAL DRAGON
-2FD4;ID # KANGXI RADICAL TURTLE
-2FD5;ID # KANGXI RADICAL FLUTE
-2FF0;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4;ID # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB;ID # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000;BA # IDEOGRAPHIC SPACE
-3001;CL # IDEOGRAPHIC COMMA
-3002;CL # IDEOGRAPHIC FULL STOP
-3003;ID # DITTO MARK
-3004;ID # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005;NS # IDEOGRAPHIC ITERATION MARK
-3006;ID # IDEOGRAPHIC CLOSING MARK
-3007;ID # IDEOGRAPHIC NUMBER ZERO
-3008;OP # LEFT ANGLE BRACKET
-3009;CL # RIGHT ANGLE BRACKET
-300A;OP # LEFT DOUBLE ANGLE BRACKET
-300B;CL # RIGHT DOUBLE ANGLE BRACKET
-300C;OP # LEFT CORNER BRACKET
-300D;CL # RIGHT CORNER BRACKET
-300E;OP # LEFT WHITE CORNER BRACKET
-300F;CL # RIGHT WHITE CORNER BRACKET
-3010;OP # LEFT BLACK LENTICULAR BRACKET
-3011;CL # RIGHT BLACK LENTICULAR BRACKET
-3012;ID # POSTAL MARK
-3013;ID # GETA MARK
-3014;OP # LEFT TORTOISE SHELL BRACKET
-3015;CL # RIGHT TORTOISE SHELL BRACKET
-3016;OP # LEFT WHITE LENTICULAR BRACKET
-3017;CL # RIGHT WHITE LENTICULAR BRACKET
-3018;OP # LEFT WHITE TORTOISE SHELL BRACKET
-3019;CL # RIGHT WHITE TORTOISE SHELL BRACKET
-301A;OP # LEFT WHITE SQUARE BRACKET
-301B;CL # RIGHT WHITE SQUARE BRACKET
-301C;NS # WAVE DASH
-301D;OP # REVERSED DOUBLE PRIME QUOTATION MARK
-301E;CL # DOUBLE PRIME QUOTATION MARK
-301F;CL # LOW DOUBLE PRIME QUOTATION MARK
-3020;ID # POSTAL MARK FACE
-3021;ID # HANGZHOU NUMERAL ONE
-3022;ID # HANGZHOU NUMERAL TWO
-3023;ID # HANGZHOU NUMERAL THREE
-3024;ID # HANGZHOU NUMERAL FOUR
-3025;ID # HANGZHOU NUMERAL FIVE
-3026;ID # HANGZHOU NUMERAL SIX
-3027;ID # HANGZHOU NUMERAL SEVEN
-3028;ID # HANGZHOU NUMERAL EIGHT
-3029;ID # HANGZHOU NUMERAL NINE
-302A;CM # IDEOGRAPHIC LEVEL TONE MARK
-302B;CM # IDEOGRAPHIC RISING TONE MARK
-302C;CM # IDEOGRAPHIC DEPARTING TONE MARK
-302D;CM # IDEOGRAPHIC ENTERING TONE MARK
-302E;CM # HANGUL SINGLE DOT TONE MARK
-302F;CM # HANGUL DOUBLE DOT TONE MARK
-3030;ID # WAVY DASH
-3031;ID # VERTICAL KANA REPEAT MARK
-3032;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033;ID # VERTICAL KANA REPEAT MARK UPPER HALF
-3034;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035;CM # VERTICAL KANA REPEAT MARK LOWER HALF
-3036;ID # CIRCLED POSTAL MARK
-3037;ID # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038;ID # HANGZHOU NUMERAL TEN
-3039;ID # HANGZHOU NUMERAL TWENTY
-303A;ID # HANGZHOU NUMERAL THIRTY
-303B;NS # VERTICAL IDEOGRAPHIC ITERATION MARK
-303C;NS # MASU MARK
-303D;ID # PART ALTERNATION MARK
-303E;ID # IDEOGRAPHIC VARIATION INDICATOR
-303F;ID # IDEOGRAPHIC HALF FILL SPACE
-3041;CJ # HIRAGANA LETTER SMALL A
-3042;ID # HIRAGANA LETTER A
-3043;CJ # HIRAGANA LETTER SMALL I
-3044;ID # HIRAGANA LETTER I
-3045;CJ # HIRAGANA LETTER SMALL U
-3046;ID # HIRAGANA LETTER U
-3047;CJ # HIRAGANA LETTER SMALL E
-3048;ID # HIRAGANA LETTER E
-3049;CJ # HIRAGANA LETTER SMALL O
-304A;ID # HIRAGANA LETTER O
-304B;ID # HIRAGANA LETTER KA
-304C;ID # HIRAGANA LETTER GA
-304D;ID # HIRAGANA LETTER KI
-304E;ID # HIRAGANA LETTER GI
-304F;ID # HIRAGANA LETTER KU
-3050;ID # HIRAGANA LETTER GU
-3051;ID # HIRAGANA LETTER KE
-3052;ID # HIRAGANA LETTER GE
-3053;ID # HIRAGANA LETTER KO
-3054;ID # HIRAGANA LETTER GO
-3055;ID # HIRAGANA LETTER SA
-3056;ID # HIRAGANA LETTER ZA
-3057;ID # HIRAGANA LETTER SI
-3058;ID # HIRAGANA LETTER ZI
-3059;ID # HIRAGANA LETTER SU
-305A;ID # HIRAGANA LETTER ZU
-305B;ID # HIRAGANA LETTER SE
-305C;ID # HIRAGANA LETTER ZE
-305D;ID # HIRAGANA LETTER SO
-305E;ID # HIRAGANA LETTER ZO
-305F;ID # HIRAGANA LETTER TA
-3060;ID # HIRAGANA LETTER DA
-3061;ID # HIRAGANA LETTER TI
-3062;ID # HIRAGANA LETTER DI
-3063;CJ # HIRAGANA LETTER SMALL TU
-3064;ID # HIRAGANA LETTER TU
-3065;ID # HIRAGANA LETTER DU
-3066;ID # HIRAGANA LETTER TE
-3067;ID # HIRAGANA LETTER DE
-3068;ID # HIRAGANA LETTER TO
-3069;ID # HIRAGANA LETTER DO
-306A;ID # HIRAGANA LETTER NA
-306B;ID # HIRAGANA LETTER NI
-306C;ID # HIRAGANA LETTER NU
-306D;ID # HIRAGANA LETTER NE
-306E;ID # HIRAGANA LETTER NO
-306F;ID # HIRAGANA LETTER HA
-3070;ID # HIRAGANA LETTER BA
-3071;ID # HIRAGANA LETTER PA
-3072;ID # HIRAGANA LETTER HI
-3073;ID # HIRAGANA LETTER BI
-3074;ID # HIRAGANA LETTER PI
-3075;ID # HIRAGANA LETTER HU
-3076;ID # HIRAGANA LETTER BU
-3077;ID # HIRAGANA LETTER PU
-3078;ID # HIRAGANA LETTER HE
-3079;ID # HIRAGANA LETTER BE
-307A;ID # HIRAGANA LETTER PE
-307B;ID # HIRAGANA LETTER HO
-307C;ID # HIRAGANA LETTER BO
-307D;ID # HIRAGANA LETTER PO
-307E;ID # HIRAGANA LETTER MA
-307F;ID # HIRAGANA LETTER MI
-3080;ID # HIRAGANA LETTER MU
-3081;ID # HIRAGANA LETTER ME
-3082;ID # HIRAGANA LETTER MO
-3083;CJ # HIRAGANA LETTER SMALL YA
-3084;ID # HIRAGANA LETTER YA
-3085;CJ # HIRAGANA LETTER SMALL YU
-3086;ID # HIRAGANA LETTER YU
-3087;CJ # HIRAGANA LETTER SMALL YO
-3088;ID # HIRAGANA LETTER YO
-3089;ID # HIRAGANA LETTER RA
-308A;ID # HIRAGANA LETTER RI
-308B;ID # HIRAGANA LETTER RU
-308C;ID # HIRAGANA LETTER RE
-308D;ID # HIRAGANA LETTER RO
-308E;CJ # HIRAGANA LETTER SMALL WA
-308F;ID # HIRAGANA LETTER WA
-3090;ID # HIRAGANA LETTER WI
-3091;ID # HIRAGANA LETTER WE
-3092;ID # HIRAGANA LETTER WO
-3093;ID # HIRAGANA LETTER N
-3094;ID # HIRAGANA LETTER VU
-3095;CJ # HIRAGANA LETTER SMALL KA
-3096;CJ # HIRAGANA LETTER SMALL KE
-3099;CM # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
-309A;CM # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B;NS # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C;NS # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D;NS # HIRAGANA ITERATION MARK
-309E;NS # HIRAGANA VOICED ITERATION MARK
-309F;ID # HIRAGANA DIGRAPH YORI
-30A0;NS # KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1;CJ # KATAKANA LETTER SMALL A
-30A2;ID # KATAKANA LETTER A
-30A3;CJ # KATAKANA LETTER SMALL I
-30A4;ID # KATAKANA LETTER I
-30A5;CJ # KATAKANA LETTER SMALL U
-30A6;ID # KATAKANA LETTER U
-30A7;CJ # KATAKANA LETTER SMALL E
-30A8;ID # KATAKANA LETTER E
-30A9;CJ # KATAKANA LETTER SMALL O
-30AA;ID # KATAKANA LETTER O
-30AB;ID # KATAKANA LETTER KA
-30AC;ID # KATAKANA LETTER GA
-30AD;ID # KATAKANA LETTER KI
-30AE;ID # KATAKANA LETTER GI
-30AF;ID # KATAKANA LETTER KU
-30B0;ID # KATAKANA LETTER GU
-30B1;ID # KATAKANA LETTER KE
-30B2;ID # KATAKANA LETTER GE
-30B3;ID # KATAKANA LETTER KO
-30B4;ID # KATAKANA LETTER GO
-30B5;ID # KATAKANA LETTER SA
-30B6;ID # KATAKANA LETTER ZA
-30B7;ID # KATAKANA LETTER SI
-30B8;ID # KATAKANA LETTER ZI
-30B9;ID # KATAKANA LETTER SU
-30BA;ID # KATAKANA LETTER ZU
-30BB;ID # KATAKANA LETTER SE
-30BC;ID # KATAKANA LETTER ZE
-30BD;ID # KATAKANA LETTER SO
-30BE;ID # KATAKANA LETTER ZO
-30BF;ID # KATAKANA LETTER TA
-30C0;ID # KATAKANA LETTER DA
-30C1;ID # KATAKANA LETTER TI
-30C2;ID # KATAKANA LETTER DI
-30C3;CJ # KATAKANA LETTER SMALL TU
-30C4;ID # KATAKANA LETTER TU
-30C5;ID # KATAKANA LETTER DU
-30C6;ID # KATAKANA LETTER TE
-30C7;ID # KATAKANA LETTER DE
-30C8;ID # KATAKANA LETTER TO
-30C9;ID # KATAKANA LETTER DO
-30CA;ID # KATAKANA LETTER NA
-30CB;ID # KATAKANA LETTER NI
-30CC;ID # KATAKANA LETTER NU
-30CD;ID # KATAKANA LETTER NE
-30CE;ID # KATAKANA LETTER NO
-30CF;ID # KATAKANA LETTER HA
-30D0;ID # KATAKANA LETTER BA
-30D1;ID # KATAKANA LETTER PA
-30D2;ID # KATAKANA LETTER HI
-30D3;ID # KATAKANA LETTER BI
-30D4;ID # KATAKANA LETTER PI
-30D5;ID # KATAKANA LETTER HU
-30D6;ID # KATAKANA LETTER BU
-30D7;ID # KATAKANA LETTER PU
-30D8;ID # KATAKANA LETTER HE
-30D9;ID # KATAKANA LETTER BE
-30DA;ID # KATAKANA LETTER PE
-30DB;ID # KATAKANA LETTER HO
-30DC;ID # KATAKANA LETTER BO
-30DD;ID # KATAKANA LETTER PO
-30DE;ID # KATAKANA LETTER MA
-30DF;ID # KATAKANA LETTER MI
-30E0;ID # KATAKANA LETTER MU
-30E1;ID # KATAKANA LETTER ME
-30E2;ID # KATAKANA LETTER MO
-30E3;CJ # KATAKANA LETTER SMALL YA
-30E4;ID # KATAKANA LETTER YA
-30E5;CJ # KATAKANA LETTER SMALL YU
-30E6;ID # KATAKANA LETTER YU
-30E7;CJ # KATAKANA LETTER SMALL YO
-30E8;ID # KATAKANA LETTER YO
-30E9;ID # KATAKANA LETTER RA
-30EA;ID # KATAKANA LETTER RI
-30EB;ID # KATAKANA LETTER RU
-30EC;ID # KATAKANA LETTER RE
-30ED;ID # KATAKANA LETTER RO
-30EE;CJ # KATAKANA LETTER SMALL WA
-30EF;ID # KATAKANA LETTER WA
-30F0;ID # KATAKANA LETTER WI
-30F1;ID # KATAKANA LETTER WE
-30F2;ID # KATAKANA LETTER WO
-30F3;ID # KATAKANA LETTER N
-30F4;ID # KATAKANA LETTER VU
-30F5;CJ # KATAKANA LETTER SMALL KA
-30F6;CJ # KATAKANA LETTER SMALL KE
-30F7;ID # KATAKANA LETTER VA
-30F8;ID # KATAKANA LETTER VI
-30F9;ID # KATAKANA LETTER VE
-30FA;ID # KATAKANA LETTER VO
-30FB;NS # KATAKANA MIDDLE DOT
-30FC;CJ # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD;NS # KATAKANA ITERATION MARK
-30FE;NS # KATAKANA VOICED ITERATION MARK
-30FF;ID # KATAKANA DIGRAPH KOTO
-3105;ID # BOPOMOFO LETTER B
-3106;ID # BOPOMOFO LETTER P
-3107;ID # BOPOMOFO LETTER M
-3108;ID # BOPOMOFO LETTER F
-3109;ID # BOPOMOFO LETTER D
-310A;ID # BOPOMOFO LETTER T
-310B;ID # BOPOMOFO LETTER N
-310C;ID # BOPOMOFO LETTER L
-310D;ID # BOPOMOFO LETTER G
-310E;ID # BOPOMOFO LETTER K
-310F;ID # BOPOMOFO LETTER H
-3110;ID # BOPOMOFO LETTER J
-3111;ID # BOPOMOFO LETTER Q
-3112;ID # BOPOMOFO LETTER X
-3113;ID # BOPOMOFO LETTER ZH
-3114;ID # BOPOMOFO LETTER CH
-3115;ID # BOPOMOFO LETTER SH
-3116;ID # BOPOMOFO LETTER R
-3117;ID # BOPOMOFO LETTER Z
-3118;ID # BOPOMOFO LETTER C
-3119;ID # BOPOMOFO LETTER S
-311A;ID # BOPOMOFO LETTER A
-311B;ID # BOPOMOFO LETTER O
-311C;ID # BOPOMOFO LETTER E
-311D;ID # BOPOMOFO LETTER EH
-311E;ID # BOPOMOFO LETTER AI
-311F;ID # BOPOMOFO LETTER EI
-3120;ID # BOPOMOFO LETTER AU
-3121;ID # BOPOMOFO LETTER OU
-3122;ID # BOPOMOFO LETTER AN
-3123;ID # BOPOMOFO LETTER EN
-3124;ID # BOPOMOFO LETTER ANG
-3125;ID # BOPOMOFO LETTER ENG
-3126;ID # BOPOMOFO LETTER ER
-3127;ID # BOPOMOFO LETTER I
-3128;ID # BOPOMOFO LETTER U
-3129;ID # BOPOMOFO LETTER IU
-312A;ID # BOPOMOFO LETTER V
-312B;ID # BOPOMOFO LETTER NG
-312C;ID # BOPOMOFO LETTER GN
-312D;ID # BOPOMOFO LETTER IH
-3131;ID # HANGUL LETTER KIYEOK
-3132;ID # HANGUL LETTER SSANGKIYEOK
-3133;ID # HANGUL LETTER KIYEOK-SIOS
-3134;ID # HANGUL LETTER NIEUN
-3135;ID # HANGUL LETTER NIEUN-CIEUC
-3136;ID # HANGUL LETTER NIEUN-HIEUH
-3137;ID # HANGUL LETTER TIKEUT
-3138;ID # HANGUL LETTER SSANGTIKEUT
-3139;ID # HANGUL LETTER RIEUL
-313A;ID # HANGUL LETTER RIEUL-KIYEOK
-313B;ID # HANGUL LETTER RIEUL-MIEUM
-313C;ID # HANGUL LETTER RIEUL-PIEUP
-313D;ID # HANGUL LETTER RIEUL-SIOS
-313E;ID # HANGUL LETTER RIEUL-THIEUTH
-313F;ID # HANGUL LETTER RIEUL-PHIEUPH
-3140;ID # HANGUL LETTER RIEUL-HIEUH
-3141;ID # HANGUL LETTER MIEUM
-3142;ID # HANGUL LETTER PIEUP
-3143;ID # HANGUL LETTER SSANGPIEUP
-3144;ID # HANGUL LETTER PIEUP-SIOS
-3145;ID # HANGUL LETTER SIOS
-3146;ID # HANGUL LETTER SSANGSIOS
-3147;ID # HANGUL LETTER IEUNG
-3148;ID # HANGUL LETTER CIEUC
-3149;ID # HANGUL LETTER SSANGCIEUC
-314A;ID # HANGUL LETTER CHIEUCH
-314B;ID # HANGUL LETTER KHIEUKH
-314C;ID # HANGUL LETTER THIEUTH
-314D;ID # HANGUL LETTER PHIEUPH
-314E;ID # HANGUL LETTER HIEUH
-314F;ID # HANGUL LETTER A
-3150;ID # HANGUL LETTER AE
-3151;ID # HANGUL LETTER YA
-3152;ID # HANGUL LETTER YAE
-3153;ID # HANGUL LETTER EO
-3154;ID # HANGUL LETTER E
-3155;ID # HANGUL LETTER YEO
-3156;ID # HANGUL LETTER YE
-3157;ID # HANGUL LETTER O
-3158;ID # HANGUL LETTER WA
-3159;ID # HANGUL LETTER WAE
-315A;ID # HANGUL LETTER OE
-315B;ID # HANGUL LETTER YO
-315C;ID # HANGUL LETTER U
-315D;ID # HANGUL LETTER WEO
-315E;ID # HANGUL LETTER WE
-315F;ID # HANGUL LETTER WI
-3160;ID # HANGUL LETTER YU
-3161;ID # HANGUL LETTER EU
-3162;ID # HANGUL LETTER YI
-3163;ID # HANGUL LETTER I
-3164;ID # HANGUL FILLER
-3165;ID # HANGUL LETTER SSANGNIEUN
-3166;ID # HANGUL LETTER NIEUN-TIKEUT
-3167;ID # HANGUL LETTER NIEUN-SIOS
-3168;ID # HANGUL LETTER NIEUN-PANSIOS
-3169;ID # HANGUL LETTER RIEUL-KIYEOK-SIOS
-316A;ID # HANGUL LETTER RIEUL-TIKEUT
-316B;ID # HANGUL LETTER RIEUL-PIEUP-SIOS
-316C;ID # HANGUL LETTER RIEUL-PANSIOS
-316D;ID # HANGUL LETTER RIEUL-YEORINHIEUH
-316E;ID # HANGUL LETTER MIEUM-PIEUP
-316F;ID # HANGUL LETTER MIEUM-SIOS
-3170;ID # HANGUL LETTER MIEUM-PANSIOS
-3171;ID # HANGUL LETTER KAPYEOUNMIEUM
-3172;ID # HANGUL LETTER PIEUP-KIYEOK
-3173;ID # HANGUL LETTER PIEUP-TIKEUT
-3174;ID # HANGUL LETTER PIEUP-SIOS-KIYEOK
-3175;ID # HANGUL LETTER PIEUP-SIOS-TIKEUT
-3176;ID # HANGUL LETTER PIEUP-CIEUC
-3177;ID # HANGUL LETTER PIEUP-THIEUTH
-3178;ID # HANGUL LETTER KAPYEOUNPIEUP
-3179;ID # HANGUL LETTER KAPYEOUNSSANGPIEUP
-317A;ID # HANGUL LETTER SIOS-KIYEOK
-317B;ID # HANGUL LETTER SIOS-NIEUN
-317C;ID # HANGUL LETTER SIOS-TIKEUT
-317D;ID # HANGUL LETTER SIOS-PIEUP
-317E;ID # HANGUL LETTER SIOS-CIEUC
-317F;ID # HANGUL LETTER PANSIOS
-3180;ID # HANGUL LETTER SSANGIEUNG
-3181;ID # HANGUL LETTER YESIEUNG
-3182;ID # HANGUL LETTER YESIEUNG-SIOS
-3183;ID # HANGUL LETTER YESIEUNG-PANSIOS
-3184;ID # HANGUL LETTER KAPYEOUNPHIEUPH
-3185;ID # HANGUL LETTER SSANGHIEUH
-3186;ID # HANGUL LETTER YEORINHIEUH
-3187;ID # HANGUL LETTER YO-YA
-3188;ID # HANGUL LETTER YO-YAE
-3189;ID # HANGUL LETTER YO-I
-318A;ID # HANGUL LETTER YU-YEO
-318B;ID # HANGUL LETTER YU-YE
-318C;ID # HANGUL LETTER YU-I
-318D;ID # HANGUL LETTER ARAEA
-318E;ID # HANGUL LETTER ARAEAE
-3190;ID # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191;ID # IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192;ID # IDEOGRAPHIC ANNOTATION ONE MARK
-3193;ID # IDEOGRAPHIC ANNOTATION TWO MARK
-3194;ID # IDEOGRAPHIC ANNOTATION THREE MARK
-3195;ID # IDEOGRAPHIC ANNOTATION FOUR MARK
-3196;ID # IDEOGRAPHIC ANNOTATION TOP MARK
-3197;ID # IDEOGRAPHIC ANNOTATION MIDDLE MARK
-3198;ID # IDEOGRAPHIC ANNOTATION BOTTOM MARK
-3199;ID # IDEOGRAPHIC ANNOTATION FIRST MARK
-319A;ID # IDEOGRAPHIC ANNOTATION SECOND MARK
-319B;ID # IDEOGRAPHIC ANNOTATION THIRD MARK
-319C;ID # IDEOGRAPHIC ANNOTATION FOURTH MARK
-319D;ID # IDEOGRAPHIC ANNOTATION HEAVEN MARK
-319E;ID # IDEOGRAPHIC ANNOTATION EARTH MARK
-319F;ID # IDEOGRAPHIC ANNOTATION MAN MARK
-31A0;ID # BOPOMOFO LETTER BU
-31A1;ID # BOPOMOFO LETTER ZI
-31A2;ID # BOPOMOFO LETTER JI
-31A3;ID # BOPOMOFO LETTER GU
-31A4;ID # BOPOMOFO LETTER EE
-31A5;ID # BOPOMOFO LETTER ENN
-31A6;ID # BOPOMOFO LETTER OO
-31A7;ID # BOPOMOFO LETTER ONN
-31A8;ID # BOPOMOFO LETTER IR
-31A9;ID # BOPOMOFO LETTER ANN
-31AA;ID # BOPOMOFO LETTER INN
-31AB;ID # BOPOMOFO LETTER UNN
-31AC;ID # BOPOMOFO LETTER IM
-31AD;ID # BOPOMOFO LETTER NGG
-31AE;ID # BOPOMOFO LETTER AINN
-31AF;ID # BOPOMOFO LETTER AUNN
-31B0;ID # BOPOMOFO LETTER AM
-31B1;ID # BOPOMOFO LETTER OM
-31B2;ID # BOPOMOFO LETTER ONG
-31B3;ID # BOPOMOFO LETTER INNN
-31B4;ID # BOPOMOFO FINAL LETTER P
-31B5;ID # BOPOMOFO FINAL LETTER T
-31B6;ID # BOPOMOFO FINAL LETTER K
-31B7;ID # BOPOMOFO FINAL LETTER H
-31B8;ID # BOPOMOFO LETTER GH
-31B9;ID # BOPOMOFO LETTER LH
-31BA;ID # BOPOMOFO LETTER ZY
-31C0;ID # CJK STROKE T
-31C1;ID # CJK STROKE WG
-31C2;ID # CJK STROKE XG
-31C3;ID # CJK STROKE BXG
-31C4;ID # CJK STROKE SW
-31C5;ID # CJK STROKE HZZ
-31C6;ID # CJK STROKE HZG
-31C7;ID # CJK STROKE HP
-31C8;ID # CJK STROKE HZWG
-31C9;ID # CJK STROKE SZWG
-31CA;ID # CJK STROKE HZT
-31CB;ID # CJK STROKE HZZP
-31CC;ID # CJK STROKE HPWG
-31CD;ID # CJK STROKE HZW
-31CE;ID # CJK STROKE HZZZ
-31CF;ID # CJK STROKE N
-31D0;ID # CJK STROKE H
-31D1;ID # CJK STROKE S
-31D2;ID # CJK STROKE P
-31D3;ID # CJK STROKE SP
-31D4;ID # CJK STROKE D
-31D5;ID # CJK STROKE HZ
-31D6;ID # CJK STROKE HG
-31D7;ID # CJK STROKE SZ
-31D8;ID # CJK STROKE SWZ
-31D9;ID # CJK STROKE ST
-31DA;ID # CJK STROKE SG
-31DB;ID # CJK STROKE PD
-31DC;ID # CJK STROKE PZ
-31DD;ID # CJK STROKE TN
-31DE;ID # CJK STROKE SZZ
-31DF;ID # CJK STROKE SWG
-31E0;ID # CJK STROKE HXWG
-31E1;ID # CJK STROKE HZZZG
-31E2;ID # CJK STROKE PG
-31E3;ID # CJK STROKE Q
-31F0;CJ # KATAKANA LETTER SMALL KU
-31F1;CJ # KATAKANA LETTER SMALL SI
-31F2;CJ # KATAKANA LETTER SMALL SU
-31F3;CJ # KATAKANA LETTER SMALL TO
-31F4;CJ # KATAKANA LETTER SMALL NU
-31F5;CJ # KATAKANA LETTER SMALL HA
-31F6;CJ # KATAKANA LETTER SMALL HI
-31F7;CJ # KATAKANA LETTER SMALL HU
-31F8;CJ # KATAKANA LETTER SMALL HE
-31F9;CJ # KATAKANA LETTER SMALL HO
-31FA;CJ # KATAKANA LETTER SMALL MU
-31FB;CJ # KATAKANA LETTER SMALL RA
-31FC;CJ # KATAKANA LETTER SMALL RI
-31FD;CJ # KATAKANA LETTER SMALL RU
-31FE;CJ # KATAKANA LETTER SMALL RE
-31FF;CJ # KATAKANA LETTER SMALL RO
-3200;ID # PARENTHESIZED HANGUL KIYEOK
-3201;ID # PARENTHESIZED HANGUL NIEUN
-3202;ID # PARENTHESIZED HANGUL TIKEUT
-3203;ID # PARENTHESIZED HANGUL RIEUL
-3204;ID # PARENTHESIZED HANGUL MIEUM
-3205;ID # PARENTHESIZED HANGUL PIEUP
-3206;ID # PARENTHESIZED HANGUL SIOS
-3207;ID # PARENTHESIZED HANGUL IEUNG
-3208;ID # PARENTHESIZED HANGUL CIEUC
-3209;ID # PARENTHESIZED HANGUL CHIEUCH
-320A;ID # PARENTHESIZED HANGUL KHIEUKH
-320B;ID # PARENTHESIZED HANGUL THIEUTH
-320C;ID # PARENTHESIZED HANGUL PHIEUPH
-320D;ID # PARENTHESIZED HANGUL HIEUH
-320E;ID # PARENTHESIZED HANGUL KIYEOK A
-320F;ID # PARENTHESIZED HANGUL NIEUN A
-3210;ID # PARENTHESIZED HANGUL TIKEUT A
-3211;ID # PARENTHESIZED HANGUL RIEUL A
-3212;ID # PARENTHESIZED HANGUL MIEUM A
-3213;ID # PARENTHESIZED HANGUL PIEUP A
-3214;ID # PARENTHESIZED HANGUL SIOS A
-3215;ID # PARENTHESIZED HANGUL IEUNG A
-3216;ID # PARENTHESIZED HANGUL CIEUC A
-3217;ID # PARENTHESIZED HANGUL CHIEUCH A
-3218;ID # PARENTHESIZED HANGUL KHIEUKH A
-3219;ID # PARENTHESIZED HANGUL THIEUTH A
-321A;ID # PARENTHESIZED HANGUL PHIEUPH A
-321B;ID # PARENTHESIZED HANGUL HIEUH A
-321C;ID # PARENTHESIZED HANGUL CIEUC U
-321D;ID # PARENTHESIZED KOREAN CHARACTER OJEON
-321E;ID # PARENTHESIZED KOREAN CHARACTER O HU
-3220;ID # PARENTHESIZED IDEOGRAPH ONE
-3221;ID # PARENTHESIZED IDEOGRAPH TWO
-3222;ID # PARENTHESIZED IDEOGRAPH THREE
-3223;ID # PARENTHESIZED IDEOGRAPH FOUR
-3224;ID # PARENTHESIZED IDEOGRAPH FIVE
-3225;ID # PARENTHESIZED IDEOGRAPH SIX
-3226;ID # PARENTHESIZED IDEOGRAPH SEVEN
-3227;ID # PARENTHESIZED IDEOGRAPH EIGHT
-3228;ID # PARENTHESIZED IDEOGRAPH NINE
-3229;ID # PARENTHESIZED IDEOGRAPH TEN
-322A;ID # PARENTHESIZED IDEOGRAPH MOON
-322B;ID # PARENTHESIZED IDEOGRAPH FIRE
-322C;ID # PARENTHESIZED IDEOGRAPH WATER
-322D;ID # PARENTHESIZED IDEOGRAPH WOOD
-322E;ID # PARENTHESIZED IDEOGRAPH METAL
-322F;ID # PARENTHESIZED IDEOGRAPH EARTH
-3230;ID # PARENTHESIZED IDEOGRAPH SUN
-3231;ID # PARENTHESIZED IDEOGRAPH STOCK
-3232;ID # PARENTHESIZED IDEOGRAPH HAVE
-3233;ID # PARENTHESIZED IDEOGRAPH SOCIETY
-3234;ID # PARENTHESIZED IDEOGRAPH NAME
-3235;ID # PARENTHESIZED IDEOGRAPH SPECIAL
-3236;ID # PARENTHESIZED IDEOGRAPH FINANCIAL
-3237;ID # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3238;ID # PARENTHESIZED IDEOGRAPH LABOR
-3239;ID # PARENTHESIZED IDEOGRAPH REPRESENT
-323A;ID # PARENTHESIZED IDEOGRAPH CALL
-323B;ID # PARENTHESIZED IDEOGRAPH STUDY
-323C;ID # PARENTHESIZED IDEOGRAPH SUPERVISE
-323D;ID # PARENTHESIZED IDEOGRAPH ENTERPRISE
-323E;ID # PARENTHESIZED IDEOGRAPH RESOURCE
-323F;ID # PARENTHESIZED IDEOGRAPH ALLIANCE
-3240;ID # PARENTHESIZED IDEOGRAPH FESTIVAL
-3241;ID # PARENTHESIZED IDEOGRAPH REST
-3242;ID # PARENTHESIZED IDEOGRAPH SELF
-3243;ID # PARENTHESIZED IDEOGRAPH REACH
-3244;ID # CIRCLED IDEOGRAPH QUESTION
-3245;ID # CIRCLED IDEOGRAPH KINDERGARTEN
-3246;ID # CIRCLED IDEOGRAPH SCHOOL
-3247;ID # CIRCLED IDEOGRAPH KOTO
-3248;AI # CIRCLED NUMBER TEN ON BLACK SQUARE
-3249;AI # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-324A;AI # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-324B;AI # CIRCLED NUMBER FORTY ON BLACK SQUARE
-324C;AI # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-324D;AI # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-324E;AI # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-324F;AI # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-3250;ID # PARTNERSHIP SIGN
-3251;ID # CIRCLED NUMBER TWENTY ONE
-3252;ID # CIRCLED NUMBER TWENTY TWO
-3253;ID # CIRCLED NUMBER TWENTY THREE
-3254;ID # CIRCLED NUMBER TWENTY FOUR
-3255;ID # CIRCLED NUMBER TWENTY FIVE
-3256;ID # CIRCLED NUMBER TWENTY SIX
-3257;ID # CIRCLED NUMBER TWENTY SEVEN
-3258;ID # CIRCLED NUMBER TWENTY EIGHT
-3259;ID # CIRCLED NUMBER TWENTY NINE
-325A;ID # CIRCLED NUMBER THIRTY
-325B;ID # CIRCLED NUMBER THIRTY ONE
-325C;ID # CIRCLED NUMBER THIRTY TWO
-325D;ID # CIRCLED NUMBER THIRTY THREE
-325E;ID # CIRCLED NUMBER THIRTY FOUR
-325F;ID # CIRCLED NUMBER THIRTY FIVE
-3260;ID # CIRCLED HANGUL KIYEOK
-3261;ID # CIRCLED HANGUL NIEUN
-3262;ID # CIRCLED HANGUL TIKEUT
-3263;ID # CIRCLED HANGUL RIEUL
-3264;ID # CIRCLED HANGUL MIEUM
-3265;ID # CIRCLED HANGUL PIEUP
-3266;ID # CIRCLED HANGUL SIOS
-3267;ID # CIRCLED HANGUL IEUNG
-3268;ID # CIRCLED HANGUL CIEUC
-3269;ID # CIRCLED HANGUL CHIEUCH
-326A;ID # CIRCLED HANGUL KHIEUKH
-326B;ID # CIRCLED HANGUL THIEUTH
-326C;ID # CIRCLED HANGUL PHIEUPH
-326D;ID # CIRCLED HANGUL HIEUH
-326E;ID # CIRCLED HANGUL KIYEOK A
-326F;ID # CIRCLED HANGUL NIEUN A
-3270;ID # CIRCLED HANGUL TIKEUT A
-3271;ID # CIRCLED HANGUL RIEUL A
-3272;ID # CIRCLED HANGUL MIEUM A
-3273;ID # CIRCLED HANGUL PIEUP A
-3274;ID # CIRCLED HANGUL SIOS A
-3275;ID # CIRCLED HANGUL IEUNG A
-3276;ID # CIRCLED HANGUL CIEUC A
-3277;ID # CIRCLED HANGUL CHIEUCH A
-3278;ID # CIRCLED HANGUL KHIEUKH A
-3279;ID # CIRCLED HANGUL THIEUTH A
-327A;ID # CIRCLED HANGUL PHIEUPH A
-327B;ID # CIRCLED HANGUL HIEUH A
-327C;ID # CIRCLED KOREAN CHARACTER CHAMKO
-327D;ID # CIRCLED KOREAN CHARACTER JUEUI
-327E;ID # CIRCLED HANGUL IEUNG U
-327F;ID # KOREAN STANDARD SYMBOL
-3280;ID # CIRCLED IDEOGRAPH ONE
-3281;ID # CIRCLED IDEOGRAPH TWO
-3282;ID # CIRCLED IDEOGRAPH THREE
-3283;ID # CIRCLED IDEOGRAPH FOUR
-3284;ID # CIRCLED IDEOGRAPH FIVE
-3285;ID # CIRCLED IDEOGRAPH SIX
-3286;ID # CIRCLED IDEOGRAPH SEVEN
-3287;ID # CIRCLED IDEOGRAPH EIGHT
-3288;ID # CIRCLED IDEOGRAPH NINE
-3289;ID # CIRCLED IDEOGRAPH TEN
-328A;ID # CIRCLED IDEOGRAPH MOON
-328B;ID # CIRCLED IDEOGRAPH FIRE
-328C;ID # CIRCLED IDEOGRAPH WATER
-328D;ID # CIRCLED IDEOGRAPH WOOD
-328E;ID # CIRCLED IDEOGRAPH METAL
-328F;ID # CIRCLED IDEOGRAPH EARTH
-3290;ID # CIRCLED IDEOGRAPH SUN
-3291;ID # CIRCLED IDEOGRAPH STOCK
-3292;ID # CIRCLED IDEOGRAPH HAVE
-3293;ID # CIRCLED IDEOGRAPH SOCIETY
-3294;ID # CIRCLED IDEOGRAPH NAME
-3295;ID # CIRCLED IDEOGRAPH SPECIAL
-3296;ID # CIRCLED IDEOGRAPH FINANCIAL
-3297;ID # CIRCLED IDEOGRAPH CONGRATULATION
-3298;ID # CIRCLED IDEOGRAPH LABOR
-3299;ID # CIRCLED IDEOGRAPH SECRET
-329A;ID # CIRCLED IDEOGRAPH MALE
-329B;ID # CIRCLED IDEOGRAPH FEMALE
-329C;ID # CIRCLED IDEOGRAPH SUITABLE
-329D;ID # CIRCLED IDEOGRAPH EXCELLENT
-329E;ID # CIRCLED IDEOGRAPH PRINT
-329F;ID # CIRCLED IDEOGRAPH ATTENTION
-32A0;ID # CIRCLED IDEOGRAPH ITEM
-32A1;ID # CIRCLED IDEOGRAPH REST
-32A2;ID # CIRCLED IDEOGRAPH COPY
-32A3;ID # CIRCLED IDEOGRAPH CORRECT
-32A4;ID # CIRCLED IDEOGRAPH HIGH
-32A5;ID # CIRCLED IDEOGRAPH CENTRE
-32A6;ID # CIRCLED IDEOGRAPH LOW
-32A7;ID # CIRCLED IDEOGRAPH LEFT
-32A8;ID # CIRCLED IDEOGRAPH RIGHT
-32A9;ID # CIRCLED IDEOGRAPH MEDICINE
-32AA;ID # CIRCLED IDEOGRAPH RELIGION
-32AB;ID # CIRCLED IDEOGRAPH STUDY
-32AC;ID # CIRCLED IDEOGRAPH SUPERVISE
-32AD;ID # CIRCLED IDEOGRAPH ENTERPRISE
-32AE;ID # CIRCLED IDEOGRAPH RESOURCE
-32AF;ID # CIRCLED IDEOGRAPH ALLIANCE
-32B0;ID # CIRCLED IDEOGRAPH NIGHT
-32B1;ID # CIRCLED NUMBER THIRTY SIX
-32B2;ID # CIRCLED NUMBER THIRTY SEVEN
-32B3;ID # CIRCLED NUMBER THIRTY EIGHT
-32B4;ID # CIRCLED NUMBER THIRTY NINE
-32B5;ID # CIRCLED NUMBER FORTY
-32B6;ID # CIRCLED NUMBER FORTY ONE
-32B7;ID # CIRCLED NUMBER FORTY TWO
-32B8;ID # CIRCLED NUMBER FORTY THREE
-32B9;ID # CIRCLED NUMBER FORTY FOUR
-32BA;ID # CIRCLED NUMBER FORTY FIVE
-32BB;ID # CIRCLED NUMBER FORTY SIX
-32BC;ID # CIRCLED NUMBER FORTY SEVEN
-32BD;ID # CIRCLED NUMBER FORTY EIGHT
-32BE;ID # CIRCLED NUMBER FORTY NINE
-32BF;ID # CIRCLED NUMBER FIFTY
-32C0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-32C1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-32C2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-32C3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-32C4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-32C5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-32C6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-32C7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-32C8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-32C9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-32CA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-32CB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-32CC;ID # SQUARE HG
-32CD;ID # SQUARE ERG
-32CE;ID # SQUARE EV
-32CF;ID # LIMITED LIABILITY SIGN
-32D0;ID # CIRCLED KATAKANA A
-32D1;ID # CIRCLED KATAKANA I
-32D2;ID # CIRCLED KATAKANA U
-32D3;ID # CIRCLED KATAKANA E
-32D4;ID # CIRCLED KATAKANA O
-32D5;ID # CIRCLED KATAKANA KA
-32D6;ID # CIRCLED KATAKANA KI
-32D7;ID # CIRCLED KATAKANA KU
-32D8;ID # CIRCLED KATAKANA KE
-32D9;ID # CIRCLED KATAKANA KO
-32DA;ID # CIRCLED KATAKANA SA
-32DB;ID # CIRCLED KATAKANA SI
-32DC;ID # CIRCLED KATAKANA SU
-32DD;ID # CIRCLED KATAKANA SE
-32DE;ID # CIRCLED KATAKANA SO
-32DF;ID # CIRCLED KATAKANA TA
-32E0;ID # CIRCLED KATAKANA TI
-32E1;ID # CIRCLED KATAKANA TU
-32E2;ID # CIRCLED KATAKANA TE
-32E3;ID # CIRCLED KATAKANA TO
-32E4;ID # CIRCLED KATAKANA NA
-32E5;ID # CIRCLED KATAKANA NI
-32E6;ID # CIRCLED KATAKANA NU
-32E7;ID # CIRCLED KATAKANA NE
-32E8;ID # CIRCLED KATAKANA NO
-32E9;ID # CIRCLED KATAKANA HA
-32EA;ID # CIRCLED KATAKANA HI
-32EB;ID # CIRCLED KATAKANA HU
-32EC;ID # CIRCLED KATAKANA HE
-32ED;ID # CIRCLED KATAKANA HO
-32EE;ID # CIRCLED KATAKANA MA
-32EF;ID # CIRCLED KATAKANA MI
-32F0;ID # CIRCLED KATAKANA MU
-32F1;ID # CIRCLED KATAKANA ME
-32F2;ID # CIRCLED KATAKANA MO
-32F3;ID # CIRCLED KATAKANA YA
-32F4;ID # CIRCLED KATAKANA YU
-32F5;ID # CIRCLED KATAKANA YO
-32F6;ID # CIRCLED KATAKANA RA
-32F7;ID # CIRCLED KATAKANA RI
-32F8;ID # CIRCLED KATAKANA RU
-32F9;ID # CIRCLED KATAKANA RE
-32FA;ID # CIRCLED KATAKANA RO
-32FB;ID # CIRCLED KATAKANA WA
-32FC;ID # CIRCLED KATAKANA WI
-32FD;ID # CIRCLED KATAKANA WE
-32FE;ID # CIRCLED KATAKANA WO
-3300;ID # SQUARE APAATO
-3301;ID # SQUARE ARUHUA
-3302;ID # SQUARE ANPEA
-3303;ID # SQUARE AARU
-3304;ID # SQUARE ININGU
-3305;ID # SQUARE INTI
-3306;ID # SQUARE UON
-3307;ID # SQUARE ESUKUUDO
-3308;ID # SQUARE EEKAA
-3309;ID # SQUARE ONSU
-330A;ID # SQUARE OOMU
-330B;ID # SQUARE KAIRI
-330C;ID # SQUARE KARATTO
-330D;ID # SQUARE KARORII
-330E;ID # SQUARE GARON
-330F;ID # SQUARE GANMA
-3310;ID # SQUARE GIGA
-3311;ID # SQUARE GINII
-3312;ID # SQUARE KYURII
-3313;ID # SQUARE GIRUDAA
-3314;ID # SQUARE KIRO
-3315;ID # SQUARE KIROGURAMU
-3316;ID # SQUARE KIROMEETORU
-3317;ID # SQUARE KIROWATTO
-3318;ID # SQUARE GURAMU
-3319;ID # SQUARE GURAMUTON
-331A;ID # SQUARE KURUZEIRO
-331B;ID # SQUARE KUROONE
-331C;ID # SQUARE KEESU
-331D;ID # SQUARE KORUNA
-331E;ID # SQUARE KOOPO
-331F;ID # SQUARE SAIKURU
-3320;ID # SQUARE SANTIIMU
-3321;ID # SQUARE SIRINGU
-3322;ID # SQUARE SENTI
-3323;ID # SQUARE SENTO
-3324;ID # SQUARE DAASU
-3325;ID # SQUARE DESI
-3326;ID # SQUARE DORU
-3327;ID # SQUARE TON
-3328;ID # SQUARE NANO
-3329;ID # SQUARE NOTTO
-332A;ID # SQUARE HAITU
-332B;ID # SQUARE PAASENTO
-332C;ID # SQUARE PAATU
-332D;ID # SQUARE BAARERU
-332E;ID # SQUARE PIASUTORU
-332F;ID # SQUARE PIKURU
-3330;ID # SQUARE PIKO
-3331;ID # SQUARE BIRU
-3332;ID # SQUARE HUARADDO
-3333;ID # SQUARE HUIITO
-3334;ID # SQUARE BUSSYERU
-3335;ID # SQUARE HURAN
-3336;ID # SQUARE HEKUTAARU
-3337;ID # SQUARE PESO
-3338;ID # SQUARE PENIHI
-3339;ID # SQUARE HERUTU
-333A;ID # SQUARE PENSU
-333B;ID # SQUARE PEEZI
-333C;ID # SQUARE BEETA
-333D;ID # SQUARE POINTO
-333E;ID # SQUARE BORUTO
-333F;ID # SQUARE HON
-3340;ID # SQUARE PONDO
-3341;ID # SQUARE HOORU
-3342;ID # SQUARE HOON
-3343;ID # SQUARE MAIKURO
-3344;ID # SQUARE MAIRU
-3345;ID # SQUARE MAHHA
-3346;ID # SQUARE MARUKU
-3347;ID # SQUARE MANSYON
-3348;ID # SQUARE MIKURON
-3349;ID # SQUARE MIRI
-334A;ID # SQUARE MIRIBAARU
-334B;ID # SQUARE MEGA
-334C;ID # SQUARE MEGATON
-334D;ID # SQUARE MEETORU
-334E;ID # SQUARE YAADO
-334F;ID # SQUARE YAARU
-3350;ID # SQUARE YUAN
-3351;ID # SQUARE RITTORU
-3352;ID # SQUARE RIRA
-3353;ID # SQUARE RUPII
-3354;ID # SQUARE RUUBURU
-3355;ID # SQUARE REMU
-3356;ID # SQUARE RENTOGEN
-3357;ID # SQUARE WATTO
-3358;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-3359;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-335A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-335B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-335C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-335D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-335E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-335F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-3360;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-3361;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-3362;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-3363;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-3364;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-3365;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-3366;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-3367;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-3368;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-3369;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-336A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-336B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-336C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-336D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-336E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-336F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3370;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3371;ID # SQUARE HPA
-3372;ID # SQUARE DA
-3373;ID # SQUARE AU
-3374;ID # SQUARE BAR
-3375;ID # SQUARE OV
-3376;ID # SQUARE PC
-3377;ID # SQUARE DM
-3378;ID # SQUARE DM SQUARED
-3379;ID # SQUARE DM CUBED
-337A;ID # SQUARE IU
-337B;ID # SQUARE ERA NAME HEISEI
-337C;ID # SQUARE ERA NAME SYOUWA
-337D;ID # SQUARE ERA NAME TAISYOU
-337E;ID # SQUARE ERA NAME MEIZI
-337F;ID # SQUARE CORPORATION
-3380;ID # SQUARE PA AMPS
-3381;ID # SQUARE NA
-3382;ID # SQUARE MU A
-3383;ID # SQUARE MA
-3384;ID # SQUARE KA
-3385;ID # SQUARE KB
-3386;ID # SQUARE MB
-3387;ID # SQUARE GB
-3388;ID # SQUARE CAL
-3389;ID # SQUARE KCAL
-338A;ID # SQUARE PF
-338B;ID # SQUARE NF
-338C;ID # SQUARE MU F
-338D;ID # SQUARE MU G
-338E;ID # SQUARE MG
-338F;ID # SQUARE KG
-3390;ID # SQUARE HZ
-3391;ID # SQUARE KHZ
-3392;ID # SQUARE MHZ
-3393;ID # SQUARE GHZ
-3394;ID # SQUARE THZ
-3395;ID # SQUARE MU L
-3396;ID # SQUARE ML
-3397;ID # SQUARE DL
-3398;ID # SQUARE KL
-3399;ID # SQUARE FM
-339A;ID # SQUARE NM
-339B;ID # SQUARE MU M
-339C;ID # SQUARE MM
-339D;ID # SQUARE CM
-339E;ID # SQUARE KM
-339F;ID # SQUARE MM SQUARED
-33A0;ID # SQUARE CM SQUARED
-33A1;ID # SQUARE M SQUARED
-33A2;ID # SQUARE KM SQUARED
-33A3;ID # SQUARE MM CUBED
-33A4;ID # SQUARE CM CUBED
-33A5;ID # SQUARE M CUBED
-33A6;ID # SQUARE KM CUBED
-33A7;ID # SQUARE M OVER S
-33A8;ID # SQUARE M OVER S SQUARED
-33A9;ID # SQUARE PA
-33AA;ID # SQUARE KPA
-33AB;ID # SQUARE MPA
-33AC;ID # SQUARE GPA
-33AD;ID # SQUARE RAD
-33AE;ID # SQUARE RAD OVER S
-33AF;ID # SQUARE RAD OVER S SQUARED
-33B0;ID # SQUARE PS
-33B1;ID # SQUARE NS
-33B2;ID # SQUARE MU S
-33B3;ID # SQUARE MS
-33B4;ID # SQUARE PV
-33B5;ID # SQUARE NV
-33B6;ID # SQUARE MU V
-33B7;ID # SQUARE MV
-33B8;ID # SQUARE KV
-33B9;ID # SQUARE MV MEGA
-33BA;ID # SQUARE PW
-33BB;ID # SQUARE NW
-33BC;ID # SQUARE MU W
-33BD;ID # SQUARE MW
-33BE;ID # SQUARE KW
-33BF;ID # SQUARE MW MEGA
-33C0;ID # SQUARE K OHM
-33C1;ID # SQUARE M OHM
-33C2;ID # SQUARE AM
-33C3;ID # SQUARE BQ
-33C4;ID # SQUARE CC
-33C5;ID # SQUARE CD
-33C6;ID # SQUARE C OVER KG
-33C7;ID # SQUARE CO
-33C8;ID # SQUARE DB
-33C9;ID # SQUARE GY
-33CA;ID # SQUARE HA
-33CB;ID # SQUARE HP
-33CC;ID # SQUARE IN
-33CD;ID # SQUARE KK
-33CE;ID # SQUARE KM CAPITAL
-33CF;ID # SQUARE KT
-33D0;ID # SQUARE LM
-33D1;ID # SQUARE LN
-33D2;ID # SQUARE LOG
-33D3;ID # SQUARE LX
-33D4;ID # SQUARE MB SMALL
-33D5;ID # SQUARE MIL
-33D6;ID # SQUARE MOL
-33D7;ID # SQUARE PH
-33D8;ID # SQUARE PM
-33D9;ID # SQUARE PPM
-33DA;ID # SQUARE PR
-33DB;ID # SQUARE SR
-33DC;ID # SQUARE SV
-33DD;ID # SQUARE WB
-33DE;ID # SQUARE V OVER M
-33DF;ID # SQUARE A OVER M
-33E0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-33E1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-33E2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-33E3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-33E4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-33E5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-33E6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-33E7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-33E8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-33E9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-33EA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-33EB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-33EC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-33ED;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-33EE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-33EF;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-33F0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-33F1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-33F2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-33F3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-33F4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-33F5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-33F6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-33F7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-33F8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33FD;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33FF;ID # SQUARE GAL
-3400..4DB5;ID # <CJK Ideograph Extension A, First>..<CJK Ideograph Extension A, Last>
-4DB6..4DBF;ID # <reserved-4DB6>..<reserved-4DBF>
-4DC0;AL # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1;AL # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2;AL # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3;AL # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4;AL # HEXAGRAM FOR WAITING
-4DC5;AL # HEXAGRAM FOR CONFLICT
-4DC6;AL # HEXAGRAM FOR THE ARMY
-4DC7;AL # HEXAGRAM FOR HOLDING TOGETHER
-4DC8;AL # HEXAGRAM FOR SMALL TAMING
-4DC9;AL # HEXAGRAM FOR TREADING
-4DCA;AL # HEXAGRAM FOR PEACE
-4DCB;AL # HEXAGRAM FOR STANDSTILL
-4DCC;AL # HEXAGRAM FOR FELLOWSHIP
-4DCD;AL # HEXAGRAM FOR GREAT POSSESSION
-4DCE;AL # HEXAGRAM FOR MODESTY
-4DCF;AL # HEXAGRAM FOR ENTHUSIASM
-4DD0;AL # HEXAGRAM FOR FOLLOWING
-4DD1;AL # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2;AL # HEXAGRAM FOR APPROACH
-4DD3;AL # HEXAGRAM FOR CONTEMPLATION
-4DD4;AL # HEXAGRAM FOR BITING THROUGH
-4DD5;AL # HEXAGRAM FOR GRACE
-4DD6;AL # HEXAGRAM FOR SPLITTING APART
-4DD7;AL # HEXAGRAM FOR RETURN
-4DD8;AL # HEXAGRAM FOR INNOCENCE
-4DD9;AL # HEXAGRAM FOR GREAT TAMING
-4DDA;AL # HEXAGRAM FOR MOUTH CORNERS
-4DDB;AL # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC;AL # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD;AL # HEXAGRAM FOR THE CLINGING FIRE
-4DDE;AL # HEXAGRAM FOR INFLUENCE
-4DDF;AL # HEXAGRAM FOR DURATION
-4DE0;AL # HEXAGRAM FOR RETREAT
-4DE1;AL # HEXAGRAM FOR GREAT POWER
-4DE2;AL # HEXAGRAM FOR PROGRESS
-4DE3;AL # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4;AL # HEXAGRAM FOR THE FAMILY
-4DE5;AL # HEXAGRAM FOR OPPOSITION
-4DE6;AL # HEXAGRAM FOR OBSTRUCTION
-4DE7;AL # HEXAGRAM FOR DELIVERANCE
-4DE8;AL # HEXAGRAM FOR DECREASE
-4DE9;AL # HEXAGRAM FOR INCREASE
-4DEA;AL # HEXAGRAM FOR BREAKTHROUGH
-4DEB;AL # HEXAGRAM FOR COMING TO MEET
-4DEC;AL # HEXAGRAM FOR GATHERING TOGETHER
-4DED;AL # HEXAGRAM FOR PUSHING UPWARD
-4DEE;AL # HEXAGRAM FOR OPPRESSION
-4DEF;AL # HEXAGRAM FOR THE WELL
-4DF0;AL # HEXAGRAM FOR REVOLUTION
-4DF1;AL # HEXAGRAM FOR THE CAULDRON
-4DF2;AL # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3;AL # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4;AL # HEXAGRAM FOR DEVELOPMENT
-4DF5;AL # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6;AL # HEXAGRAM FOR ABUNDANCE
-4DF7;AL # HEXAGRAM FOR THE WANDERER
-4DF8;AL # HEXAGRAM FOR THE GENTLE WIND
-4DF9;AL # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA;AL # HEXAGRAM FOR DISPERSION
-4DFB;AL # HEXAGRAM FOR LIMITATION
-4DFC;AL # HEXAGRAM FOR INNER TRUTH
-4DFD;AL # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE;AL # HEXAGRAM FOR AFTER COMPLETION
-4DFF;AL # HEXAGRAM FOR BEFORE COMPLETION
-4E00..9FCC;ID # <CJK Ideograph, First>..<CJK Ideograph, Last>
-9FCD..9FFF;ID # <reserved-9FCD>..<reserved-9FFF>
-A000;ID # YI SYLLABLE IT
-A001;ID # YI SYLLABLE IX
-A002;ID # YI SYLLABLE I
-A003;ID # YI SYLLABLE IP
-A004;ID # YI SYLLABLE IET
-A005;ID # YI SYLLABLE IEX
-A006;ID # YI SYLLABLE IE
-A007;ID # YI SYLLABLE IEP
-A008;ID # YI SYLLABLE AT
-A009;ID # YI SYLLABLE AX
-A00A;ID # YI SYLLABLE A
-A00B;ID # YI SYLLABLE AP
-A00C;ID # YI SYLLABLE UOX
-A00D;ID # YI SYLLABLE UO
-A00E;ID # YI SYLLABLE UOP
-A00F;ID # YI SYLLABLE OT
-A010;ID # YI SYLLABLE OX
-A011;ID # YI SYLLABLE O
-A012;ID # YI SYLLABLE OP
-A013;ID # YI SYLLABLE EX
-A014;ID # YI SYLLABLE E
-A015;NS # YI SYLLABLE WU
-A016;ID # YI SYLLABLE BIT
-A017;ID # YI SYLLABLE BIX
-A018;ID # YI SYLLABLE BI
-A019;ID # YI SYLLABLE BIP
-A01A;ID # YI SYLLABLE BIET
-A01B;ID # YI SYLLABLE BIEX
-A01C;ID # YI SYLLABLE BIE
-A01D;ID # YI SYLLABLE BIEP
-A01E;ID # YI SYLLABLE BAT
-A01F;ID # YI SYLLABLE BAX
-A020;ID # YI SYLLABLE BA
-A021;ID # YI SYLLABLE BAP
-A022;ID # YI SYLLABLE BUOX
-A023;ID # YI SYLLABLE BUO
-A024;ID # YI SYLLABLE BUOP
-A025;ID # YI SYLLABLE BOT
-A026;ID # YI SYLLABLE BOX
-A027;ID # YI SYLLABLE BO
-A028;ID # YI SYLLABLE BOP
-A029;ID # YI SYLLABLE BEX
-A02A;ID # YI SYLLABLE BE
-A02B;ID # YI SYLLABLE BEP
-A02C;ID # YI SYLLABLE BUT
-A02D;ID # YI SYLLABLE BUX
-A02E;ID # YI SYLLABLE BU
-A02F;ID # YI SYLLABLE BUP
-A030;ID # YI SYLLABLE BURX
-A031;ID # YI SYLLABLE BUR
-A032;ID # YI SYLLABLE BYT
-A033;ID # YI SYLLABLE BYX
-A034;ID # YI SYLLABLE BY
-A035;ID # YI SYLLABLE BYP
-A036;ID # YI SYLLABLE BYRX
-A037;ID # YI SYLLABLE BYR
-A038;ID # YI SYLLABLE PIT
-A039;ID # YI SYLLABLE PIX
-A03A;ID # YI SYLLABLE PI
-A03B;ID # YI SYLLABLE PIP
-A03C;ID # YI SYLLABLE PIEX
-A03D;ID # YI SYLLABLE PIE
-A03E;ID # YI SYLLABLE PIEP
-A03F;ID # YI SYLLABLE PAT
-A040;ID # YI SYLLABLE PAX
-A041;ID # YI SYLLABLE PA
-A042;ID # YI SYLLABLE PAP
-A043;ID # YI SYLLABLE PUOX
-A044;ID # YI SYLLABLE PUO
-A045;ID # YI SYLLABLE PUOP
-A046;ID # YI SYLLABLE POT
-A047;ID # YI SYLLABLE POX
-A048;ID # YI SYLLABLE PO
-A049;ID # YI SYLLABLE POP
-A04A;ID # YI SYLLABLE PUT
-A04B;ID # YI SYLLABLE PUX
-A04C;ID # YI SYLLABLE PU
-A04D;ID # YI SYLLABLE PUP
-A04E;ID # YI SYLLABLE PURX
-A04F;ID # YI SYLLABLE PUR
-A050;ID # YI SYLLABLE PYT
-A051;ID # YI SYLLABLE PYX
-A052;ID # YI SYLLABLE PY
-A053;ID # YI SYLLABLE PYP
-A054;ID # YI SYLLABLE PYRX
-A055;ID # YI SYLLABLE PYR
-A056;ID # YI SYLLABLE BBIT
-A057;ID # YI SYLLABLE BBIX
-A058;ID # YI SYLLABLE BBI
-A059;ID # YI SYLLABLE BBIP
-A05A;ID # YI SYLLABLE BBIET
-A05B;ID # YI SYLLABLE BBIEX
-A05C;ID # YI SYLLABLE BBIE
-A05D;ID # YI SYLLABLE BBIEP
-A05E;ID # YI SYLLABLE BBAT
-A05F;ID # YI SYLLABLE BBAX
-A060;ID # YI SYLLABLE BBA
-A061;ID # YI SYLLABLE BBAP
-A062;ID # YI SYLLABLE BBUOX
-A063;ID # YI SYLLABLE BBUO
-A064;ID # YI SYLLABLE BBUOP
-A065;ID # YI SYLLABLE BBOT
-A066;ID # YI SYLLABLE BBOX
-A067;ID # YI SYLLABLE BBO
-A068;ID # YI SYLLABLE BBOP
-A069;ID # YI SYLLABLE BBEX
-A06A;ID # YI SYLLABLE BBE
-A06B;ID # YI SYLLABLE BBEP
-A06C;ID # YI SYLLABLE BBUT
-A06D;ID # YI SYLLABLE BBUX
-A06E;ID # YI SYLLABLE BBU
-A06F;ID # YI SYLLABLE BBUP
-A070;ID # YI SYLLABLE BBURX
-A071;ID # YI SYLLABLE BBUR
-A072;ID # YI SYLLABLE BBYT
-A073;ID # YI SYLLABLE BBYX
-A074;ID # YI SYLLABLE BBY
-A075;ID # YI SYLLABLE BBYP
-A076;ID # YI SYLLABLE NBIT
-A077;ID # YI SYLLABLE NBIX
-A078;ID # YI SYLLABLE NBI
-A079;ID # YI SYLLABLE NBIP
-A07A;ID # YI SYLLABLE NBIEX
-A07B;ID # YI SYLLABLE NBIE
-A07C;ID # YI SYLLABLE NBIEP
-A07D;ID # YI SYLLABLE NBAT
-A07E;ID # YI SYLLABLE NBAX
-A07F;ID # YI SYLLABLE NBA
-A080;ID # YI SYLLABLE NBAP
-A081;ID # YI SYLLABLE NBOT
-A082;ID # YI SYLLABLE NBOX
-A083;ID # YI SYLLABLE NBO
-A084;ID # YI SYLLABLE NBOP
-A085;ID # YI SYLLABLE NBUT
-A086;ID # YI SYLLABLE NBUX
-A087;ID # YI SYLLABLE NBU
-A088;ID # YI SYLLABLE NBUP
-A089;ID # YI SYLLABLE NBURX
-A08A;ID # YI SYLLABLE NBUR
-A08B;ID # YI SYLLABLE NBYT
-A08C;ID # YI SYLLABLE NBYX
-A08D;ID # YI SYLLABLE NBY
-A08E;ID # YI SYLLABLE NBYP
-A08F;ID # YI SYLLABLE NBYRX
-A090;ID # YI SYLLABLE NBYR
-A091;ID # YI SYLLABLE HMIT
-A092;ID # YI SYLLABLE HMIX
-A093;ID # YI SYLLABLE HMI
-A094;ID # YI SYLLABLE HMIP
-A095;ID # YI SYLLABLE HMIEX
-A096;ID # YI SYLLABLE HMIE
-A097;ID # YI SYLLABLE HMIEP
-A098;ID # YI SYLLABLE HMAT
-A099;ID # YI SYLLABLE HMAX
-A09A;ID # YI SYLLABLE HMA
-A09B;ID # YI SYLLABLE HMAP
-A09C;ID # YI SYLLABLE HMUOX
-A09D;ID # YI SYLLABLE HMUO
-A09E;ID # YI SYLLABLE HMUOP
-A09F;ID # YI SYLLABLE HMOT
-A0A0;ID # YI SYLLABLE HMOX
-A0A1;ID # YI SYLLABLE HMO
-A0A2;ID # YI SYLLABLE HMOP
-A0A3;ID # YI SYLLABLE HMUT
-A0A4;ID # YI SYLLABLE HMUX
-A0A5;ID # YI SYLLABLE HMU
-A0A6;ID # YI SYLLABLE HMUP
-A0A7;ID # YI SYLLABLE HMURX
-A0A8;ID # YI SYLLABLE HMUR
-A0A9;ID # YI SYLLABLE HMYX
-A0AA;ID # YI SYLLABLE HMY
-A0AB;ID # YI SYLLABLE HMYP
-A0AC;ID # YI SYLLABLE HMYRX
-A0AD;ID # YI SYLLABLE HMYR
-A0AE;ID # YI SYLLABLE MIT
-A0AF;ID # YI SYLLABLE MIX
-A0B0;ID # YI SYLLABLE MI
-A0B1;ID # YI SYLLABLE MIP
-A0B2;ID # YI SYLLABLE MIEX
-A0B3;ID # YI SYLLABLE MIE
-A0B4;ID # YI SYLLABLE MIEP
-A0B5;ID # YI SYLLABLE MAT
-A0B6;ID # YI SYLLABLE MAX
-A0B7;ID # YI SYLLABLE MA
-A0B8;ID # YI SYLLABLE MAP
-A0B9;ID # YI SYLLABLE MUOT
-A0BA;ID # YI SYLLABLE MUOX
-A0BB;ID # YI SYLLABLE MUO
-A0BC;ID # YI SYLLABLE MUOP
-A0BD;ID # YI SYLLABLE MOT
-A0BE;ID # YI SYLLABLE MOX
-A0BF;ID # YI SYLLABLE MO
-A0C0;ID # YI SYLLABLE MOP
-A0C1;ID # YI SYLLABLE MEX
-A0C2;ID # YI SYLLABLE ME
-A0C3;ID # YI SYLLABLE MUT
-A0C4;ID # YI SYLLABLE MUX
-A0C5;ID # YI SYLLABLE MU
-A0C6;ID # YI SYLLABLE MUP
-A0C7;ID # YI SYLLABLE MURX
-A0C8;ID # YI SYLLABLE MUR
-A0C9;ID # YI SYLLABLE MYT
-A0CA;ID # YI SYLLABLE MYX
-A0CB;ID # YI SYLLABLE MY
-A0CC;ID # YI SYLLABLE MYP
-A0CD;ID # YI SYLLABLE FIT
-A0CE;ID # YI SYLLABLE FIX
-A0CF;ID # YI SYLLABLE FI
-A0D0;ID # YI SYLLABLE FIP
-A0D1;ID # YI SYLLABLE FAT
-A0D2;ID # YI SYLLABLE FAX
-A0D3;ID # YI SYLLABLE FA
-A0D4;ID # YI SYLLABLE FAP
-A0D5;ID # YI SYLLABLE FOX
-A0D6;ID # YI SYLLABLE FO
-A0D7;ID # YI SYLLABLE FOP
-A0D8;ID # YI SYLLABLE FUT
-A0D9;ID # YI SYLLABLE FUX
-A0DA;ID # YI SYLLABLE FU
-A0DB;ID # YI SYLLABLE FUP
-A0DC;ID # YI SYLLABLE FURX
-A0DD;ID # YI SYLLABLE FUR
-A0DE;ID # YI SYLLABLE FYT
-A0DF;ID # YI SYLLABLE FYX
-A0E0;ID # YI SYLLABLE FY
-A0E1;ID # YI SYLLABLE FYP
-A0E2;ID # YI SYLLABLE VIT
-A0E3;ID # YI SYLLABLE VIX
-A0E4;ID # YI SYLLABLE VI
-A0E5;ID # YI SYLLABLE VIP
-A0E6;ID # YI SYLLABLE VIET
-A0E7;ID # YI SYLLABLE VIEX
-A0E8;ID # YI SYLLABLE VIE
-A0E9;ID # YI SYLLABLE VIEP
-A0EA;ID # YI SYLLABLE VAT
-A0EB;ID # YI SYLLABLE VAX
-A0EC;ID # YI SYLLABLE VA
-A0ED;ID # YI SYLLABLE VAP
-A0EE;ID # YI SYLLABLE VOT
-A0EF;ID # YI SYLLABLE VOX
-A0F0;ID # YI SYLLABLE VO
-A0F1;ID # YI SYLLABLE VOP
-A0F2;ID # YI SYLLABLE VEX
-A0F3;ID # YI SYLLABLE VEP
-A0F4;ID # YI SYLLABLE VUT
-A0F5;ID # YI SYLLABLE VUX
-A0F6;ID # YI SYLLABLE VU
-A0F7;ID # YI SYLLABLE VUP
-A0F8;ID # YI SYLLABLE VURX
-A0F9;ID # YI SYLLABLE VUR
-A0FA;ID # YI SYLLABLE VYT
-A0FB;ID # YI SYLLABLE VYX
-A0FC;ID # YI SYLLABLE VY
-A0FD;ID # YI SYLLABLE VYP
-A0FE;ID # YI SYLLABLE VYRX
-A0FF;ID # YI SYLLABLE VYR
-A100;ID # YI SYLLABLE DIT
-A101;ID # YI SYLLABLE DIX
-A102;ID # YI SYLLABLE DI
-A103;ID # YI SYLLABLE DIP
-A104;ID # YI SYLLABLE DIEX
-A105;ID # YI SYLLABLE DIE
-A106;ID # YI SYLLABLE DIEP
-A107;ID # YI SYLLABLE DAT
-A108;ID # YI SYLLABLE DAX
-A109;ID # YI SYLLABLE DA
-A10A;ID # YI SYLLABLE DAP
-A10B;ID # YI SYLLABLE DUOX
-A10C;ID # YI SYLLABLE DUO
-A10D;ID # YI SYLLABLE DOT
-A10E;ID # YI SYLLABLE DOX
-A10F;ID # YI SYLLABLE DO
-A110;ID # YI SYLLABLE DOP
-A111;ID # YI SYLLABLE DEX
-A112;ID # YI SYLLABLE DE
-A113;ID # YI SYLLABLE DEP
-A114;ID # YI SYLLABLE DUT
-A115;ID # YI SYLLABLE DUX
-A116;ID # YI SYLLABLE DU
-A117;ID # YI SYLLABLE DUP
-A118;ID # YI SYLLABLE DURX
-A119;ID # YI SYLLABLE DUR
-A11A;ID # YI SYLLABLE TIT
-A11B;ID # YI SYLLABLE TIX
-A11C;ID # YI SYLLABLE TI
-A11D;ID # YI SYLLABLE TIP
-A11E;ID # YI SYLLABLE TIEX
-A11F;ID # YI SYLLABLE TIE
-A120;ID # YI SYLLABLE TIEP
-A121;ID # YI SYLLABLE TAT
-A122;ID # YI SYLLABLE TAX
-A123;ID # YI SYLLABLE TA
-A124;ID # YI SYLLABLE TAP
-A125;ID # YI SYLLABLE TUOT
-A126;ID # YI SYLLABLE TUOX
-A127;ID # YI SYLLABLE TUO
-A128;ID # YI SYLLABLE TUOP
-A129;ID # YI SYLLABLE TOT
-A12A;ID # YI SYLLABLE TOX
-A12B;ID # YI SYLLABLE TO
-A12C;ID # YI SYLLABLE TOP
-A12D;ID # YI SYLLABLE TEX
-A12E;ID # YI SYLLABLE TE
-A12F;ID # YI SYLLABLE TEP
-A130;ID # YI SYLLABLE TUT
-A131;ID # YI SYLLABLE TUX
-A132;ID # YI SYLLABLE TU
-A133;ID # YI SYLLABLE TUP
-A134;ID # YI SYLLABLE TURX
-A135;ID # YI SYLLABLE TUR
-A136;ID # YI SYLLABLE DDIT
-A137;ID # YI SYLLABLE DDIX
-A138;ID # YI SYLLABLE DDI
-A139;ID # YI SYLLABLE DDIP
-A13A;ID # YI SYLLABLE DDIEX
-A13B;ID # YI SYLLABLE DDIE
-A13C;ID # YI SYLLABLE DDIEP
-A13D;ID # YI SYLLABLE DDAT
-A13E;ID # YI SYLLABLE DDAX
-A13F;ID # YI SYLLABLE DDA
-A140;ID # YI SYLLABLE DDAP
-A141;ID # YI SYLLABLE DDUOX
-A142;ID # YI SYLLABLE DDUO
-A143;ID # YI SYLLABLE DDUOP
-A144;ID # YI SYLLABLE DDOT
-A145;ID # YI SYLLABLE DDOX
-A146;ID # YI SYLLABLE DDO
-A147;ID # YI SYLLABLE DDOP
-A148;ID # YI SYLLABLE DDEX
-A149;ID # YI SYLLABLE DDE
-A14A;ID # YI SYLLABLE DDEP
-A14B;ID # YI SYLLABLE DDUT
-A14C;ID # YI SYLLABLE DDUX
-A14D;ID # YI SYLLABLE DDU
-A14E;ID # YI SYLLABLE DDUP
-A14F;ID # YI SYLLABLE DDURX
-A150;ID # YI SYLLABLE DDUR
-A151;ID # YI SYLLABLE NDIT
-A152;ID # YI SYLLABLE NDIX
-A153;ID # YI SYLLABLE NDI
-A154;ID # YI SYLLABLE NDIP
-A155;ID # YI SYLLABLE NDIEX
-A156;ID # YI SYLLABLE NDIE
-A157;ID # YI SYLLABLE NDAT
-A158;ID # YI SYLLABLE NDAX
-A159;ID # YI SYLLABLE NDA
-A15A;ID # YI SYLLABLE NDAP
-A15B;ID # YI SYLLABLE NDOT
-A15C;ID # YI SYLLABLE NDOX
-A15D;ID # YI SYLLABLE NDO
-A15E;ID # YI SYLLABLE NDOP
-A15F;ID # YI SYLLABLE NDEX
-A160;ID # YI SYLLABLE NDE
-A161;ID # YI SYLLABLE NDEP
-A162;ID # YI SYLLABLE NDUT
-A163;ID # YI SYLLABLE NDUX
-A164;ID # YI SYLLABLE NDU
-A165;ID # YI SYLLABLE NDUP
-A166;ID # YI SYLLABLE NDURX
-A167;ID # YI SYLLABLE NDUR
-A168;ID # YI SYLLABLE HNIT
-A169;ID # YI SYLLABLE HNIX
-A16A;ID # YI SYLLABLE HNI
-A16B;ID # YI SYLLABLE HNIP
-A16C;ID # YI SYLLABLE HNIET
-A16D;ID # YI SYLLABLE HNIEX
-A16E;ID # YI SYLLABLE HNIE
-A16F;ID # YI SYLLABLE HNIEP
-A170;ID # YI SYLLABLE HNAT
-A171;ID # YI SYLLABLE HNAX
-A172;ID # YI SYLLABLE HNA
-A173;ID # YI SYLLABLE HNAP
-A174;ID # YI SYLLABLE HNUOX
-A175;ID # YI SYLLABLE HNUO
-A176;ID # YI SYLLABLE HNOT
-A177;ID # YI SYLLABLE HNOX
-A178;ID # YI SYLLABLE HNOP
-A179;ID # YI SYLLABLE HNEX
-A17A;ID # YI SYLLABLE HNE
-A17B;ID # YI SYLLABLE HNEP
-A17C;ID # YI SYLLABLE HNUT
-A17D;ID # YI SYLLABLE NIT
-A17E;ID # YI SYLLABLE NIX
-A17F;ID # YI SYLLABLE NI
-A180;ID # YI SYLLABLE NIP
-A181;ID # YI SYLLABLE NIEX
-A182;ID # YI SYLLABLE NIE
-A183;ID # YI SYLLABLE NIEP
-A184;ID # YI SYLLABLE NAX
-A185;ID # YI SYLLABLE NA
-A186;ID # YI SYLLABLE NAP
-A187;ID # YI SYLLABLE NUOX
-A188;ID # YI SYLLABLE NUO
-A189;ID # YI SYLLABLE NUOP
-A18A;ID # YI SYLLABLE NOT
-A18B;ID # YI SYLLABLE NOX
-A18C;ID # YI SYLLABLE NO
-A18D;ID # YI SYLLABLE NOP
-A18E;ID # YI SYLLABLE NEX
-A18F;ID # YI SYLLABLE NE
-A190;ID # YI SYLLABLE NEP
-A191;ID # YI SYLLABLE NUT
-A192;ID # YI SYLLABLE NUX
-A193;ID # YI SYLLABLE NU
-A194;ID # YI SYLLABLE NUP
-A195;ID # YI SYLLABLE NURX
-A196;ID # YI SYLLABLE NUR
-A197;ID # YI SYLLABLE HLIT
-A198;ID # YI SYLLABLE HLIX
-A199;ID # YI SYLLABLE HLI
-A19A;ID # YI SYLLABLE HLIP
-A19B;ID # YI SYLLABLE HLIEX
-A19C;ID # YI SYLLABLE HLIE
-A19D;ID # YI SYLLABLE HLIEP
-A19E;ID # YI SYLLABLE HLAT
-A19F;ID # YI SYLLABLE HLAX
-A1A0;ID # YI SYLLABLE HLA
-A1A1;ID # YI SYLLABLE HLAP
-A1A2;ID # YI SYLLABLE HLUOX
-A1A3;ID # YI SYLLABLE HLUO
-A1A4;ID # YI SYLLABLE HLUOP
-A1A5;ID # YI SYLLABLE HLOX
-A1A6;ID # YI SYLLABLE HLO
-A1A7;ID # YI SYLLABLE HLOP
-A1A8;ID # YI SYLLABLE HLEX
-A1A9;ID # YI SYLLABLE HLE
-A1AA;ID # YI SYLLABLE HLEP
-A1AB;ID # YI SYLLABLE HLUT
-A1AC;ID # YI SYLLABLE HLUX
-A1AD;ID # YI SYLLABLE HLU
-A1AE;ID # YI SYLLABLE HLUP
-A1AF;ID # YI SYLLABLE HLURX
-A1B0;ID # YI SYLLABLE HLUR
-A1B1;ID # YI SYLLABLE HLYT
-A1B2;ID # YI SYLLABLE HLYX
-A1B3;ID # YI SYLLABLE HLY
-A1B4;ID # YI SYLLABLE HLYP
-A1B5;ID # YI SYLLABLE HLYRX
-A1B6;ID # YI SYLLABLE HLYR
-A1B7;ID # YI SYLLABLE LIT
-A1B8;ID # YI SYLLABLE LIX
-A1B9;ID # YI SYLLABLE LI
-A1BA;ID # YI SYLLABLE LIP
-A1BB;ID # YI SYLLABLE LIET
-A1BC;ID # YI SYLLABLE LIEX
-A1BD;ID # YI SYLLABLE LIE
-A1BE;ID # YI SYLLABLE LIEP
-A1BF;ID # YI SYLLABLE LAT
-A1C0;ID # YI SYLLABLE LAX
-A1C1;ID # YI SYLLABLE LA
-A1C2;ID # YI SYLLABLE LAP
-A1C3;ID # YI SYLLABLE LUOT
-A1C4;ID # YI SYLLABLE LUOX
-A1C5;ID # YI SYLLABLE LUO
-A1C6;ID # YI SYLLABLE LUOP
-A1C7;ID # YI SYLLABLE LOT
-A1C8;ID # YI SYLLABLE LOX
-A1C9;ID # YI SYLLABLE LO
-A1CA;ID # YI SYLLABLE LOP
-A1CB;ID # YI SYLLABLE LEX
-A1CC;ID # YI SYLLABLE LE
-A1CD;ID # YI SYLLABLE LEP
-A1CE;ID # YI SYLLABLE LUT
-A1CF;ID # YI SYLLABLE LUX
-A1D0;ID # YI SYLLABLE LU
-A1D1;ID # YI SYLLABLE LUP
-A1D2;ID # YI SYLLABLE LURX
-A1D3;ID # YI SYLLABLE LUR
-A1D4;ID # YI SYLLABLE LYT
-A1D5;ID # YI SYLLABLE LYX
-A1D6;ID # YI SYLLABLE LY
-A1D7;ID # YI SYLLABLE LYP
-A1D8;ID # YI SYLLABLE LYRX
-A1D9;ID # YI SYLLABLE LYR
-A1DA;ID # YI SYLLABLE GIT
-A1DB;ID # YI SYLLABLE GIX
-A1DC;ID # YI SYLLABLE GI
-A1DD;ID # YI SYLLABLE GIP
-A1DE;ID # YI SYLLABLE GIET
-A1DF;ID # YI SYLLABLE GIEX
-A1E0;ID # YI SYLLABLE GIE
-A1E1;ID # YI SYLLABLE GIEP
-A1E2;ID # YI SYLLABLE GAT
-A1E3;ID # YI SYLLABLE GAX
-A1E4;ID # YI SYLLABLE GA
-A1E5;ID # YI SYLLABLE GAP
-A1E6;ID # YI SYLLABLE GUOT
-A1E7;ID # YI SYLLABLE GUOX
-A1E8;ID # YI SYLLABLE GUO
-A1E9;ID # YI SYLLABLE GUOP
-A1EA;ID # YI SYLLABLE GOT
-A1EB;ID # YI SYLLABLE GOX
-A1EC;ID # YI SYLLABLE GO
-A1ED;ID # YI SYLLABLE GOP
-A1EE;ID # YI SYLLABLE GET
-A1EF;ID # YI SYLLABLE GEX
-A1F0;ID # YI SYLLABLE GE
-A1F1;ID # YI SYLLABLE GEP
-A1F2;ID # YI SYLLABLE GUT
-A1F3;ID # YI SYLLABLE GUX
-A1F4;ID # YI SYLLABLE GU
-A1F5;ID # YI SYLLABLE GUP
-A1F6;ID # YI SYLLABLE GURX
-A1F7;ID # YI SYLLABLE GUR
-A1F8;ID # YI SYLLABLE KIT
-A1F9;ID # YI SYLLABLE KIX
-A1FA;ID # YI SYLLABLE KI
-A1FB;ID # YI SYLLABLE KIP
-A1FC;ID # YI SYLLABLE KIEX
-A1FD;ID # YI SYLLABLE KIE
-A1FE;ID # YI SYLLABLE KIEP
-A1FF;ID # YI SYLLABLE KAT
-A200;ID # YI SYLLABLE KAX
-A201;ID # YI SYLLABLE KA
-A202;ID # YI SYLLABLE KAP
-A203;ID # YI SYLLABLE KUOX
-A204;ID # YI SYLLABLE KUO
-A205;ID # YI SYLLABLE KUOP
-A206;ID # YI SYLLABLE KOT
-A207;ID # YI SYLLABLE KOX
-A208;ID # YI SYLLABLE KO
-A209;ID # YI SYLLABLE KOP
-A20A;ID # YI SYLLABLE KET
-A20B;ID # YI SYLLABLE KEX
-A20C;ID # YI SYLLABLE KE
-A20D;ID # YI SYLLABLE KEP
-A20E;ID # YI SYLLABLE KUT
-A20F;ID # YI SYLLABLE KUX
-A210;ID # YI SYLLABLE KU
-A211;ID # YI SYLLABLE KUP
-A212;ID # YI SYLLABLE KURX
-A213;ID # YI SYLLABLE KUR
-A214;ID # YI SYLLABLE GGIT
-A215;ID # YI SYLLABLE GGIX
-A216;ID # YI SYLLABLE GGI
-A217;ID # YI SYLLABLE GGIEX
-A218;ID # YI SYLLABLE GGIE
-A219;ID # YI SYLLABLE GGIEP
-A21A;ID # YI SYLLABLE GGAT
-A21B;ID # YI SYLLABLE GGAX
-A21C;ID # YI SYLLABLE GGA
-A21D;ID # YI SYLLABLE GGAP
-A21E;ID # YI SYLLABLE GGUOT
-A21F;ID # YI SYLLABLE GGUOX
-A220;ID # YI SYLLABLE GGUO
-A221;ID # YI SYLLABLE GGUOP
-A222;ID # YI SYLLABLE GGOT
-A223;ID # YI SYLLABLE GGOX
-A224;ID # YI SYLLABLE GGO
-A225;ID # YI SYLLABLE GGOP
-A226;ID # YI SYLLABLE GGET
-A227;ID # YI SYLLABLE GGEX
-A228;ID # YI SYLLABLE GGE
-A229;ID # YI SYLLABLE GGEP
-A22A;ID # YI SYLLABLE GGUT
-A22B;ID # YI SYLLABLE GGUX
-A22C;ID # YI SYLLABLE GGU
-A22D;ID # YI SYLLABLE GGUP
-A22E;ID # YI SYLLABLE GGURX
-A22F;ID # YI SYLLABLE GGUR
-A230;ID # YI SYLLABLE MGIEX
-A231;ID # YI SYLLABLE MGIE
-A232;ID # YI SYLLABLE MGAT
-A233;ID # YI SYLLABLE MGAX
-A234;ID # YI SYLLABLE MGA
-A235;ID # YI SYLLABLE MGAP
-A236;ID # YI SYLLABLE MGUOX
-A237;ID # YI SYLLABLE MGUO
-A238;ID # YI SYLLABLE MGUOP
-A239;ID # YI SYLLABLE MGOT
-A23A;ID # YI SYLLABLE MGOX
-A23B;ID # YI SYLLABLE MGO
-A23C;ID # YI SYLLABLE MGOP
-A23D;ID # YI SYLLABLE MGEX
-A23E;ID # YI SYLLABLE MGE
-A23F;ID # YI SYLLABLE MGEP
-A240;ID # YI SYLLABLE MGUT
-A241;ID # YI SYLLABLE MGUX
-A242;ID # YI SYLLABLE MGU
-A243;ID # YI SYLLABLE MGUP
-A244;ID # YI SYLLABLE MGURX
-A245;ID # YI SYLLABLE MGUR
-A246;ID # YI SYLLABLE HXIT
-A247;ID # YI SYLLABLE HXIX
-A248;ID # YI SYLLABLE HXI
-A249;ID # YI SYLLABLE HXIP
-A24A;ID # YI SYLLABLE HXIET
-A24B;ID # YI SYLLABLE HXIEX
-A24C;ID # YI SYLLABLE HXIE
-A24D;ID # YI SYLLABLE HXIEP
-A24E;ID # YI SYLLABLE HXAT
-A24F;ID # YI SYLLABLE HXAX
-A250;ID # YI SYLLABLE HXA
-A251;ID # YI SYLLABLE HXAP
-A252;ID # YI SYLLABLE HXUOT
-A253;ID # YI SYLLABLE HXUOX
-A254;ID # YI SYLLABLE HXUO
-A255;ID # YI SYLLABLE HXUOP
-A256;ID # YI SYLLABLE HXOT
-A257;ID # YI SYLLABLE HXOX
-A258;ID # YI SYLLABLE HXO
-A259;ID # YI SYLLABLE HXOP
-A25A;ID # YI SYLLABLE HXEX
-A25B;ID # YI SYLLABLE HXE
-A25C;ID # YI SYLLABLE HXEP
-A25D;ID # YI SYLLABLE NGIEX
-A25E;ID # YI SYLLABLE NGIE
-A25F;ID # YI SYLLABLE NGIEP
-A260;ID # YI SYLLABLE NGAT
-A261;ID # YI SYLLABLE NGAX
-A262;ID # YI SYLLABLE NGA
-A263;ID # YI SYLLABLE NGAP
-A264;ID # YI SYLLABLE NGUOT
-A265;ID # YI SYLLABLE NGUOX
-A266;ID # YI SYLLABLE NGUO
-A267;ID # YI SYLLABLE NGOT
-A268;ID # YI SYLLABLE NGOX
-A269;ID # YI SYLLABLE NGO
-A26A;ID # YI SYLLABLE NGOP
-A26B;ID # YI SYLLABLE NGEX
-A26C;ID # YI SYLLABLE NGE
-A26D;ID # YI SYLLABLE NGEP
-A26E;ID # YI SYLLABLE HIT
-A26F;ID # YI SYLLABLE HIEX
-A270;ID # YI SYLLABLE HIE
-A271;ID # YI SYLLABLE HAT
-A272;ID # YI SYLLABLE HAX
-A273;ID # YI SYLLABLE HA
-A274;ID # YI SYLLABLE HAP
-A275;ID # YI SYLLABLE HUOT
-A276;ID # YI SYLLABLE HUOX
-A277;ID # YI SYLLABLE HUO
-A278;ID # YI SYLLABLE HUOP
-A279;ID # YI SYLLABLE HOT
-A27A;ID # YI SYLLABLE HOX
-A27B;ID # YI SYLLABLE HO
-A27C;ID # YI SYLLABLE HOP
-A27D;ID # YI SYLLABLE HEX
-A27E;ID # YI SYLLABLE HE
-A27F;ID # YI SYLLABLE HEP
-A280;ID # YI SYLLABLE WAT
-A281;ID # YI SYLLABLE WAX
-A282;ID # YI SYLLABLE WA
-A283;ID # YI SYLLABLE WAP
-A284;ID # YI SYLLABLE WUOX
-A285;ID # YI SYLLABLE WUO
-A286;ID # YI SYLLABLE WUOP
-A287;ID # YI SYLLABLE WOX
-A288;ID # YI SYLLABLE WO
-A289;ID # YI SYLLABLE WOP
-A28A;ID # YI SYLLABLE WEX
-A28B;ID # YI SYLLABLE WE
-A28C;ID # YI SYLLABLE WEP
-A28D;ID # YI SYLLABLE ZIT
-A28E;ID # YI SYLLABLE ZIX
-A28F;ID # YI SYLLABLE ZI
-A290;ID # YI SYLLABLE ZIP
-A291;ID # YI SYLLABLE ZIEX
-A292;ID # YI SYLLABLE ZIE
-A293;ID # YI SYLLABLE ZIEP
-A294;ID # YI SYLLABLE ZAT
-A295;ID # YI SYLLABLE ZAX
-A296;ID # YI SYLLABLE ZA
-A297;ID # YI SYLLABLE ZAP
-A298;ID # YI SYLLABLE ZUOX
-A299;ID # YI SYLLABLE ZUO
-A29A;ID # YI SYLLABLE ZUOP
-A29B;ID # YI SYLLABLE ZOT
-A29C;ID # YI SYLLABLE ZOX
-A29D;ID # YI SYLLABLE ZO
-A29E;ID # YI SYLLABLE ZOP
-A29F;ID # YI SYLLABLE ZEX
-A2A0;ID # YI SYLLABLE ZE
-A2A1;ID # YI SYLLABLE ZEP
-A2A2;ID # YI SYLLABLE ZUT
-A2A3;ID # YI SYLLABLE ZUX
-A2A4;ID # YI SYLLABLE ZU
-A2A5;ID # YI SYLLABLE ZUP
-A2A6;ID # YI SYLLABLE ZURX
-A2A7;ID # YI SYLLABLE ZUR
-A2A8;ID # YI SYLLABLE ZYT
-A2A9;ID # YI SYLLABLE ZYX
-A2AA;ID # YI SYLLABLE ZY
-A2AB;ID # YI SYLLABLE ZYP
-A2AC;ID # YI SYLLABLE ZYRX
-A2AD;ID # YI SYLLABLE ZYR
-A2AE;ID # YI SYLLABLE CIT
-A2AF;ID # YI SYLLABLE CIX
-A2B0;ID # YI SYLLABLE CI
-A2B1;ID # YI SYLLABLE CIP
-A2B2;ID # YI SYLLABLE CIET
-A2B3;ID # YI SYLLABLE CIEX
-A2B4;ID # YI SYLLABLE CIE
-A2B5;ID # YI SYLLABLE CIEP
-A2B6;ID # YI SYLLABLE CAT
-A2B7;ID # YI SYLLABLE CAX
-A2B8;ID # YI SYLLABLE CA
-A2B9;ID # YI SYLLABLE CAP
-A2BA;ID # YI SYLLABLE CUOX
-A2BB;ID # YI SYLLABLE CUO
-A2BC;ID # YI SYLLABLE CUOP
-A2BD;ID # YI SYLLABLE COT
-A2BE;ID # YI SYLLABLE COX
-A2BF;ID # YI SYLLABLE CO
-A2C0;ID # YI SYLLABLE COP
-A2C1;ID # YI SYLLABLE CEX
-A2C2;ID # YI SYLLABLE CE
-A2C3;ID # YI SYLLABLE CEP
-A2C4;ID # YI SYLLABLE CUT
-A2C5;ID # YI SYLLABLE CUX
-A2C6;ID # YI SYLLABLE CU
-A2C7;ID # YI SYLLABLE CUP
-A2C8;ID # YI SYLLABLE CURX
-A2C9;ID # YI SYLLABLE CUR
-A2CA;ID # YI SYLLABLE CYT
-A2CB;ID # YI SYLLABLE CYX
-A2CC;ID # YI SYLLABLE CY
-A2CD;ID # YI SYLLABLE CYP
-A2CE;ID # YI SYLLABLE CYRX
-A2CF;ID # YI SYLLABLE CYR
-A2D0;ID # YI SYLLABLE ZZIT
-A2D1;ID # YI SYLLABLE ZZIX
-A2D2;ID # YI SYLLABLE ZZI
-A2D3;ID # YI SYLLABLE ZZIP
-A2D4;ID # YI SYLLABLE ZZIET
-A2D5;ID # YI SYLLABLE ZZIEX
-A2D6;ID # YI SYLLABLE ZZIE
-A2D7;ID # YI SYLLABLE ZZIEP
-A2D8;ID # YI SYLLABLE ZZAT
-A2D9;ID # YI SYLLABLE ZZAX
-A2DA;ID # YI SYLLABLE ZZA
-A2DB;ID # YI SYLLABLE ZZAP
-A2DC;ID # YI SYLLABLE ZZOX
-A2DD;ID # YI SYLLABLE ZZO
-A2DE;ID # YI SYLLABLE ZZOP
-A2DF;ID # YI SYLLABLE ZZEX
-A2E0;ID # YI SYLLABLE ZZE
-A2E1;ID # YI SYLLABLE ZZEP
-A2E2;ID # YI SYLLABLE ZZUX
-A2E3;ID # YI SYLLABLE ZZU
-A2E4;ID # YI SYLLABLE ZZUP
-A2E5;ID # YI SYLLABLE ZZURX
-A2E6;ID # YI SYLLABLE ZZUR
-A2E7;ID # YI SYLLABLE ZZYT
-A2E8;ID # YI SYLLABLE ZZYX
-A2E9;ID # YI SYLLABLE ZZY
-A2EA;ID # YI SYLLABLE ZZYP
-A2EB;ID # YI SYLLABLE ZZYRX
-A2EC;ID # YI SYLLABLE ZZYR
-A2ED;ID # YI SYLLABLE NZIT
-A2EE;ID # YI SYLLABLE NZIX
-A2EF;ID # YI SYLLABLE NZI
-A2F0;ID # YI SYLLABLE NZIP
-A2F1;ID # YI SYLLABLE NZIEX
-A2F2;ID # YI SYLLABLE NZIE
-A2F3;ID # YI SYLLABLE NZIEP
-A2F4;ID # YI SYLLABLE NZAT
-A2F5;ID # YI SYLLABLE NZAX
-A2F6;ID # YI SYLLABLE NZA
-A2F7;ID # YI SYLLABLE NZAP
-A2F8;ID # YI SYLLABLE NZUOX
-A2F9;ID # YI SYLLABLE NZUO
-A2FA;ID # YI SYLLABLE NZOX
-A2FB;ID # YI SYLLABLE NZOP
-A2FC;ID # YI SYLLABLE NZEX
-A2FD;ID # YI SYLLABLE NZE
-A2FE;ID # YI SYLLABLE NZUX
-A2FF;ID # YI SYLLABLE NZU
-A300;ID # YI SYLLABLE NZUP
-A301;ID # YI SYLLABLE NZURX
-A302;ID # YI SYLLABLE NZUR
-A303;ID # YI SYLLABLE NZYT
-A304;ID # YI SYLLABLE NZYX
-A305;ID # YI SYLLABLE NZY
-A306;ID # YI SYLLABLE NZYP
-A307;ID # YI SYLLABLE NZYRX
-A308;ID # YI SYLLABLE NZYR
-A309;ID # YI SYLLABLE SIT
-A30A;ID # YI SYLLABLE SIX
-A30B;ID # YI SYLLABLE SI
-A30C;ID # YI SYLLABLE SIP
-A30D;ID # YI SYLLABLE SIEX
-A30E;ID # YI SYLLABLE SIE
-A30F;ID # YI SYLLABLE SIEP
-A310;ID # YI SYLLABLE SAT
-A311;ID # YI SYLLABLE SAX
-A312;ID # YI SYLLABLE SA
-A313;ID # YI SYLLABLE SAP
-A314;ID # YI SYLLABLE SUOX
-A315;ID # YI SYLLABLE SUO
-A316;ID # YI SYLLABLE SUOP
-A317;ID # YI SYLLABLE SOT
-A318;ID # YI SYLLABLE SOX
-A319;ID # YI SYLLABLE SO
-A31A;ID # YI SYLLABLE SOP
-A31B;ID # YI SYLLABLE SEX
-A31C;ID # YI SYLLABLE SE
-A31D;ID # YI SYLLABLE SEP
-A31E;ID # YI SYLLABLE SUT
-A31F;ID # YI SYLLABLE SUX
-A320;ID # YI SYLLABLE SU
-A321;ID # YI SYLLABLE SUP
-A322;ID # YI SYLLABLE SURX
-A323;ID # YI SYLLABLE SUR
-A324;ID # YI SYLLABLE SYT
-A325;ID # YI SYLLABLE SYX
-A326;ID # YI SYLLABLE SY
-A327;ID # YI SYLLABLE SYP
-A328;ID # YI SYLLABLE SYRX
-A329;ID # YI SYLLABLE SYR
-A32A;ID # YI SYLLABLE SSIT
-A32B;ID # YI SYLLABLE SSIX
-A32C;ID # YI SYLLABLE SSI
-A32D;ID # YI SYLLABLE SSIP
-A32E;ID # YI SYLLABLE SSIEX
-A32F;ID # YI SYLLABLE SSIE
-A330;ID # YI SYLLABLE SSIEP
-A331;ID # YI SYLLABLE SSAT
-A332;ID # YI SYLLABLE SSAX
-A333;ID # YI SYLLABLE SSA
-A334;ID # YI SYLLABLE SSAP
-A335;ID # YI SYLLABLE SSOT
-A336;ID # YI SYLLABLE SSOX
-A337;ID # YI SYLLABLE SSO
-A338;ID # YI SYLLABLE SSOP
-A339;ID # YI SYLLABLE SSEX
-A33A;ID # YI SYLLABLE SSE
-A33B;ID # YI SYLLABLE SSEP
-A33C;ID # YI SYLLABLE SSUT
-A33D;ID # YI SYLLABLE SSUX
-A33E;ID # YI SYLLABLE SSU
-A33F;ID # YI SYLLABLE SSUP
-A340;ID # YI SYLLABLE SSYT
-A341;ID # YI SYLLABLE SSYX
-A342;ID # YI SYLLABLE SSY
-A343;ID # YI SYLLABLE SSYP
-A344;ID # YI SYLLABLE SSYRX
-A345;ID # YI SYLLABLE SSYR
-A346;ID # YI SYLLABLE ZHAT
-A347;ID # YI SYLLABLE ZHAX
-A348;ID # YI SYLLABLE ZHA
-A349;ID # YI SYLLABLE ZHAP
-A34A;ID # YI SYLLABLE ZHUOX
-A34B;ID # YI SYLLABLE ZHUO
-A34C;ID # YI SYLLABLE ZHUOP
-A34D;ID # YI SYLLABLE ZHOT
-A34E;ID # YI SYLLABLE ZHOX
-A34F;ID # YI SYLLABLE ZHO
-A350;ID # YI SYLLABLE ZHOP
-A351;ID # YI SYLLABLE ZHET
-A352;ID # YI SYLLABLE ZHEX
-A353;ID # YI SYLLABLE ZHE
-A354;ID # YI SYLLABLE ZHEP
-A355;ID # YI SYLLABLE ZHUT
-A356;ID # YI SYLLABLE ZHUX
-A357;ID # YI SYLLABLE ZHU
-A358;ID # YI SYLLABLE ZHUP
-A359;ID # YI SYLLABLE ZHURX
-A35A;ID # YI SYLLABLE ZHUR
-A35B;ID # YI SYLLABLE ZHYT
-A35C;ID # YI SYLLABLE ZHYX
-A35D;ID # YI SYLLABLE ZHY
-A35E;ID # YI SYLLABLE ZHYP
-A35F;ID # YI SYLLABLE ZHYRX
-A360;ID # YI SYLLABLE ZHYR
-A361;ID # YI SYLLABLE CHAT
-A362;ID # YI SYLLABLE CHAX
-A363;ID # YI SYLLABLE CHA
-A364;ID # YI SYLLABLE CHAP
-A365;ID # YI SYLLABLE CHUOT
-A366;ID # YI SYLLABLE CHUOX
-A367;ID # YI SYLLABLE CHUO
-A368;ID # YI SYLLABLE CHUOP
-A369;ID # YI SYLLABLE CHOT
-A36A;ID # YI SYLLABLE CHOX
-A36B;ID # YI SYLLABLE CHO
-A36C;ID # YI SYLLABLE CHOP
-A36D;ID # YI SYLLABLE CHET
-A36E;ID # YI SYLLABLE CHEX
-A36F;ID # YI SYLLABLE CHE
-A370;ID # YI SYLLABLE CHEP
-A371;ID # YI SYLLABLE CHUX
-A372;ID # YI SYLLABLE CHU
-A373;ID # YI SYLLABLE CHUP
-A374;ID # YI SYLLABLE CHURX
-A375;ID # YI SYLLABLE CHUR
-A376;ID # YI SYLLABLE CHYT
-A377;ID # YI SYLLABLE CHYX
-A378;ID # YI SYLLABLE CHY
-A379;ID # YI SYLLABLE CHYP
-A37A;ID # YI SYLLABLE CHYRX
-A37B;ID # YI SYLLABLE CHYR
-A37C;ID # YI SYLLABLE RRAX
-A37D;ID # YI SYLLABLE RRA
-A37E;ID # YI SYLLABLE RRUOX
-A37F;ID # YI SYLLABLE RRUO
-A380;ID # YI SYLLABLE RROT
-A381;ID # YI SYLLABLE RROX
-A382;ID # YI SYLLABLE RRO
-A383;ID # YI SYLLABLE RROP
-A384;ID # YI SYLLABLE RRET
-A385;ID # YI SYLLABLE RREX
-A386;ID # YI SYLLABLE RRE
-A387;ID # YI SYLLABLE RREP
-A388;ID # YI SYLLABLE RRUT
-A389;ID # YI SYLLABLE RRUX
-A38A;ID # YI SYLLABLE RRU
-A38B;ID # YI SYLLABLE RRUP
-A38C;ID # YI SYLLABLE RRURX
-A38D;ID # YI SYLLABLE RRUR
-A38E;ID # YI SYLLABLE RRYT
-A38F;ID # YI SYLLABLE RRYX
-A390;ID # YI SYLLABLE RRY
-A391;ID # YI SYLLABLE RRYP
-A392;ID # YI SYLLABLE RRYRX
-A393;ID # YI SYLLABLE RRYR
-A394;ID # YI SYLLABLE NRAT
-A395;ID # YI SYLLABLE NRAX
-A396;ID # YI SYLLABLE NRA
-A397;ID # YI SYLLABLE NRAP
-A398;ID # YI SYLLABLE NROX
-A399;ID # YI SYLLABLE NRO
-A39A;ID # YI SYLLABLE NROP
-A39B;ID # YI SYLLABLE NRET
-A39C;ID # YI SYLLABLE NREX
-A39D;ID # YI SYLLABLE NRE
-A39E;ID # YI SYLLABLE NREP
-A39F;ID # YI SYLLABLE NRUT
-A3A0;ID # YI SYLLABLE NRUX
-A3A1;ID # YI SYLLABLE NRU
-A3A2;ID # YI SYLLABLE NRUP
-A3A3;ID # YI SYLLABLE NRURX
-A3A4;ID # YI SYLLABLE NRUR
-A3A5;ID # YI SYLLABLE NRYT
-A3A6;ID # YI SYLLABLE NRYX
-A3A7;ID # YI SYLLABLE NRY
-A3A8;ID # YI SYLLABLE NRYP
-A3A9;ID # YI SYLLABLE NRYRX
-A3AA;ID # YI SYLLABLE NRYR
-A3AB;ID # YI SYLLABLE SHAT
-A3AC;ID # YI SYLLABLE SHAX
-A3AD;ID # YI SYLLABLE SHA
-A3AE;ID # YI SYLLABLE SHAP
-A3AF;ID # YI SYLLABLE SHUOX
-A3B0;ID # YI SYLLABLE SHUO
-A3B1;ID # YI SYLLABLE SHUOP
-A3B2;ID # YI SYLLABLE SHOT
-A3B3;ID # YI SYLLABLE SHOX
-A3B4;ID # YI SYLLABLE SHO
-A3B5;ID # YI SYLLABLE SHOP
-A3B6;ID # YI SYLLABLE SHET
-A3B7;ID # YI SYLLABLE SHEX
-A3B8;ID # YI SYLLABLE SHE
-A3B9;ID # YI SYLLABLE SHEP
-A3BA;ID # YI SYLLABLE SHUT
-A3BB;ID # YI SYLLABLE SHUX
-A3BC;ID # YI SYLLABLE SHU
-A3BD;ID # YI SYLLABLE SHUP
-A3BE;ID # YI SYLLABLE SHURX
-A3BF;ID # YI SYLLABLE SHUR
-A3C0;ID # YI SYLLABLE SHYT
-A3C1;ID # YI SYLLABLE SHYX
-A3C2;ID # YI SYLLABLE SHY
-A3C3;ID # YI SYLLABLE SHYP
-A3C4;ID # YI SYLLABLE SHYRX
-A3C5;ID # YI SYLLABLE SHYR
-A3C6;ID # YI SYLLABLE RAT
-A3C7;ID # YI SYLLABLE RAX
-A3C8;ID # YI SYLLABLE RA
-A3C9;ID # YI SYLLABLE RAP
-A3CA;ID # YI SYLLABLE RUOX
-A3CB;ID # YI SYLLABLE RUO
-A3CC;ID # YI SYLLABLE RUOP
-A3CD;ID # YI SYLLABLE ROT
-A3CE;ID # YI SYLLABLE ROX
-A3CF;ID # YI SYLLABLE RO
-A3D0;ID # YI SYLLABLE ROP
-A3D1;ID # YI SYLLABLE REX
-A3D2;ID # YI SYLLABLE RE
-A3D3;ID # YI SYLLABLE REP
-A3D4;ID # YI SYLLABLE RUT
-A3D5;ID # YI SYLLABLE RUX
-A3D6;ID # YI SYLLABLE RU
-A3D7;ID # YI SYLLABLE RUP
-A3D8;ID # YI SYLLABLE RURX
-A3D9;ID # YI SYLLABLE RUR
-A3DA;ID # YI SYLLABLE RYT
-A3DB;ID # YI SYLLABLE RYX
-A3DC;ID # YI SYLLABLE RY
-A3DD;ID # YI SYLLABLE RYP
-A3DE;ID # YI SYLLABLE RYRX
-A3DF;ID # YI SYLLABLE RYR
-A3E0;ID # YI SYLLABLE JIT
-A3E1;ID # YI SYLLABLE JIX
-A3E2;ID # YI SYLLABLE JI
-A3E3;ID # YI SYLLABLE JIP
-A3E4;ID # YI SYLLABLE JIET
-A3E5;ID # YI SYLLABLE JIEX
-A3E6;ID # YI SYLLABLE JIE
-A3E7;ID # YI SYLLABLE JIEP
-A3E8;ID # YI SYLLABLE JUOT
-A3E9;ID # YI SYLLABLE JUOX
-A3EA;ID # YI SYLLABLE JUO
-A3EB;ID # YI SYLLABLE JUOP
-A3EC;ID # YI SYLLABLE JOT
-A3ED;ID # YI SYLLABLE JOX
-A3EE;ID # YI SYLLABLE JO
-A3EF;ID # YI SYLLABLE JOP
-A3F0;ID # YI SYLLABLE JUT
-A3F1;ID # YI SYLLABLE JUX
-A3F2;ID # YI SYLLABLE JU
-A3F3;ID # YI SYLLABLE JUP
-A3F4;ID # YI SYLLABLE JURX
-A3F5;ID # YI SYLLABLE JUR
-A3F6;ID # YI SYLLABLE JYT
-A3F7;ID # YI SYLLABLE JYX
-A3F8;ID # YI SYLLABLE JY
-A3F9;ID # YI SYLLABLE JYP
-A3FA;ID # YI SYLLABLE JYRX
-A3FB;ID # YI SYLLABLE JYR
-A3FC;ID # YI SYLLABLE QIT
-A3FD;ID # YI SYLLABLE QIX
-A3FE;ID # YI SYLLABLE QI
-A3FF;ID # YI SYLLABLE QIP
-A400;ID # YI SYLLABLE QIET
-A401;ID # YI SYLLABLE QIEX
-A402;ID # YI SYLLABLE QIE
-A403;ID # YI SYLLABLE QIEP
-A404;ID # YI SYLLABLE QUOT
-A405;ID # YI SYLLABLE QUOX
-A406;ID # YI SYLLABLE QUO
-A407;ID # YI SYLLABLE QUOP
-A408;ID # YI SYLLABLE QOT
-A409;ID # YI SYLLABLE QOX
-A40A;ID # YI SYLLABLE QO
-A40B;ID # YI SYLLABLE QOP
-A40C;ID # YI SYLLABLE QUT
-A40D;ID # YI SYLLABLE QUX
-A40E;ID # YI SYLLABLE QU
-A40F;ID # YI SYLLABLE QUP
-A410;ID # YI SYLLABLE QURX
-A411;ID # YI SYLLABLE QUR
-A412;ID # YI SYLLABLE QYT
-A413;ID # YI SYLLABLE QYX
-A414;ID # YI SYLLABLE QY
-A415;ID # YI SYLLABLE QYP
-A416;ID # YI SYLLABLE QYRX
-A417;ID # YI SYLLABLE QYR
-A418;ID # YI SYLLABLE JJIT
-A419;ID # YI SYLLABLE JJIX
-A41A;ID # YI SYLLABLE JJI
-A41B;ID # YI SYLLABLE JJIP
-A41C;ID # YI SYLLABLE JJIET
-A41D;ID # YI SYLLABLE JJIEX
-A41E;ID # YI SYLLABLE JJIE
-A41F;ID # YI SYLLABLE JJIEP
-A420;ID # YI SYLLABLE JJUOX
-A421;ID # YI SYLLABLE JJUO
-A422;ID # YI SYLLABLE JJUOP
-A423;ID # YI SYLLABLE JJOT
-A424;ID # YI SYLLABLE JJOX
-A425;ID # YI SYLLABLE JJO
-A426;ID # YI SYLLABLE JJOP
-A427;ID # YI SYLLABLE JJUT
-A428;ID # YI SYLLABLE JJUX
-A429;ID # YI SYLLABLE JJU
-A42A;ID # YI SYLLABLE JJUP
-A42B;ID # YI SYLLABLE JJURX
-A42C;ID # YI SYLLABLE JJUR
-A42D;ID # YI SYLLABLE JJYT
-A42E;ID # YI SYLLABLE JJYX
-A42F;ID # YI SYLLABLE JJY
-A430;ID # YI SYLLABLE JJYP
-A431;ID # YI SYLLABLE NJIT
-A432;ID # YI SYLLABLE NJIX
-A433;ID # YI SYLLABLE NJI
-A434;ID # YI SYLLABLE NJIP
-A435;ID # YI SYLLABLE NJIET
-A436;ID # YI SYLLABLE NJIEX
-A437;ID # YI SYLLABLE NJIE
-A438;ID # YI SYLLABLE NJIEP
-A439;ID # YI SYLLABLE NJUOX
-A43A;ID # YI SYLLABLE NJUO
-A43B;ID # YI SYLLABLE NJOT
-A43C;ID # YI SYLLABLE NJOX
-A43D;ID # YI SYLLABLE NJO
-A43E;ID # YI SYLLABLE NJOP
-A43F;ID # YI SYLLABLE NJUX
-A440;ID # YI SYLLABLE NJU
-A441;ID # YI SYLLABLE NJUP
-A442;ID # YI SYLLABLE NJURX
-A443;ID # YI SYLLABLE NJUR
-A444;ID # YI SYLLABLE NJYT
-A445;ID # YI SYLLABLE NJYX
-A446;ID # YI SYLLABLE NJY
-A447;ID # YI SYLLABLE NJYP
-A448;ID # YI SYLLABLE NJYRX
-A449;ID # YI SYLLABLE NJYR
-A44A;ID # YI SYLLABLE NYIT
-A44B;ID # YI SYLLABLE NYIX
-A44C;ID # YI SYLLABLE NYI
-A44D;ID # YI SYLLABLE NYIP
-A44E;ID # YI SYLLABLE NYIET
-A44F;ID # YI SYLLABLE NYIEX
-A450;ID # YI SYLLABLE NYIE
-A451;ID # YI SYLLABLE NYIEP
-A452;ID # YI SYLLABLE NYUOX
-A453;ID # YI SYLLABLE NYUO
-A454;ID # YI SYLLABLE NYUOP
-A455;ID # YI SYLLABLE NYOT
-A456;ID # YI SYLLABLE NYOX
-A457;ID # YI SYLLABLE NYO
-A458;ID # YI SYLLABLE NYOP
-A459;ID # YI SYLLABLE NYUT
-A45A;ID # YI SYLLABLE NYUX
-A45B;ID # YI SYLLABLE NYU
-A45C;ID # YI SYLLABLE NYUP
-A45D;ID # YI SYLLABLE XIT
-A45E;ID # YI SYLLABLE XIX
-A45F;ID # YI SYLLABLE XI
-A460;ID # YI SYLLABLE XIP
-A461;ID # YI SYLLABLE XIET
-A462;ID # YI SYLLABLE XIEX
-A463;ID # YI SYLLABLE XIE
-A464;ID # YI SYLLABLE XIEP
-A465;ID # YI SYLLABLE XUOX
-A466;ID # YI SYLLABLE XUO
-A467;ID # YI SYLLABLE XOT
-A468;ID # YI SYLLABLE XOX
-A469;ID # YI SYLLABLE XO
-A46A;ID # YI SYLLABLE XOP
-A46B;ID # YI SYLLABLE XYT
-A46C;ID # YI SYLLABLE XYX
-A46D;ID # YI SYLLABLE XY
-A46E;ID # YI SYLLABLE XYP
-A46F;ID # YI SYLLABLE XYRX
-A470;ID # YI SYLLABLE XYR
-A471;ID # YI SYLLABLE YIT
-A472;ID # YI SYLLABLE YIX
-A473;ID # YI SYLLABLE YI
-A474;ID # YI SYLLABLE YIP
-A475;ID # YI SYLLABLE YIET
-A476;ID # YI SYLLABLE YIEX
-A477;ID # YI SYLLABLE YIE
-A478;ID # YI SYLLABLE YIEP
-A479;ID # YI SYLLABLE YUOT
-A47A;ID # YI SYLLABLE YUOX
-A47B;ID # YI SYLLABLE YUO
-A47C;ID # YI SYLLABLE YUOP
-A47D;ID # YI SYLLABLE YOT
-A47E;ID # YI SYLLABLE YOX
-A47F;ID # YI SYLLABLE YO
-A480;ID # YI SYLLABLE YOP
-A481;ID # YI SYLLABLE YUT
-A482;ID # YI SYLLABLE YUX
-A483;ID # YI SYLLABLE YU
-A484;ID # YI SYLLABLE YUP
-A485;ID # YI SYLLABLE YURX
-A486;ID # YI SYLLABLE YUR
-A487;ID # YI SYLLABLE YYT
-A488;ID # YI SYLLABLE YYX
-A489;ID # YI SYLLABLE YY
-A48A;ID # YI SYLLABLE YYP
-A48B;ID # YI SYLLABLE YYRX
-A48C;ID # YI SYLLABLE YYR
-A490;ID # YI RADICAL QOT
-A491;ID # YI RADICAL LI
-A492;ID # YI RADICAL KIT
-A493;ID # YI RADICAL NYIP
-A494;ID # YI RADICAL CYP
-A495;ID # YI RADICAL SSI
-A496;ID # YI RADICAL GGOP
-A497;ID # YI RADICAL GEP
-A498;ID # YI RADICAL MI
-A499;ID # YI RADICAL HXIT
-A49A;ID # YI RADICAL LYR
-A49B;ID # YI RADICAL BBUT
-A49C;ID # YI RADICAL MOP
-A49D;ID # YI RADICAL YO
-A49E;ID # YI RADICAL PUT
-A49F;ID # YI RADICAL HXUO
-A4A0;ID # YI RADICAL TAT
-A4A1;ID # YI RADICAL GA
-A4A2;ID # YI RADICAL ZUP
-A4A3;ID # YI RADICAL CYT
-A4A4;ID # YI RADICAL DDUR
-A4A5;ID # YI RADICAL BUR
-A4A6;ID # YI RADICAL GGUO
-A4A7;ID # YI RADICAL NYOP
-A4A8;ID # YI RADICAL TU
-A4A9;ID # YI RADICAL OP
-A4AA;ID # YI RADICAL JJUT
-A4AB;ID # YI RADICAL ZOT
-A4AC;ID # YI RADICAL PYT
-A4AD;ID # YI RADICAL HMO
-A4AE;ID # YI RADICAL YIT
-A4AF;ID # YI RADICAL VUR
-A4B0;ID # YI RADICAL SHY
-A4B1;ID # YI RADICAL VEP
-A4B2;ID # YI RADICAL ZA
-A4B3;ID # YI RADICAL JO
-A4B4;ID # YI RADICAL NZUP
-A4B5;ID # YI RADICAL JJY
-A4B6;ID # YI RADICAL GOT
-A4B7;ID # YI RADICAL JJIE
-A4B8;ID # YI RADICAL WO
-A4B9;ID # YI RADICAL DU
-A4BA;ID # YI RADICAL SHUR
-A4BB;ID # YI RADICAL LIE
-A4BC;ID # YI RADICAL CY
-A4BD;ID # YI RADICAL CUOP
-A4BE;ID # YI RADICAL CIP
-A4BF;ID # YI RADICAL HXOP
-A4C0;ID # YI RADICAL SHAT
-A4C1;ID # YI RADICAL ZUR
-A4C2;ID # YI RADICAL SHOP
-A4C3;ID # YI RADICAL CHE
-A4C4;ID # YI RADICAL ZZIET
-A4C5;ID # YI RADICAL NBIE
-A4C6;ID # YI RADICAL KE
-A4D0;AL # LISU LETTER BA
-A4D1;AL # LISU LETTER PA
-A4D2;AL # LISU LETTER PHA
-A4D3;AL # LISU LETTER DA
-A4D4;AL # LISU LETTER TA
-A4D5;AL # LISU LETTER THA
-A4D6;AL # LISU LETTER GA
-A4D7;AL # LISU LETTER KA
-A4D8;AL # LISU LETTER KHA
-A4D9;AL # LISU LETTER JA
-A4DA;AL # LISU LETTER CA
-A4DB;AL # LISU LETTER CHA
-A4DC;AL # LISU LETTER DZA
-A4DD;AL # LISU LETTER TSA
-A4DE;AL # LISU LETTER TSHA
-A4DF;AL # LISU LETTER MA
-A4E0;AL # LISU LETTER NA
-A4E1;AL # LISU LETTER LA
-A4E2;AL # LISU LETTER SA
-A4E3;AL # LISU LETTER ZHA
-A4E4;AL # LISU LETTER ZA
-A4E5;AL # LISU LETTER NGA
-A4E6;AL # LISU LETTER HA
-A4E7;AL # LISU LETTER XA
-A4E8;AL # LISU LETTER HHA
-A4E9;AL # LISU LETTER FA
-A4EA;AL # LISU LETTER WA
-A4EB;AL # LISU LETTER SHA
-A4EC;AL # LISU LETTER YA
-A4ED;AL # LISU LETTER GHA
-A4EE;AL # LISU LETTER A
-A4EF;AL # LISU LETTER AE
-A4F0;AL # LISU LETTER E
-A4F1;AL # LISU LETTER EU
-A4F2;AL # LISU LETTER I
-A4F3;AL # LISU LETTER O
-A4F4;AL # LISU LETTER U
-A4F5;AL # LISU LETTER UE
-A4F6;AL # LISU LETTER UH
-A4F7;AL # LISU LETTER OE
-A4F8;AL # LISU LETTER TONE MYA TI
-A4F9;AL # LISU LETTER TONE NA PO
-A4FA;AL # LISU LETTER TONE MYA CYA
-A4FB;AL # LISU LETTER TONE MYA BO
-A4FC;AL # LISU LETTER TONE MYA NA
-A4FD;AL # LISU LETTER TONE MYA JEU
-A4FE;BA # LISU PUNCTUATION COMMA
-A4FF;BA # LISU PUNCTUATION FULL STOP
-A500;AL # VAI SYLLABLE EE
-A501;AL # VAI SYLLABLE EEN
-A502;AL # VAI SYLLABLE HEE
-A503;AL # VAI SYLLABLE WEE
-A504;AL # VAI SYLLABLE WEEN
-A505;AL # VAI SYLLABLE PEE
-A506;AL # VAI SYLLABLE BHEE
-A507;AL # VAI SYLLABLE BEE
-A508;AL # VAI SYLLABLE MBEE
-A509;AL # VAI SYLLABLE KPEE
-A50A;AL # VAI SYLLABLE MGBEE
-A50B;AL # VAI SYLLABLE GBEE
-A50C;AL # VAI SYLLABLE FEE
-A50D;AL # VAI SYLLABLE VEE
-A50E;AL # VAI SYLLABLE TEE
-A50F;AL # VAI SYLLABLE THEE
-A510;AL # VAI SYLLABLE DHEE
-A511;AL # VAI SYLLABLE DHHEE
-A512;AL # VAI SYLLABLE LEE
-A513;AL # VAI SYLLABLE REE
-A514;AL # VAI SYLLABLE DEE
-A515;AL # VAI SYLLABLE NDEE
-A516;AL # VAI SYLLABLE SEE
-A517;AL # VAI SYLLABLE SHEE
-A518;AL # VAI SYLLABLE ZEE
-A519;AL # VAI SYLLABLE ZHEE
-A51A;AL # VAI SYLLABLE CEE
-A51B;AL # VAI SYLLABLE JEE
-A51C;AL # VAI SYLLABLE NJEE
-A51D;AL # VAI SYLLABLE YEE
-A51E;AL # VAI SYLLABLE KEE
-A51F;AL # VAI SYLLABLE NGGEE
-A520;AL # VAI SYLLABLE GEE
-A521;AL # VAI SYLLABLE MEE
-A522;AL # VAI SYLLABLE NEE
-A523;AL # VAI SYLLABLE NYEE
-A524;AL # VAI SYLLABLE I
-A525;AL # VAI SYLLABLE IN
-A526;AL # VAI SYLLABLE HI
-A527;AL # VAI SYLLABLE HIN
-A528;AL # VAI SYLLABLE WI
-A529;AL # VAI SYLLABLE WIN
-A52A;AL # VAI SYLLABLE PI
-A52B;AL # VAI SYLLABLE BHI
-A52C;AL # VAI SYLLABLE BI
-A52D;AL # VAI SYLLABLE MBI
-A52E;AL # VAI SYLLABLE KPI
-A52F;AL # VAI SYLLABLE MGBI
-A530;AL # VAI SYLLABLE GBI
-A531;AL # VAI SYLLABLE FI
-A532;AL # VAI SYLLABLE VI
-A533;AL # VAI SYLLABLE TI
-A534;AL # VAI SYLLABLE THI
-A535;AL # VAI SYLLABLE DHI
-A536;AL # VAI SYLLABLE DHHI
-A537;AL # VAI SYLLABLE LI
-A538;AL # VAI SYLLABLE RI
-A539;AL # VAI SYLLABLE DI
-A53A;AL # VAI SYLLABLE NDI
-A53B;AL # VAI SYLLABLE SI
-A53C;AL # VAI SYLLABLE SHI
-A53D;AL # VAI SYLLABLE ZI
-A53E;AL # VAI SYLLABLE ZHI
-A53F;AL # VAI SYLLABLE CI
-A540;AL # VAI SYLLABLE JI
-A541;AL # VAI SYLLABLE NJI
-A542;AL # VAI SYLLABLE YI
-A543;AL # VAI SYLLABLE KI
-A544;AL # VAI SYLLABLE NGGI
-A545;AL # VAI SYLLABLE GI
-A546;AL # VAI SYLLABLE MI
-A547;AL # VAI SYLLABLE NI
-A548;AL # VAI SYLLABLE NYI
-A549;AL # VAI SYLLABLE A
-A54A;AL # VAI SYLLABLE AN
-A54B;AL # VAI SYLLABLE NGAN
-A54C;AL # VAI SYLLABLE HA
-A54D;AL # VAI SYLLABLE HAN
-A54E;AL # VAI SYLLABLE WA
-A54F;AL # VAI SYLLABLE WAN
-A550;AL # VAI SYLLABLE PA
-A551;AL # VAI SYLLABLE BHA
-A552;AL # VAI SYLLABLE BA
-A553;AL # VAI SYLLABLE MBA
-A554;AL # VAI SYLLABLE KPA
-A555;AL # VAI SYLLABLE KPAN
-A556;AL # VAI SYLLABLE MGBA
-A557;AL # VAI SYLLABLE GBA
-A558;AL # VAI SYLLABLE FA
-A559;AL # VAI SYLLABLE VA
-A55A;AL # VAI SYLLABLE TA
-A55B;AL # VAI SYLLABLE THA
-A55C;AL # VAI SYLLABLE DHA
-A55D;AL # VAI SYLLABLE DHHA
-A55E;AL # VAI SYLLABLE LA
-A55F;AL # VAI SYLLABLE RA
-A560;AL # VAI SYLLABLE DA
-A561;AL # VAI SYLLABLE NDA
-A562;AL # VAI SYLLABLE SA
-A563;AL # VAI SYLLABLE SHA
-A564;AL # VAI SYLLABLE ZA
-A565;AL # VAI SYLLABLE ZHA
-A566;AL # VAI SYLLABLE CA
-A567;AL # VAI SYLLABLE JA
-A568;AL # VAI SYLLABLE NJA
-A569;AL # VAI SYLLABLE YA
-A56A;AL # VAI SYLLABLE KA
-A56B;AL # VAI SYLLABLE KAN
-A56C;AL # VAI SYLLABLE NGGA
-A56D;AL # VAI SYLLABLE GA
-A56E;AL # VAI SYLLABLE MA
-A56F;AL # VAI SYLLABLE NA
-A570;AL # VAI SYLLABLE NYA
-A571;AL # VAI SYLLABLE OO
-A572;AL # VAI SYLLABLE OON
-A573;AL # VAI SYLLABLE HOO
-A574;AL # VAI SYLLABLE WOO
-A575;AL # VAI SYLLABLE WOON
-A576;AL # VAI SYLLABLE POO
-A577;AL # VAI SYLLABLE BHOO
-A578;AL # VAI SYLLABLE BOO
-A579;AL # VAI SYLLABLE MBOO
-A57A;AL # VAI SYLLABLE KPOO
-A57B;AL # VAI SYLLABLE MGBOO
-A57C;AL # VAI SYLLABLE GBOO
-A57D;AL # VAI SYLLABLE FOO
-A57E;AL # VAI SYLLABLE VOO
-A57F;AL # VAI SYLLABLE TOO
-A580;AL # VAI SYLLABLE THOO
-A581;AL # VAI SYLLABLE DHOO
-A582;AL # VAI SYLLABLE DHHOO
-A583;AL # VAI SYLLABLE LOO
-A584;AL # VAI SYLLABLE ROO
-A585;AL # VAI SYLLABLE DOO
-A586;AL # VAI SYLLABLE NDOO
-A587;AL # VAI SYLLABLE SOO
-A588;AL # VAI SYLLABLE SHOO
-A589;AL # VAI SYLLABLE ZOO
-A58A;AL # VAI SYLLABLE ZHOO
-A58B;AL # VAI SYLLABLE COO
-A58C;AL # VAI SYLLABLE JOO
-A58D;AL # VAI SYLLABLE NJOO
-A58E;AL # VAI SYLLABLE YOO
-A58F;AL # VAI SYLLABLE KOO
-A590;AL # VAI SYLLABLE NGGOO
-A591;AL # VAI SYLLABLE GOO
-A592;AL # VAI SYLLABLE MOO
-A593;AL # VAI SYLLABLE NOO
-A594;AL # VAI SYLLABLE NYOO
-A595;AL # VAI SYLLABLE U
-A596;AL # VAI SYLLABLE UN
-A597;AL # VAI SYLLABLE HU
-A598;AL # VAI SYLLABLE HUN
-A599;AL # VAI SYLLABLE WU
-A59A;AL # VAI SYLLABLE WUN
-A59B;AL # VAI SYLLABLE PU
-A59C;AL # VAI SYLLABLE BHU
-A59D;AL # VAI SYLLABLE BU
-A59E;AL # VAI SYLLABLE MBU
-A59F;AL # VAI SYLLABLE KPU
-A5A0;AL # VAI SYLLABLE MGBU
-A5A1;AL # VAI SYLLABLE GBU
-A5A2;AL # VAI SYLLABLE FU
-A5A3;AL # VAI SYLLABLE VU
-A5A4;AL # VAI SYLLABLE TU
-A5A5;AL # VAI SYLLABLE THU
-A5A6;AL # VAI SYLLABLE DHU
-A5A7;AL # VAI SYLLABLE DHHU
-A5A8;AL # VAI SYLLABLE LU
-A5A9;AL # VAI SYLLABLE RU
-A5AA;AL # VAI SYLLABLE DU
-A5AB;AL # VAI SYLLABLE NDU
-A5AC;AL # VAI SYLLABLE SU
-A5AD;AL # VAI SYLLABLE SHU
-A5AE;AL # VAI SYLLABLE ZU
-A5AF;AL # VAI SYLLABLE ZHU
-A5B0;AL # VAI SYLLABLE CU
-A5B1;AL # VAI SYLLABLE JU
-A5B2;AL # VAI SYLLABLE NJU
-A5B3;AL # VAI SYLLABLE YU
-A5B4;AL # VAI SYLLABLE KU
-A5B5;AL # VAI SYLLABLE NGGU
-A5B6;AL # VAI SYLLABLE GU
-A5B7;AL # VAI SYLLABLE MU
-A5B8;AL # VAI SYLLABLE NU
-A5B9;AL # VAI SYLLABLE NYU
-A5BA;AL # VAI SYLLABLE O
-A5BB;AL # VAI SYLLABLE ON
-A5BC;AL # VAI SYLLABLE NGON
-A5BD;AL # VAI SYLLABLE HO
-A5BE;AL # VAI SYLLABLE HON
-A5BF;AL # VAI SYLLABLE WO
-A5C0;AL # VAI SYLLABLE WON
-A5C1;AL # VAI SYLLABLE PO
-A5C2;AL # VAI SYLLABLE BHO
-A5C3;AL # VAI SYLLABLE BO
-A5C4;AL # VAI SYLLABLE MBO
-A5C5;AL # VAI SYLLABLE KPO
-A5C6;AL # VAI SYLLABLE MGBO
-A5C7;AL # VAI SYLLABLE GBO
-A5C8;AL # VAI SYLLABLE GBON
-A5C9;AL # VAI SYLLABLE FO
-A5CA;AL # VAI SYLLABLE VO
-A5CB;AL # VAI SYLLABLE TO
-A5CC;AL # VAI SYLLABLE THO
-A5CD;AL # VAI SYLLABLE DHO
-A5CE;AL # VAI SYLLABLE DHHO
-A5CF;AL # VAI SYLLABLE LO
-A5D0;AL # VAI SYLLABLE RO
-A5D1;AL # VAI SYLLABLE DO
-A5D2;AL # VAI SYLLABLE NDO
-A5D3;AL # VAI SYLLABLE SO
-A5D4;AL # VAI SYLLABLE SHO
-A5D5;AL # VAI SYLLABLE ZO
-A5D6;AL # VAI SYLLABLE ZHO
-A5D7;AL # VAI SYLLABLE CO
-A5D8;AL # VAI SYLLABLE JO
-A5D9;AL # VAI SYLLABLE NJO
-A5DA;AL # VAI SYLLABLE YO
-A5DB;AL # VAI SYLLABLE KO
-A5DC;AL # VAI SYLLABLE NGGO
-A5DD;AL # VAI SYLLABLE GO
-A5DE;AL # VAI SYLLABLE MO
-A5DF;AL # VAI SYLLABLE NO
-A5E0;AL # VAI SYLLABLE NYO
-A5E1;AL # VAI SYLLABLE E
-A5E2;AL # VAI SYLLABLE EN
-A5E3;AL # VAI SYLLABLE NGEN
-A5E4;AL # VAI SYLLABLE HE
-A5E5;AL # VAI SYLLABLE HEN
-A5E6;AL # VAI SYLLABLE WE
-A5E7;AL # VAI SYLLABLE WEN
-A5E8;AL # VAI SYLLABLE PE
-A5E9;AL # VAI SYLLABLE BHE
-A5EA;AL # VAI SYLLABLE BE
-A5EB;AL # VAI SYLLABLE MBE
-A5EC;AL # VAI SYLLABLE KPE
-A5ED;AL # VAI SYLLABLE KPEN
-A5EE;AL # VAI SYLLABLE MGBE
-A5EF;AL # VAI SYLLABLE GBE
-A5F0;AL # VAI SYLLABLE GBEN
-A5F1;AL # VAI SYLLABLE FE
-A5F2;AL # VAI SYLLABLE VE
-A5F3;AL # VAI SYLLABLE TE
-A5F4;AL # VAI SYLLABLE THE
-A5F5;AL # VAI SYLLABLE DHE
-A5F6;AL # VAI SYLLABLE DHHE
-A5F7;AL # VAI SYLLABLE LE
-A5F8;AL # VAI SYLLABLE RE
-A5F9;AL # VAI SYLLABLE DE
-A5FA;AL # VAI SYLLABLE NDE
-A5FB;AL # VAI SYLLABLE SE
-A5FC;AL # VAI SYLLABLE SHE
-A5FD;AL # VAI SYLLABLE ZE
-A5FE;AL # VAI SYLLABLE ZHE
-A5FF;AL # VAI SYLLABLE CE
-A600;AL # VAI SYLLABLE JE
-A601;AL # VAI SYLLABLE NJE
-A602;AL # VAI SYLLABLE YE
-A603;AL # VAI SYLLABLE KE
-A604;AL # VAI SYLLABLE NGGE
-A605;AL # VAI SYLLABLE NGGEN
-A606;AL # VAI SYLLABLE GE
-A607;AL # VAI SYLLABLE GEN
-A608;AL # VAI SYLLABLE ME
-A609;AL # VAI SYLLABLE NE
-A60A;AL # VAI SYLLABLE NYE
-A60B;AL # VAI SYLLABLE NG
-A60C;AL # VAI SYLLABLE LENGTHENER
-A60D;BA # VAI COMMA
-A60E;EX # VAI FULL STOP
-A60F;BA # VAI QUESTION MARK
-A610;AL # VAI SYLLABLE NDOLE FA
-A611;AL # VAI SYLLABLE NDOLE KA
-A612;AL # VAI SYLLABLE NDOLE SOO
-A613;AL # VAI SYMBOL FEENG
-A614;AL # VAI SYMBOL KEENG
-A615;AL # VAI SYMBOL TING
-A616;AL # VAI SYMBOL NII
-A617;AL # VAI SYMBOL BANG
-A618;AL # VAI SYMBOL FAA
-A619;AL # VAI SYMBOL TAA
-A61A;AL # VAI SYMBOL DANG
-A61B;AL # VAI SYMBOL DOONG
-A61C;AL # VAI SYMBOL KUNG
-A61D;AL # VAI SYMBOL TONG
-A61E;AL # VAI SYMBOL DO-O
-A61F;AL # VAI SYMBOL JONG
-A620;NU # VAI DIGIT ZERO
-A621;NU # VAI DIGIT ONE
-A622;NU # VAI DIGIT TWO
-A623;NU # VAI DIGIT THREE
-A624;NU # VAI DIGIT FOUR
-A625;NU # VAI DIGIT FIVE
-A626;NU # VAI DIGIT SIX
-A627;NU # VAI DIGIT SEVEN
-A628;NU # VAI DIGIT EIGHT
-A629;NU # VAI DIGIT NINE
-A62A;AL # VAI SYLLABLE NDOLE MA
-A62B;AL # VAI SYLLABLE NDOLE DO
-A640;AL # CYRILLIC CAPITAL LETTER ZEMLYA
-A641;AL # CYRILLIC SMALL LETTER ZEMLYA
-A642;AL # CYRILLIC CAPITAL LETTER DZELO
-A643;AL # CYRILLIC SMALL LETTER DZELO
-A644;AL # CYRILLIC CAPITAL LETTER REVERSED DZE
-A645;AL # CYRILLIC SMALL LETTER REVERSED DZE
-A646;AL # CYRILLIC CAPITAL LETTER IOTA
-A647;AL # CYRILLIC SMALL LETTER IOTA
-A648;AL # CYRILLIC CAPITAL LETTER DJERV
-A649;AL # CYRILLIC SMALL LETTER DJERV
-A64A;AL # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-A64B;AL # CYRILLIC SMALL LETTER MONOGRAPH UK
-A64C;AL # CYRILLIC CAPITAL LETTER BROAD OMEGA
-A64D;AL # CYRILLIC SMALL LETTER BROAD OMEGA
-A64E;AL # CYRILLIC CAPITAL LETTER NEUTRAL YER
-A64F;AL # CYRILLIC SMALL LETTER NEUTRAL YER
-A650;AL # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-A651;AL # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A652;AL # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-A653;AL # CYRILLIC SMALL LETTER IOTIFIED YAT
-A654;AL # CYRILLIC CAPITAL LETTER REVERSED YU
-A655;AL # CYRILLIC SMALL LETTER REVERSED YU
-A656;AL # CYRILLIC CAPITAL LETTER IOTIFIED A
-A657;AL # CYRILLIC SMALL LETTER IOTIFIED A
-A658;AL # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-A659;AL # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A65A;AL # CYRILLIC CAPITAL LETTER BLENDED YUS
-A65B;AL # CYRILLIC SMALL LETTER BLENDED YUS
-A65C;AL # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-A65D;AL # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65E;AL # CYRILLIC CAPITAL LETTER YN
-A65F;AL # CYRILLIC SMALL LETTER YN
-A660;AL # CYRILLIC CAPITAL LETTER REVERSED TSE
-A661;AL # CYRILLIC SMALL LETTER REVERSED TSE
-A662;AL # CYRILLIC CAPITAL LETTER SOFT DE
-A663;AL # CYRILLIC SMALL LETTER SOFT DE
-A664;AL # CYRILLIC CAPITAL LETTER SOFT EL
-A665;AL # CYRILLIC SMALL LETTER SOFT EL
-A666;AL # CYRILLIC CAPITAL LETTER SOFT EM
-A667;AL # CYRILLIC SMALL LETTER SOFT EM
-A668;AL # CYRILLIC CAPITAL LETTER MONOCULAR O
-A669;AL # CYRILLIC SMALL LETTER MONOCULAR O
-A66A;AL # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66B;AL # CYRILLIC SMALL LETTER BINOCULAR O
-A66C;AL # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A66D;AL # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E;AL # CYRILLIC LETTER MULTIOCULAR O
-A66F;CM # COMBINING CYRILLIC VZMET
-A670;CM # COMBINING CYRILLIC TEN MILLIONS SIGN
-A671;CM # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
-A672;CM # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673;AL # SLAVONIC ASTERISK
-A674;CM # COMBINING CYRILLIC LETTER UKRAINIAN IE
-A675;CM # COMBINING CYRILLIC LETTER I
-A676;CM # COMBINING CYRILLIC LETTER YI
-A677;CM # COMBINING CYRILLIC LETTER U
-A678;CM # COMBINING CYRILLIC LETTER HARD SIGN
-A679;CM # COMBINING CYRILLIC LETTER YERU
-A67A;CM # COMBINING CYRILLIC LETTER SOFT SIGN
-A67B;CM # COMBINING CYRILLIC LETTER OMEGA
-A67C;CM # COMBINING CYRILLIC KAVYKA
-A67D;CM # COMBINING CYRILLIC PAYEROK
-A67E;AL # CYRILLIC KAVYKA
-A67F;AL # CYRILLIC PAYEROK
-A680;AL # CYRILLIC CAPITAL LETTER DWE
-A681;AL # CYRILLIC SMALL LETTER DWE
-A682;AL # CYRILLIC CAPITAL LETTER DZWE
-A683;AL # CYRILLIC SMALL LETTER DZWE
-A684;AL # CYRILLIC CAPITAL LETTER ZHWE
-A685;AL # CYRILLIC SMALL LETTER ZHWE
-A686;AL # CYRILLIC CAPITAL LETTER CCHE
-A687;AL # CYRILLIC SMALL LETTER CCHE
-A688;AL # CYRILLIC CAPITAL LETTER DZZE
-A689;AL # CYRILLIC SMALL LETTER DZZE
-A68A;AL # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-A68B;AL # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68C;AL # CYRILLIC CAPITAL LETTER TWE
-A68D;AL # CYRILLIC SMALL LETTER TWE
-A68E;AL # CYRILLIC CAPITAL LETTER TSWE
-A68F;AL # CYRILLIC SMALL LETTER TSWE
-A690;AL # CYRILLIC CAPITAL LETTER TSSE
-A691;AL # CYRILLIC SMALL LETTER TSSE
-A692;AL # CYRILLIC CAPITAL LETTER TCHE
-A693;AL # CYRILLIC SMALL LETTER TCHE
-A694;AL # CYRILLIC CAPITAL LETTER HWE
-A695;AL # CYRILLIC SMALL LETTER HWE
-A696;AL # CYRILLIC CAPITAL LETTER SHWE
-A697;AL # CYRILLIC SMALL LETTER SHWE
-A69F;CM # COMBINING CYRILLIC LETTER IOTIFIED E
-A6A0;AL # BAMUM LETTER A
-A6A1;AL # BAMUM LETTER KA
-A6A2;AL # BAMUM LETTER U
-A6A3;AL # BAMUM LETTER KU
-A6A4;AL # BAMUM LETTER EE
-A6A5;AL # BAMUM LETTER REE
-A6A6;AL # BAMUM LETTER TAE
-A6A7;AL # BAMUM LETTER O
-A6A8;AL # BAMUM LETTER NYI
-A6A9;AL # BAMUM LETTER I
-A6AA;AL # BAMUM LETTER LA
-A6AB;AL # BAMUM LETTER PA
-A6AC;AL # BAMUM LETTER RII
-A6AD;AL # BAMUM LETTER RIEE
-A6AE;AL # BAMUM LETTER LEEEE
-A6AF;AL # BAMUM LETTER MEEEE
-A6B0;AL # BAMUM LETTER TAA
-A6B1;AL # BAMUM LETTER NDAA
-A6B2;AL # BAMUM LETTER NJAEM
-A6B3;AL # BAMUM LETTER M
-A6B4;AL # BAMUM LETTER SUU
-A6B5;AL # BAMUM LETTER MU
-A6B6;AL # BAMUM LETTER SHII
-A6B7;AL # BAMUM LETTER SI
-A6B8;AL # BAMUM LETTER SHEUX
-A6B9;AL # BAMUM LETTER SEUX
-A6BA;AL # BAMUM LETTER KYEE
-A6BB;AL # BAMUM LETTER KET
-A6BC;AL # BAMUM LETTER NUAE
-A6BD;AL # BAMUM LETTER NU
-A6BE;AL # BAMUM LETTER NJUAE
-A6BF;AL # BAMUM LETTER YOQ
-A6C0;AL # BAMUM LETTER SHU
-A6C1;AL # BAMUM LETTER YUQ
-A6C2;AL # BAMUM LETTER YA
-A6C3;AL # BAMUM LETTER NSHA
-A6C4;AL # BAMUM LETTER KEUX
-A6C5;AL # BAMUM LETTER PEUX
-A6C6;AL # BAMUM LETTER NJEE
-A6C7;AL # BAMUM LETTER NTEE
-A6C8;AL # BAMUM LETTER PUE
-A6C9;AL # BAMUM LETTER WUE
-A6CA;AL # BAMUM LETTER PEE
-A6CB;AL # BAMUM LETTER FEE
-A6CC;AL # BAMUM LETTER RU
-A6CD;AL # BAMUM LETTER LU
-A6CE;AL # BAMUM LETTER MI
-A6CF;AL # BAMUM LETTER NI
-A6D0;AL # BAMUM LETTER REUX
-A6D1;AL # BAMUM LETTER RAE
-A6D2;AL # BAMUM LETTER KEN
-A6D3;AL # BAMUM LETTER NGKWAEN
-A6D4;AL # BAMUM LETTER NGGA
-A6D5;AL # BAMUM LETTER NGA
-A6D6;AL # BAMUM LETTER SHO
-A6D7;AL # BAMUM LETTER PUAE
-A6D8;AL # BAMUM LETTER FU
-A6D9;AL # BAMUM LETTER FOM
-A6DA;AL # BAMUM LETTER WA
-A6DB;AL # BAMUM LETTER NA
-A6DC;AL # BAMUM LETTER LI
-A6DD;AL # BAMUM LETTER PI
-A6DE;AL # BAMUM LETTER LOQ
-A6DF;AL # BAMUM LETTER KO
-A6E0;AL # BAMUM LETTER MBEN
-A6E1;AL # BAMUM LETTER REN
-A6E2;AL # BAMUM LETTER MEN
-A6E3;AL # BAMUM LETTER MA
-A6E4;AL # BAMUM LETTER TI
-A6E5;AL # BAMUM LETTER KI
-A6E6;AL # BAMUM LETTER MO
-A6E7;AL # BAMUM LETTER MBAA
-A6E8;AL # BAMUM LETTER TET
-A6E9;AL # BAMUM LETTER KPA
-A6EA;AL # BAMUM LETTER TEN
-A6EB;AL # BAMUM LETTER NTUU
-A6EC;AL # BAMUM LETTER SAMBA
-A6ED;AL # BAMUM LETTER FAAMAE
-A6EE;AL # BAMUM LETTER KOVUU
-A6EF;AL # BAMUM LETTER KOGHOM
-A6F0;CM # BAMUM COMBINING MARK KOQNDON
-A6F1;CM # BAMUM COMBINING MARK TUKWENTIS
-A6F2;AL # BAMUM NJAEMLI
-A6F3;BA # BAMUM FULL STOP
-A6F4;BA # BAMUM COLON
-A6F5;BA # BAMUM COMMA
-A6F6;BA # BAMUM SEMICOLON
-A6F7;BA # BAMUM QUESTION MARK
-A700;AL # MODIFIER LETTER CHINESE TONE YIN PING
-A701;AL # MODIFIER LETTER CHINESE TONE YANG PING
-A702;AL # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703;AL # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704;AL # MODIFIER LETTER CHINESE TONE YIN QU
-A705;AL # MODIFIER LETTER CHINESE TONE YANG QU
-A706;AL # MODIFIER LETTER CHINESE TONE YIN RU
-A707;AL # MODIFIER LETTER CHINESE TONE YANG RU
-A708;AL # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709;AL # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A;AL # MODIFIER LETTER MID DOTTED TONE BAR
-A70B;AL # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C;AL # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D;AL # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E;AL # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F;AL # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710;AL # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711;AL # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712;AL # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713;AL # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714;AL # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715;AL # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716;AL # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717;AL # MODIFIER LETTER DOT VERTICAL BAR
-A718;AL # MODIFIER LETTER DOT SLASH
-A719;AL # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A;AL # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B;AL # MODIFIER LETTER RAISED UP ARROW
-A71C;AL # MODIFIER LETTER RAISED DOWN ARROW
-A71D;AL # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E;AL # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F;AL # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720;AL # MODIFIER LETTER STRESS AND HIGH TONE
-A721;AL # MODIFIER LETTER STRESS AND LOW TONE
-A722;AL # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A723;AL # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A724;AL # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-A725;AL # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A726;AL # LATIN CAPITAL LETTER HENG
-A727;AL # LATIN SMALL LETTER HENG
-A728;AL # LATIN CAPITAL LETTER TZ
-A729;AL # LATIN SMALL LETTER TZ
-A72A;AL # LATIN CAPITAL LETTER TRESILLO
-A72B;AL # LATIN SMALL LETTER TRESILLO
-A72C;AL # LATIN CAPITAL LETTER CUATRILLO
-A72D;AL # LATIN SMALL LETTER CUATRILLO
-A72E;AL # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-A72F;AL # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A730;AL # LATIN LETTER SMALL CAPITAL F
-A731;AL # LATIN LETTER SMALL CAPITAL S
-A732;AL # LATIN CAPITAL LETTER AA
-A733;AL # LATIN SMALL LETTER AA
-A734;AL # LATIN CAPITAL LETTER AO
-A735;AL # LATIN SMALL LETTER AO
-A736;AL # LATIN CAPITAL LETTER AU
-A737;AL # LATIN SMALL LETTER AU
-A738;AL # LATIN CAPITAL LETTER AV
-A739;AL # LATIN SMALL LETTER AV
-A73A;AL # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73B;AL # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73C;AL # LATIN CAPITAL LETTER AY
-A73D;AL # LATIN SMALL LETTER AY
-A73E;AL # LATIN CAPITAL LETTER REVERSED C WITH DOT
-A73F;AL # LATIN SMALL LETTER REVERSED C WITH DOT
-A740;AL # LATIN CAPITAL LETTER K WITH STROKE
-A741;AL # LATIN SMALL LETTER K WITH STROKE
-A742;AL # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A743;AL # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A744;AL # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-A745;AL # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A746;AL # LATIN CAPITAL LETTER BROKEN L
-A747;AL # LATIN SMALL LETTER BROKEN L
-A748;AL # LATIN CAPITAL LETTER L WITH HIGH STROKE
-A749;AL # LATIN SMALL LETTER L WITH HIGH STROKE
-A74A;AL # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-A74B;AL # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74C;AL # LATIN CAPITAL LETTER O WITH LOOP
-A74D;AL # LATIN SMALL LETTER O WITH LOOP
-A74E;AL # LATIN CAPITAL LETTER OO
-A74F;AL # LATIN SMALL LETTER OO
-A750;AL # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-A751;AL # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A752;AL # LATIN CAPITAL LETTER P WITH FLOURISH
-A753;AL # LATIN SMALL LETTER P WITH FLOURISH
-A754;AL # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A755;AL # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A756;AL # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A757;AL # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A758;AL # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-A759;AL # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A75A;AL # LATIN CAPITAL LETTER R ROTUNDA
-A75B;AL # LATIN SMALL LETTER R ROTUNDA
-A75C;AL # LATIN CAPITAL LETTER RUM ROTUNDA
-A75D;AL # LATIN SMALL LETTER RUM ROTUNDA
-A75E;AL # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-A75F;AL # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A760;AL # LATIN CAPITAL LETTER VY
-A761;AL # LATIN SMALL LETTER VY
-A762;AL # LATIN CAPITAL LETTER VISIGOTHIC Z
-A763;AL # LATIN SMALL LETTER VISIGOTHIC Z
-A764;AL # LATIN CAPITAL LETTER THORN WITH STROKE
-A765;AL # LATIN SMALL LETTER THORN WITH STROKE
-A766;AL # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-A767;AL # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A768;AL # LATIN CAPITAL LETTER VEND
-A769;AL # LATIN SMALL LETTER VEND
-A76A;AL # LATIN CAPITAL LETTER ET
-A76B;AL # LATIN SMALL LETTER ET
-A76C;AL # LATIN CAPITAL LETTER IS
-A76D;AL # LATIN SMALL LETTER IS
-A76E;AL # LATIN CAPITAL LETTER CON
-A76F;AL # LATIN SMALL LETTER CON
-A770;AL # MODIFIER LETTER US
-A771;AL # LATIN SMALL LETTER DUM
-A772;AL # LATIN SMALL LETTER LUM
-A773;AL # LATIN SMALL LETTER MUM
-A774;AL # LATIN SMALL LETTER NUM
-A775;AL # LATIN SMALL LETTER RUM
-A776;AL # LATIN LETTER SMALL CAPITAL RUM
-A777;AL # LATIN SMALL LETTER TUM
-A778;AL # LATIN SMALL LETTER UM
-A779;AL # LATIN CAPITAL LETTER INSULAR D
-A77A;AL # LATIN SMALL LETTER INSULAR D
-A77B;AL # LATIN CAPITAL LETTER INSULAR F
-A77C;AL # LATIN SMALL LETTER INSULAR F
-A77D;AL # LATIN CAPITAL LETTER INSULAR G
-A77E;AL # LATIN CAPITAL LETTER TURNED INSULAR G
-A77F;AL # LATIN SMALL LETTER TURNED INSULAR G
-A780;AL # LATIN CAPITAL LETTER TURNED L
-A781;AL # LATIN SMALL LETTER TURNED L
-A782;AL # LATIN CAPITAL LETTER INSULAR R
-A783;AL # LATIN SMALL LETTER INSULAR R
-A784;AL # LATIN CAPITAL LETTER INSULAR S
-A785;AL # LATIN SMALL LETTER INSULAR S
-A786;AL # LATIN CAPITAL LETTER INSULAR T
-A787;AL # LATIN SMALL LETTER INSULAR T
-A788;AL # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789;AL # MODIFIER LETTER COLON
-A78A;AL # MODIFIER LETTER SHORT EQUALS SIGN
-A78B;AL # LATIN CAPITAL LETTER SALTILLO
-A78C;AL # LATIN SMALL LETTER SALTILLO
-A78D;AL # LATIN CAPITAL LETTER TURNED H
-A78E;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790;AL # LATIN CAPITAL LETTER N WITH DESCENDER
-A791;AL # LATIN SMALL LETTER N WITH DESCENDER
-A792;AL # LATIN CAPITAL LETTER C WITH BAR
-A793;AL # LATIN SMALL LETTER C WITH BAR
-A7A0;AL # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-A7A1;AL # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A2;AL # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-A7A3;AL # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A4;AL # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-A7A5;AL # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A6;AL # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-A7A7;AL # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A8;AL # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7A9;AL # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7AA;AL # LATIN CAPITAL LETTER H WITH HOOK
-A7F8;AL # MODIFIER LETTER CAPITAL H WITH STROKE
-A7F9;AL # MODIFIER LETTER SMALL LIGATURE OE
-A7FA;AL # LATIN LETTER SMALL CAPITAL TURNED M
-A7FB;AL # LATIN EPIGRAPHIC LETTER REVERSED F
-A7FC;AL # LATIN EPIGRAPHIC LETTER REVERSED P
-A7FD;AL # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FE;AL # LATIN EPIGRAPHIC LETTER I LONGA
-A7FF;AL # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A800;AL # SYLOTI NAGRI LETTER A
-A801;AL # SYLOTI NAGRI LETTER I
-A802;CM # SYLOTI NAGRI SIGN DVISVARA
-A803;AL # SYLOTI NAGRI LETTER U
-A804;AL # SYLOTI NAGRI LETTER E
-A805;AL # SYLOTI NAGRI LETTER O
-A806;CM # SYLOTI NAGRI SIGN HASANTA
-A807;AL # SYLOTI NAGRI LETTER KO
-A808;AL # SYLOTI NAGRI LETTER KHO
-A809;AL # SYLOTI NAGRI LETTER GO
-A80A;AL # SYLOTI NAGRI LETTER GHO
-A80B;CM # SYLOTI NAGRI SIGN ANUSVARA
-A80C;AL # SYLOTI NAGRI LETTER CO
-A80D;AL # SYLOTI NAGRI LETTER CHO
-A80E;AL # SYLOTI NAGRI LETTER JO
-A80F;AL # SYLOTI NAGRI LETTER JHO
-A810;AL # SYLOTI NAGRI LETTER TTO
-A811;AL # SYLOTI NAGRI LETTER TTHO
-A812;AL # SYLOTI NAGRI LETTER DDO
-A813;AL # SYLOTI NAGRI LETTER DDHO
-A814;AL # SYLOTI NAGRI LETTER TO
-A815;AL # SYLOTI NAGRI LETTER THO
-A816;AL # SYLOTI NAGRI LETTER DO
-A817;AL # SYLOTI NAGRI LETTER DHO
-A818;AL # SYLOTI NAGRI LETTER NO
-A819;AL # SYLOTI NAGRI LETTER PO
-A81A;AL # SYLOTI NAGRI LETTER PHO
-A81B;AL # SYLOTI NAGRI LETTER BO
-A81C;AL # SYLOTI NAGRI LETTER BHO
-A81D;AL # SYLOTI NAGRI LETTER MO
-A81E;AL # SYLOTI NAGRI LETTER RO
-A81F;AL # SYLOTI NAGRI LETTER LO
-A820;AL # SYLOTI NAGRI LETTER RRO
-A821;AL # SYLOTI NAGRI LETTER SO
-A822;AL # SYLOTI NAGRI LETTER HO
-A823;CM # SYLOTI NAGRI VOWEL SIGN A
-A824;CM # SYLOTI NAGRI VOWEL SIGN I
-A825;CM # SYLOTI NAGRI VOWEL SIGN U
-A826;CM # SYLOTI NAGRI VOWEL SIGN E
-A827;CM # SYLOTI NAGRI VOWEL SIGN OO
-A828;AL # SYLOTI NAGRI POETRY MARK-1
-A829;AL # SYLOTI NAGRI POETRY MARK-2
-A82A;AL # SYLOTI NAGRI POETRY MARK-3
-A82B;AL # SYLOTI NAGRI POETRY MARK-4
-A830;AL # NORTH INDIC FRACTION ONE QUARTER
-A831;AL # NORTH INDIC FRACTION ONE HALF
-A832;AL # NORTH INDIC FRACTION THREE QUARTERS
-A833;AL # NORTH INDIC FRACTION ONE SIXTEENTH
-A834;AL # NORTH INDIC FRACTION ONE EIGHTH
-A835;AL # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836;AL # NORTH INDIC QUARTER MARK
-A837;AL # NORTH INDIC PLACEHOLDER MARK
-A838;PO # NORTH INDIC RUPEE MARK
-A839;AL # NORTH INDIC QUANTITY MARK
-A840;AL # PHAGS-PA LETTER KA
-A841;AL # PHAGS-PA LETTER KHA
-A842;AL # PHAGS-PA LETTER GA
-A843;AL # PHAGS-PA LETTER NGA
-A844;AL # PHAGS-PA LETTER CA
-A845;AL # PHAGS-PA LETTER CHA
-A846;AL # PHAGS-PA LETTER JA
-A847;AL # PHAGS-PA LETTER NYA
-A848;AL # PHAGS-PA LETTER TA
-A849;AL # PHAGS-PA LETTER THA
-A84A;AL # PHAGS-PA LETTER DA
-A84B;AL # PHAGS-PA LETTER NA
-A84C;AL # PHAGS-PA LETTER PA
-A84D;AL # PHAGS-PA LETTER PHA
-A84E;AL # PHAGS-PA LETTER BA
-A84F;AL # PHAGS-PA LETTER MA
-A850;AL # PHAGS-PA LETTER TSA
-A851;AL # PHAGS-PA LETTER TSHA
-A852;AL # PHAGS-PA LETTER DZA
-A853;AL # PHAGS-PA LETTER WA
-A854;AL # PHAGS-PA LETTER ZHA
-A855;AL # PHAGS-PA LETTER ZA
-A856;AL # PHAGS-PA LETTER SMALL A
-A857;AL # PHAGS-PA LETTER YA
-A858;AL # PHAGS-PA LETTER RA
-A859;AL # PHAGS-PA LETTER LA
-A85A;AL # PHAGS-PA LETTER SHA
-A85B;AL # PHAGS-PA LETTER SA
-A85C;AL # PHAGS-PA LETTER HA
-A85D;AL # PHAGS-PA LETTER A
-A85E;AL # PHAGS-PA LETTER I
-A85F;AL # PHAGS-PA LETTER U
-A860;AL # PHAGS-PA LETTER E
-A861;AL # PHAGS-PA LETTER O
-A862;AL # PHAGS-PA LETTER QA
-A863;AL # PHAGS-PA LETTER XA
-A864;AL # PHAGS-PA LETTER FA
-A865;AL # PHAGS-PA LETTER GGA
-A866;AL # PHAGS-PA LETTER EE
-A867;AL # PHAGS-PA SUBJOINED LETTER WA
-A868;AL # PHAGS-PA SUBJOINED LETTER YA
-A869;AL # PHAGS-PA LETTER TTA
-A86A;AL # PHAGS-PA LETTER TTHA
-A86B;AL # PHAGS-PA LETTER DDA
-A86C;AL # PHAGS-PA LETTER NNA
-A86D;AL # PHAGS-PA LETTER ALTERNATE YA
-A86E;AL # PHAGS-PA LETTER VOICELESS SHA
-A86F;AL # PHAGS-PA LETTER VOICED HA
-A870;AL # PHAGS-PA LETTER ASPIRATED FA
-A871;AL # PHAGS-PA SUBJOINED LETTER RA
-A872;AL # PHAGS-PA SUPERFIXED LETTER RA
-A873;AL # PHAGS-PA LETTER CANDRABINDU
-A874;BB # PHAGS-PA SINGLE HEAD MARK
-A875;BB # PHAGS-PA DOUBLE HEAD MARK
-A876;EX # PHAGS-PA MARK SHAD
-A877;EX # PHAGS-PA MARK DOUBLE SHAD
-A880;CM # SAURASHTRA SIGN ANUSVARA
-A881;CM # SAURASHTRA SIGN VISARGA
-A882;AL # SAURASHTRA LETTER A
-A883;AL # SAURASHTRA LETTER AA
-A884;AL # SAURASHTRA LETTER I
-A885;AL # SAURASHTRA LETTER II
-A886;AL # SAURASHTRA LETTER U
-A887;AL # SAURASHTRA LETTER UU
-A888;AL # SAURASHTRA LETTER VOCALIC R
-A889;AL # SAURASHTRA LETTER VOCALIC RR
-A88A;AL # SAURASHTRA LETTER VOCALIC L
-A88B;AL # SAURASHTRA LETTER VOCALIC LL
-A88C;AL # SAURASHTRA LETTER E
-A88D;AL # SAURASHTRA LETTER EE
-A88E;AL # SAURASHTRA LETTER AI
-A88F;AL # SAURASHTRA LETTER O
-A890;AL # SAURASHTRA LETTER OO
-A891;AL # SAURASHTRA LETTER AU
-A892;AL # SAURASHTRA LETTER KA
-A893;AL # SAURASHTRA LETTER KHA
-A894;AL # SAURASHTRA LETTER GA
-A895;AL # SAURASHTRA LETTER GHA
-A896;AL # SAURASHTRA LETTER NGA
-A897;AL # SAURASHTRA LETTER CA
-A898;AL # SAURASHTRA LETTER CHA
-A899;AL # SAURASHTRA LETTER JA
-A89A;AL # SAURASHTRA LETTER JHA
-A89B;AL # SAURASHTRA LETTER NYA
-A89C;AL # SAURASHTRA LETTER TTA
-A89D;AL # SAURASHTRA LETTER TTHA
-A89E;AL # SAURASHTRA LETTER DDA
-A89F;AL # SAURASHTRA LETTER DDHA
-A8A0;AL # SAURASHTRA LETTER NNA
-A8A1;AL # SAURASHTRA LETTER TA
-A8A2;AL # SAURASHTRA LETTER THA
-A8A3;AL # SAURASHTRA LETTER DA
-A8A4;AL # SAURASHTRA LETTER DHA
-A8A5;AL # SAURASHTRA LETTER NA
-A8A6;AL # SAURASHTRA LETTER PA
-A8A7;AL # SAURASHTRA LETTER PHA
-A8A8;AL # SAURASHTRA LETTER BA
-A8A9;AL # SAURASHTRA LETTER BHA
-A8AA;AL # SAURASHTRA LETTER MA
-A8AB;AL # SAURASHTRA LETTER YA
-A8AC;AL # SAURASHTRA LETTER RA
-A8AD;AL # SAURASHTRA LETTER LA
-A8AE;AL # SAURASHTRA LETTER VA
-A8AF;AL # SAURASHTRA LETTER SHA
-A8B0;AL # SAURASHTRA LETTER SSA
-A8B1;AL # SAURASHTRA LETTER SA
-A8B2;AL # SAURASHTRA LETTER HA
-A8B3;AL # SAURASHTRA LETTER LLA
-A8B4;CM # SAURASHTRA CONSONANT SIGN HAARU
-A8B5;CM # SAURASHTRA VOWEL SIGN AA
-A8B6;CM # SAURASHTRA VOWEL SIGN I
-A8B7;CM # SAURASHTRA VOWEL SIGN II
-A8B8;CM # SAURASHTRA VOWEL SIGN U
-A8B9;CM # SAURASHTRA VOWEL SIGN UU
-A8BA;CM # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB;CM # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC;CM # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD;CM # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE;CM # SAURASHTRA VOWEL SIGN E
-A8BF;CM # SAURASHTRA VOWEL SIGN EE
-A8C0;CM # SAURASHTRA VOWEL SIGN AI
-A8C1;CM # SAURASHTRA VOWEL SIGN O
-A8C2;CM # SAURASHTRA VOWEL SIGN OO
-A8C3;CM # SAURASHTRA VOWEL SIGN AU
-A8C4;CM # SAURASHTRA SIGN VIRAMA
-A8CE;BA # SAURASHTRA DANDA
-A8CF;BA # SAURASHTRA DOUBLE DANDA
-A8D0;NU # SAURASHTRA DIGIT ZERO
-A8D1;NU # SAURASHTRA DIGIT ONE
-A8D2;NU # SAURASHTRA DIGIT TWO
-A8D3;NU # SAURASHTRA DIGIT THREE
-A8D4;NU # SAURASHTRA DIGIT FOUR
-A8D5;NU # SAURASHTRA DIGIT FIVE
-A8D6;NU # SAURASHTRA DIGIT SIX
-A8D7;NU # SAURASHTRA DIGIT SEVEN
-A8D8;NU # SAURASHTRA DIGIT EIGHT
-A8D9;NU # SAURASHTRA DIGIT NINE
-A8E0;CM # COMBINING DEVANAGARI DIGIT ZERO
-A8E1;CM # COMBINING DEVANAGARI DIGIT ONE
-A8E2;CM # COMBINING DEVANAGARI DIGIT TWO
-A8E3;CM # COMBINING DEVANAGARI DIGIT THREE
-A8E4;CM # COMBINING DEVANAGARI DIGIT FOUR
-A8E5;CM # COMBINING DEVANAGARI DIGIT FIVE
-A8E6;CM # COMBINING DEVANAGARI DIGIT SIX
-A8E7;CM # COMBINING DEVANAGARI DIGIT SEVEN
-A8E8;CM # COMBINING DEVANAGARI DIGIT EIGHT
-A8E9;CM # COMBINING DEVANAGARI DIGIT NINE
-A8EA;CM # COMBINING DEVANAGARI LETTER A
-A8EB;CM # COMBINING DEVANAGARI LETTER U
-A8EC;CM # COMBINING DEVANAGARI LETTER KA
-A8ED;CM # COMBINING DEVANAGARI LETTER NA
-A8EE;CM # COMBINING DEVANAGARI LETTER PA
-A8EF;CM # COMBINING DEVANAGARI LETTER RA
-A8F0;CM # COMBINING DEVANAGARI LETTER VI
-A8F1;CM # COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F2;AL # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3;AL # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4;AL # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5;AL # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6;AL # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7;AL # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8F8;AL # DEVANAGARI SIGN PUSHPIKA
-A8F9;AL # DEVANAGARI GAP FILLER
-A8FA;AL # DEVANAGARI CARET
-A8FB;AL # DEVANAGARI HEADSTROKE
-A900;NU # KAYAH LI DIGIT ZERO
-A901;NU # KAYAH LI DIGIT ONE
-A902;NU # KAYAH LI DIGIT TWO
-A903;NU # KAYAH LI DIGIT THREE
-A904;NU # KAYAH LI DIGIT FOUR
-A905;NU # KAYAH LI DIGIT FIVE
-A906;NU # KAYAH LI DIGIT SIX
-A907;NU # KAYAH LI DIGIT SEVEN
-A908;NU # KAYAH LI DIGIT EIGHT
-A909;NU # KAYAH LI DIGIT NINE
-A90A;AL # KAYAH LI LETTER KA
-A90B;AL # KAYAH LI LETTER KHA
-A90C;AL # KAYAH LI LETTER GA
-A90D;AL # KAYAH LI LETTER NGA
-A90E;AL # KAYAH LI LETTER SA
-A90F;AL # KAYAH LI LETTER SHA
-A910;AL # KAYAH LI LETTER ZA
-A911;AL # KAYAH LI LETTER NYA
-A912;AL # KAYAH LI LETTER TA
-A913;AL # KAYAH LI LETTER HTA
-A914;AL # KAYAH LI LETTER NA
-A915;AL # KAYAH LI LETTER PA
-A916;AL # KAYAH LI LETTER PHA
-A917;AL # KAYAH LI LETTER MA
-A918;AL # KAYAH LI LETTER DA
-A919;AL # KAYAH LI LETTER BA
-A91A;AL # KAYAH LI LETTER RA
-A91B;AL # KAYAH LI LETTER YA
-A91C;AL # KAYAH LI LETTER LA
-A91D;AL # KAYAH LI LETTER WA
-A91E;AL # KAYAH LI LETTER THA
-A91F;AL # KAYAH LI LETTER HA
-A920;AL # KAYAH LI LETTER VA
-A921;AL # KAYAH LI LETTER CA
-A922;AL # KAYAH LI LETTER A
-A923;AL # KAYAH LI LETTER OE
-A924;AL # KAYAH LI LETTER I
-A925;AL # KAYAH LI LETTER OO
-A926;CM # KAYAH LI VOWEL UE
-A927;CM # KAYAH LI VOWEL E
-A928;CM # KAYAH LI VOWEL U
-A929;CM # KAYAH LI VOWEL EE
-A92A;CM # KAYAH LI VOWEL O
-A92B;CM # KAYAH LI TONE PLOPHU
-A92C;CM # KAYAH LI TONE CALYA
-A92D;CM # KAYAH LI TONE CALYA PLOPHU
-A92E;BA # KAYAH LI SIGN CWI
-A92F;BA # KAYAH LI SIGN SHYA
-A930;AL # REJANG LETTER KA
-A931;AL # REJANG LETTER GA
-A932;AL # REJANG LETTER NGA
-A933;AL # REJANG LETTER TA
-A934;AL # REJANG LETTER DA
-A935;AL # REJANG LETTER NA
-A936;AL # REJANG LETTER PA
-A937;AL # REJANG LETTER BA
-A938;AL # REJANG LETTER MA
-A939;AL # REJANG LETTER CA
-A93A;AL # REJANG LETTER JA
-A93B;AL # REJANG LETTER NYA
-A93C;AL # REJANG LETTER SA
-A93D;AL # REJANG LETTER RA
-A93E;AL # REJANG LETTER LA
-A93F;AL # REJANG LETTER YA
-A940;AL # REJANG LETTER WA
-A941;AL # REJANG LETTER HA
-A942;AL # REJANG LETTER MBA
-A943;AL # REJANG LETTER NGGA
-A944;AL # REJANG LETTER NDA
-A945;AL # REJANG LETTER NYJA
-A946;AL # REJANG LETTER A
-A947;CM # REJANG VOWEL SIGN I
-A948;CM # REJANG VOWEL SIGN U
-A949;CM # REJANG VOWEL SIGN E
-A94A;CM # REJANG VOWEL SIGN AI
-A94B;CM # REJANG VOWEL SIGN O
-A94C;CM # REJANG VOWEL SIGN AU
-A94D;CM # REJANG VOWEL SIGN EU
-A94E;CM # REJANG VOWEL SIGN EA
-A94F;CM # REJANG CONSONANT SIGN NG
-A950;CM # REJANG CONSONANT SIGN N
-A951;CM # REJANG CONSONANT SIGN R
-A952;CM # REJANG CONSONANT SIGN H
-A953;CM # REJANG VIRAMA
-A95F;AL # REJANG SECTION MARK
-A960;JL # HANGUL CHOSEONG TIKEUT-MIEUM
-A961;JL # HANGUL CHOSEONG TIKEUT-PIEUP
-A962;JL # HANGUL CHOSEONG TIKEUT-SIOS
-A963;JL # HANGUL CHOSEONG TIKEUT-CIEUC
-A964;JL # HANGUL CHOSEONG RIEUL-KIYEOK
-A965;JL # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966;JL # HANGUL CHOSEONG RIEUL-TIKEUT
-A967;JL # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968;JL # HANGUL CHOSEONG RIEUL-MIEUM
-A969;JL # HANGUL CHOSEONG RIEUL-PIEUP
-A96A;JL # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B;JL # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C;JL # HANGUL CHOSEONG RIEUL-SIOS
-A96D;JL # HANGUL CHOSEONG RIEUL-CIEUC
-A96E;JL # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F;JL # HANGUL CHOSEONG MIEUM-KIYEOK
-A970;JL # HANGUL CHOSEONG MIEUM-TIKEUT
-A971;JL # HANGUL CHOSEONG MIEUM-SIOS
-A972;JL # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973;JL # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974;JL # HANGUL CHOSEONG PIEUP-HIEUH
-A975;JL # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976;JL # HANGUL CHOSEONG IEUNG-RIEUL
-A977;JL # HANGUL CHOSEONG IEUNG-HIEUH
-A978;JL # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979;JL # HANGUL CHOSEONG SSANGTHIEUTH
-A97A;JL # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B;JL # HANGUL CHOSEONG HIEUH-SIOS
-A97C;JL # HANGUL CHOSEONG SSANGYEORINHIEUH
-A980;CM # JAVANESE SIGN PANYANGGA
-A981;CM # JAVANESE SIGN CECAK
-A982;CM # JAVANESE SIGN LAYAR
-A983;CM # JAVANESE SIGN WIGNYAN
-A984;AL # JAVANESE LETTER A
-A985;AL # JAVANESE LETTER I KAWI
-A986;AL # JAVANESE LETTER I
-A987;AL # JAVANESE LETTER II
-A988;AL # JAVANESE LETTER U
-A989;AL # JAVANESE LETTER PA CEREK
-A98A;AL # JAVANESE LETTER NGA LELET
-A98B;AL # JAVANESE LETTER NGA LELET RASWADI
-A98C;AL # JAVANESE LETTER E
-A98D;AL # JAVANESE LETTER AI
-A98E;AL # JAVANESE LETTER O
-A98F;AL # JAVANESE LETTER KA
-A990;AL # JAVANESE LETTER KA SASAK
-A991;AL # JAVANESE LETTER KA MURDA
-A992;AL # JAVANESE LETTER GA
-A993;AL # JAVANESE LETTER GA MURDA
-A994;AL # JAVANESE LETTER NGA
-A995;AL # JAVANESE LETTER CA
-A996;AL # JAVANESE LETTER CA MURDA
-A997;AL # JAVANESE LETTER JA
-A998;AL # JAVANESE LETTER NYA MURDA
-A999;AL # JAVANESE LETTER JA MAHAPRANA
-A99A;AL # JAVANESE LETTER NYA
-A99B;AL # JAVANESE LETTER TTA
-A99C;AL # JAVANESE LETTER TTA MAHAPRANA
-A99D;AL # JAVANESE LETTER DDA
-A99E;AL # JAVANESE LETTER DDA MAHAPRANA
-A99F;AL # JAVANESE LETTER NA MURDA
-A9A0;AL # JAVANESE LETTER TA
-A9A1;AL # JAVANESE LETTER TA MURDA
-A9A2;AL # JAVANESE LETTER DA
-A9A3;AL # JAVANESE LETTER DA MAHAPRANA
-A9A4;AL # JAVANESE LETTER NA
-A9A5;AL # JAVANESE LETTER PA
-A9A6;AL # JAVANESE LETTER PA MURDA
-A9A7;AL # JAVANESE LETTER BA
-A9A8;AL # JAVANESE LETTER BA MURDA
-A9A9;AL # JAVANESE LETTER MA
-A9AA;AL # JAVANESE LETTER YA
-A9AB;AL # JAVANESE LETTER RA
-A9AC;AL # JAVANESE LETTER RA AGUNG
-A9AD;AL # JAVANESE LETTER LA
-A9AE;AL # JAVANESE LETTER WA
-A9AF;AL # JAVANESE LETTER SA MURDA
-A9B0;AL # JAVANESE LETTER SA MAHAPRANA
-A9B1;AL # JAVANESE LETTER SA
-A9B2;AL # JAVANESE LETTER HA
-A9B3;CM # JAVANESE SIGN CECAK TELU
-A9B4;CM # JAVANESE VOWEL SIGN TARUNG
-A9B5;CM # JAVANESE VOWEL SIGN TOLONG
-A9B6;CM # JAVANESE VOWEL SIGN WULU
-A9B7;CM # JAVANESE VOWEL SIGN WULU MELIK
-A9B8;CM # JAVANESE VOWEL SIGN SUKU
-A9B9;CM # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BA;CM # JAVANESE VOWEL SIGN TALING
-A9BB;CM # JAVANESE VOWEL SIGN DIRGA MURE
-A9BC;CM # JAVANESE VOWEL SIGN PEPET
-A9BD;CM # JAVANESE CONSONANT SIGN KERET
-A9BE;CM # JAVANESE CONSONANT SIGN PENGKAL
-A9BF;CM # JAVANESE CONSONANT SIGN CAKRA
-A9C0;CM # JAVANESE PANGKON
-A9C1;AL # JAVANESE LEFT RERENGGAN
-A9C2;AL # JAVANESE RIGHT RERENGGAN
-A9C3;AL # JAVANESE PADA ANDAP
-A9C4;AL # JAVANESE PADA MADYA
-A9C5;AL # JAVANESE PADA LUHUR
-A9C6;AL # JAVANESE PADA WINDU
-A9C7;BA # JAVANESE PADA PANGKAT
-A9C8;BA # JAVANESE PADA LINGSA
-A9C9;BA # JAVANESE PADA LUNGSI
-A9CA;AL # JAVANESE PADA ADEG
-A9CB;AL # JAVANESE PADA ADEG ADEG
-A9CC;AL # JAVANESE PADA PISELEH
-A9CD;AL # JAVANESE TURNED PADA PISELEH
-A9CF;AL # JAVANESE PANGRANGKEP
-A9D0;NU # JAVANESE DIGIT ZERO
-A9D1;NU # JAVANESE DIGIT ONE
-A9D2;NU # JAVANESE DIGIT TWO
-A9D3;NU # JAVANESE DIGIT THREE
-A9D4;NU # JAVANESE DIGIT FOUR
-A9D5;NU # JAVANESE DIGIT FIVE
-A9D6;NU # JAVANESE DIGIT SIX
-A9D7;NU # JAVANESE DIGIT SEVEN
-A9D8;NU # JAVANESE DIGIT EIGHT
-A9D9;NU # JAVANESE DIGIT NINE
-A9DE;AL # JAVANESE PADA TIRTA TUMETES
-A9DF;AL # JAVANESE PADA ISEN-ISEN
-AA00;AL # CHAM LETTER A
-AA01;AL # CHAM LETTER I
-AA02;AL # CHAM LETTER U
-AA03;AL # CHAM LETTER E
-AA04;AL # CHAM LETTER AI
-AA05;AL # CHAM LETTER O
-AA06;AL # CHAM LETTER KA
-AA07;AL # CHAM LETTER KHA
-AA08;AL # CHAM LETTER GA
-AA09;AL # CHAM LETTER GHA
-AA0A;AL # CHAM LETTER NGUE
-AA0B;AL # CHAM LETTER NGA
-AA0C;AL # CHAM LETTER CHA
-AA0D;AL # CHAM LETTER CHHA
-AA0E;AL # CHAM LETTER JA
-AA0F;AL # CHAM LETTER JHA
-AA10;AL # CHAM LETTER NHUE
-AA11;AL # CHAM LETTER NHA
-AA12;AL # CHAM LETTER NHJA
-AA13;AL # CHAM LETTER TA
-AA14;AL # CHAM LETTER THA
-AA15;AL # CHAM LETTER DA
-AA16;AL # CHAM LETTER DHA
-AA17;AL # CHAM LETTER NUE
-AA18;AL # CHAM LETTER NA
-AA19;AL # CHAM LETTER DDA
-AA1A;AL # CHAM LETTER PA
-AA1B;AL # CHAM LETTER PPA
-AA1C;AL # CHAM LETTER PHA
-AA1D;AL # CHAM LETTER BA
-AA1E;AL # CHAM LETTER BHA
-AA1F;AL # CHAM LETTER MUE
-AA20;AL # CHAM LETTER MA
-AA21;AL # CHAM LETTER BBA
-AA22;AL # CHAM LETTER YA
-AA23;AL # CHAM LETTER RA
-AA24;AL # CHAM LETTER LA
-AA25;AL # CHAM LETTER VA
-AA26;AL # CHAM LETTER SSA
-AA27;AL # CHAM LETTER SA
-AA28;AL # CHAM LETTER HA
-AA29;CM # CHAM VOWEL SIGN AA
-AA2A;CM # CHAM VOWEL SIGN I
-AA2B;CM # CHAM VOWEL SIGN II
-AA2C;CM # CHAM VOWEL SIGN EI
-AA2D;CM # CHAM VOWEL SIGN U
-AA2E;CM # CHAM VOWEL SIGN OE
-AA2F;CM # CHAM VOWEL SIGN O
-AA30;CM # CHAM VOWEL SIGN AI
-AA31;CM # CHAM VOWEL SIGN AU
-AA32;CM # CHAM VOWEL SIGN UE
-AA33;CM # CHAM CONSONANT SIGN YA
-AA34;CM # CHAM CONSONANT SIGN RA
-AA35;CM # CHAM CONSONANT SIGN LA
-AA36;CM # CHAM CONSONANT SIGN WA
-AA40;AL # CHAM LETTER FINAL K
-AA41;AL # CHAM LETTER FINAL G
-AA42;AL # CHAM LETTER FINAL NG
-AA43;CM # CHAM CONSONANT SIGN FINAL NG
-AA44;AL # CHAM LETTER FINAL CH
-AA45;AL # CHAM LETTER FINAL T
-AA46;AL # CHAM LETTER FINAL N
-AA47;AL # CHAM LETTER FINAL P
-AA48;AL # CHAM LETTER FINAL Y
-AA49;AL # CHAM LETTER FINAL R
-AA4A;AL # CHAM LETTER FINAL L
-AA4B;AL # CHAM LETTER FINAL SS
-AA4C;CM # CHAM CONSONANT SIGN FINAL M
-AA4D;CM # CHAM CONSONANT SIGN FINAL H
-AA50;NU # CHAM DIGIT ZERO
-AA51;NU # CHAM DIGIT ONE
-AA52;NU # CHAM DIGIT TWO
-AA53;NU # CHAM DIGIT THREE
-AA54;NU # CHAM DIGIT FOUR
-AA55;NU # CHAM DIGIT FIVE
-AA56;NU # CHAM DIGIT SIX
-AA57;NU # CHAM DIGIT SEVEN
-AA58;NU # CHAM DIGIT EIGHT
-AA59;NU # CHAM DIGIT NINE
-AA5C;AL # CHAM PUNCTUATION SPIRAL
-AA5D;BA # CHAM PUNCTUATION DANDA
-AA5E;BA # CHAM PUNCTUATION DOUBLE DANDA
-AA5F;BA # CHAM PUNCTUATION TRIPLE DANDA
-AA60;SA # MYANMAR LETTER KHAMTI GA
-AA61;SA # MYANMAR LETTER KHAMTI CA
-AA62;SA # MYANMAR LETTER KHAMTI CHA
-AA63;SA # MYANMAR LETTER KHAMTI JA
-AA64;SA # MYANMAR LETTER KHAMTI JHA
-AA65;SA # MYANMAR LETTER KHAMTI NYA
-AA66;SA # MYANMAR LETTER KHAMTI TTA
-AA67;SA # MYANMAR LETTER KHAMTI TTHA
-AA68;SA # MYANMAR LETTER KHAMTI DDA
-AA69;SA # MYANMAR LETTER KHAMTI DDHA
-AA6A;SA # MYANMAR LETTER KHAMTI DHA
-AA6B;SA # MYANMAR LETTER KHAMTI NA
-AA6C;SA # MYANMAR LETTER KHAMTI SA
-AA6D;SA # MYANMAR LETTER KHAMTI HA
-AA6E;SA # MYANMAR LETTER KHAMTI HHA
-AA6F;SA # MYANMAR LETTER KHAMTI FA
-AA70;SA # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AA71;SA # MYANMAR LETTER KHAMTI XA
-AA72;SA # MYANMAR LETTER KHAMTI ZA
-AA73;SA # MYANMAR LETTER KHAMTI RA
-AA74;SA # MYANMAR LOGOGRAM KHAMTI OAY
-AA75;SA # MYANMAR LOGOGRAM KHAMTI QN
-AA76;SA # MYANMAR LOGOGRAM KHAMTI HM
-AA77;SA # MYANMAR SYMBOL AITON EXCLAMATION
-AA78;SA # MYANMAR SYMBOL AITON ONE
-AA79;SA # MYANMAR SYMBOL AITON TWO
-AA7A;SA # MYANMAR LETTER AITON RA
-AA7B;SA # MYANMAR SIGN PAO KAREN TONE
-AA80;SA # TAI VIET LETTER LOW KO
-AA81;SA # TAI VIET LETTER HIGH KO
-AA82;SA # TAI VIET LETTER LOW KHO
-AA83;SA # TAI VIET LETTER HIGH KHO
-AA84;SA # TAI VIET LETTER LOW KHHO
-AA85;SA # TAI VIET LETTER HIGH KHHO
-AA86;SA # TAI VIET LETTER LOW GO
-AA87;SA # TAI VIET LETTER HIGH GO
-AA88;SA # TAI VIET LETTER LOW NGO
-AA89;SA # TAI VIET LETTER HIGH NGO
-AA8A;SA # TAI VIET LETTER LOW CO
-AA8B;SA # TAI VIET LETTER HIGH CO
-AA8C;SA # TAI VIET LETTER LOW CHO
-AA8D;SA # TAI VIET LETTER HIGH CHO
-AA8E;SA # TAI VIET LETTER LOW SO
-AA8F;SA # TAI VIET LETTER HIGH SO
-AA90;SA # TAI VIET LETTER LOW NYO
-AA91;SA # TAI VIET LETTER HIGH NYO
-AA92;SA # TAI VIET LETTER LOW DO
-AA93;SA # TAI VIET LETTER HIGH DO
-AA94;SA # TAI VIET LETTER LOW TO
-AA95;SA # TAI VIET LETTER HIGH TO
-AA96;SA # TAI VIET LETTER LOW THO
-AA97;SA # TAI VIET LETTER HIGH THO
-AA98;SA # TAI VIET LETTER LOW NO
-AA99;SA # TAI VIET LETTER HIGH NO
-AA9A;SA # TAI VIET LETTER LOW BO
-AA9B;SA # TAI VIET LETTER HIGH BO
-AA9C;SA # TAI VIET LETTER LOW PO
-AA9D;SA # TAI VIET LETTER HIGH PO
-AA9E;SA # TAI VIET LETTER LOW PHO
-AA9F;SA # TAI VIET LETTER HIGH PHO
-AAA0;SA # TAI VIET LETTER LOW FO
-AAA1;SA # TAI VIET LETTER HIGH FO
-AAA2;SA # TAI VIET LETTER LOW MO
-AAA3;SA # TAI VIET LETTER HIGH MO
-AAA4;SA # TAI VIET LETTER LOW YO
-AAA5;SA # TAI VIET LETTER HIGH YO
-AAA6;SA # TAI VIET LETTER LOW RO
-AAA7;SA # TAI VIET LETTER HIGH RO
-AAA8;SA # TAI VIET LETTER LOW LO
-AAA9;SA # TAI VIET LETTER HIGH LO
-AAAA;SA # TAI VIET LETTER LOW VO
-AAAB;SA # TAI VIET LETTER HIGH VO
-AAAC;SA # TAI VIET LETTER LOW HO
-AAAD;SA # TAI VIET LETTER HIGH HO
-AAAE;SA # TAI VIET LETTER LOW O
-AAAF;SA # TAI VIET LETTER HIGH O
-AAB0;SA # TAI VIET MAI KANG
-AAB1;SA # TAI VIET VOWEL AA
-AAB2;SA # TAI VIET VOWEL I
-AAB3;SA # TAI VIET VOWEL UE
-AAB4;SA # TAI VIET VOWEL U
-AAB5;SA # TAI VIET VOWEL E
-AAB6;SA # TAI VIET VOWEL O
-AAB7;SA # TAI VIET MAI KHIT
-AAB8;SA # TAI VIET VOWEL IA
-AAB9;SA # TAI VIET VOWEL UEA
-AABA;SA # TAI VIET VOWEL UA
-AABB;SA # TAI VIET VOWEL AUE
-AABC;SA # TAI VIET VOWEL AY
-AABD;SA # TAI VIET VOWEL AN
-AABE;SA # TAI VIET VOWEL AM
-AABF;SA # TAI VIET TONE MAI EK
-AAC0;SA # TAI VIET TONE MAI NUENG
-AAC1;SA # TAI VIET TONE MAI THO
-AAC2;SA # TAI VIET TONE MAI SONG
-AADB;SA # TAI VIET SYMBOL KON
-AADC;SA # TAI VIET SYMBOL NUENG
-AADD;SA # TAI VIET SYMBOL SAM
-AADE;SA # TAI VIET SYMBOL HO HOI
-AADF;SA # TAI VIET SYMBOL KOI KOI
-AAE0;AL # MEETEI MAYEK LETTER E
-AAE1;AL # MEETEI MAYEK LETTER O
-AAE2;AL # MEETEI MAYEK LETTER CHA
-AAE3;AL # MEETEI MAYEK LETTER NYA
-AAE4;AL # MEETEI MAYEK LETTER TTA
-AAE5;AL # MEETEI MAYEK LETTER TTHA
-AAE6;AL # MEETEI MAYEK LETTER DDA
-AAE7;AL # MEETEI MAYEK LETTER DDHA
-AAE8;AL # MEETEI MAYEK LETTER NNA
-AAE9;AL # MEETEI MAYEK LETTER SHA
-AAEA;AL # MEETEI MAYEK LETTER SSA
-AAEB;CM # MEETEI MAYEK VOWEL SIGN II
-AAEC;CM # MEETEI MAYEK VOWEL SIGN UU
-AAED;CM # MEETEI MAYEK VOWEL SIGN AAI
-AAEE;CM # MEETEI MAYEK VOWEL SIGN AU
-AAEF;CM # MEETEI MAYEK VOWEL SIGN AAU
-AAF0;BA # MEETEI MAYEK CHEIKHAN
-AAF1;BA # MEETEI MAYEK AHANG KHUDAM
-AAF2;AL # MEETEI MAYEK ANJI
-AAF3;AL # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4;AL # MEETEI MAYEK WORD REPETITION MARK
-AAF5;CM # MEETEI MAYEK VOWEL SIGN VISARGA
-AAF6;CM # MEETEI MAYEK VIRAMA
-AB01;AL # ETHIOPIC SYLLABLE TTHU
-AB02;AL # ETHIOPIC SYLLABLE TTHI
-AB03;AL # ETHIOPIC SYLLABLE TTHAA
-AB04;AL # ETHIOPIC SYLLABLE TTHEE
-AB05;AL # ETHIOPIC SYLLABLE TTHE
-AB06;AL # ETHIOPIC SYLLABLE TTHO
-AB09;AL # ETHIOPIC SYLLABLE DDHU
-AB0A;AL # ETHIOPIC SYLLABLE DDHI
-AB0B;AL # ETHIOPIC SYLLABLE DDHAA
-AB0C;AL # ETHIOPIC SYLLABLE DDHEE
-AB0D;AL # ETHIOPIC SYLLABLE DDHE
-AB0E;AL # ETHIOPIC SYLLABLE DDHO
-AB11;AL # ETHIOPIC SYLLABLE DZU
-AB12;AL # ETHIOPIC SYLLABLE DZI
-AB13;AL # ETHIOPIC SYLLABLE DZAA
-AB14;AL # ETHIOPIC SYLLABLE DZEE
-AB15;AL # ETHIOPIC SYLLABLE DZE
-AB16;AL # ETHIOPIC SYLLABLE DZO
-AB20;AL # ETHIOPIC SYLLABLE CCHHA
-AB21;AL # ETHIOPIC SYLLABLE CCHHU
-AB22;AL # ETHIOPIC SYLLABLE CCHHI
-AB23;AL # ETHIOPIC SYLLABLE CCHHAA
-AB24;AL # ETHIOPIC SYLLABLE CCHHEE
-AB25;AL # ETHIOPIC SYLLABLE CCHHE
-AB26;AL # ETHIOPIC SYLLABLE CCHHO
-AB28;AL # ETHIOPIC SYLLABLE BBA
-AB29;AL # ETHIOPIC SYLLABLE BBU
-AB2A;AL # ETHIOPIC SYLLABLE BBI
-AB2B;AL # ETHIOPIC SYLLABLE BBAA
-AB2C;AL # ETHIOPIC SYLLABLE BBEE
-AB2D;AL # ETHIOPIC SYLLABLE BBE
-AB2E;AL # ETHIOPIC SYLLABLE BBO
-ABC0;AL # MEETEI MAYEK LETTER KOK
-ABC1;AL # MEETEI MAYEK LETTER SAM
-ABC2;AL # MEETEI MAYEK LETTER LAI
-ABC3;AL # MEETEI MAYEK LETTER MIT
-ABC4;AL # MEETEI MAYEK LETTER PA
-ABC5;AL # MEETEI MAYEK LETTER NA
-ABC6;AL # MEETEI MAYEK LETTER CHIL
-ABC7;AL # MEETEI MAYEK LETTER TIL
-ABC8;AL # MEETEI MAYEK LETTER KHOU
-ABC9;AL # MEETEI MAYEK LETTER NGOU
-ABCA;AL # MEETEI MAYEK LETTER THOU
-ABCB;AL # MEETEI MAYEK LETTER WAI
-ABCC;AL # MEETEI MAYEK LETTER YANG
-ABCD;AL # MEETEI MAYEK LETTER HUK
-ABCE;AL # MEETEI MAYEK LETTER UN
-ABCF;AL # MEETEI MAYEK LETTER I
-ABD0;AL # MEETEI MAYEK LETTER PHAM
-ABD1;AL # MEETEI MAYEK LETTER ATIYA
-ABD2;AL # MEETEI MAYEK LETTER GOK
-ABD3;AL # MEETEI MAYEK LETTER JHAM
-ABD4;AL # MEETEI MAYEK LETTER RAI
-ABD5;AL # MEETEI MAYEK LETTER BA
-ABD6;AL # MEETEI MAYEK LETTER JIL
-ABD7;AL # MEETEI MAYEK LETTER DIL
-ABD8;AL # MEETEI MAYEK LETTER GHOU
-ABD9;AL # MEETEI MAYEK LETTER DHOU
-ABDA;AL # MEETEI MAYEK LETTER BHAM
-ABDB;AL # MEETEI MAYEK LETTER KOK LONSUM
-ABDC;AL # MEETEI MAYEK LETTER LAI LONSUM
-ABDD;AL # MEETEI MAYEK LETTER MIT LONSUM
-ABDE;AL # MEETEI MAYEK LETTER PA LONSUM
-ABDF;AL # MEETEI MAYEK LETTER NA LONSUM
-ABE0;AL # MEETEI MAYEK LETTER TIL LONSUM
-ABE1;AL # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2;AL # MEETEI MAYEK LETTER I LONSUM
-ABE3;CM # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4;CM # MEETEI MAYEK VOWEL SIGN INAP
-ABE5;CM # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6;CM # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7;CM # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8;CM # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9;CM # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA;CM # MEETEI MAYEK VOWEL SIGN NUNG
-ABEB;BA # MEETEI MAYEK CHEIKHEI
-ABEC;CM # MEETEI MAYEK LUM IYEK
-ABED;CM # MEETEI MAYEK APUN IYEK
-ABF0;NU # MEETEI MAYEK DIGIT ZERO
-ABF1;NU # MEETEI MAYEK DIGIT ONE
-ABF2;NU # MEETEI MAYEK DIGIT TWO
-ABF3;NU # MEETEI MAYEK DIGIT THREE
-ABF4;NU # MEETEI MAYEK DIGIT FOUR
-ABF5;NU # MEETEI MAYEK DIGIT FIVE
-ABF6;NU # MEETEI MAYEK DIGIT SIX
-ABF7;NU # MEETEI MAYEK DIGIT SEVEN
-ABF8;NU # MEETEI MAYEK DIGIT EIGHT
-ABF9;NU # MEETEI MAYEK DIGIT NINE
-AC00;H2 # HANGUL SYLLABLE GA
-AC01..AC1B;H3 # HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
-AC1C;H2 # HANGUL SYLLABLE GAE
-AC1D..AC37;H3 # HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
-AC38;H2 # HANGUL SYLLABLE GYA
-AC39..AC53;H3 # HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
-AC54;H2 # HANGUL SYLLABLE GYAE
-AC55..AC6F;H3 # HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
-AC70;H2 # HANGUL SYLLABLE GEO
-AC71..AC8B;H3 # HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
-AC8C;H2 # HANGUL SYLLABLE GE
-AC8D..ACA7;H3 # HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
-ACA8;H2 # HANGUL SYLLABLE GYEO
-ACA9..ACC3;H3 # HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
-ACC4;H2 # HANGUL SYLLABLE GYE
-ACC5..ACDF;H3 # HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
-ACE0;H2 # HANGUL SYLLABLE GO
-ACE1..ACFB;H3 # HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
-ACFC;H2 # HANGUL SYLLABLE GWA
-ACFD..AD17;H3 # HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
-AD18;H2 # HANGUL SYLLABLE GWAE
-AD19..AD33;H3 # HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
-AD34;H2 # HANGUL SYLLABLE GOE
-AD35..AD4F;H3 # HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
-AD50;H2 # HANGUL SYLLABLE GYO
-AD51..AD6B;H3 # HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
-AD6C;H2 # HANGUL SYLLABLE GU
-AD6D..AD87;H3 # HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
-AD88;H2 # HANGUL SYLLABLE GWEO
-AD89..ADA3;H3 # HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
-ADA4;H2 # HANGUL SYLLABLE GWE
-ADA5..ADBF;H3 # HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
-ADC0;H2 # HANGUL SYLLABLE GWI
-ADC1..ADDB;H3 # HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
-ADDC;H2 # HANGUL SYLLABLE GYU
-ADDD..ADF7;H3 # HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
-ADF8;H2 # HANGUL SYLLABLE GEU
-ADF9..AE13;H3 # HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
-AE14;H2 # HANGUL SYLLABLE GYI
-AE15..AE2F;H3 # HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
-AE30;H2 # HANGUL SYLLABLE GI
-AE31..AE4B;H3 # HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
-AE4C;H2 # HANGUL SYLLABLE GGA
-AE4D..AE67;H3 # HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
-AE68;H2 # HANGUL SYLLABLE GGAE
-AE69..AE83;H3 # HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
-AE84;H2 # HANGUL SYLLABLE GGYA
-AE85..AE9F;H3 # HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
-AEA0;H2 # HANGUL SYLLABLE GGYAE
-AEA1..AEBB;H3 # HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
-AEBC;H2 # HANGUL SYLLABLE GGEO
-AEBD..AED7;H3 # HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
-AED8;H2 # HANGUL SYLLABLE GGE
-AED9..AEF3;H3 # HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
-AEF4;H2 # HANGUL SYLLABLE GGYEO
-AEF5..AF0F;H3 # HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
-AF10;H2 # HANGUL SYLLABLE GGYE
-AF11..AF2B;H3 # HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
-AF2C;H2 # HANGUL SYLLABLE GGO
-AF2D..AF47;H3 # HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
-AF48;H2 # HANGUL SYLLABLE GGWA
-AF49..AF63;H3 # HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
-AF64;H2 # HANGUL SYLLABLE GGWAE
-AF65..AF7F;H3 # HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
-AF80;H2 # HANGUL SYLLABLE GGOE
-AF81..AF9B;H3 # HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
-AF9C;H2 # HANGUL SYLLABLE GGYO
-AF9D..AFB7;H3 # HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
-AFB8;H2 # HANGUL SYLLABLE GGU
-AFB9..AFD3;H3 # HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
-AFD4;H2 # HANGUL SYLLABLE GGWEO
-AFD5..AFEF;H3 # HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
-AFF0;H2 # HANGUL SYLLABLE GGWE
-AFF1..B00B;H3 # HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
-B00C;H2 # HANGUL SYLLABLE GGWI
-B00D..B027;H3 # HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
-B028;H2 # HANGUL SYLLABLE GGYU
-B029..B043;H3 # HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
-B044;H2 # HANGUL SYLLABLE GGEU
-B045..B05F;H3 # HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
-B060;H2 # HANGUL SYLLABLE GGYI
-B061..B07B;H3 # HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
-B07C;H2 # HANGUL SYLLABLE GGI
-B07D..B097;H3 # HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
-B098;H2 # HANGUL SYLLABLE NA
-B099..B0B3;H3 # HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
-B0B4;H2 # HANGUL SYLLABLE NAE
-B0B5..B0CF;H3 # HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
-B0D0;H2 # HANGUL SYLLABLE NYA
-B0D1..B0EB;H3 # HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
-B0EC;H2 # HANGUL SYLLABLE NYAE
-B0ED..B107;H3 # HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
-B108;H2 # HANGUL SYLLABLE NEO
-B109..B123;H3 # HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
-B124;H2 # HANGUL SYLLABLE NE
-B125..B13F;H3 # HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
-B140;H2 # HANGUL SYLLABLE NYEO
-B141..B15B;H3 # HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
-B15C;H2 # HANGUL SYLLABLE NYE
-B15D..B177;H3 # HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
-B178;H2 # HANGUL SYLLABLE NO
-B179..B193;H3 # HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
-B194;H2 # HANGUL SYLLABLE NWA
-B195..B1AF;H3 # HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
-B1B0;H2 # HANGUL SYLLABLE NWAE
-B1B1..B1CB;H3 # HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
-B1CC;H2 # HANGUL SYLLABLE NOE
-B1CD..B1E7;H3 # HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
-B1E8;H2 # HANGUL SYLLABLE NYO
-B1E9..B203;H3 # HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
-B204;H2 # HANGUL SYLLABLE NU
-B205..B21F;H3 # HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
-B220;H2 # HANGUL SYLLABLE NWEO
-B221..B23B;H3 # HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
-B23C;H2 # HANGUL SYLLABLE NWE
-B23D..B257;H3 # HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
-B258;H2 # HANGUL SYLLABLE NWI
-B259..B273;H3 # HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
-B274;H2 # HANGUL SYLLABLE NYU
-B275..B28F;H3 # HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
-B290;H2 # HANGUL SYLLABLE NEU
-B291..B2AB;H3 # HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
-B2AC;H2 # HANGUL SYLLABLE NYI
-B2AD..B2C7;H3 # HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
-B2C8;H2 # HANGUL SYLLABLE NI
-B2C9..B2E3;H3 # HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
-B2E4;H2 # HANGUL SYLLABLE DA
-B2E5..B2FF;H3 # HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
-B300;H2 # HANGUL SYLLABLE DAE
-B301..B31B;H3 # HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
-B31C;H2 # HANGUL SYLLABLE DYA
-B31D..B337;H3 # HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
-B338;H2 # HANGUL SYLLABLE DYAE
-B339..B353;H3 # HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
-B354;H2 # HANGUL SYLLABLE DEO
-B355..B36F;H3 # HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
-B370;H2 # HANGUL SYLLABLE DE
-B371..B38B;H3 # HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
-B38C;H2 # HANGUL SYLLABLE DYEO
-B38D..B3A7;H3 # HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
-B3A8;H2 # HANGUL SYLLABLE DYE
-B3A9..B3C3;H3 # HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
-B3C4;H2 # HANGUL SYLLABLE DO
-B3C5..B3DF;H3 # HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
-B3E0;H2 # HANGUL SYLLABLE DWA
-B3E1..B3FB;H3 # HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
-B3FC;H2 # HANGUL SYLLABLE DWAE
-B3FD..B417;H3 # HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
-B418;H2 # HANGUL SYLLABLE DOE
-B419..B433;H3 # HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
-B434;H2 # HANGUL SYLLABLE DYO
-B435..B44F;H3 # HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
-B450;H2 # HANGUL SYLLABLE DU
-B451..B46B;H3 # HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
-B46C;H2 # HANGUL SYLLABLE DWEO
-B46D..B487;H3 # HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
-B488;H2 # HANGUL SYLLABLE DWE
-B489..B4A3;H3 # HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
-B4A4;H2 # HANGUL SYLLABLE DWI
-B4A5..B4BF;H3 # HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
-B4C0;H2 # HANGUL SYLLABLE DYU
-B4C1..B4DB;H3 # HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
-B4DC;H2 # HANGUL SYLLABLE DEU
-B4DD..B4F7;H3 # HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
-B4F8;H2 # HANGUL SYLLABLE DYI
-B4F9..B513;H3 # HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
-B514;H2 # HANGUL SYLLABLE DI
-B515..B52F;H3 # HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
-B530;H2 # HANGUL SYLLABLE DDA
-B531..B54B;H3 # HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
-B54C;H2 # HANGUL SYLLABLE DDAE
-B54D..B567;H3 # HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
-B568;H2 # HANGUL SYLLABLE DDYA
-B569..B583;H3 # HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
-B584;H2 # HANGUL SYLLABLE DDYAE
-B585..B59F;H3 # HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
-B5A0;H2 # HANGUL SYLLABLE DDEO
-B5A1..B5BB;H3 # HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
-B5BC;H2 # HANGUL SYLLABLE DDE
-B5BD..B5D7;H3 # HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
-B5D8;H2 # HANGUL SYLLABLE DDYEO
-B5D9..B5F3;H3 # HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
-B5F4;H2 # HANGUL SYLLABLE DDYE
-B5F5..B60F;H3 # HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
-B610;H2 # HANGUL SYLLABLE DDO
-B611..B62B;H3 # HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
-B62C;H2 # HANGUL SYLLABLE DDWA
-B62D..B647;H3 # HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
-B648;H2 # HANGUL SYLLABLE DDWAE
-B649..B663;H3 # HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
-B664;H2 # HANGUL SYLLABLE DDOE
-B665..B67F;H3 # HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
-B680;H2 # HANGUL SYLLABLE DDYO
-B681..B69B;H3 # HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
-B69C;H2 # HANGUL SYLLABLE DDU
-B69D..B6B7;H3 # HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
-B6B8;H2 # HANGUL SYLLABLE DDWEO
-B6B9..B6D3;H3 # HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
-B6D4;H2 # HANGUL SYLLABLE DDWE
-B6D5..B6EF;H3 # HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
-B6F0;H2 # HANGUL SYLLABLE DDWI
-B6F1..B70B;H3 # HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
-B70C;H2 # HANGUL SYLLABLE DDYU
-B70D..B727;H3 # HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
-B728;H2 # HANGUL SYLLABLE DDEU
-B729..B743;H3 # HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
-B744;H2 # HANGUL SYLLABLE DDYI
-B745..B75F;H3 # HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
-B760;H2 # HANGUL SYLLABLE DDI
-B761..B77B;H3 # HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
-B77C;H2 # HANGUL SYLLABLE RA
-B77D..B797;H3 # HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
-B798;H2 # HANGUL SYLLABLE RAE
-B799..B7B3;H3 # HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
-B7B4;H2 # HANGUL SYLLABLE RYA
-B7B5..B7CF;H3 # HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
-B7D0;H2 # HANGUL SYLLABLE RYAE
-B7D1..B7EB;H3 # HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
-B7EC;H2 # HANGUL SYLLABLE REO
-B7ED..B807;H3 # HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
-B808;H2 # HANGUL SYLLABLE RE
-B809..B823;H3 # HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
-B824;H2 # HANGUL SYLLABLE RYEO
-B825..B83F;H3 # HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
-B840;H2 # HANGUL SYLLABLE RYE
-B841..B85B;H3 # HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
-B85C;H2 # HANGUL SYLLABLE RO
-B85D..B877;H3 # HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
-B878;H2 # HANGUL SYLLABLE RWA
-B879..B893;H3 # HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
-B894;H2 # HANGUL SYLLABLE RWAE
-B895..B8AF;H3 # HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
-B8B0;H2 # HANGUL SYLLABLE ROE
-B8B1..B8CB;H3 # HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
-B8CC;H2 # HANGUL SYLLABLE RYO
-B8CD..B8E7;H3 # HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
-B8E8;H2 # HANGUL SYLLABLE RU
-B8E9..B903;H3 # HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
-B904;H2 # HANGUL SYLLABLE RWEO
-B905..B91F;H3 # HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
-B920;H2 # HANGUL SYLLABLE RWE
-B921..B93B;H3 # HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
-B93C;H2 # HANGUL SYLLABLE RWI
-B93D..B957;H3 # HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
-B958;H2 # HANGUL SYLLABLE RYU
-B959..B973;H3 # HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
-B974;H2 # HANGUL SYLLABLE REU
-B975..B98F;H3 # HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
-B990;H2 # HANGUL SYLLABLE RYI
-B991..B9AB;H3 # HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
-B9AC;H2 # HANGUL SYLLABLE RI
-B9AD..B9C7;H3 # HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
-B9C8;H2 # HANGUL SYLLABLE MA
-B9C9..B9E3;H3 # HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
-B9E4;H2 # HANGUL SYLLABLE MAE
-B9E5..B9FF;H3 # HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
-BA00;H2 # HANGUL SYLLABLE MYA
-BA01..BA1B;H3 # HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
-BA1C;H2 # HANGUL SYLLABLE MYAE
-BA1D..BA37;H3 # HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
-BA38;H2 # HANGUL SYLLABLE MEO
-BA39..BA53;H3 # HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
-BA54;H2 # HANGUL SYLLABLE ME
-BA55..BA6F;H3 # HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
-BA70;H2 # HANGUL SYLLABLE MYEO
-BA71..BA8B;H3 # HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
-BA8C;H2 # HANGUL SYLLABLE MYE
-BA8D..BAA7;H3 # HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
-BAA8;H2 # HANGUL SYLLABLE MO
-BAA9..BAC3;H3 # HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
-BAC4;H2 # HANGUL SYLLABLE MWA
-BAC5..BADF;H3 # HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
-BAE0;H2 # HANGUL SYLLABLE MWAE
-BAE1..BAFB;H3 # HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
-BAFC;H2 # HANGUL SYLLABLE MOE
-BAFD..BB17;H3 # HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
-BB18;H2 # HANGUL SYLLABLE MYO
-BB19..BB33;H3 # HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
-BB34;H2 # HANGUL SYLLABLE MU
-BB35..BB4F;H3 # HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
-BB50;H2 # HANGUL SYLLABLE MWEO
-BB51..BB6B;H3 # HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
-BB6C;H2 # HANGUL SYLLABLE MWE
-BB6D..BB87;H3 # HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
-BB88;H2 # HANGUL SYLLABLE MWI
-BB89..BBA3;H3 # HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
-BBA4;H2 # HANGUL SYLLABLE MYU
-BBA5..BBBF;H3 # HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
-BBC0;H2 # HANGUL SYLLABLE MEU
-BBC1..BBDB;H3 # HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
-BBDC;H2 # HANGUL SYLLABLE MYI
-BBDD..BBF7;H3 # HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
-BBF8;H2 # HANGUL SYLLABLE MI
-BBF9..BC13;H3 # HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
-BC14;H2 # HANGUL SYLLABLE BA
-BC15..BC2F;H3 # HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
-BC30;H2 # HANGUL SYLLABLE BAE
-BC31..BC4B;H3 # HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
-BC4C;H2 # HANGUL SYLLABLE BYA
-BC4D..BC67;H3 # HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
-BC68;H2 # HANGUL SYLLABLE BYAE
-BC69..BC83;H3 # HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
-BC84;H2 # HANGUL SYLLABLE BEO
-BC85..BC9F;H3 # HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
-BCA0;H2 # HANGUL SYLLABLE BE
-BCA1..BCBB;H3 # HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
-BCBC;H2 # HANGUL SYLLABLE BYEO
-BCBD..BCD7;H3 # HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
-BCD8;H2 # HANGUL SYLLABLE BYE
-BCD9..BCF3;H3 # HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
-BCF4;H2 # HANGUL SYLLABLE BO
-BCF5..BD0F;H3 # HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
-BD10;H2 # HANGUL SYLLABLE BWA
-BD11..BD2B;H3 # HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
-BD2C;H2 # HANGUL SYLLABLE BWAE
-BD2D..BD47;H3 # HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
-BD48;H2 # HANGUL SYLLABLE BOE
-BD49..BD63;H3 # HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
-BD64;H2 # HANGUL SYLLABLE BYO
-BD65..BD7F;H3 # HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
-BD80;H2 # HANGUL SYLLABLE BU
-BD81..BD9B;H3 # HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
-BD9C;H2 # HANGUL SYLLABLE BWEO
-BD9D..BDB7;H3 # HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
-BDB8;H2 # HANGUL SYLLABLE BWE
-BDB9..BDD3;H3 # HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
-BDD4;H2 # HANGUL SYLLABLE BWI
-BDD5..BDEF;H3 # HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
-BDF0;H2 # HANGUL SYLLABLE BYU
-BDF1..BE0B;H3 # HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
-BE0C;H2 # HANGUL SYLLABLE BEU
-BE0D..BE27;H3 # HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
-BE28;H2 # HANGUL SYLLABLE BYI
-BE29..BE43;H3 # HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
-BE44;H2 # HANGUL SYLLABLE BI
-BE45..BE5F;H3 # HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
-BE60;H2 # HANGUL SYLLABLE BBA
-BE61..BE7B;H3 # HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
-BE7C;H2 # HANGUL SYLLABLE BBAE
-BE7D..BE97;H3 # HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
-BE98;H2 # HANGUL SYLLABLE BBYA
-BE99..BEB3;H3 # HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
-BEB4;H2 # HANGUL SYLLABLE BBYAE
-BEB5..BECF;H3 # HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
-BED0;H2 # HANGUL SYLLABLE BBEO
-BED1..BEEB;H3 # HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
-BEEC;H2 # HANGUL SYLLABLE BBE
-BEED..BF07;H3 # HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
-BF08;H2 # HANGUL SYLLABLE BBYEO
-BF09..BF23;H3 # HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
-BF24;H2 # HANGUL SYLLABLE BBYE
-BF25..BF3F;H3 # HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
-BF40;H2 # HANGUL SYLLABLE BBO
-BF41..BF5B;H3 # HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
-BF5C;H2 # HANGUL SYLLABLE BBWA
-BF5D..BF77;H3 # HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
-BF78;H2 # HANGUL SYLLABLE BBWAE
-BF79..BF93;H3 # HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
-BF94;H2 # HANGUL SYLLABLE BBOE
-BF95..BFAF;H3 # HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
-BFB0;H2 # HANGUL SYLLABLE BBYO
-BFB1..BFCB;H3 # HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
-BFCC;H2 # HANGUL SYLLABLE BBU
-BFCD..BFE7;H3 # HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
-BFE8;H2 # HANGUL SYLLABLE BBWEO
-BFE9..C003;H3 # HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
-C004;H2 # HANGUL SYLLABLE BBWE
-C005..C01F;H3 # HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
-C020;H2 # HANGUL SYLLABLE BBWI
-C021..C03B;H3 # HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
-C03C;H2 # HANGUL SYLLABLE BBYU
-C03D..C057;H3 # HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
-C058;H2 # HANGUL SYLLABLE BBEU
-C059..C073;H3 # HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
-C074;H2 # HANGUL SYLLABLE BBYI
-C075..C08F;H3 # HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
-C090;H2 # HANGUL SYLLABLE BBI
-C091..C0AB;H3 # HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
-C0AC;H2 # HANGUL SYLLABLE SA
-C0AD..C0C7;H3 # HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
-C0C8;H2 # HANGUL SYLLABLE SAE
-C0C9..C0E3;H3 # HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
-C0E4;H2 # HANGUL SYLLABLE SYA
-C0E5..C0FF;H3 # HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
-C100;H2 # HANGUL SYLLABLE SYAE
-C101..C11B;H3 # HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
-C11C;H2 # HANGUL SYLLABLE SEO
-C11D..C137;H3 # HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
-C138;H2 # HANGUL SYLLABLE SE
-C139..C153;H3 # HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
-C154;H2 # HANGUL SYLLABLE SYEO
-C155..C16F;H3 # HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
-C170;H2 # HANGUL SYLLABLE SYE
-C171..C18B;H3 # HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
-C18C;H2 # HANGUL SYLLABLE SO
-C18D..C1A7;H3 # HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
-C1A8;H2 # HANGUL SYLLABLE SWA
-C1A9..C1C3;H3 # HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
-C1C4;H2 # HANGUL SYLLABLE SWAE
-C1C5..C1DF;H3 # HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
-C1E0;H2 # HANGUL SYLLABLE SOE
-C1E1..C1FB;H3 # HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
-C1FC;H2 # HANGUL SYLLABLE SYO
-C1FD..C217;H3 # HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
-C218;H2 # HANGUL SYLLABLE SU
-C219..C233;H3 # HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
-C234;H2 # HANGUL SYLLABLE SWEO
-C235..C24F;H3 # HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
-C250;H2 # HANGUL SYLLABLE SWE
-C251..C26B;H3 # HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
-C26C;H2 # HANGUL SYLLABLE SWI
-C26D..C287;H3 # HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
-C288;H2 # HANGUL SYLLABLE SYU
-C289..C2A3;H3 # HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
-C2A4;H2 # HANGUL SYLLABLE SEU
-C2A5..C2BF;H3 # HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
-C2C0;H2 # HANGUL SYLLABLE SYI
-C2C1..C2DB;H3 # HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
-C2DC;H2 # HANGUL SYLLABLE SI
-C2DD..C2F7;H3 # HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
-C2F8;H2 # HANGUL SYLLABLE SSA
-C2F9..C313;H3 # HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
-C314;H2 # HANGUL SYLLABLE SSAE
-C315..C32F;H3 # HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
-C330;H2 # HANGUL SYLLABLE SSYA
-C331..C34B;H3 # HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
-C34C;H2 # HANGUL SYLLABLE SSYAE
-C34D..C367;H3 # HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
-C368;H2 # HANGUL SYLLABLE SSEO
-C369..C383;H3 # HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
-C384;H2 # HANGUL SYLLABLE SSE
-C385..C39F;H3 # HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
-C3A0;H2 # HANGUL SYLLABLE SSYEO
-C3A1..C3BB;H3 # HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
-C3BC;H2 # HANGUL SYLLABLE SSYE
-C3BD..C3D7;H3 # HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
-C3D8;H2 # HANGUL SYLLABLE SSO
-C3D9..C3F3;H3 # HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
-C3F4;H2 # HANGUL SYLLABLE SSWA
-C3F5..C40F;H3 # HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
-C410;H2 # HANGUL SYLLABLE SSWAE
-C411..C42B;H3 # HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
-C42C;H2 # HANGUL SYLLABLE SSOE
-C42D..C447;H3 # HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
-C448;H2 # HANGUL SYLLABLE SSYO
-C449..C463;H3 # HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
-C464;H2 # HANGUL SYLLABLE SSU
-C465..C47F;H3 # HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
-C480;H2 # HANGUL SYLLABLE SSWEO
-C481..C49B;H3 # HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
-C49C;H2 # HANGUL SYLLABLE SSWE
-C49D..C4B7;H3 # HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
-C4B8;H2 # HANGUL SYLLABLE SSWI
-C4B9..C4D3;H3 # HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
-C4D4;H2 # HANGUL SYLLABLE SSYU
-C4D5..C4EF;H3 # HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
-C4F0;H2 # HANGUL SYLLABLE SSEU
-C4F1..C50B;H3 # HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
-C50C;H2 # HANGUL SYLLABLE SSYI
-C50D..C527;H3 # HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
-C528;H2 # HANGUL SYLLABLE SSI
-C529..C543;H3 # HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
-C544;H2 # HANGUL SYLLABLE A
-C545..C55F;H3 # HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
-C560;H2 # HANGUL SYLLABLE AE
-C561..C57B;H3 # HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
-C57C;H2 # HANGUL SYLLABLE YA
-C57D..C597;H3 # HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
-C598;H2 # HANGUL SYLLABLE YAE
-C599..C5B3;H3 # HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
-C5B4;H2 # HANGUL SYLLABLE EO
-C5B5..C5CF;H3 # HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
-C5D0;H2 # HANGUL SYLLABLE E
-C5D1..C5EB;H3 # HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
-C5EC;H2 # HANGUL SYLLABLE YEO
-C5ED..C607;H3 # HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
-C608;H2 # HANGUL SYLLABLE YE
-C609..C623;H3 # HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
-C624;H2 # HANGUL SYLLABLE O
-C625..C63F;H3 # HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
-C640;H2 # HANGUL SYLLABLE WA
-C641..C65B;H3 # HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
-C65C;H2 # HANGUL SYLLABLE WAE
-C65D..C677;H3 # HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
-C678;H2 # HANGUL SYLLABLE OE
-C679..C693;H3 # HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
-C694;H2 # HANGUL SYLLABLE YO
-C695..C6AF;H3 # HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
-C6B0;H2 # HANGUL SYLLABLE U
-C6B1..C6CB;H3 # HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
-C6CC;H2 # HANGUL SYLLABLE WEO
-C6CD..C6E7;H3 # HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
-C6E8;H2 # HANGUL SYLLABLE WE
-C6E9..C703;H3 # HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
-C704;H2 # HANGUL SYLLABLE WI
-C705..C71F;H3 # HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
-C720;H2 # HANGUL SYLLABLE YU
-C721..C73B;H3 # HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
-C73C;H2 # HANGUL SYLLABLE EU
-C73D..C757;H3 # HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
-C758;H2 # HANGUL SYLLABLE YI
-C759..C773;H3 # HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
-C774;H2 # HANGUL SYLLABLE I
-C775..C78F;H3 # HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
-C790;H2 # HANGUL SYLLABLE JA
-C791..C7AB;H3 # HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
-C7AC;H2 # HANGUL SYLLABLE JAE
-C7AD..C7C7;H3 # HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
-C7C8;H2 # HANGUL SYLLABLE JYA
-C7C9..C7E3;H3 # HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
-C7E4;H2 # HANGUL SYLLABLE JYAE
-C7E5..C7FF;H3 # HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
-C800;H2 # HANGUL SYLLABLE JEO
-C801..C81B;H3 # HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
-C81C;H2 # HANGUL SYLLABLE JE
-C81D..C837;H3 # HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
-C838;H2 # HANGUL SYLLABLE JYEO
-C839..C853;H3 # HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
-C854;H2 # HANGUL SYLLABLE JYE
-C855..C86F;H3 # HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
-C870;H2 # HANGUL SYLLABLE JO
-C871..C88B;H3 # HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
-C88C;H2 # HANGUL SYLLABLE JWA
-C88D..C8A7;H3 # HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
-C8A8;H2 # HANGUL SYLLABLE JWAE
-C8A9..C8C3;H3 # HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
-C8C4;H2 # HANGUL SYLLABLE JOE
-C8C5..C8DF;H3 # HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
-C8E0;H2 # HANGUL SYLLABLE JYO
-C8E1..C8FB;H3 # HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
-C8FC;H2 # HANGUL SYLLABLE JU
-C8FD..C917;H3 # HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
-C918;H2 # HANGUL SYLLABLE JWEO
-C919..C933;H3 # HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
-C934;H2 # HANGUL SYLLABLE JWE
-C935..C94F;H3 # HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
-C950;H2 # HANGUL SYLLABLE JWI
-C951..C96B;H3 # HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
-C96C;H2 # HANGUL SYLLABLE JYU
-C96D..C987;H3 # HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
-C988;H2 # HANGUL SYLLABLE JEU
-C989..C9A3;H3 # HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
-C9A4;H2 # HANGUL SYLLABLE JYI
-C9A5..C9BF;H3 # HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
-C9C0;H2 # HANGUL SYLLABLE JI
-C9C1..C9DB;H3 # HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
-C9DC;H2 # HANGUL SYLLABLE JJA
-C9DD..C9F7;H3 # HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
-C9F8;H2 # HANGUL SYLLABLE JJAE
-C9F9..CA13;H3 # HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
-CA14;H2 # HANGUL SYLLABLE JJYA
-CA15..CA2F;H3 # HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
-CA30;H2 # HANGUL SYLLABLE JJYAE
-CA31..CA4B;H3 # HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
-CA4C;H2 # HANGUL SYLLABLE JJEO
-CA4D..CA67;H3 # HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
-CA68;H2 # HANGUL SYLLABLE JJE
-CA69..CA83;H3 # HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
-CA84;H2 # HANGUL SYLLABLE JJYEO
-CA85..CA9F;H3 # HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
-CAA0;H2 # HANGUL SYLLABLE JJYE
-CAA1..CABB;H3 # HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
-CABC;H2 # HANGUL SYLLABLE JJO
-CABD..CAD7;H3 # HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
-CAD8;H2 # HANGUL SYLLABLE JJWA
-CAD9..CAF3;H3 # HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
-CAF4;H2 # HANGUL SYLLABLE JJWAE
-CAF5..CB0F;H3 # HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
-CB10;H2 # HANGUL SYLLABLE JJOE
-CB11..CB2B;H3 # HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
-CB2C;H2 # HANGUL SYLLABLE JJYO
-CB2D..CB47;H3 # HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
-CB48;H2 # HANGUL SYLLABLE JJU
-CB49..CB63;H3 # HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
-CB64;H2 # HANGUL SYLLABLE JJWEO
-CB65..CB7F;H3 # HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
-CB80;H2 # HANGUL SYLLABLE JJWE
-CB81..CB9B;H3 # HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
-CB9C;H2 # HANGUL SYLLABLE JJWI
-CB9D..CBB7;H3 # HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
-CBB8;H2 # HANGUL SYLLABLE JJYU
-CBB9..CBD3;H3 # HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
-CBD4;H2 # HANGUL SYLLABLE JJEU
-CBD5..CBEF;H3 # HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
-CBF0;H2 # HANGUL SYLLABLE JJYI
-CBF1..CC0B;H3 # HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
-CC0C;H2 # HANGUL SYLLABLE JJI
-CC0D..CC27;H3 # HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
-CC28;H2 # HANGUL SYLLABLE CA
-CC29..CC43;H3 # HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
-CC44;H2 # HANGUL SYLLABLE CAE
-CC45..CC5F;H3 # HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
-CC60;H2 # HANGUL SYLLABLE CYA
-CC61..CC7B;H3 # HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
-CC7C;H2 # HANGUL SYLLABLE CYAE
-CC7D..CC97;H3 # HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
-CC98;H2 # HANGUL SYLLABLE CEO
-CC99..CCB3;H3 # HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
-CCB4;H2 # HANGUL SYLLABLE CE
-CCB5..CCCF;H3 # HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
-CCD0;H2 # HANGUL SYLLABLE CYEO
-CCD1..CCEB;H3 # HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
-CCEC;H2 # HANGUL SYLLABLE CYE
-CCED..CD07;H3 # HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
-CD08;H2 # HANGUL SYLLABLE CO
-CD09..CD23;H3 # HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
-CD24;H2 # HANGUL SYLLABLE CWA
-CD25..CD3F;H3 # HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
-CD40;H2 # HANGUL SYLLABLE CWAE
-CD41..CD5B;H3 # HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
-CD5C;H2 # HANGUL SYLLABLE COE
-CD5D..CD77;H3 # HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
-CD78;H2 # HANGUL SYLLABLE CYO
-CD79..CD93;H3 # HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
-CD94;H2 # HANGUL SYLLABLE CU
-CD95..CDAF;H3 # HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
-CDB0;H2 # HANGUL SYLLABLE CWEO
-CDB1..CDCB;H3 # HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
-CDCC;H2 # HANGUL SYLLABLE CWE
-CDCD..CDE7;H3 # HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
-CDE8;H2 # HANGUL SYLLABLE CWI
-CDE9..CE03;H3 # HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
-CE04;H2 # HANGUL SYLLABLE CYU
-CE05..CE1F;H3 # HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
-CE20;H2 # HANGUL SYLLABLE CEU
-CE21..CE3B;H3 # HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
-CE3C;H2 # HANGUL SYLLABLE CYI
-CE3D..CE57;H3 # HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
-CE58;H2 # HANGUL SYLLABLE CI
-CE59..CE73;H3 # HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
-CE74;H2 # HANGUL SYLLABLE KA
-CE75..CE8F;H3 # HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
-CE90;H2 # HANGUL SYLLABLE KAE
-CE91..CEAB;H3 # HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
-CEAC;H2 # HANGUL SYLLABLE KYA
-CEAD..CEC7;H3 # HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
-CEC8;H2 # HANGUL SYLLABLE KYAE
-CEC9..CEE3;H3 # HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
-CEE4;H2 # HANGUL SYLLABLE KEO
-CEE5..CEFF;H3 # HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
-CF00;H2 # HANGUL SYLLABLE KE
-CF01..CF1B;H3 # HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
-CF1C;H2 # HANGUL SYLLABLE KYEO
-CF1D..CF37;H3 # HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
-CF38;H2 # HANGUL SYLLABLE KYE
-CF39..CF53;H3 # HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
-CF54;H2 # HANGUL SYLLABLE KO
-CF55..CF6F;H3 # HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
-CF70;H2 # HANGUL SYLLABLE KWA
-CF71..CF8B;H3 # HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
-CF8C;H2 # HANGUL SYLLABLE KWAE
-CF8D..CFA7;H3 # HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
-CFA8;H2 # HANGUL SYLLABLE KOE
-CFA9..CFC3;H3 # HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
-CFC4;H2 # HANGUL SYLLABLE KYO
-CFC5..CFDF;H3 # HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
-CFE0;H2 # HANGUL SYLLABLE KU
-CFE1..CFFB;H3 # HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
-CFFC;H2 # HANGUL SYLLABLE KWEO
-CFFD..D017;H3 # HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
-D018;H2 # HANGUL SYLLABLE KWE
-D019..D033;H3 # HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
-D034;H2 # HANGUL SYLLABLE KWI
-D035..D04F;H3 # HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
-D050;H2 # HANGUL SYLLABLE KYU
-D051..D06B;H3 # HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
-D06C;H2 # HANGUL SYLLABLE KEU
-D06D..D087;H3 # HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
-D088;H2 # HANGUL SYLLABLE KYI
-D089..D0A3;H3 # HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
-D0A4;H2 # HANGUL SYLLABLE KI
-D0A5..D0BF;H3 # HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
-D0C0;H2 # HANGUL SYLLABLE TA
-D0C1..D0DB;H3 # HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
-D0DC;H2 # HANGUL SYLLABLE TAE
-D0DD..D0F7;H3 # HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
-D0F8;H2 # HANGUL SYLLABLE TYA
-D0F9..D113;H3 # HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
-D114;H2 # HANGUL SYLLABLE TYAE
-D115..D12F;H3 # HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
-D130;H2 # HANGUL SYLLABLE TEO
-D131..D14B;H3 # HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
-D14C;H2 # HANGUL SYLLABLE TE
-D14D..D167;H3 # HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
-D168;H2 # HANGUL SYLLABLE TYEO
-D169..D183;H3 # HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
-D184;H2 # HANGUL SYLLABLE TYE
-D185..D19F;H3 # HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
-D1A0;H2 # HANGUL SYLLABLE TO
-D1A1..D1BB;H3 # HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
-D1BC;H2 # HANGUL SYLLABLE TWA
-D1BD..D1D7;H3 # HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
-D1D8;H2 # HANGUL SYLLABLE TWAE
-D1D9..D1F3;H3 # HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
-D1F4;H2 # HANGUL SYLLABLE TOE
-D1F5..D20F;H3 # HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
-D210;H2 # HANGUL SYLLABLE TYO
-D211..D22B;H3 # HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
-D22C;H2 # HANGUL SYLLABLE TU
-D22D..D247;H3 # HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
-D248;H2 # HANGUL SYLLABLE TWEO
-D249..D263;H3 # HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
-D264;H2 # HANGUL SYLLABLE TWE
-D265..D27F;H3 # HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
-D280;H2 # HANGUL SYLLABLE TWI
-D281..D29B;H3 # HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
-D29C;H2 # HANGUL SYLLABLE TYU
-D29D..D2B7;H3 # HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
-D2B8;H2 # HANGUL SYLLABLE TEU
-D2B9..D2D3;H3 # HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
-D2D4;H2 # HANGUL SYLLABLE TYI
-D2D5..D2EF;H3 # HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
-D2F0;H2 # HANGUL SYLLABLE TI
-D2F1..D30B;H3 # HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
-D30C;H2 # HANGUL SYLLABLE PA
-D30D..D327;H3 # HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
-D328;H2 # HANGUL SYLLABLE PAE
-D329..D343;H3 # HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
-D344;H2 # HANGUL SYLLABLE PYA
-D345..D35F;H3 # HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
-D360;H2 # HANGUL SYLLABLE PYAE
-D361..D37B;H3 # HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
-D37C;H2 # HANGUL SYLLABLE PEO
-D37D..D397;H3 # HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
-D398;H2 # HANGUL SYLLABLE PE
-D399..D3B3;H3 # HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
-D3B4;H2 # HANGUL SYLLABLE PYEO
-D3B5..D3CF;H3 # HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
-D3D0;H2 # HANGUL SYLLABLE PYE
-D3D1..D3EB;H3 # HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
-D3EC;H2 # HANGUL SYLLABLE PO
-D3ED..D407;H3 # HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
-D408;H2 # HANGUL SYLLABLE PWA
-D409..D423;H3 # HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
-D424;H2 # HANGUL SYLLABLE PWAE
-D425..D43F;H3 # HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
-D440;H2 # HANGUL SYLLABLE POE
-D441..D45B;H3 # HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
-D45C;H2 # HANGUL SYLLABLE PYO
-D45D..D477;H3 # HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
-D478;H2 # HANGUL SYLLABLE PU
-D479..D493;H3 # HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
-D494;H2 # HANGUL SYLLABLE PWEO
-D495..D4AF;H3 # HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
-D4B0;H2 # HANGUL SYLLABLE PWE
-D4B1..D4CB;H3 # HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
-D4CC;H2 # HANGUL SYLLABLE PWI
-D4CD..D4E7;H3 # HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
-D4E8;H2 # HANGUL SYLLABLE PYU
-D4E9..D503;H3 # HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
-D504;H2 # HANGUL SYLLABLE PEU
-D505..D51F;H3 # HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
-D520;H2 # HANGUL SYLLABLE PYI
-D521..D53B;H3 # HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
-D53C;H2 # HANGUL SYLLABLE PI
-D53D..D557;H3 # HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
-D558;H2 # HANGUL SYLLABLE HA
-D559..D573;H3 # HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
-D574;H2 # HANGUL SYLLABLE HAE
-D575..D58F;H3 # HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
-D590;H2 # HANGUL SYLLABLE HYA
-D591..D5AB;H3 # HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
-D5AC;H2 # HANGUL SYLLABLE HYAE
-D5AD..D5C7;H3 # HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
-D5C8;H2 # HANGUL SYLLABLE HEO
-D5C9..D5E3;H3 # HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
-D5E4;H2 # HANGUL SYLLABLE HE
-D5E5..D5FF;H3 # HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
-D600;H2 # HANGUL SYLLABLE HYEO
-D601..D61B;H3 # HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
-D61C;H2 # HANGUL SYLLABLE HYE
-D61D..D637;H3 # HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
-D638;H2 # HANGUL SYLLABLE HO
-D639..D653;H3 # HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
-D654;H2 # HANGUL SYLLABLE HWA
-D655..D66F;H3 # HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
-D670;H2 # HANGUL SYLLABLE HWAE
-D671..D68B;H3 # HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
-D68C;H2 # HANGUL SYLLABLE HOE
-D68D..D6A7;H3 # HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
-D6A8;H2 # HANGUL SYLLABLE HYO
-D6A9..D6C3;H3 # HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
-D6C4;H2 # HANGUL SYLLABLE HU
-D6C5..D6DF;H3 # HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
-D6E0;H2 # HANGUL SYLLABLE HWEO
-D6E1..D6FB;H3 # HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
-D6FC;H2 # HANGUL SYLLABLE HWE
-D6FD..D717;H3 # HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
-D718;H2 # HANGUL SYLLABLE HWI
-D719..D733;H3 # HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
-D734;H2 # HANGUL SYLLABLE HYU
-D735..D74F;H3 # HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
-D750;H2 # HANGUL SYLLABLE HEU
-D751..D76B;H3 # HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
-D76C;H2 # HANGUL SYLLABLE HYI
-D76D..D787;H3 # HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
-D788;H2 # HANGUL SYLLABLE HI
-D789..D7A3;H3 # HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
-D7B0;JV # HANGUL JUNGSEONG O-YEO
-D7B1;JV # HANGUL JUNGSEONG O-O-I
-D7B2;JV # HANGUL JUNGSEONG YO-A
-D7B3;JV # HANGUL JUNGSEONG YO-AE
-D7B4;JV # HANGUL JUNGSEONG YO-EO
-D7B5;JV # HANGUL JUNGSEONG U-YEO
-D7B6;JV # HANGUL JUNGSEONG U-I-I
-D7B7;JV # HANGUL JUNGSEONG YU-AE
-D7B8;JV # HANGUL JUNGSEONG YU-O
-D7B9;JV # HANGUL JUNGSEONG EU-A
-D7BA;JV # HANGUL JUNGSEONG EU-EO
-D7BB;JV # HANGUL JUNGSEONG EU-E
-D7BC;JV # HANGUL JUNGSEONG EU-O
-D7BD;JV # HANGUL JUNGSEONG I-YA-O
-D7BE;JV # HANGUL JUNGSEONG I-YAE
-D7BF;JV # HANGUL JUNGSEONG I-YEO
-D7C0;JV # HANGUL JUNGSEONG I-YE
-D7C1;JV # HANGUL JUNGSEONG I-O-I
-D7C2;JV # HANGUL JUNGSEONG I-YO
-D7C3;JV # HANGUL JUNGSEONG I-YU
-D7C4;JV # HANGUL JUNGSEONG I-I
-D7C5;JV # HANGUL JUNGSEONG ARAEA-A
-D7C6;JV # HANGUL JUNGSEONG ARAEA-E
-D7CB;JT # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC;JT # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD;JT # HANGUL JONGSEONG SSANGTIKEUT
-D7CE;JT # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF;JT # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0;JT # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1;JT # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2;JT # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3;JT # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4;JT # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5;JT # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6;JT # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7;JT # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8;JT # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9;JT # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA;JT # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB;JT # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC;JT # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD;JT # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE;JT # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF;JT # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0;JT # HANGUL JONGSEONG SSANGMIEUM
-D7E1;JT # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2;JT # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3;JT # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4;JT # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5;JT # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6;JT # HANGUL JONGSEONG SSANGPIEUP
-D7E7;JT # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8;JT # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9;JT # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA;JT # HANGUL JONGSEONG SIOS-MIEUM
-D7EB;JT # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC;JT # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED;JT # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE;JT # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF;JT # HANGUL JONGSEONG SIOS-CIEUC
-D7F0;JT # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1;JT # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2;JT # HANGUL JONGSEONG SIOS-HIEUH
-D7F3;JT # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4;JT # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5;JT # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6;JT # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7;JT # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8;JT # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9;JT # HANGUL JONGSEONG SSANGCIEUC
-D7FA;JT # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB;JT # HANGUL JONGSEONG PHIEUPH-THIEUTH
-D800..DB7F;SG # <Non Private Use High Surrogate, First>..<Non Private Use High Surrogate, Last>
-DB80..DBFF;SG # <Private Use High Surrogate, First>..<Private Use High Surrogate, Last>
-DC00..DFFF;SG # <Low Surrogate, First>..<Low Surrogate, Last>
-E000..F8FF;XX # <Private Use, First>..<Private Use, Last>
-F900;ID # CJK COMPATIBILITY IDEOGRAPH-F900
-F901;ID # CJK COMPATIBILITY IDEOGRAPH-F901
-F902;ID # CJK COMPATIBILITY IDEOGRAPH-F902
-F903;ID # CJK COMPATIBILITY IDEOGRAPH-F903
-F904;ID # CJK COMPATIBILITY IDEOGRAPH-F904
-F905;ID # CJK COMPATIBILITY IDEOGRAPH-F905
-F906;ID # CJK COMPATIBILITY IDEOGRAPH-F906
-F907;ID # CJK COMPATIBILITY IDEOGRAPH-F907
-F908;ID # CJK COMPATIBILITY IDEOGRAPH-F908
-F909;ID # CJK COMPATIBILITY IDEOGRAPH-F909
-F90A;ID # CJK COMPATIBILITY IDEOGRAPH-F90A
-F90B;ID # CJK COMPATIBILITY IDEOGRAPH-F90B
-F90C;ID # CJK COMPATIBILITY IDEOGRAPH-F90C
-F90D;ID # CJK COMPATIBILITY IDEOGRAPH-F90D
-F90E;ID # CJK COMPATIBILITY IDEOGRAPH-F90E
-F90F;ID # CJK COMPATIBILITY IDEOGRAPH-F90F
-F910;ID # CJK COMPATIBILITY IDEOGRAPH-F910
-F911;ID # CJK COMPATIBILITY IDEOGRAPH-F911
-F912;ID # CJK COMPATIBILITY IDEOGRAPH-F912
-F913;ID # CJK COMPATIBILITY IDEOGRAPH-F913
-F914;ID # CJK COMPATIBILITY IDEOGRAPH-F914
-F915;ID # CJK COMPATIBILITY IDEOGRAPH-F915
-F916;ID # CJK COMPATIBILITY IDEOGRAPH-F916
-F917;ID # CJK COMPATIBILITY IDEOGRAPH-F917
-F918;ID # CJK COMPATIBILITY IDEOGRAPH-F918
-F919;ID # CJK COMPATIBILITY IDEOGRAPH-F919
-F91A;ID # CJK COMPATIBILITY IDEOGRAPH-F91A
-F91B;ID # CJK COMPATIBILITY IDEOGRAPH-F91B
-F91C;ID # CJK COMPATIBILITY IDEOGRAPH-F91C
-F91D;ID # CJK COMPATIBILITY IDEOGRAPH-F91D
-F91E;ID # CJK COMPATIBILITY IDEOGRAPH-F91E
-F91F;ID # CJK COMPATIBILITY IDEOGRAPH-F91F
-F920;ID # CJK COMPATIBILITY IDEOGRAPH-F920
-F921;ID # CJK COMPATIBILITY IDEOGRAPH-F921
-F922;ID # CJK COMPATIBILITY IDEOGRAPH-F922
-F923;ID # CJK COMPATIBILITY IDEOGRAPH-F923
-F924;ID # CJK COMPATIBILITY IDEOGRAPH-F924
-F925;ID # CJK COMPATIBILITY IDEOGRAPH-F925
-F926;ID # CJK COMPATIBILITY IDEOGRAPH-F926
-F927;ID # CJK COMPATIBILITY IDEOGRAPH-F927
-F928;ID # CJK COMPATIBILITY IDEOGRAPH-F928
-F929;ID # CJK COMPATIBILITY IDEOGRAPH-F929
-F92A;ID # CJK COMPATIBILITY IDEOGRAPH-F92A
-F92B;ID # CJK COMPATIBILITY IDEOGRAPH-F92B
-F92C;ID # CJK COMPATIBILITY IDEOGRAPH-F92C
-F92D;ID # CJK COMPATIBILITY IDEOGRAPH-F92D
-F92E;ID # CJK COMPATIBILITY IDEOGRAPH-F92E
-F92F;ID # CJK COMPATIBILITY IDEOGRAPH-F92F
-F930;ID # CJK COMPATIBILITY IDEOGRAPH-F930
-F931;ID # CJK COMPATIBILITY IDEOGRAPH-F931
-F932;ID # CJK COMPATIBILITY IDEOGRAPH-F932
-F933;ID # CJK COMPATIBILITY IDEOGRAPH-F933
-F934;ID # CJK COMPATIBILITY IDEOGRAPH-F934
-F935;ID # CJK COMPATIBILITY IDEOGRAPH-F935
-F936;ID # CJK COMPATIBILITY IDEOGRAPH-F936
-F937;ID # CJK COMPATIBILITY IDEOGRAPH-F937
-F938;ID # CJK COMPATIBILITY IDEOGRAPH-F938
-F939;ID # CJK COMPATIBILITY IDEOGRAPH-F939
-F93A;ID # CJK COMPATIBILITY IDEOGRAPH-F93A
-F93B;ID # CJK COMPATIBILITY IDEOGRAPH-F93B
-F93C;ID # CJK COMPATIBILITY IDEOGRAPH-F93C
-F93D;ID # CJK COMPATIBILITY IDEOGRAPH-F93D
-F93E;ID # CJK COMPATIBILITY IDEOGRAPH-F93E
-F93F;ID # CJK COMPATIBILITY IDEOGRAPH-F93F
-F940;ID # CJK COMPATIBILITY IDEOGRAPH-F940
-F941;ID # CJK COMPATIBILITY IDEOGRAPH-F941
-F942;ID # CJK COMPATIBILITY IDEOGRAPH-F942
-F943;ID # CJK COMPATIBILITY IDEOGRAPH-F943
-F944;ID # CJK COMPATIBILITY IDEOGRAPH-F944
-F945;ID # CJK COMPATIBILITY IDEOGRAPH-F945
-F946;ID # CJK COMPATIBILITY IDEOGRAPH-F946
-F947;ID # CJK COMPATIBILITY IDEOGRAPH-F947
-F948;ID # CJK COMPATIBILITY IDEOGRAPH-F948
-F949;ID # CJK COMPATIBILITY IDEOGRAPH-F949
-F94A;ID # CJK COMPATIBILITY IDEOGRAPH-F94A
-F94B;ID # CJK COMPATIBILITY IDEOGRAPH-F94B
-F94C;ID # CJK COMPATIBILITY IDEOGRAPH-F94C
-F94D;ID # CJK COMPATIBILITY IDEOGRAPH-F94D
-F94E;ID # CJK COMPATIBILITY IDEOGRAPH-F94E
-F94F;ID # CJK COMPATIBILITY IDEOGRAPH-F94F
-F950;ID # CJK COMPATIBILITY IDEOGRAPH-F950
-F951;ID # CJK COMPATIBILITY IDEOGRAPH-F951
-F952;ID # CJK COMPATIBILITY IDEOGRAPH-F952
-F953;ID # CJK COMPATIBILITY IDEOGRAPH-F953
-F954;ID # CJK COMPATIBILITY IDEOGRAPH-F954
-F955;ID # CJK COMPATIBILITY IDEOGRAPH-F955
-F956;ID # CJK COMPATIBILITY IDEOGRAPH-F956
-F957;ID # CJK COMPATIBILITY IDEOGRAPH-F957
-F958;ID # CJK COMPATIBILITY IDEOGRAPH-F958
-F959;ID # CJK COMPATIBILITY IDEOGRAPH-F959
-F95A;ID # CJK COMPATIBILITY IDEOGRAPH-F95A
-F95B;ID # CJK COMPATIBILITY IDEOGRAPH-F95B
-F95C;ID # CJK COMPATIBILITY IDEOGRAPH-F95C
-F95D;ID # CJK COMPATIBILITY IDEOGRAPH-F95D
-F95E;ID # CJK COMPATIBILITY IDEOGRAPH-F95E
-F95F;ID # CJK COMPATIBILITY IDEOGRAPH-F95F
-F960;ID # CJK COMPATIBILITY IDEOGRAPH-F960
-F961;ID # CJK COMPATIBILITY IDEOGRAPH-F961
-F962;ID # CJK COMPATIBILITY IDEOGRAPH-F962
-F963;ID # CJK COMPATIBILITY IDEOGRAPH-F963
-F964;ID # CJK COMPATIBILITY IDEOGRAPH-F964
-F965;ID # CJK COMPATIBILITY IDEOGRAPH-F965
-F966;ID # CJK COMPATIBILITY IDEOGRAPH-F966
-F967;ID # CJK COMPATIBILITY IDEOGRAPH-F967
-F968;ID # CJK COMPATIBILITY IDEOGRAPH-F968
-F969;ID # CJK COMPATIBILITY IDEOGRAPH-F969
-F96A;ID # CJK COMPATIBILITY IDEOGRAPH-F96A
-F96B;ID # CJK COMPATIBILITY IDEOGRAPH-F96B
-F96C;ID # CJK COMPATIBILITY IDEOGRAPH-F96C
-F96D;ID # CJK COMPATIBILITY IDEOGRAPH-F96D
-F96E;ID # CJK COMPATIBILITY IDEOGRAPH-F96E
-F96F;ID # CJK COMPATIBILITY IDEOGRAPH-F96F
-F970;ID # CJK COMPATIBILITY IDEOGRAPH-F970
-F971;ID # CJK COMPATIBILITY IDEOGRAPH-F971
-F972;ID # CJK COMPATIBILITY IDEOGRAPH-F972
-F973;ID # CJK COMPATIBILITY IDEOGRAPH-F973
-F974;ID # CJK COMPATIBILITY IDEOGRAPH-F974
-F975;ID # CJK COMPATIBILITY IDEOGRAPH-F975
-F976;ID # CJK COMPATIBILITY IDEOGRAPH-F976
-F977;ID # CJK COMPATIBILITY IDEOGRAPH-F977
-F978;ID # CJK COMPATIBILITY IDEOGRAPH-F978
-F979;ID # CJK COMPATIBILITY IDEOGRAPH-F979
-F97A;ID # CJK COMPATIBILITY IDEOGRAPH-F97A
-F97B;ID # CJK COMPATIBILITY IDEOGRAPH-F97B
-F97C;ID # CJK COMPATIBILITY IDEOGRAPH-F97C
-F97D;ID # CJK COMPATIBILITY IDEOGRAPH-F97D
-F97E;ID # CJK COMPATIBILITY IDEOGRAPH-F97E
-F97F;ID # CJK COMPATIBILITY IDEOGRAPH-F97F
-F980;ID # CJK COMPATIBILITY IDEOGRAPH-F980
-F981;ID # CJK COMPATIBILITY IDEOGRAPH-F981
-F982;ID # CJK COMPATIBILITY IDEOGRAPH-F982
-F983;ID # CJK COMPATIBILITY IDEOGRAPH-F983
-F984;ID # CJK COMPATIBILITY IDEOGRAPH-F984
-F985;ID # CJK COMPATIBILITY IDEOGRAPH-F985
-F986;ID # CJK COMPATIBILITY IDEOGRAPH-F986
-F987;ID # CJK COMPATIBILITY IDEOGRAPH-F987
-F988;ID # CJK COMPATIBILITY IDEOGRAPH-F988
-F989;ID # CJK COMPATIBILITY IDEOGRAPH-F989
-F98A;ID # CJK COMPATIBILITY IDEOGRAPH-F98A
-F98B;ID # CJK COMPATIBILITY IDEOGRAPH-F98B
-F98C;ID # CJK COMPATIBILITY IDEOGRAPH-F98C
-F98D;ID # CJK COMPATIBILITY IDEOGRAPH-F98D
-F98E;ID # CJK COMPATIBILITY IDEOGRAPH-F98E
-F98F;ID # CJK COMPATIBILITY IDEOGRAPH-F98F
-F990;ID # CJK COMPATIBILITY IDEOGRAPH-F990
-F991;ID # CJK COMPATIBILITY IDEOGRAPH-F991
-F992;ID # CJK COMPATIBILITY IDEOGRAPH-F992
-F993;ID # CJK COMPATIBILITY IDEOGRAPH-F993
-F994;ID # CJK COMPATIBILITY IDEOGRAPH-F994
-F995;ID # CJK COMPATIBILITY IDEOGRAPH-F995
-F996;ID # CJK COMPATIBILITY IDEOGRAPH-F996
-F997;ID # CJK COMPATIBILITY IDEOGRAPH-F997
-F998;ID # CJK COMPATIBILITY IDEOGRAPH-F998
-F999;ID # CJK COMPATIBILITY IDEOGRAPH-F999
-F99A;ID # CJK COMPATIBILITY IDEOGRAPH-F99A
-F99B;ID # CJK COMPATIBILITY IDEOGRAPH-F99B
-F99C;ID # CJK COMPATIBILITY IDEOGRAPH-F99C
-F99D;ID # CJK COMPATIBILITY IDEOGRAPH-F99D
-F99E;ID # CJK COMPATIBILITY IDEOGRAPH-F99E
-F99F;ID # CJK COMPATIBILITY IDEOGRAPH-F99F
-F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-F9A1
-F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-F9A4
-F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-F9A7
-F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-F9A9
-F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-F9AA
-F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-F9AB
-F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-F9AC
-F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-F9AE
-F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-F9AF
-F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-F9B1
-F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-F9B3
-F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-F9B4
-F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-F9B5
-F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-F9B9
-F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-F9BB
-F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-F9BD
-F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-F9C2
-F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-F9C4
-F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-F9C5
-F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-F9CA
-F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-F9CC
-F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-F9D0
-F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-F9D1
-F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-F9D2
-F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-F9D3
-F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-F9D4
-F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-F9D6
-F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-F9D7
-F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-F9D9
-F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-F9DB
-F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-F9DF
-F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-F9E0
-F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-F9E1
-F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-F9E2
-F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-F9E5
-F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-F9EA
-F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-F9EB
-F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-F9EC
-F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-F9ED
-F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-F9EF
-F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-F9F1
-F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-F9F2
-F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-F9F3
-F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-F9F6
-F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-F9F8
-F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-F9F9
-F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-F9FB
-F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-F9FE
-F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-F9FF
-FA00;ID # CJK COMPATIBILITY IDEOGRAPH-FA00
-FA01;ID # CJK COMPATIBILITY IDEOGRAPH-FA01
-FA02;ID # CJK COMPATIBILITY IDEOGRAPH-FA02
-FA03;ID # CJK COMPATIBILITY IDEOGRAPH-FA03
-FA04;ID # CJK COMPATIBILITY IDEOGRAPH-FA04
-FA05;ID # CJK COMPATIBILITY IDEOGRAPH-FA05
-FA06;ID # CJK COMPATIBILITY IDEOGRAPH-FA06
-FA07;ID # CJK COMPATIBILITY IDEOGRAPH-FA07
-FA08;ID # CJK COMPATIBILITY IDEOGRAPH-FA08
-FA09;ID # CJK COMPATIBILITY IDEOGRAPH-FA09
-FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-FA0B
-FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-FA0D
-FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-FA0E
-FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA10;ID # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA11;ID # CJK COMPATIBILITY IDEOGRAPH-FA11
-FA12;ID # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA13;ID # CJK COMPATIBILITY IDEOGRAPH-FA13
-FA14;ID # CJK COMPATIBILITY IDEOGRAPH-FA14
-FA15;ID # CJK COMPATIBILITY IDEOGRAPH-FA15
-FA16;ID # CJK COMPATIBILITY IDEOGRAPH-FA16
-FA17;ID # CJK COMPATIBILITY IDEOGRAPH-FA17
-FA18;ID # CJK COMPATIBILITY IDEOGRAPH-FA18
-FA19;ID # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-FA1A
-FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-FA1B
-FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA1E;ID # CJK COMPATIBILITY IDEOGRAPH-FA1E
-FA1F;ID # CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA20;ID # CJK COMPATIBILITY IDEOGRAPH-FA20
-FA21;ID # CJK COMPATIBILITY IDEOGRAPH-FA21
-FA22;ID # CJK COMPATIBILITY IDEOGRAPH-FA22
-FA23;ID # CJK COMPATIBILITY IDEOGRAPH-FA23
-FA24;ID # CJK COMPATIBILITY IDEOGRAPH-FA24
-FA25;ID # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA26;ID # CJK COMPATIBILITY IDEOGRAPH-FA26
-FA27;ID # CJK COMPATIBILITY IDEOGRAPH-FA27
-FA28;ID # CJK COMPATIBILITY IDEOGRAPH-FA28
-FA29;ID # CJK COMPATIBILITY IDEOGRAPH-FA29
-FA2A;ID # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B;ID # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C;ID # CJK COMPATIBILITY IDEOGRAPH-FA2C
-FA2D;ID # CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA2E;ID # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA2F;ID # CJK COMPATIBILITY IDEOGRAPH-FA2F
-FA30;ID # CJK COMPATIBILITY IDEOGRAPH-FA30
-FA31;ID # CJK COMPATIBILITY IDEOGRAPH-FA31
-FA32;ID # CJK COMPATIBILITY IDEOGRAPH-FA32
-FA33;ID # CJK COMPATIBILITY IDEOGRAPH-FA33
-FA34;ID # CJK COMPATIBILITY IDEOGRAPH-FA34
-FA35;ID # CJK COMPATIBILITY IDEOGRAPH-FA35
-FA36;ID # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA37;ID # CJK COMPATIBILITY IDEOGRAPH-FA37
-FA38;ID # CJK COMPATIBILITY IDEOGRAPH-FA38
-FA39;ID # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA3A;ID # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA3B;ID # CJK COMPATIBILITY IDEOGRAPH-FA3B
-FA3C;ID # CJK COMPATIBILITY IDEOGRAPH-FA3C
-FA3D;ID # CJK COMPATIBILITY IDEOGRAPH-FA3D
-FA3E;ID # CJK COMPATIBILITY IDEOGRAPH-FA3E
-FA3F;ID # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA40;ID # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA41;ID # CJK COMPATIBILITY IDEOGRAPH-FA41
-FA42;ID # CJK COMPATIBILITY IDEOGRAPH-FA42
-FA43;ID # CJK COMPATIBILITY IDEOGRAPH-FA43
-FA44;ID # CJK COMPATIBILITY IDEOGRAPH-FA44
-FA45;ID # CJK COMPATIBILITY IDEOGRAPH-FA45
-FA46;ID # CJK COMPATIBILITY IDEOGRAPH-FA46
-FA47;ID # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA48;ID # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA49;ID # CJK COMPATIBILITY IDEOGRAPH-FA49
-FA4A;ID # CJK COMPATIBILITY IDEOGRAPH-FA4A
-FA4B;ID # CJK COMPATIBILITY IDEOGRAPH-FA4B
-FA4C;ID # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4D;ID # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4E;ID # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4F;ID # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50;ID # CJK COMPATIBILITY IDEOGRAPH-FA50
-FA51;ID # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA52;ID # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53;ID # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA54;ID # CJK COMPATIBILITY IDEOGRAPH-FA54
-FA55;ID # CJK COMPATIBILITY IDEOGRAPH-FA55
-FA56;ID # CJK COMPATIBILITY IDEOGRAPH-FA56
-FA57;ID # CJK COMPATIBILITY IDEOGRAPH-FA57
-FA58;ID # CJK COMPATIBILITY IDEOGRAPH-FA58
-FA59;ID # CJK COMPATIBILITY IDEOGRAPH-FA59
-FA5A;ID # CJK COMPATIBILITY IDEOGRAPH-FA5A
-FA5B;ID # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FA5C;ID # CJK COMPATIBILITY IDEOGRAPH-FA5C
-FA5D;ID # CJK COMPATIBILITY IDEOGRAPH-FA5D
-FA5E;ID # CJK COMPATIBILITY IDEOGRAPH-FA5E
-FA5F;ID # CJK COMPATIBILITY IDEOGRAPH-FA5F
-FA60;ID # CJK COMPATIBILITY IDEOGRAPH-FA60
-FA61;ID # CJK COMPATIBILITY IDEOGRAPH-FA61
-FA62;ID # CJK COMPATIBILITY IDEOGRAPH-FA62
-FA63;ID # CJK COMPATIBILITY IDEOGRAPH-FA63
-FA64;ID # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65;ID # CJK COMPATIBILITY IDEOGRAPH-FA65
-FA66;ID # CJK COMPATIBILITY IDEOGRAPH-FA66
-FA67;ID # CJK COMPATIBILITY IDEOGRAPH-FA67
-FA68;ID # CJK COMPATIBILITY IDEOGRAPH-FA68
-FA69;ID # CJK COMPATIBILITY IDEOGRAPH-FA69
-FA6A;ID # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FA6B;ID # CJK COMPATIBILITY IDEOGRAPH-FA6B
-FA6C;ID # CJK COMPATIBILITY IDEOGRAPH-FA6C
-FA6D;ID # CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F;ID # <reserved-FA6E>..<reserved-FA6F>
-FA70;ID # CJK COMPATIBILITY IDEOGRAPH-FA70
-FA71;ID # CJK COMPATIBILITY IDEOGRAPH-FA71
-FA72;ID # CJK COMPATIBILITY IDEOGRAPH-FA72
-FA73;ID # CJK COMPATIBILITY IDEOGRAPH-FA73
-FA74;ID # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA75;ID # CJK COMPATIBILITY IDEOGRAPH-FA75
-FA76;ID # CJK COMPATIBILITY IDEOGRAPH-FA76
-FA77;ID # CJK COMPATIBILITY IDEOGRAPH-FA77
-FA78;ID # CJK COMPATIBILITY IDEOGRAPH-FA78
-FA79;ID # CJK COMPATIBILITY IDEOGRAPH-FA79
-FA7A;ID # CJK COMPATIBILITY IDEOGRAPH-FA7A
-FA7B;ID # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA7C;ID # CJK COMPATIBILITY IDEOGRAPH-FA7C
-FA7D;ID # CJK COMPATIBILITY IDEOGRAPH-FA7D
-FA7E;ID # CJK COMPATIBILITY IDEOGRAPH-FA7E
-FA7F;ID # CJK COMPATIBILITY IDEOGRAPH-FA7F
-FA80;ID # CJK COMPATIBILITY IDEOGRAPH-FA80
-FA81;ID # CJK COMPATIBILITY IDEOGRAPH-FA81
-FA82;ID # CJK COMPATIBILITY IDEOGRAPH-FA82
-FA83;ID # CJK COMPATIBILITY IDEOGRAPH-FA83
-FA84;ID # CJK COMPATIBILITY IDEOGRAPH-FA84
-FA85;ID # CJK COMPATIBILITY IDEOGRAPH-FA85
-FA86;ID # CJK COMPATIBILITY IDEOGRAPH-FA86
-FA87;ID # CJK COMPATIBILITY IDEOGRAPH-FA87
-FA88;ID # CJK COMPATIBILITY IDEOGRAPH-FA88
-FA89;ID # CJK COMPATIBILITY IDEOGRAPH-FA89
-FA8A;ID # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA8B;ID # CJK COMPATIBILITY IDEOGRAPH-FA8B
-FA8C;ID # CJK COMPATIBILITY IDEOGRAPH-FA8C
-FA8D;ID # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E;ID # CJK COMPATIBILITY IDEOGRAPH-FA8E
-FA8F;ID # CJK COMPATIBILITY IDEOGRAPH-FA8F
-FA90;ID # CJK COMPATIBILITY IDEOGRAPH-FA90
-FA91;ID # CJK COMPATIBILITY IDEOGRAPH-FA91
-FA92;ID # CJK COMPATIBILITY IDEOGRAPH-FA92
-FA93;ID # CJK COMPATIBILITY IDEOGRAPH-FA93
-FA94;ID # CJK COMPATIBILITY IDEOGRAPH-FA94
-FA95;ID # CJK COMPATIBILITY IDEOGRAPH-FA95
-FA96;ID # CJK COMPATIBILITY IDEOGRAPH-FA96
-FA97;ID # CJK COMPATIBILITY IDEOGRAPH-FA97
-FA98;ID # CJK COMPATIBILITY IDEOGRAPH-FA98
-FA99;ID # CJK COMPATIBILITY IDEOGRAPH-FA99
-FA9A;ID # CJK COMPATIBILITY IDEOGRAPH-FA9A
-FA9B;ID # CJK COMPATIBILITY IDEOGRAPH-FA9B
-FA9C;ID # CJK COMPATIBILITY IDEOGRAPH-FA9C
-FA9D;ID # CJK COMPATIBILITY IDEOGRAPH-FA9D
-FA9E;ID # CJK COMPATIBILITY IDEOGRAPH-FA9E
-FA9F;ID # CJK COMPATIBILITY IDEOGRAPH-FA9F
-FAA0;ID # CJK COMPATIBILITY IDEOGRAPH-FAA0
-FAA1;ID # CJK COMPATIBILITY IDEOGRAPH-FAA1
-FAA2;ID # CJK COMPATIBILITY IDEOGRAPH-FAA2
-FAA3;ID # CJK COMPATIBILITY IDEOGRAPH-FAA3
-FAA4;ID # CJK COMPATIBILITY IDEOGRAPH-FAA4
-FAA5;ID # CJK COMPATIBILITY IDEOGRAPH-FAA5
-FAA6;ID # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7;ID # CJK COMPATIBILITY IDEOGRAPH-FAA7
-FAA8;ID # CJK COMPATIBILITY IDEOGRAPH-FAA8
-FAA9;ID # CJK COMPATIBILITY IDEOGRAPH-FAA9
-FAAA;ID # CJK COMPATIBILITY IDEOGRAPH-FAAA
-FAAB;ID # CJK COMPATIBILITY IDEOGRAPH-FAAB
-FAAC;ID # CJK COMPATIBILITY IDEOGRAPH-FAAC
-FAAD;ID # CJK COMPATIBILITY IDEOGRAPH-FAAD
-FAAE;ID # CJK COMPATIBILITY IDEOGRAPH-FAAE
-FAAF;ID # CJK COMPATIBILITY IDEOGRAPH-FAAF
-FAB0;ID # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FAB1;ID # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FAB2;ID # CJK COMPATIBILITY IDEOGRAPH-FAB2
-FAB3;ID # CJK COMPATIBILITY IDEOGRAPH-FAB3
-FAB4;ID # CJK COMPATIBILITY IDEOGRAPH-FAB4
-FAB5;ID # CJK COMPATIBILITY IDEOGRAPH-FAB5
-FAB6;ID # CJK COMPATIBILITY IDEOGRAPH-FAB6
-FAB7;ID # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FAB8;ID # CJK COMPATIBILITY IDEOGRAPH-FAB8
-FAB9;ID # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABA;ID # CJK COMPATIBILITY IDEOGRAPH-FABA
-FABB;ID # CJK COMPATIBILITY IDEOGRAPH-FABB
-FABC;ID # CJK COMPATIBILITY IDEOGRAPH-FABC
-FABD;ID # CJK COMPATIBILITY IDEOGRAPH-FABD
-FABE;ID # CJK COMPATIBILITY IDEOGRAPH-FABE
-FABF;ID # CJK COMPATIBILITY IDEOGRAPH-FABF
-FAC0;ID # CJK COMPATIBILITY IDEOGRAPH-FAC0
-FAC1;ID # CJK COMPATIBILITY IDEOGRAPH-FAC1
-FAC2;ID # CJK COMPATIBILITY IDEOGRAPH-FAC2
-FAC3;ID # CJK COMPATIBILITY IDEOGRAPH-FAC3
-FAC4;ID # CJK COMPATIBILITY IDEOGRAPH-FAC4
-FAC5;ID # CJK COMPATIBILITY IDEOGRAPH-FAC5
-FAC6;ID # CJK COMPATIBILITY IDEOGRAPH-FAC6
-FAC7;ID # CJK COMPATIBILITY IDEOGRAPH-FAC7
-FAC8;ID # CJK COMPATIBILITY IDEOGRAPH-FAC8
-FAC9;ID # CJK COMPATIBILITY IDEOGRAPH-FAC9
-FACA;ID # CJK COMPATIBILITY IDEOGRAPH-FACA
-FACB;ID # CJK COMPATIBILITY IDEOGRAPH-FACB
-FACC;ID # CJK COMPATIBILITY IDEOGRAPH-FACC
-FACD;ID # CJK COMPATIBILITY IDEOGRAPH-FACD
-FACE;ID # CJK COMPATIBILITY IDEOGRAPH-FACE
-FACF;ID # CJK COMPATIBILITY IDEOGRAPH-FACF
-FAD0;ID # CJK COMPATIBILITY IDEOGRAPH-FAD0
-FAD1;ID # CJK COMPATIBILITY IDEOGRAPH-FAD1
-FAD2;ID # CJK COMPATIBILITY IDEOGRAPH-FAD2
-FAD3;ID # CJK COMPATIBILITY IDEOGRAPH-FAD3
-FAD4;ID # CJK COMPATIBILITY IDEOGRAPH-FAD4
-FAD5;ID # CJK COMPATIBILITY IDEOGRAPH-FAD5
-FAD6;ID # CJK COMPATIBILITY IDEOGRAPH-FAD6
-FAD7;ID # CJK COMPATIBILITY IDEOGRAPH-FAD7
-FAD8;ID # CJK COMPATIBILITY IDEOGRAPH-FAD8
-FAD9;ID # CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF;ID # <reserved-FADA>..<reserved-FAFF>
-FB00;AL # LATIN SMALL LIGATURE FF
-FB01;AL # LATIN SMALL LIGATURE FI
-FB02;AL # LATIN SMALL LIGATURE FL
-FB03;AL # LATIN SMALL LIGATURE FFI
-FB04;AL # LATIN SMALL LIGATURE FFL
-FB05;AL # LATIN SMALL LIGATURE LONG S T
-FB06;AL # LATIN SMALL LIGATURE ST
-FB13;AL # ARMENIAN SMALL LIGATURE MEN NOW
-FB14;AL # ARMENIAN SMALL LIGATURE MEN ECH
-FB15;AL # ARMENIAN SMALL LIGATURE MEN INI
-FB16;AL # ARMENIAN SMALL LIGATURE VEW NOW
-FB17;AL # ARMENIAN SMALL LIGATURE MEN XEH
-FB1D;HL # HEBREW LETTER YOD WITH HIRIQ
-FB1E;CM # HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F;HL # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-FB20;HL # HEBREW LETTER ALTERNATIVE AYIN
-FB21;HL # HEBREW LETTER WIDE ALEF
-FB22;HL # HEBREW LETTER WIDE DALET
-FB23;HL # HEBREW LETTER WIDE HE
-FB24;HL # HEBREW LETTER WIDE KAF
-FB25;HL # HEBREW LETTER WIDE LAMED
-FB26;HL # HEBREW LETTER WIDE FINAL MEM
-FB27;HL # HEBREW LETTER WIDE RESH
-FB28;HL # HEBREW LETTER WIDE TAV
-FB29;AL # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A;HL # HEBREW LETTER SHIN WITH SHIN DOT
-FB2B;HL # HEBREW LETTER SHIN WITH SIN DOT
-FB2C;HL # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-FB2D;HL # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2E;HL # HEBREW LETTER ALEF WITH PATAH
-FB2F;HL # HEBREW LETTER ALEF WITH QAMATS
-FB30;HL # HEBREW LETTER ALEF WITH MAPIQ
-FB31;HL # HEBREW LETTER BET WITH DAGESH
-FB32;HL # HEBREW LETTER GIMEL WITH DAGESH
-FB33;HL # HEBREW LETTER DALET WITH DAGESH
-FB34;HL # HEBREW LETTER HE WITH MAPIQ
-FB35;HL # HEBREW LETTER VAV WITH DAGESH
-FB36;HL # HEBREW LETTER ZAYIN WITH DAGESH
-FB38;HL # HEBREW LETTER TET WITH DAGESH
-FB39;HL # HEBREW LETTER YOD WITH DAGESH
-FB3A;HL # HEBREW LETTER FINAL KAF WITH DAGESH
-FB3B;HL # HEBREW LETTER KAF WITH DAGESH
-FB3C;HL # HEBREW LETTER LAMED WITH DAGESH
-FB3E;HL # HEBREW LETTER MEM WITH DAGESH
-FB40;HL # HEBREW LETTER NUN WITH DAGESH
-FB41;HL # HEBREW LETTER SAMEKH WITH DAGESH
-FB43;HL # HEBREW LETTER FINAL PE WITH DAGESH
-FB44;HL # HEBREW LETTER PE WITH DAGESH
-FB46;HL # HEBREW LETTER TSADI WITH DAGESH
-FB47;HL # HEBREW LETTER QOF WITH DAGESH
-FB48;HL # HEBREW LETTER RESH WITH DAGESH
-FB49;HL # HEBREW LETTER SHIN WITH DAGESH
-FB4A;HL # HEBREW LETTER TAV WITH DAGESH
-FB4B;HL # HEBREW LETTER VAV WITH HOLAM
-FB4C;HL # HEBREW LETTER BET WITH RAFE
-FB4D;HL # HEBREW LETTER KAF WITH RAFE
-FB4E;HL # HEBREW LETTER PE WITH RAFE
-FB4F;HL # HEBREW LIGATURE ALEF LAMED
-FB50;AL # ARABIC LETTER ALEF WASLA ISOLATED FORM
-FB51;AL # ARABIC LETTER ALEF WASLA FINAL FORM
-FB52;AL # ARABIC LETTER BEEH ISOLATED FORM
-FB53;AL # ARABIC LETTER BEEH FINAL FORM
-FB54;AL # ARABIC LETTER BEEH INITIAL FORM
-FB55;AL # ARABIC LETTER BEEH MEDIAL FORM
-FB56;AL # ARABIC LETTER PEH ISOLATED FORM
-FB57;AL # ARABIC LETTER PEH FINAL FORM
-FB58;AL # ARABIC LETTER PEH INITIAL FORM
-FB59;AL # ARABIC LETTER PEH MEDIAL FORM
-FB5A;AL # ARABIC LETTER BEHEH ISOLATED FORM
-FB5B;AL # ARABIC LETTER BEHEH FINAL FORM
-FB5C;AL # ARABIC LETTER BEHEH INITIAL FORM
-FB5D;AL # ARABIC LETTER BEHEH MEDIAL FORM
-FB5E;AL # ARABIC LETTER TTEHEH ISOLATED FORM
-FB5F;AL # ARABIC LETTER TTEHEH FINAL FORM
-FB60;AL # ARABIC LETTER TTEHEH INITIAL FORM
-FB61;AL # ARABIC LETTER TTEHEH MEDIAL FORM
-FB62;AL # ARABIC LETTER TEHEH ISOLATED FORM
-FB63;AL # ARABIC LETTER TEHEH FINAL FORM
-FB64;AL # ARABIC LETTER TEHEH INITIAL FORM
-FB65;AL # ARABIC LETTER TEHEH MEDIAL FORM
-FB66;AL # ARABIC LETTER TTEH ISOLATED FORM
-FB67;AL # ARABIC LETTER TTEH FINAL FORM
-FB68;AL # ARABIC LETTER TTEH INITIAL FORM
-FB69;AL # ARABIC LETTER TTEH MEDIAL FORM
-FB6A;AL # ARABIC LETTER VEH ISOLATED FORM
-FB6B;AL # ARABIC LETTER VEH FINAL FORM
-FB6C;AL # ARABIC LETTER VEH INITIAL FORM
-FB6D;AL # ARABIC LETTER VEH MEDIAL FORM
-FB6E;AL # ARABIC LETTER PEHEH ISOLATED FORM
-FB6F;AL # ARABIC LETTER PEHEH FINAL FORM
-FB70;AL # ARABIC LETTER PEHEH INITIAL FORM
-FB71;AL # ARABIC LETTER PEHEH MEDIAL FORM
-FB72;AL # ARABIC LETTER DYEH ISOLATED FORM
-FB73;AL # ARABIC LETTER DYEH FINAL FORM
-FB74;AL # ARABIC LETTER DYEH INITIAL FORM
-FB75;AL # ARABIC LETTER DYEH MEDIAL FORM
-FB76;AL # ARABIC LETTER NYEH ISOLATED FORM
-FB77;AL # ARABIC LETTER NYEH FINAL FORM
-FB78;AL # ARABIC LETTER NYEH INITIAL FORM
-FB79;AL # ARABIC LETTER NYEH MEDIAL FORM
-FB7A;AL # ARABIC LETTER TCHEH ISOLATED FORM
-FB7B;AL # ARABIC LETTER TCHEH FINAL FORM
-FB7C;AL # ARABIC LETTER TCHEH INITIAL FORM
-FB7D;AL # ARABIC LETTER TCHEH MEDIAL FORM
-FB7E;AL # ARABIC LETTER TCHEHEH ISOLATED FORM
-FB7F;AL # ARABIC LETTER TCHEHEH FINAL FORM
-FB80;AL # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81;AL # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB82;AL # ARABIC LETTER DDAHAL ISOLATED FORM
-FB83;AL # ARABIC LETTER DDAHAL FINAL FORM
-FB84;AL # ARABIC LETTER DAHAL ISOLATED FORM
-FB85;AL # ARABIC LETTER DAHAL FINAL FORM
-FB86;AL # ARABIC LETTER DUL ISOLATED FORM
-FB87;AL # ARABIC LETTER DUL FINAL FORM
-FB88;AL # ARABIC LETTER DDAL ISOLATED FORM
-FB89;AL # ARABIC LETTER DDAL FINAL FORM
-FB8A;AL # ARABIC LETTER JEH ISOLATED FORM
-FB8B;AL # ARABIC LETTER JEH FINAL FORM
-FB8C;AL # ARABIC LETTER RREH ISOLATED FORM
-FB8D;AL # ARABIC LETTER RREH FINAL FORM
-FB8E;AL # ARABIC LETTER KEHEH ISOLATED FORM
-FB8F;AL # ARABIC LETTER KEHEH FINAL FORM
-FB90;AL # ARABIC LETTER KEHEH INITIAL FORM
-FB91;AL # ARABIC LETTER KEHEH MEDIAL FORM
-FB92;AL # ARABIC LETTER GAF ISOLATED FORM
-FB93;AL # ARABIC LETTER GAF FINAL FORM
-FB94;AL # ARABIC LETTER GAF INITIAL FORM
-FB95;AL # ARABIC LETTER GAF MEDIAL FORM
-FB96;AL # ARABIC LETTER GUEH ISOLATED FORM
-FB97;AL # ARABIC LETTER GUEH FINAL FORM
-FB98;AL # ARABIC LETTER GUEH INITIAL FORM
-FB99;AL # ARABIC LETTER GUEH MEDIAL FORM
-FB9A;AL # ARABIC LETTER NGOEH ISOLATED FORM
-FB9B;AL # ARABIC LETTER NGOEH FINAL FORM
-FB9C;AL # ARABIC LETTER NGOEH INITIAL FORM
-FB9D;AL # ARABIC LETTER NGOEH MEDIAL FORM
-FB9E;AL # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-FB9F;AL # ARABIC LETTER NOON GHUNNA FINAL FORM
-FBA0;AL # ARABIC LETTER RNOON ISOLATED FORM
-FBA1;AL # ARABIC LETTER RNOON FINAL FORM
-FBA2;AL # ARABIC LETTER RNOON INITIAL FORM
-FBA3;AL # ARABIC LETTER RNOON MEDIAL FORM
-FBA4;AL # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-FBA5;AL # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA6;AL # ARABIC LETTER HEH GOAL ISOLATED FORM
-FBA7;AL # ARABIC LETTER HEH GOAL FINAL FORM
-FBA8;AL # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9;AL # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBAA;AL # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-FBAB;AL # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAC;AL # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD;AL # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAE;AL # ARABIC LETTER YEH BARREE ISOLATED FORM
-FBAF;AL # ARABIC LETTER YEH BARREE FINAL FORM
-FBB0;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-FBB1;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2;AL # ARABIC SYMBOL DOT ABOVE
-FBB3;AL # ARABIC SYMBOL DOT BELOW
-FBB4;AL # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5;AL # ARABIC SYMBOL TWO DOTS BELOW
-FBB6;AL # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7;AL # ARABIC SYMBOL THREE DOTS BELOW
-FBB8;AL # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9;AL # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA;AL # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB;AL # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC;AL # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD;AL # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE;AL # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF;AL # ARABIC SYMBOL RING
-FBC0;AL # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1;AL # ARABIC SYMBOL SMALL TAH BELOW
-FBD3;AL # ARABIC LETTER NG ISOLATED FORM
-FBD4;AL # ARABIC LETTER NG FINAL FORM
-FBD5;AL # ARABIC LETTER NG INITIAL FORM
-FBD6;AL # ARABIC LETTER NG MEDIAL FORM
-FBD7;AL # ARABIC LETTER U ISOLATED FORM
-FBD8;AL # ARABIC LETTER U FINAL FORM
-FBD9;AL # ARABIC LETTER OE ISOLATED FORM
-FBDA;AL # ARABIC LETTER OE FINAL FORM
-FBDB;AL # ARABIC LETTER YU ISOLATED FORM
-FBDC;AL # ARABIC LETTER YU FINAL FORM
-FBDD;AL # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-FBDE;AL # ARABIC LETTER VE ISOLATED FORM
-FBDF;AL # ARABIC LETTER VE FINAL FORM
-FBE0;AL # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-FBE1;AL # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE2;AL # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-FBE3;AL # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE4;AL # ARABIC LETTER E ISOLATED FORM
-FBE5;AL # ARABIC LETTER E FINAL FORM
-FBE6;AL # ARABIC LETTER E INITIAL FORM
-FBE7;AL # ARABIC LETTER E MEDIAL FORM
-FBE8;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FBEA;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FBEB;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEC;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBED;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEE;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBEF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBF0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF1;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF2;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF3;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF4;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBF5;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF6;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-FBF7;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF8;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF9;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FBFA;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBFB;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFC;AL # ARABIC LETTER FARSI YEH ISOLATED FORM
-FBFD;AL # ARABIC LETTER FARSI YEH FINAL FORM
-FBFE;AL # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF;AL # ARABIC LETTER FARSI YEH MEDIAL FORM
-FC00;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC01;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC02;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC03;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC04;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FC05;AL # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC06;AL # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FC07;AL # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FC08;AL # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC09;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC0A;AL # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-FC0B;AL # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FC0C;AL # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FC0D;AL # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FC0E;AL # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FC0F;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC10;AL # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-FC11;AL # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC12;AL # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC13;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC14;AL # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-FC15;AL # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FC16;AL # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FC17;AL # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FC18;AL # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FC19;AL # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A;AL # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FC1B;AL # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FC1C;AL # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FC1D;AL # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FC1E;AL # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FC1F;AL # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FC20;AL # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FC21;AL # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FC22;AL # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FC23;AL # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FC24;AL # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FC25;AL # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FC26;AL # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FC27;AL # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FC28;AL # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-FC29;AL # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FC2A;AL # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FC2B;AL # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FC2C;AL # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FC2D;AL # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FC2E;AL # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FC2F;AL # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FC30;AL # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FC31;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC32;AL # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-FC33;AL # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FC34;AL # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FC35;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC36;AL # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-FC37;AL # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FC38;AL # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FC39;AL # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FC3A;AL # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FC3B;AL # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FC3C;AL # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FC3D;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC3E;AL # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-FC3F;AL # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FC40;AL # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FC41;AL # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FC42;AL # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FC43;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC44;AL # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-FC45;AL # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FC46;AL # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FC47;AL # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FC48;AL # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FC49;AL # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A;AL # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-FC4B;AL # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FC4C;AL # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FC4D;AL # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC4E;AL # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FC4F;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC50;AL # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-FC51;AL # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FC52;AL # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FC53;AL # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54;AL # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-FC55;AL # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FC56;AL # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FC57;AL # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC58;AL # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FC59;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC5A;AL # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-FC5B;AL # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5C;AL # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5D;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC5E;AL # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
-FC5F;AL # ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
-FC60;AL # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
-FC61;AL # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
-FC62;AL # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
-FC63;AL # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
-FC64;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC66;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC67;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC68;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC69;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC6A;AL # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B;AL # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC6C;AL # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC6D;AL # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FC6E;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC6F;AL # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC70;AL # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71;AL # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FC72;AL # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC73;AL # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FC74;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC75;AL # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC76;AL # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77;AL # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FC78;AL # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC79;AL # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FC7A;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC7B;AL # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC7C;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC7D;AL # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC7E;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC7F;AL # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC80;AL # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC81;AL # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC82;AL # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC83;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC84;AL # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC85;AL # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC86;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC87;AL # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC88;AL # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FC89;AL # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC8A;AL # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B;AL # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FC8C;AL # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC8D;AL # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FC8E;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC8F;AL # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC90;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC91;AL # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92;AL # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FC93;AL # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC94;AL # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FC95;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC96;AL # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC97;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC98;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC99;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC9A;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FC9B;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FC9C;AL # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC9D;AL # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC9E;AL # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC9F;AL # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCA0;AL # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCA1;AL # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FCA2;AL # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FCA3;AL # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FCA4;AL # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCA5;AL # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCA6;AL # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCA7;AL # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FCA8;AL # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FCA9;AL # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FCAA;AL # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FCAB;AL # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FCAC;AL # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FCAD;AL # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FCAE;AL # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FCAF;AL # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FCB0;AL # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCB1;AL # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FCB2;AL # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FCB3;AL # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FCB4;AL # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FCB5;AL # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FCB6;AL # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FCB7;AL # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FCB8;AL # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FCB9;AL # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FCBA;AL # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FCBB;AL # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FCBC;AL # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FCBD;AL # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FCBE;AL # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FCBF;AL # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FCC0;AL # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FCC1;AL # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FCC2;AL # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FCC3;AL # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FCC4;AL # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FCC5;AL # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FCC6;AL # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FCC7;AL # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCC8;AL # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCC9;AL # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FCCA;AL # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FCCB;AL # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FCCC;AL # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCCD;AL # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FCCE;AL # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FCCF;AL # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FCD0;AL # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FCD1;AL # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FCD2;AL # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FCD3;AL # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FCD4;AL # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FCD5;AL # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCD6;AL # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCD7;AL # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FCD8;AL # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FCD9;AL # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCDA;AL # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FCDB;AL # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FCDC;AL # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FCDD;AL # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCDE;AL # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCDF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FCE0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FCE1;AL # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FCE2;AL # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FCE3;AL # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FCE4;AL # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FCE5;AL # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FCE6;AL # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FCE7;AL # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FCE8;AL # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FCE9;AL # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FCEA;AL # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FCEB;AL # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FCEC;AL # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FCED;AL # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FCEE;AL # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FCEF;AL # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FCF0;AL # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FCF1;AL # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FCF2;AL # ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
-FCF3;AL # ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
-FCF4;AL # ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
-FCF5;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FCF6;AL # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-FCF7;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FCF8;AL # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-FCF9;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FCFA;AL # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-FCFB;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFC;AL # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-FCFD;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FCFE;AL # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-FCFF;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD00;AL # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-FD01;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD02;AL # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-FD03;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD04;AL # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-FD05;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD06;AL # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-FD07;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD08;AL # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-FD09;AL # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD0A;AL # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD0B;AL # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD0C;AL # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD0D;AL # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD0E;AL # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FD0F;AL # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FD10;AL # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FD11;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FD12;AL # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FD13;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FD14;AL # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FD15;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FD16;AL # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FD17;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FD18;AL # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FD19;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FD1A;AL # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FD1B;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FD1C;AL # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD1D;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD1E;AL # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD1F;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD20;AL # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD21;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD22;AL # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD23;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD24;AL # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD25;AL # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD26;AL # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD27;AL # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD28;AL # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD29;AL # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD2A;AL # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD2B;AL # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD2C;AL # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD2D;AL # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD2E;AL # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD2F;AL # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD30;AL # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FD31;AL # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FD32;AL # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FD33;AL # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD34;AL # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FD35;AL # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FD36;AL # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FD37;AL # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD38;AL # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD39;AL # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD3A;AL # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FD3B;AL # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FD3C;AL # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D;AL # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E;OP # ORNATE LEFT PARENTHESIS
-FD3F;CL # ORNATE RIGHT PARENTHESIS
-FD50;AL # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FD51;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD52;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD53;AL # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FD54;AL # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FD55;AL # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56;AL # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57;AL # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FD58;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FD59;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD5A;AL # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD5B;AL # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5C;AL # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FD5D;AL # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E;AL # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD5F;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD60;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD61;AL # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD62;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD63;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD64;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FD65;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD66;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD67;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FD68;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD69;AL # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD6A;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6B;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6C;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD6D;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6E;AL # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD6F;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD70;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD71;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD72;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD73;AL # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74;AL # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD75;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FD76;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD77;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD78;AL # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD79;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7A;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD7B;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7C;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FD7D;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7E;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F;AL # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FD80;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD81;AL # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FD82;AL # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD83;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FD85;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FD86;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD87;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FD88;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD89;AL # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A;AL # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FD8B;AL # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FD8C;AL # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD8D;AL # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FD8E;AL # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F;AL # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92;AL # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD93;AL # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94;AL # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FD95;AL # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96;AL # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD97;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD98;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD99;AL # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9A;AL # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FD9B;AL # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9C;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FD9D;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9E;AL # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FD9F;AL # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FDA0;AL # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDA1;AL # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FDA2;AL # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA3;AL # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FDA4;AL # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5;AL # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FDA6;AL # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDA7;AL # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA8;AL # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA9;AL # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FDAA;AL # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FDAB;AL # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FDAC;AL # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FDAD;AL # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FDAE;AL # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FDAF;AL # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FDB0;AL # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FDB1;AL # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FDB2;AL # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FDB3;AL # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FDB4;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FDB5;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FDB6;AL # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FDB7;AL # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FDB8;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDB9;AL # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FDBA;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBB;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDBC;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDBD;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FDBE;AL # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDBF;AL # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FDC0;AL # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FDC1;AL # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FDC2;AL # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FDC3;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDC4;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FDC5;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FDC6;AL # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FDC7;AL # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0;AL # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF1;AL # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FDF2;AL # ARABIC LIGATURE ALLAH ISOLATED FORM
-FDF3;AL # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF4;AL # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FDF5;AL # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF6;AL # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDF7;AL # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FDF8;AL # ARABIC LIGATURE WASALLAM ISOLATED FORM
-FDF9;AL # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA;AL # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDFB;AL # ARABIC LIGATURE JALLAJALALOUHOU
-FDFC;PO # RIAL SIGN
-FDFD;AL # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE00;CM # VARIATION SELECTOR-1
-FE01;CM # VARIATION SELECTOR-2
-FE02;CM # VARIATION SELECTOR-3
-FE03;CM # VARIATION SELECTOR-4
-FE04;CM # VARIATION SELECTOR-5
-FE05;CM # VARIATION SELECTOR-6
-FE06;CM # VARIATION SELECTOR-7
-FE07;CM # VARIATION SELECTOR-8
-FE08;CM # VARIATION SELECTOR-9
-FE09;CM # VARIATION SELECTOR-10
-FE0A;CM # VARIATION SELECTOR-11
-FE0B;CM # VARIATION SELECTOR-12
-FE0C;CM # VARIATION SELECTOR-13
-FE0D;CM # VARIATION SELECTOR-14
-FE0E;CM # VARIATION SELECTOR-15
-FE0F;CM # VARIATION SELECTOR-16
-FE10;IS # PRESENTATION FORM FOR VERTICAL COMMA
-FE11;CL # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
-FE12;CL # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13;IS # PRESENTATION FORM FOR VERTICAL COLON
-FE14;IS # PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15;EX # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
-FE16;EX # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19;IN # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE20;CM # COMBINING LIGATURE LEFT HALF
-FE21;CM # COMBINING LIGATURE RIGHT HALF
-FE22;CM # COMBINING DOUBLE TILDE LEFT HALF
-FE23;CM # COMBINING DOUBLE TILDE RIGHT HALF
-FE24;CM # COMBINING MACRON LEFT HALF
-FE25;CM # COMBINING MACRON RIGHT HALF
-FE26;CM # COMBINING CONJOINING MACRON
-FE30;ID # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31;ID # PRESENTATION FORM FOR VERTICAL EM DASH
-FE32;ID # PRESENTATION FORM FOR VERTICAL EN DASH
-FE33;ID # PRESENTATION FORM FOR VERTICAL LOW LINE
-FE34;ID # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35;OP # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36;CL # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37;OP # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38;CL # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39;OP # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A;CL # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B;OP # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C;CL # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D;OP # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E;CL # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F;OP # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40;CL # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41;OP # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42;CL # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45;ID # SESAME DOT
-FE46;ID # WHITE SESAME DOT
-FE47;OP # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48;CL # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
-FE49;ID # DASHED OVERLINE
-FE4A;ID # CENTRELINE OVERLINE
-FE4B;ID # WAVY OVERLINE
-FE4C;ID # DOUBLE WAVY OVERLINE
-FE4D;ID # DASHED LOW LINE
-FE4E;ID # CENTRELINE LOW LINE
-FE4F;ID # WAVY LOW LINE
-FE50;CL # SMALL COMMA
-FE51;ID # SMALL IDEOGRAPHIC COMMA
-FE52;CL # SMALL FULL STOP
-FE54;NS # SMALL SEMICOLON
-FE55;NS # SMALL COLON
-FE56;EX # SMALL QUESTION MARK
-FE57;EX # SMALL EXCLAMATION MARK
-FE58;ID # SMALL EM DASH
-FE59;OP # SMALL LEFT PARENTHESIS
-FE5A;CL # SMALL RIGHT PARENTHESIS
-FE5B;OP # SMALL LEFT CURLY BRACKET
-FE5C;CL # SMALL RIGHT CURLY BRACKET
-FE5D;OP # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E;CL # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F;ID # SMALL NUMBER SIGN
-FE60;ID # SMALL AMPERSAND
-FE61;ID # SMALL ASTERISK
-FE62;ID # SMALL PLUS SIGN
-FE63;ID # SMALL HYPHEN-MINUS
-FE64;ID # SMALL LESS-THAN SIGN
-FE65;ID # SMALL GREATER-THAN SIGN
-FE66;ID # SMALL EQUALS SIGN
-FE68;ID # SMALL REVERSE SOLIDUS
-FE69;PR # SMALL DOLLAR SIGN
-FE6A;PO # SMALL PERCENT SIGN
-FE6B;ID # SMALL COMMERCIAL AT
-FE70;AL # ARABIC FATHATAN ISOLATED FORM
-FE71;AL # ARABIC TATWEEL WITH FATHATAN ABOVE
-FE72;AL # ARABIC DAMMATAN ISOLATED FORM
-FE73;AL # ARABIC TAIL FRAGMENT
-FE74;AL # ARABIC KASRATAN ISOLATED FORM
-FE76;AL # ARABIC FATHA ISOLATED FORM
-FE77;AL # ARABIC FATHA MEDIAL FORM
-FE78;AL # ARABIC DAMMA ISOLATED FORM
-FE79;AL # ARABIC DAMMA MEDIAL FORM
-FE7A;AL # ARABIC KASRA ISOLATED FORM
-FE7B;AL # ARABIC KASRA MEDIAL FORM
-FE7C;AL # ARABIC SHADDA ISOLATED FORM
-FE7D;AL # ARABIC SHADDA MEDIAL FORM
-FE7E;AL # ARABIC SUKUN ISOLATED FORM
-FE7F;AL # ARABIC SUKUN MEDIAL FORM
-FE80;AL # ARABIC LETTER HAMZA ISOLATED FORM
-FE81;AL # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-FE82;AL # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE83;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-FE84;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE85;AL # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-FE86;AL # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE87;AL # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-FE88;AL # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE89;AL # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FE8A;AL # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE8B;AL # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C;AL # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8D;AL # ARABIC LETTER ALEF ISOLATED FORM
-FE8E;AL # ARABIC LETTER ALEF FINAL FORM
-FE8F;AL # ARABIC LETTER BEH ISOLATED FORM
-FE90;AL # ARABIC LETTER BEH FINAL FORM
-FE91;AL # ARABIC LETTER BEH INITIAL FORM
-FE92;AL # ARABIC LETTER BEH MEDIAL FORM
-FE93;AL # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-FE94;AL # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE95;AL # ARABIC LETTER TEH ISOLATED FORM
-FE96;AL # ARABIC LETTER TEH FINAL FORM
-FE97;AL # ARABIC LETTER TEH INITIAL FORM
-FE98;AL # ARABIC LETTER TEH MEDIAL FORM
-FE99;AL # ARABIC LETTER THEH ISOLATED FORM
-FE9A;AL # ARABIC LETTER THEH FINAL FORM
-FE9B;AL # ARABIC LETTER THEH INITIAL FORM
-FE9C;AL # ARABIC LETTER THEH MEDIAL FORM
-FE9D;AL # ARABIC LETTER JEEM ISOLATED FORM
-FE9E;AL # ARABIC LETTER JEEM FINAL FORM
-FE9F;AL # ARABIC LETTER JEEM INITIAL FORM
-FEA0;AL # ARABIC LETTER JEEM MEDIAL FORM
-FEA1;AL # ARABIC LETTER HAH ISOLATED FORM
-FEA2;AL # ARABIC LETTER HAH FINAL FORM
-FEA3;AL # ARABIC LETTER HAH INITIAL FORM
-FEA4;AL # ARABIC LETTER HAH MEDIAL FORM
-FEA5;AL # ARABIC LETTER KHAH ISOLATED FORM
-FEA6;AL # ARABIC LETTER KHAH FINAL FORM
-FEA7;AL # ARABIC LETTER KHAH INITIAL FORM
-FEA8;AL # ARABIC LETTER KHAH MEDIAL FORM
-FEA9;AL # ARABIC LETTER DAL ISOLATED FORM
-FEAA;AL # ARABIC LETTER DAL FINAL FORM
-FEAB;AL # ARABIC LETTER THAL ISOLATED FORM
-FEAC;AL # ARABIC LETTER THAL FINAL FORM
-FEAD;AL # ARABIC LETTER REH ISOLATED FORM
-FEAE;AL # ARABIC LETTER REH FINAL FORM
-FEAF;AL # ARABIC LETTER ZAIN ISOLATED FORM
-FEB0;AL # ARABIC LETTER ZAIN FINAL FORM
-FEB1;AL # ARABIC LETTER SEEN ISOLATED FORM
-FEB2;AL # ARABIC LETTER SEEN FINAL FORM
-FEB3;AL # ARABIC LETTER SEEN INITIAL FORM
-FEB4;AL # ARABIC LETTER SEEN MEDIAL FORM
-FEB5;AL # ARABIC LETTER SHEEN ISOLATED FORM
-FEB6;AL # ARABIC LETTER SHEEN FINAL FORM
-FEB7;AL # ARABIC LETTER SHEEN INITIAL FORM
-FEB8;AL # ARABIC LETTER SHEEN MEDIAL FORM
-FEB9;AL # ARABIC LETTER SAD ISOLATED FORM
-FEBA;AL # ARABIC LETTER SAD FINAL FORM
-FEBB;AL # ARABIC LETTER SAD INITIAL FORM
-FEBC;AL # ARABIC LETTER SAD MEDIAL FORM
-FEBD;AL # ARABIC LETTER DAD ISOLATED FORM
-FEBE;AL # ARABIC LETTER DAD FINAL FORM
-FEBF;AL # ARABIC LETTER DAD INITIAL FORM
-FEC0;AL # ARABIC LETTER DAD MEDIAL FORM
-FEC1;AL # ARABIC LETTER TAH ISOLATED FORM
-FEC2;AL # ARABIC LETTER TAH FINAL FORM
-FEC3;AL # ARABIC LETTER TAH INITIAL FORM
-FEC4;AL # ARABIC LETTER TAH MEDIAL FORM
-FEC5;AL # ARABIC LETTER ZAH ISOLATED FORM
-FEC6;AL # ARABIC LETTER ZAH FINAL FORM
-FEC7;AL # ARABIC LETTER ZAH INITIAL FORM
-FEC8;AL # ARABIC LETTER ZAH MEDIAL FORM
-FEC9;AL # ARABIC LETTER AIN ISOLATED FORM
-FECA;AL # ARABIC LETTER AIN FINAL FORM
-FECB;AL # ARABIC LETTER AIN INITIAL FORM
-FECC;AL # ARABIC LETTER AIN MEDIAL FORM
-FECD;AL # ARABIC LETTER GHAIN ISOLATED FORM
-FECE;AL # ARABIC LETTER GHAIN FINAL FORM
-FECF;AL # ARABIC LETTER GHAIN INITIAL FORM
-FED0;AL # ARABIC LETTER GHAIN MEDIAL FORM
-FED1;AL # ARABIC LETTER FEH ISOLATED FORM
-FED2;AL # ARABIC LETTER FEH FINAL FORM
-FED3;AL # ARABIC LETTER FEH INITIAL FORM
-FED4;AL # ARABIC LETTER FEH MEDIAL FORM
-FED5;AL # ARABIC LETTER QAF ISOLATED FORM
-FED6;AL # ARABIC LETTER QAF FINAL FORM
-FED7;AL # ARABIC LETTER QAF INITIAL FORM
-FED8;AL # ARABIC LETTER QAF MEDIAL FORM
-FED9;AL # ARABIC LETTER KAF ISOLATED FORM
-FEDA;AL # ARABIC LETTER KAF FINAL FORM
-FEDB;AL # ARABIC LETTER KAF INITIAL FORM
-FEDC;AL # ARABIC LETTER KAF MEDIAL FORM
-FEDD;AL # ARABIC LETTER LAM ISOLATED FORM
-FEDE;AL # ARABIC LETTER LAM FINAL FORM
-FEDF;AL # ARABIC LETTER LAM INITIAL FORM
-FEE0;AL # ARABIC LETTER LAM MEDIAL FORM
-FEE1;AL # ARABIC LETTER MEEM ISOLATED FORM
-FEE2;AL # ARABIC LETTER MEEM FINAL FORM
-FEE3;AL # ARABIC LETTER MEEM INITIAL FORM
-FEE4;AL # ARABIC LETTER MEEM MEDIAL FORM
-FEE5;AL # ARABIC LETTER NOON ISOLATED FORM
-FEE6;AL # ARABIC LETTER NOON FINAL FORM
-FEE7;AL # ARABIC LETTER NOON INITIAL FORM
-FEE8;AL # ARABIC LETTER NOON MEDIAL FORM
-FEE9;AL # ARABIC LETTER HEH ISOLATED FORM
-FEEA;AL # ARABIC LETTER HEH FINAL FORM
-FEEB;AL # ARABIC LETTER HEH INITIAL FORM
-FEEC;AL # ARABIC LETTER HEH MEDIAL FORM
-FEED;AL # ARABIC LETTER WAW ISOLATED FORM
-FEEE;AL # ARABIC LETTER WAW FINAL FORM
-FEEF;AL # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FEF0;AL # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEF1;AL # ARABIC LETTER YEH ISOLATED FORM
-FEF2;AL # ARABIC LETTER YEH FINAL FORM
-FEF3;AL # ARABIC LETTER YEH INITIAL FORM
-FEF4;AL # ARABIC LETTER YEH MEDIAL FORM
-FEF5;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF6;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF7;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEF8;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF9;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFA;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEFB;AL # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FEFC;AL # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFF;WJ # ZERO WIDTH NO-BREAK SPACE
-FF01;EX # FULLWIDTH EXCLAMATION MARK
-FF02;ID # FULLWIDTH QUOTATION MARK
-FF03;ID # FULLWIDTH NUMBER SIGN
-FF04;PR # FULLWIDTH DOLLAR SIGN
-FF05;PO # FULLWIDTH PERCENT SIGN
-FF06;ID # FULLWIDTH AMPERSAND
-FF07;ID # FULLWIDTH APOSTROPHE
-FF08;OP # FULLWIDTH LEFT PARENTHESIS
-FF09;CL # FULLWIDTH RIGHT PARENTHESIS
-FF0A;ID # FULLWIDTH ASTERISK
-FF0B;ID # FULLWIDTH PLUS SIGN
-FF0C;CL # FULLWIDTH COMMA
-FF0D;ID # FULLWIDTH HYPHEN-MINUS
-FF0E;CL # FULLWIDTH FULL STOP
-FF0F;ID # FULLWIDTH SOLIDUS
-FF10;ID # FULLWIDTH DIGIT ZERO
-FF11;ID # FULLWIDTH DIGIT ONE
-FF12;ID # FULLWIDTH DIGIT TWO
-FF13;ID # FULLWIDTH DIGIT THREE
-FF14;ID # FULLWIDTH DIGIT FOUR
-FF15;ID # FULLWIDTH DIGIT FIVE
-FF16;ID # FULLWIDTH DIGIT SIX
-FF17;ID # FULLWIDTH DIGIT SEVEN
-FF18;ID # FULLWIDTH DIGIT EIGHT
-FF19;ID # FULLWIDTH DIGIT NINE
-FF1A;NS # FULLWIDTH COLON
-FF1B;NS # FULLWIDTH SEMICOLON
-FF1C;ID # FULLWIDTH LESS-THAN SIGN
-FF1D;ID # FULLWIDTH EQUALS SIGN
-FF1E;ID # FULLWIDTH GREATER-THAN SIGN
-FF1F;EX # FULLWIDTH QUESTION MARK
-FF20;ID # FULLWIDTH COMMERCIAL AT
-FF21;ID # FULLWIDTH LATIN CAPITAL LETTER A
-FF22;ID # FULLWIDTH LATIN CAPITAL LETTER B
-FF23;ID # FULLWIDTH LATIN CAPITAL LETTER C
-FF24;ID # FULLWIDTH LATIN CAPITAL LETTER D
-FF25;ID # FULLWIDTH LATIN CAPITAL LETTER E
-FF26;ID # FULLWIDTH LATIN CAPITAL LETTER F
-FF27;ID # FULLWIDTH LATIN CAPITAL LETTER G
-FF28;ID # FULLWIDTH LATIN CAPITAL LETTER H
-FF29;ID # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A;ID # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B;ID # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C;ID # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D;ID # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E;ID # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F;ID # FULLWIDTH LATIN CAPITAL LETTER O
-FF30;ID # FULLWIDTH LATIN CAPITAL LETTER P
-FF31;ID # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32;ID # FULLWIDTH LATIN CAPITAL LETTER R
-FF33;ID # FULLWIDTH LATIN CAPITAL LETTER S
-FF34;ID # FULLWIDTH LATIN CAPITAL LETTER T
-FF35;ID # FULLWIDTH LATIN CAPITAL LETTER U
-FF36;ID # FULLWIDTH LATIN CAPITAL LETTER V
-FF37;ID # FULLWIDTH LATIN CAPITAL LETTER W
-FF38;ID # FULLWIDTH LATIN CAPITAL LETTER X
-FF39;ID # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A;ID # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B;OP # FULLWIDTH LEFT SQUARE BRACKET
-FF3C;ID # FULLWIDTH REVERSE SOLIDUS
-FF3D;CL # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E;ID # FULLWIDTH CIRCUMFLEX ACCENT
-FF3F;ID # FULLWIDTH LOW LINE
-FF40;ID # FULLWIDTH GRAVE ACCENT
-FF41;ID # FULLWIDTH LATIN SMALL LETTER A
-FF42;ID # FULLWIDTH LATIN SMALL LETTER B
-FF43;ID # FULLWIDTH LATIN SMALL LETTER C
-FF44;ID # FULLWIDTH LATIN SMALL LETTER D
-FF45;ID # FULLWIDTH LATIN SMALL LETTER E
-FF46;ID # FULLWIDTH LATIN SMALL LETTER F
-FF47;ID # FULLWIDTH LATIN SMALL LETTER G
-FF48;ID # FULLWIDTH LATIN SMALL LETTER H
-FF49;ID # FULLWIDTH LATIN SMALL LETTER I
-FF4A;ID # FULLWIDTH LATIN SMALL LETTER J
-FF4B;ID # FULLWIDTH LATIN SMALL LETTER K
-FF4C;ID # FULLWIDTH LATIN SMALL LETTER L
-FF4D;ID # FULLWIDTH LATIN SMALL LETTER M
-FF4E;ID # FULLWIDTH LATIN SMALL LETTER N
-FF4F;ID # FULLWIDTH LATIN SMALL LETTER O
-FF50;ID # FULLWIDTH LATIN SMALL LETTER P
-FF51;ID # FULLWIDTH LATIN SMALL LETTER Q
-FF52;ID # FULLWIDTH LATIN SMALL LETTER R
-FF53;ID # FULLWIDTH LATIN SMALL LETTER S
-FF54;ID # FULLWIDTH LATIN SMALL LETTER T
-FF55;ID # FULLWIDTH LATIN SMALL LETTER U
-FF56;ID # FULLWIDTH LATIN SMALL LETTER V
-FF57;ID # FULLWIDTH LATIN SMALL LETTER W
-FF58;ID # FULLWIDTH LATIN SMALL LETTER X
-FF59;ID # FULLWIDTH LATIN SMALL LETTER Y
-FF5A;ID # FULLWIDTH LATIN SMALL LETTER Z
-FF5B;OP # FULLWIDTH LEFT CURLY BRACKET
-FF5C;ID # FULLWIDTH VERTICAL LINE
-FF5D;CL # FULLWIDTH RIGHT CURLY BRACKET
-FF5E;ID # FULLWIDTH TILDE
-FF5F;OP # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60;CL # FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61;CL # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62;OP # HALFWIDTH LEFT CORNER BRACKET
-FF63;CL # HALFWIDTH RIGHT CORNER BRACKET
-FF64;CL # HALFWIDTH IDEOGRAPHIC COMMA
-FF65;NS # HALFWIDTH KATAKANA MIDDLE DOT
-FF66;AL # HALFWIDTH KATAKANA LETTER WO
-FF67;CJ # HALFWIDTH KATAKANA LETTER SMALL A
-FF68;CJ # HALFWIDTH KATAKANA LETTER SMALL I
-FF69;CJ # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A;CJ # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B;CJ # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C;CJ # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D;CJ # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E;CJ # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F;CJ # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70;CJ # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71;AL # HALFWIDTH KATAKANA LETTER A
-FF72;AL # HALFWIDTH KATAKANA LETTER I
-FF73;AL # HALFWIDTH KATAKANA LETTER U
-FF74;AL # HALFWIDTH KATAKANA LETTER E
-FF75;AL # HALFWIDTH KATAKANA LETTER O
-FF76;AL # HALFWIDTH KATAKANA LETTER KA
-FF77;AL # HALFWIDTH KATAKANA LETTER KI
-FF78;AL # HALFWIDTH KATAKANA LETTER KU
-FF79;AL # HALFWIDTH KATAKANA LETTER KE
-FF7A;AL # HALFWIDTH KATAKANA LETTER KO
-FF7B;AL # HALFWIDTH KATAKANA LETTER SA
-FF7C;AL # HALFWIDTH KATAKANA LETTER SI
-FF7D;AL # HALFWIDTH KATAKANA LETTER SU
-FF7E;AL # HALFWIDTH KATAKANA LETTER SE
-FF7F;AL # HALFWIDTH KATAKANA LETTER SO
-FF80;AL # HALFWIDTH KATAKANA LETTER TA
-FF81;AL # HALFWIDTH KATAKANA LETTER TI
-FF82;AL # HALFWIDTH KATAKANA LETTER TU
-FF83;AL # HALFWIDTH KATAKANA LETTER TE
-FF84;AL # HALFWIDTH KATAKANA LETTER TO
-FF85;AL # HALFWIDTH KATAKANA LETTER NA
-FF86;AL # HALFWIDTH KATAKANA LETTER NI
-FF87;AL # HALFWIDTH KATAKANA LETTER NU
-FF88;AL # HALFWIDTH KATAKANA LETTER NE
-FF89;AL # HALFWIDTH KATAKANA LETTER NO
-FF8A;AL # HALFWIDTH KATAKANA LETTER HA
-FF8B;AL # HALFWIDTH KATAKANA LETTER HI
-FF8C;AL # HALFWIDTH KATAKANA LETTER HU
-FF8D;AL # HALFWIDTH KATAKANA LETTER HE
-FF8E;AL # HALFWIDTH KATAKANA LETTER HO
-FF8F;AL # HALFWIDTH KATAKANA LETTER MA
-FF90;AL # HALFWIDTH KATAKANA LETTER MI
-FF91;AL # HALFWIDTH KATAKANA LETTER MU
-FF92;AL # HALFWIDTH KATAKANA LETTER ME
-FF93;AL # HALFWIDTH KATAKANA LETTER MO
-FF94;AL # HALFWIDTH KATAKANA LETTER YA
-FF95;AL # HALFWIDTH KATAKANA LETTER YU
-FF96;AL # HALFWIDTH KATAKANA LETTER YO
-FF97;AL # HALFWIDTH KATAKANA LETTER RA
-FF98;AL # HALFWIDTH KATAKANA LETTER RI
-FF99;AL # HALFWIDTH KATAKANA LETTER RU
-FF9A;AL # HALFWIDTH KATAKANA LETTER RE
-FF9B;AL # HALFWIDTH KATAKANA LETTER RO
-FF9C;AL # HALFWIDTH KATAKANA LETTER WA
-FF9D;AL # HALFWIDTH KATAKANA LETTER N
-FF9E;NS # HALFWIDTH KATAKANA VOICED SOUND MARK
-FF9F;NS # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFA0;AL # HALFWIDTH HANGUL FILLER
-FFA1;AL # HALFWIDTH HANGUL LETTER KIYEOK
-FFA2;AL # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-FFA3;AL # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-FFA4;AL # HALFWIDTH HANGUL LETTER NIEUN
-FFA5;AL # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-FFA6;AL # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-FFA7;AL # HALFWIDTH HANGUL LETTER TIKEUT
-FFA8;AL # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-FFA9;AL # HALFWIDTH HANGUL LETTER RIEUL
-FFAA;AL # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-FFAB;AL # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-FFAC;AL # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-FFAD;AL # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-FFAE;AL # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-FFAF;AL # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-FFB0;AL # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-FFB1;AL # HALFWIDTH HANGUL LETTER MIEUM
-FFB2;AL # HALFWIDTH HANGUL LETTER PIEUP
-FFB3;AL # HALFWIDTH HANGUL LETTER SSANGPIEUP
-FFB4;AL # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-FFB5;AL # HALFWIDTH HANGUL LETTER SIOS
-FFB6;AL # HALFWIDTH HANGUL LETTER SSANGSIOS
-FFB7;AL # HALFWIDTH HANGUL LETTER IEUNG
-FFB8;AL # HALFWIDTH HANGUL LETTER CIEUC
-FFB9;AL # HALFWIDTH HANGUL LETTER SSANGCIEUC
-FFBA;AL # HALFWIDTH HANGUL LETTER CHIEUCH
-FFBB;AL # HALFWIDTH HANGUL LETTER KHIEUKH
-FFBC;AL # HALFWIDTH HANGUL LETTER THIEUTH
-FFBD;AL # HALFWIDTH HANGUL LETTER PHIEUPH
-FFBE;AL # HALFWIDTH HANGUL LETTER HIEUH
-FFC2;AL # HALFWIDTH HANGUL LETTER A
-FFC3;AL # HALFWIDTH HANGUL LETTER AE
-FFC4;AL # HALFWIDTH HANGUL LETTER YA
-FFC5;AL # HALFWIDTH HANGUL LETTER YAE
-FFC6;AL # HALFWIDTH HANGUL LETTER EO
-FFC7;AL # HALFWIDTH HANGUL LETTER E
-FFCA;AL # HALFWIDTH HANGUL LETTER YEO
-FFCB;AL # HALFWIDTH HANGUL LETTER YE
-FFCC;AL # HALFWIDTH HANGUL LETTER O
-FFCD;AL # HALFWIDTH HANGUL LETTER WA
-FFCE;AL # HALFWIDTH HANGUL LETTER WAE
-FFCF;AL # HALFWIDTH HANGUL LETTER OE
-FFD2;AL # HALFWIDTH HANGUL LETTER YO
-FFD3;AL # HALFWIDTH HANGUL LETTER U
-FFD4;AL # HALFWIDTH HANGUL LETTER WEO
-FFD5;AL # HALFWIDTH HANGUL LETTER WE
-FFD6;AL # HALFWIDTH HANGUL LETTER WI
-FFD7;AL # HALFWIDTH HANGUL LETTER YU
-FFDA;AL # HALFWIDTH HANGUL LETTER EU
-FFDB;AL # HALFWIDTH HANGUL LETTER YI
-FFDC;AL # HALFWIDTH HANGUL LETTER I
-FFE0;PO # FULLWIDTH CENT SIGN
-FFE1;PR # FULLWIDTH POUND SIGN
-FFE2;ID # FULLWIDTH NOT SIGN
-FFE3;ID # FULLWIDTH MACRON
-FFE4;ID # FULLWIDTH BROKEN BAR
-FFE5;PR # FULLWIDTH YEN SIGN
-FFE6;PR # FULLWIDTH WON SIGN
-FFE8;AL # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9;AL # HALFWIDTH LEFTWARDS ARROW
-FFEA;AL # HALFWIDTH UPWARDS ARROW
-FFEB;AL # HALFWIDTH RIGHTWARDS ARROW
-FFEC;AL # HALFWIDTH DOWNWARDS ARROW
-FFED;AL # HALFWIDTH BLACK SQUARE
-FFEE;AL # HALFWIDTH WHITE CIRCLE
-FFF9;CM # INTERLINEAR ANNOTATION ANCHOR
-FFFA;CM # INTERLINEAR ANNOTATION SEPARATOR
-FFFB;CM # INTERLINEAR ANNOTATION TERMINATOR
-FFFC;CB # OBJECT REPLACEMENT CHARACTER
-FFFD;AI # REPLACEMENT CHARACTER
-10000;AL # LINEAR B SYLLABLE B008 A
-10001;AL # LINEAR B SYLLABLE B038 E
-10002;AL # LINEAR B SYLLABLE B028 I
-10003;AL # LINEAR B SYLLABLE B061 O
-10004;AL # LINEAR B SYLLABLE B010 U
-10005;AL # LINEAR B SYLLABLE B001 DA
-10006;AL # LINEAR B SYLLABLE B045 DE
-10007;AL # LINEAR B SYLLABLE B007 DI
-10008;AL # LINEAR B SYLLABLE B014 DO
-10009;AL # LINEAR B SYLLABLE B051 DU
-1000A;AL # LINEAR B SYLLABLE B057 JA
-1000B;AL # LINEAR B SYLLABLE B046 JE
-1000D;AL # LINEAR B SYLLABLE B036 JO
-1000E;AL # LINEAR B SYLLABLE B065 JU
-1000F;AL # LINEAR B SYLLABLE B077 KA
-10010;AL # LINEAR B SYLLABLE B044 KE
-10011;AL # LINEAR B SYLLABLE B067 KI
-10012;AL # LINEAR B SYLLABLE B070 KO
-10013;AL # LINEAR B SYLLABLE B081 KU
-10014;AL # LINEAR B SYLLABLE B080 MA
-10015;AL # LINEAR B SYLLABLE B013 ME
-10016;AL # LINEAR B SYLLABLE B073 MI
-10017;AL # LINEAR B SYLLABLE B015 MO
-10018;AL # LINEAR B SYLLABLE B023 MU
-10019;AL # LINEAR B SYLLABLE B006 NA
-1001A;AL # LINEAR B SYLLABLE B024 NE
-1001B;AL # LINEAR B SYLLABLE B030 NI
-1001C;AL # LINEAR B SYLLABLE B052 NO
-1001D;AL # LINEAR B SYLLABLE B055 NU
-1001E;AL # LINEAR B SYLLABLE B003 PA
-1001F;AL # LINEAR B SYLLABLE B072 PE
-10020;AL # LINEAR B SYLLABLE B039 PI
-10021;AL # LINEAR B SYLLABLE B011 PO
-10022;AL # LINEAR B SYLLABLE B050 PU
-10023;AL # LINEAR B SYLLABLE B016 QA
-10024;AL # LINEAR B SYLLABLE B078 QE
-10025;AL # LINEAR B SYLLABLE B021 QI
-10026;AL # LINEAR B SYLLABLE B032 QO
-10028;AL # LINEAR B SYLLABLE B060 RA
-10029;AL # LINEAR B SYLLABLE B027 RE
-1002A;AL # LINEAR B SYLLABLE B053 RI
-1002B;AL # LINEAR B SYLLABLE B002 RO
-1002C;AL # LINEAR B SYLLABLE B026 RU
-1002D;AL # LINEAR B SYLLABLE B031 SA
-1002E;AL # LINEAR B SYLLABLE B009 SE
-1002F;AL # LINEAR B SYLLABLE B041 SI
-10030;AL # LINEAR B SYLLABLE B012 SO
-10031;AL # LINEAR B SYLLABLE B058 SU
-10032;AL # LINEAR B SYLLABLE B059 TA
-10033;AL # LINEAR B SYLLABLE B004 TE
-10034;AL # LINEAR B SYLLABLE B037 TI
-10035;AL # LINEAR B SYLLABLE B005 TO
-10036;AL # LINEAR B SYLLABLE B069 TU
-10037;AL # LINEAR B SYLLABLE B054 WA
-10038;AL # LINEAR B SYLLABLE B075 WE
-10039;AL # LINEAR B SYLLABLE B040 WI
-1003A;AL # LINEAR B SYLLABLE B042 WO
-1003C;AL # LINEAR B SYLLABLE B017 ZA
-1003D;AL # LINEAR B SYLLABLE B074 ZE
-1003F;AL # LINEAR B SYLLABLE B020 ZO
-10040;AL # LINEAR B SYLLABLE B025 A2
-10041;AL # LINEAR B SYLLABLE B043 A3
-10042;AL # LINEAR B SYLLABLE B085 AU
-10043;AL # LINEAR B SYLLABLE B071 DWE
-10044;AL # LINEAR B SYLLABLE B090 DWO
-10045;AL # LINEAR B SYLLABLE B048 NWA
-10046;AL # LINEAR B SYLLABLE B029 PU2
-10047;AL # LINEAR B SYLLABLE B062 PTE
-10048;AL # LINEAR B SYLLABLE B076 RA2
-10049;AL # LINEAR B SYLLABLE B033 RA3
-1004A;AL # LINEAR B SYLLABLE B068 RO2
-1004B;AL # LINEAR B SYLLABLE B066 TA2
-1004C;AL # LINEAR B SYLLABLE B087 TWE
-1004D;AL # LINEAR B SYLLABLE B091 TWO
-10050;AL # LINEAR B SYMBOL B018
-10051;AL # LINEAR B SYMBOL B019
-10052;AL # LINEAR B SYMBOL B022
-10053;AL # LINEAR B SYMBOL B034
-10054;AL # LINEAR B SYMBOL B047
-10055;AL # LINEAR B SYMBOL B049
-10056;AL # LINEAR B SYMBOL B056
-10057;AL # LINEAR B SYMBOL B063
-10058;AL # LINEAR B SYMBOL B064
-10059;AL # LINEAR B SYMBOL B079
-1005A;AL # LINEAR B SYMBOL B082
-1005B;AL # LINEAR B SYMBOL B083
-1005C;AL # LINEAR B SYMBOL B086
-1005D;AL # LINEAR B SYMBOL B089
-10080;AL # LINEAR B IDEOGRAM B100 MAN
-10081;AL # LINEAR B IDEOGRAM B102 WOMAN
-10082;AL # LINEAR B IDEOGRAM B104 DEER
-10083;AL # LINEAR B IDEOGRAM B105 EQUID
-10084;AL # LINEAR B IDEOGRAM B105F MARE
-10085;AL # LINEAR B IDEOGRAM B105M STALLION
-10086;AL # LINEAR B IDEOGRAM B106F EWE
-10087;AL # LINEAR B IDEOGRAM B106M RAM
-10088;AL # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089;AL # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A;AL # LINEAR B IDEOGRAM B108F SOW
-1008B;AL # LINEAR B IDEOGRAM B108M BOAR
-1008C;AL # LINEAR B IDEOGRAM B109F COW
-1008D;AL # LINEAR B IDEOGRAM B109M BULL
-1008E;AL # LINEAR B IDEOGRAM B120 WHEAT
-1008F;AL # LINEAR B IDEOGRAM B121 BARLEY
-10090;AL # LINEAR B IDEOGRAM B122 OLIVE
-10091;AL # LINEAR B IDEOGRAM B123 SPICE
-10092;AL # LINEAR B IDEOGRAM B125 CYPERUS
-10093;AL # LINEAR B MONOGRAM B127 KAPO
-10094;AL # LINEAR B MONOGRAM B128 KANAKO
-10095;AL # LINEAR B IDEOGRAM B130 OIL
-10096;AL # LINEAR B IDEOGRAM B131 WINE
-10097;AL # LINEAR B IDEOGRAM B132
-10098;AL # LINEAR B MONOGRAM B133 AREPA
-10099;AL # LINEAR B MONOGRAM B135 MERI
-1009A;AL # LINEAR B IDEOGRAM B140 BRONZE
-1009B;AL # LINEAR B IDEOGRAM B141 GOLD
-1009C;AL # LINEAR B IDEOGRAM B142
-1009D;AL # LINEAR B IDEOGRAM B145 WOOL
-1009E;AL # LINEAR B IDEOGRAM B146
-1009F;AL # LINEAR B IDEOGRAM B150
-100A0;AL # LINEAR B IDEOGRAM B151 HORN
-100A1;AL # LINEAR B IDEOGRAM B152
-100A2;AL # LINEAR B IDEOGRAM B153
-100A3;AL # LINEAR B IDEOGRAM B154
-100A4;AL # LINEAR B MONOGRAM B156 TURO2
-100A5;AL # LINEAR B IDEOGRAM B157
-100A6;AL # LINEAR B IDEOGRAM B158
-100A7;AL # LINEAR B IDEOGRAM B159 CLOTH
-100A8;AL # LINEAR B IDEOGRAM B160
-100A9;AL # LINEAR B IDEOGRAM B161
-100AA;AL # LINEAR B IDEOGRAM B162 GARMENT
-100AB;AL # LINEAR B IDEOGRAM B163 ARMOUR
-100AC;AL # LINEAR B IDEOGRAM B164
-100AD;AL # LINEAR B IDEOGRAM B165
-100AE;AL # LINEAR B IDEOGRAM B166
-100AF;AL # LINEAR B IDEOGRAM B167
-100B0;AL # LINEAR B IDEOGRAM B168
-100B1;AL # LINEAR B IDEOGRAM B169
-100B2;AL # LINEAR B IDEOGRAM B170
-100B3;AL # LINEAR B IDEOGRAM B171
-100B4;AL # LINEAR B IDEOGRAM B172
-100B5;AL # LINEAR B IDEOGRAM B173 MONTH
-100B6;AL # LINEAR B IDEOGRAM B174
-100B7;AL # LINEAR B IDEOGRAM B176 TREE
-100B8;AL # LINEAR B IDEOGRAM B177
-100B9;AL # LINEAR B IDEOGRAM B178
-100BA;AL # LINEAR B IDEOGRAM B179
-100BB;AL # LINEAR B IDEOGRAM B180
-100BC;AL # LINEAR B IDEOGRAM B181
-100BD;AL # LINEAR B IDEOGRAM B182
-100BE;AL # LINEAR B IDEOGRAM B183
-100BF;AL # LINEAR B IDEOGRAM B184
-100C0;AL # LINEAR B IDEOGRAM B185
-100C1;AL # LINEAR B IDEOGRAM B189
-100C2;AL # LINEAR B IDEOGRAM B190
-100C3;AL # LINEAR B IDEOGRAM B191 HELMET
-100C4;AL # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5;AL # LINEAR B IDEOGRAM B225 BATHTUB
-100C6;AL # LINEAR B IDEOGRAM B230 SPEAR
-100C7;AL # LINEAR B IDEOGRAM B231 ARROW
-100C8;AL # LINEAR B IDEOGRAM B232
-100C9;AL # LINEAR B IDEOGRAM B233 SWORD
-100CA;AL # LINEAR B IDEOGRAM B234
-100CB;AL # LINEAR B IDEOGRAM B236
-100CC;AL # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD;AL # LINEAR B IDEOGRAM B241 CHARIOT
-100CE;AL # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF;AL # LINEAR B IDEOGRAM B243 WHEEL
-100D0;AL # LINEAR B IDEOGRAM B245
-100D1;AL # LINEAR B IDEOGRAM B246
-100D2;AL # LINEAR B MONOGRAM B247 DIPTE
-100D3;AL # LINEAR B IDEOGRAM B248
-100D4;AL # LINEAR B IDEOGRAM B249
-100D5;AL # LINEAR B IDEOGRAM B251
-100D6;AL # LINEAR B IDEOGRAM B252
-100D7;AL # LINEAR B IDEOGRAM B253
-100D8;AL # LINEAR B IDEOGRAM B254 DART
-100D9;AL # LINEAR B IDEOGRAM B255
-100DA;AL # LINEAR B IDEOGRAM B256
-100DB;AL # LINEAR B IDEOGRAM B257
-100DC;AL # LINEAR B IDEOGRAM B258
-100DD;AL # LINEAR B IDEOGRAM B259
-100DE;AL # LINEAR B IDEOGRAM VESSEL B155
-100DF;AL # LINEAR B IDEOGRAM VESSEL B200
-100E0;AL # LINEAR B IDEOGRAM VESSEL B201
-100E1;AL # LINEAR B IDEOGRAM VESSEL B202
-100E2;AL # LINEAR B IDEOGRAM VESSEL B203
-100E3;AL # LINEAR B IDEOGRAM VESSEL B204
-100E4;AL # LINEAR B IDEOGRAM VESSEL B205
-100E5;AL # LINEAR B IDEOGRAM VESSEL B206
-100E6;AL # LINEAR B IDEOGRAM VESSEL B207
-100E7;AL # LINEAR B IDEOGRAM VESSEL B208
-100E8;AL # LINEAR B IDEOGRAM VESSEL B209
-100E9;AL # LINEAR B IDEOGRAM VESSEL B210
-100EA;AL # LINEAR B IDEOGRAM VESSEL B211
-100EB;AL # LINEAR B IDEOGRAM VESSEL B212
-100EC;AL # LINEAR B IDEOGRAM VESSEL B213
-100ED;AL # LINEAR B IDEOGRAM VESSEL B214
-100EE;AL # LINEAR B IDEOGRAM VESSEL B215
-100EF;AL # LINEAR B IDEOGRAM VESSEL B216
-100F0;AL # LINEAR B IDEOGRAM VESSEL B217
-100F1;AL # LINEAR B IDEOGRAM VESSEL B218
-100F2;AL # LINEAR B IDEOGRAM VESSEL B219
-100F3;AL # LINEAR B IDEOGRAM VESSEL B221
-100F4;AL # LINEAR B IDEOGRAM VESSEL B222
-100F5;AL # LINEAR B IDEOGRAM VESSEL B226
-100F6;AL # LINEAR B IDEOGRAM VESSEL B227
-100F7;AL # LINEAR B IDEOGRAM VESSEL B228
-100F8;AL # LINEAR B IDEOGRAM VESSEL B229
-100F9;AL # LINEAR B IDEOGRAM VESSEL B250
-100FA;AL # LINEAR B IDEOGRAM VESSEL B305
-10100;BA # AEGEAN WORD SEPARATOR LINE
-10101;BA # AEGEAN WORD SEPARATOR DOT
-10102;BA # AEGEAN CHECK MARK
-10107;AL # AEGEAN NUMBER ONE
-10108;AL # AEGEAN NUMBER TWO
-10109;AL # AEGEAN NUMBER THREE
-1010A;AL # AEGEAN NUMBER FOUR
-1010B;AL # AEGEAN NUMBER FIVE
-1010C;AL # AEGEAN NUMBER SIX
-1010D;AL # AEGEAN NUMBER SEVEN
-1010E;AL # AEGEAN NUMBER EIGHT
-1010F;AL # AEGEAN NUMBER NINE
-10110;AL # AEGEAN NUMBER TEN
-10111;AL # AEGEAN NUMBER TWENTY
-10112;AL # AEGEAN NUMBER THIRTY
-10113;AL # AEGEAN NUMBER FORTY
-10114;AL # AEGEAN NUMBER FIFTY
-10115;AL # AEGEAN NUMBER SIXTY
-10116;AL # AEGEAN NUMBER SEVENTY
-10117;AL # AEGEAN NUMBER EIGHTY
-10118;AL # AEGEAN NUMBER NINETY
-10119;AL # AEGEAN NUMBER ONE HUNDRED
-1011A;AL # AEGEAN NUMBER TWO HUNDRED
-1011B;AL # AEGEAN NUMBER THREE HUNDRED
-1011C;AL # AEGEAN NUMBER FOUR HUNDRED
-1011D;AL # AEGEAN NUMBER FIVE HUNDRED
-1011E;AL # AEGEAN NUMBER SIX HUNDRED
-1011F;AL # AEGEAN NUMBER SEVEN HUNDRED
-10120;AL # AEGEAN NUMBER EIGHT HUNDRED
-10121;AL # AEGEAN NUMBER NINE HUNDRED
-10122;AL # AEGEAN NUMBER ONE THOUSAND
-10123;AL # AEGEAN NUMBER TWO THOUSAND
-10124;AL # AEGEAN NUMBER THREE THOUSAND
-10125;AL # AEGEAN NUMBER FOUR THOUSAND
-10126;AL # AEGEAN NUMBER FIVE THOUSAND
-10127;AL # AEGEAN NUMBER SIX THOUSAND
-10128;AL # AEGEAN NUMBER SEVEN THOUSAND
-10129;AL # AEGEAN NUMBER EIGHT THOUSAND
-1012A;AL # AEGEAN NUMBER NINE THOUSAND
-1012B;AL # AEGEAN NUMBER TEN THOUSAND
-1012C;AL # AEGEAN NUMBER TWENTY THOUSAND
-1012D;AL # AEGEAN NUMBER THIRTY THOUSAND
-1012E;AL # AEGEAN NUMBER FORTY THOUSAND
-1012F;AL # AEGEAN NUMBER FIFTY THOUSAND
-10130;AL # AEGEAN NUMBER SIXTY THOUSAND
-10131;AL # AEGEAN NUMBER SEVENTY THOUSAND
-10132;AL # AEGEAN NUMBER EIGHTY THOUSAND
-10133;AL # AEGEAN NUMBER NINETY THOUSAND
-10137;AL # AEGEAN WEIGHT BASE UNIT
-10138;AL # AEGEAN WEIGHT FIRST SUBUNIT
-10139;AL # AEGEAN WEIGHT SECOND SUBUNIT
-1013A;AL # AEGEAN WEIGHT THIRD SUBUNIT
-1013B;AL # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C;AL # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D;AL # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E;AL # AEGEAN MEASURE SECOND SUBUNIT
-1013F;AL # AEGEAN MEASURE THIRD SUBUNIT
-10140;AL # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141;AL # GREEK ACROPHONIC ATTIC ONE HALF
-10142;AL # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10143;AL # GREEK ACROPHONIC ATTIC FIVE
-10144;AL # GREEK ACROPHONIC ATTIC FIFTY
-10145;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146;AL # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147;AL # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10148;AL # GREEK ACROPHONIC ATTIC FIVE TALENTS
-10149;AL # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A;AL # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B;AL # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D;AL # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E;AL # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-1014F;AL # GREEK ACROPHONIC ATTIC FIVE STATERS
-10150;AL # GREEK ACROPHONIC ATTIC TEN STATERS
-10151;AL # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152;AL # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153;AL # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154;AL # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155;AL # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156;AL # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157;AL # GREEK ACROPHONIC ATTIC TEN MNAS
-10158;AL # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159;AL # GREEK ACROPHONIC THESPIAN ONE
-1015A;AL # GREEK ACROPHONIC HERMIONIAN ONE
-1015B;AL # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C;AL # GREEK ACROPHONIC THESPIAN TWO
-1015D;AL # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E;AL # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-1015F;AL # GREEK ACROPHONIC TROEZENIAN FIVE
-10160;AL # GREEK ACROPHONIC TROEZENIAN TEN
-10161;AL # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162;AL # GREEK ACROPHONIC HERMIONIAN TEN
-10163;AL # GREEK ACROPHONIC MESSENIAN TEN
-10164;AL # GREEK ACROPHONIC THESPIAN TEN
-10165;AL # GREEK ACROPHONIC THESPIAN THIRTY
-10166;AL # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167;AL # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168;AL # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169;AL # GREEK ACROPHONIC THESPIAN FIFTY
-1016A;AL # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B;AL # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C;AL # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D;AL # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E;AL # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F;AL # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170;AL # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171;AL # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172;AL # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10173;AL # GREEK ACROPHONIC DELPHIC FIVE MNAS
-10174;AL # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175;AL # GREEK ONE HALF SIGN
-10176;AL # GREEK ONE HALF SIGN ALTERNATE FORM
-10177;AL # GREEK TWO THIRDS SIGN
-10178;AL # GREEK THREE QUARTERS SIGN
-10179;AL # GREEK YEAR SIGN
-1017A;AL # GREEK TALENT SIGN
-1017B;AL # GREEK DRACHMA SIGN
-1017C;AL # GREEK OBOL SIGN
-1017D;AL # GREEK TWO OBOLS SIGN
-1017E;AL # GREEK THREE OBOLS SIGN
-1017F;AL # GREEK FOUR OBOLS SIGN
-10180;AL # GREEK FIVE OBOLS SIGN
-10181;AL # GREEK METRETES SIGN
-10182;AL # GREEK KYATHOS BASE SIGN
-10183;AL # GREEK LITRA SIGN
-10184;AL # GREEK OUNKIA SIGN
-10185;AL # GREEK XESTES SIGN
-10186;AL # GREEK ARTABE SIGN
-10187;AL # GREEK AROURA SIGN
-10188;AL # GREEK GRAMMA SIGN
-10189;AL # GREEK TRYBLION BASE SIGN
-1018A;AL # GREEK ZERO SIGN
-10190;AL # ROMAN SEXTANS SIGN
-10191;AL # ROMAN UNCIA SIGN
-10192;AL # ROMAN SEMUNCIA SIGN
-10193;AL # ROMAN SEXTULA SIGN
-10194;AL # ROMAN DIMIDIA SEXTULA SIGN
-10195;AL # ROMAN SILIQUA SIGN
-10196;AL # ROMAN DENARIUS SIGN
-10197;AL # ROMAN QUINARIUS SIGN
-10198;AL # ROMAN SESTERTIUS SIGN
-10199;AL # ROMAN DUPONDIUS SIGN
-1019A;AL # ROMAN AS SIGN
-1019B;AL # ROMAN CENTURIAL SIGN
-101D0;AL # PHAISTOS DISC SIGN PEDESTRIAN
-101D1;AL # PHAISTOS DISC SIGN PLUMED HEAD
-101D2;AL # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3;AL # PHAISTOS DISC SIGN CAPTIVE
-101D4;AL # PHAISTOS DISC SIGN CHILD
-101D5;AL # PHAISTOS DISC SIGN WOMAN
-101D6;AL # PHAISTOS DISC SIGN HELMET
-101D7;AL # PHAISTOS DISC SIGN GAUNTLET
-101D8;AL # PHAISTOS DISC SIGN TIARA
-101D9;AL # PHAISTOS DISC SIGN ARROW
-101DA;AL # PHAISTOS DISC SIGN BOW
-101DB;AL # PHAISTOS DISC SIGN SHIELD
-101DC;AL # PHAISTOS DISC SIGN CLUB
-101DD;AL # PHAISTOS DISC SIGN MANACLES
-101DE;AL # PHAISTOS DISC SIGN MATTOCK
-101DF;AL # PHAISTOS DISC SIGN SAW
-101E0;AL # PHAISTOS DISC SIGN LID
-101E1;AL # PHAISTOS DISC SIGN BOOMERANG
-101E2;AL # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3;AL # PHAISTOS DISC SIGN DOLIUM
-101E4;AL # PHAISTOS DISC SIGN COMB
-101E5;AL # PHAISTOS DISC SIGN SLING
-101E6;AL # PHAISTOS DISC SIGN COLUMN
-101E7;AL # PHAISTOS DISC SIGN BEEHIVE
-101E8;AL # PHAISTOS DISC SIGN SHIP
-101E9;AL # PHAISTOS DISC SIGN HORN
-101EA;AL # PHAISTOS DISC SIGN HIDE
-101EB;AL # PHAISTOS DISC SIGN BULLS LEG
-101EC;AL # PHAISTOS DISC SIGN CAT
-101ED;AL # PHAISTOS DISC SIGN RAM
-101EE;AL # PHAISTOS DISC SIGN EAGLE
-101EF;AL # PHAISTOS DISC SIGN DOVE
-101F0;AL # PHAISTOS DISC SIGN TUNNY
-101F1;AL # PHAISTOS DISC SIGN BEE
-101F2;AL # PHAISTOS DISC SIGN PLANE TREE
-101F3;AL # PHAISTOS DISC SIGN VINE
-101F4;AL # PHAISTOS DISC SIGN PAPYRUS
-101F5;AL # PHAISTOS DISC SIGN ROSETTE
-101F6;AL # PHAISTOS DISC SIGN LILY
-101F7;AL # PHAISTOS DISC SIGN OX BACK
-101F8;AL # PHAISTOS DISC SIGN FLUTE
-101F9;AL # PHAISTOS DISC SIGN GRATER
-101FA;AL # PHAISTOS DISC SIGN STRAINER
-101FB;AL # PHAISTOS DISC SIGN SMALL AXE
-101FC;AL # PHAISTOS DISC SIGN WAVY BAND
-101FD;CM # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-10280;AL # LYCIAN LETTER A
-10281;AL # LYCIAN LETTER E
-10282;AL # LYCIAN LETTER B
-10283;AL # LYCIAN LETTER BH
-10284;AL # LYCIAN LETTER G
-10285;AL # LYCIAN LETTER D
-10286;AL # LYCIAN LETTER I
-10287;AL # LYCIAN LETTER W
-10288;AL # LYCIAN LETTER Z
-10289;AL # LYCIAN LETTER TH
-1028A;AL # LYCIAN LETTER J
-1028B;AL # LYCIAN LETTER K
-1028C;AL # LYCIAN LETTER Q
-1028D;AL # LYCIAN LETTER L
-1028E;AL # LYCIAN LETTER M
-1028F;AL # LYCIAN LETTER N
-10290;AL # LYCIAN LETTER MM
-10291;AL # LYCIAN LETTER NN
-10292;AL # LYCIAN LETTER U
-10293;AL # LYCIAN LETTER P
-10294;AL # LYCIAN LETTER KK
-10295;AL # LYCIAN LETTER R
-10296;AL # LYCIAN LETTER S
-10297;AL # LYCIAN LETTER T
-10298;AL # LYCIAN LETTER TT
-10299;AL # LYCIAN LETTER AN
-1029A;AL # LYCIAN LETTER EN
-1029B;AL # LYCIAN LETTER H
-1029C;AL # LYCIAN LETTER X
-102A0;AL # CARIAN LETTER A
-102A1;AL # CARIAN LETTER P2
-102A2;AL # CARIAN LETTER D
-102A3;AL # CARIAN LETTER L
-102A4;AL # CARIAN LETTER UUU
-102A5;AL # CARIAN LETTER R
-102A6;AL # CARIAN LETTER LD
-102A7;AL # CARIAN LETTER A2
-102A8;AL # CARIAN LETTER Q
-102A9;AL # CARIAN LETTER B
-102AA;AL # CARIAN LETTER M
-102AB;AL # CARIAN LETTER O
-102AC;AL # CARIAN LETTER D2
-102AD;AL # CARIAN LETTER T
-102AE;AL # CARIAN LETTER SH
-102AF;AL # CARIAN LETTER SH2
-102B0;AL # CARIAN LETTER S
-102B1;AL # CARIAN LETTER C-18
-102B2;AL # CARIAN LETTER U
-102B3;AL # CARIAN LETTER NN
-102B4;AL # CARIAN LETTER X
-102B5;AL # CARIAN LETTER N
-102B6;AL # CARIAN LETTER TT2
-102B7;AL # CARIAN LETTER P
-102B8;AL # CARIAN LETTER SS
-102B9;AL # CARIAN LETTER I
-102BA;AL # CARIAN LETTER E
-102BB;AL # CARIAN LETTER UUUU
-102BC;AL # CARIAN LETTER K
-102BD;AL # CARIAN LETTER K2
-102BE;AL # CARIAN LETTER ND
-102BF;AL # CARIAN LETTER UU
-102C0;AL # CARIAN LETTER G
-102C1;AL # CARIAN LETTER G2
-102C2;AL # CARIAN LETTER ST
-102C3;AL # CARIAN LETTER ST2
-102C4;AL # CARIAN LETTER NG
-102C5;AL # CARIAN LETTER II
-102C6;AL # CARIAN LETTER C-39
-102C7;AL # CARIAN LETTER TT
-102C8;AL # CARIAN LETTER UUU2
-102C9;AL # CARIAN LETTER RR
-102CA;AL # CARIAN LETTER MB
-102CB;AL # CARIAN LETTER MB2
-102CC;AL # CARIAN LETTER MB3
-102CD;AL # CARIAN LETTER MB4
-102CE;AL # CARIAN LETTER LD2
-102CF;AL # CARIAN LETTER E2
-102D0;AL # CARIAN LETTER UUU3
-10300;AL # OLD ITALIC LETTER A
-10301;AL # OLD ITALIC LETTER BE
-10302;AL # OLD ITALIC LETTER KE
-10303;AL # OLD ITALIC LETTER DE
-10304;AL # OLD ITALIC LETTER E
-10305;AL # OLD ITALIC LETTER VE
-10306;AL # OLD ITALIC LETTER ZE
-10307;AL # OLD ITALIC LETTER HE
-10308;AL # OLD ITALIC LETTER THE
-10309;AL # OLD ITALIC LETTER I
-1030A;AL # OLD ITALIC LETTER KA
-1030B;AL # OLD ITALIC LETTER EL
-1030C;AL # OLD ITALIC LETTER EM
-1030D;AL # OLD ITALIC LETTER EN
-1030E;AL # OLD ITALIC LETTER ESH
-1030F;AL # OLD ITALIC LETTER O
-10310;AL # OLD ITALIC LETTER PE
-10311;AL # OLD ITALIC LETTER SHE
-10312;AL # OLD ITALIC LETTER KU
-10313;AL # OLD ITALIC LETTER ER
-10314;AL # OLD ITALIC LETTER ES
-10315;AL # OLD ITALIC LETTER TE
-10316;AL # OLD ITALIC LETTER U
-10317;AL # OLD ITALIC LETTER EKS
-10318;AL # OLD ITALIC LETTER PHE
-10319;AL # OLD ITALIC LETTER KHE
-1031A;AL # OLD ITALIC LETTER EF
-1031B;AL # OLD ITALIC LETTER ERS
-1031C;AL # OLD ITALIC LETTER CHE
-1031D;AL # OLD ITALIC LETTER II
-1031E;AL # OLD ITALIC LETTER UU
-10320;AL # OLD ITALIC NUMERAL ONE
-10321;AL # OLD ITALIC NUMERAL FIVE
-10322;AL # OLD ITALIC NUMERAL TEN
-10323;AL # OLD ITALIC NUMERAL FIFTY
-10330;AL # GOTHIC LETTER AHSA
-10331;AL # GOTHIC LETTER BAIRKAN
-10332;AL # GOTHIC LETTER GIBA
-10333;AL # GOTHIC LETTER DAGS
-10334;AL # GOTHIC LETTER AIHVUS
-10335;AL # GOTHIC LETTER QAIRTHRA
-10336;AL # GOTHIC LETTER IUJA
-10337;AL # GOTHIC LETTER HAGL
-10338;AL # GOTHIC LETTER THIUTH
-10339;AL # GOTHIC LETTER EIS
-1033A;AL # GOTHIC LETTER KUSMA
-1033B;AL # GOTHIC LETTER LAGUS
-1033C;AL # GOTHIC LETTER MANNA
-1033D;AL # GOTHIC LETTER NAUTHS
-1033E;AL # GOTHIC LETTER JER
-1033F;AL # GOTHIC LETTER URUS
-10340;AL # GOTHIC LETTER PAIRTHRA
-10341;AL # GOTHIC LETTER NINETY
-10342;AL # GOTHIC LETTER RAIDA
-10343;AL # GOTHIC LETTER SAUIL
-10344;AL # GOTHIC LETTER TEIWS
-10345;AL # GOTHIC LETTER WINJA
-10346;AL # GOTHIC LETTER FAIHU
-10347;AL # GOTHIC LETTER IGGWS
-10348;AL # GOTHIC LETTER HWAIR
-10349;AL # GOTHIC LETTER OTHAL
-1034A;AL # GOTHIC LETTER NINE HUNDRED
-10380;AL # UGARITIC LETTER ALPA
-10381;AL # UGARITIC LETTER BETA
-10382;AL # UGARITIC LETTER GAMLA
-10383;AL # UGARITIC LETTER KHA
-10384;AL # UGARITIC LETTER DELTA
-10385;AL # UGARITIC LETTER HO
-10386;AL # UGARITIC LETTER WO
-10387;AL # UGARITIC LETTER ZETA
-10388;AL # UGARITIC LETTER HOTA
-10389;AL # UGARITIC LETTER TET
-1038A;AL # UGARITIC LETTER YOD
-1038B;AL # UGARITIC LETTER KAF
-1038C;AL # UGARITIC LETTER SHIN
-1038D;AL # UGARITIC LETTER LAMDA
-1038E;AL # UGARITIC LETTER MEM
-1038F;AL # UGARITIC LETTER DHAL
-10390;AL # UGARITIC LETTER NUN
-10391;AL # UGARITIC LETTER ZU
-10392;AL # UGARITIC LETTER SAMKA
-10393;AL # UGARITIC LETTER AIN
-10394;AL # UGARITIC LETTER PU
-10395;AL # UGARITIC LETTER SADE
-10396;AL # UGARITIC LETTER QOPA
-10397;AL # UGARITIC LETTER RASHA
-10398;AL # UGARITIC LETTER THANNA
-10399;AL # UGARITIC LETTER GHAIN
-1039A;AL # UGARITIC LETTER TO
-1039B;AL # UGARITIC LETTER I
-1039C;AL # UGARITIC LETTER U
-1039D;AL # UGARITIC LETTER SSU
-1039F;BA # UGARITIC WORD DIVIDER
-103A0;AL # OLD PERSIAN SIGN A
-103A1;AL # OLD PERSIAN SIGN I
-103A2;AL # OLD PERSIAN SIGN U
-103A3;AL # OLD PERSIAN SIGN KA
-103A4;AL # OLD PERSIAN SIGN KU
-103A5;AL # OLD PERSIAN SIGN GA
-103A6;AL # OLD PERSIAN SIGN GU
-103A7;AL # OLD PERSIAN SIGN XA
-103A8;AL # OLD PERSIAN SIGN CA
-103A9;AL # OLD PERSIAN SIGN JA
-103AA;AL # OLD PERSIAN SIGN JI
-103AB;AL # OLD PERSIAN SIGN TA
-103AC;AL # OLD PERSIAN SIGN TU
-103AD;AL # OLD PERSIAN SIGN DA
-103AE;AL # OLD PERSIAN SIGN DI
-103AF;AL # OLD PERSIAN SIGN DU
-103B0;AL # OLD PERSIAN SIGN THA
-103B1;AL # OLD PERSIAN SIGN PA
-103B2;AL # OLD PERSIAN SIGN BA
-103B3;AL # OLD PERSIAN SIGN FA
-103B4;AL # OLD PERSIAN SIGN NA
-103B5;AL # OLD PERSIAN SIGN NU
-103B6;AL # OLD PERSIAN SIGN MA
-103B7;AL # OLD PERSIAN SIGN MI
-103B8;AL # OLD PERSIAN SIGN MU
-103B9;AL # OLD PERSIAN SIGN YA
-103BA;AL # OLD PERSIAN SIGN VA
-103BB;AL # OLD PERSIAN SIGN VI
-103BC;AL # OLD PERSIAN SIGN RA
-103BD;AL # OLD PERSIAN SIGN RU
-103BE;AL # OLD PERSIAN SIGN LA
-103BF;AL # OLD PERSIAN SIGN SA
-103C0;AL # OLD PERSIAN SIGN ZA
-103C1;AL # OLD PERSIAN SIGN SHA
-103C2;AL # OLD PERSIAN SIGN SSA
-103C3;AL # OLD PERSIAN SIGN HA
-103C8;AL # OLD PERSIAN SIGN AURAMAZDAA
-103C9;AL # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA;AL # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB;AL # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC;AL # OLD PERSIAN SIGN DAHYAAUSH
-103CD;AL # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE;AL # OLD PERSIAN SIGN BAGA
-103CF;AL # OLD PERSIAN SIGN BUUMISH
-103D0;BA # OLD PERSIAN WORD DIVIDER
-103D1;AL # OLD PERSIAN NUMBER ONE
-103D2;AL # OLD PERSIAN NUMBER TWO
-103D3;AL # OLD PERSIAN NUMBER TEN
-103D4;AL # OLD PERSIAN NUMBER TWENTY
-103D5;AL # OLD PERSIAN NUMBER HUNDRED
-10400;AL # DESERET CAPITAL LETTER LONG I
-10401;AL # DESERET CAPITAL LETTER LONG E
-10402;AL # DESERET CAPITAL LETTER LONG A
-10403;AL # DESERET CAPITAL LETTER LONG AH
-10404;AL # DESERET CAPITAL LETTER LONG O
-10405;AL # DESERET CAPITAL LETTER LONG OO
-10406;AL # DESERET CAPITAL LETTER SHORT I
-10407;AL # DESERET CAPITAL LETTER SHORT E
-10408;AL # DESERET CAPITAL LETTER SHORT A
-10409;AL # DESERET CAPITAL LETTER SHORT AH
-1040A;AL # DESERET CAPITAL LETTER SHORT O
-1040B;AL # DESERET CAPITAL LETTER SHORT OO
-1040C;AL # DESERET CAPITAL LETTER AY
-1040D;AL # DESERET CAPITAL LETTER OW
-1040E;AL # DESERET CAPITAL LETTER WU
-1040F;AL # DESERET CAPITAL LETTER YEE
-10410;AL # DESERET CAPITAL LETTER H
-10411;AL # DESERET CAPITAL LETTER PEE
-10412;AL # DESERET CAPITAL LETTER BEE
-10413;AL # DESERET CAPITAL LETTER TEE
-10414;AL # DESERET CAPITAL LETTER DEE
-10415;AL # DESERET CAPITAL LETTER CHEE
-10416;AL # DESERET CAPITAL LETTER JEE
-10417;AL # DESERET CAPITAL LETTER KAY
-10418;AL # DESERET CAPITAL LETTER GAY
-10419;AL # DESERET CAPITAL LETTER EF
-1041A;AL # DESERET CAPITAL LETTER VEE
-1041B;AL # DESERET CAPITAL LETTER ETH
-1041C;AL # DESERET CAPITAL LETTER THEE
-1041D;AL # DESERET CAPITAL LETTER ES
-1041E;AL # DESERET CAPITAL LETTER ZEE
-1041F;AL # DESERET CAPITAL LETTER ESH
-10420;AL # DESERET CAPITAL LETTER ZHEE
-10421;AL # DESERET CAPITAL LETTER ER
-10422;AL # DESERET CAPITAL LETTER EL
-10423;AL # DESERET CAPITAL LETTER EM
-10424;AL # DESERET CAPITAL LETTER EN
-10425;AL # DESERET CAPITAL LETTER ENG
-10426;AL # DESERET CAPITAL LETTER OI
-10427;AL # DESERET CAPITAL LETTER EW
-10428;AL # DESERET SMALL LETTER LONG I
-10429;AL # DESERET SMALL LETTER LONG E
-1042A;AL # DESERET SMALL LETTER LONG A
-1042B;AL # DESERET SMALL LETTER LONG AH
-1042C;AL # DESERET SMALL LETTER LONG O
-1042D;AL # DESERET SMALL LETTER LONG OO
-1042E;AL # DESERET SMALL LETTER SHORT I
-1042F;AL # DESERET SMALL LETTER SHORT E
-10430;AL # DESERET SMALL LETTER SHORT A
-10431;AL # DESERET SMALL LETTER SHORT AH
-10432;AL # DESERET SMALL LETTER SHORT O
-10433;AL # DESERET SMALL LETTER SHORT OO
-10434;AL # DESERET SMALL LETTER AY
-10435;AL # DESERET SMALL LETTER OW
-10436;AL # DESERET SMALL LETTER WU
-10437;AL # DESERET SMALL LETTER YEE
-10438;AL # DESERET SMALL LETTER H
-10439;AL # DESERET SMALL LETTER PEE
-1043A;AL # DESERET SMALL LETTER BEE
-1043B;AL # DESERET SMALL LETTER TEE
-1043C;AL # DESERET SMALL LETTER DEE
-1043D;AL # DESERET SMALL LETTER CHEE
-1043E;AL # DESERET SMALL LETTER JEE
-1043F;AL # DESERET SMALL LETTER KAY
-10440;AL # DESERET SMALL LETTER GAY
-10441;AL # DESERET SMALL LETTER EF
-10442;AL # DESERET SMALL LETTER VEE
-10443;AL # DESERET SMALL LETTER ETH
-10444;AL # DESERET SMALL LETTER THEE
-10445;AL # DESERET SMALL LETTER ES
-10446;AL # DESERET SMALL LETTER ZEE
-10447;AL # DESERET SMALL LETTER ESH
-10448;AL # DESERET SMALL LETTER ZHEE
-10449;AL # DESERET SMALL LETTER ER
-1044A;AL # DESERET SMALL LETTER EL
-1044B;AL # DESERET SMALL LETTER EM
-1044C;AL # DESERET SMALL LETTER EN
-1044D;AL # DESERET SMALL LETTER ENG
-1044E;AL # DESERET SMALL LETTER OI
-1044F;AL # DESERET SMALL LETTER EW
-10450;AL # SHAVIAN LETTER PEEP
-10451;AL # SHAVIAN LETTER TOT
-10452;AL # SHAVIAN LETTER KICK
-10453;AL # SHAVIAN LETTER FEE
-10454;AL # SHAVIAN LETTER THIGH
-10455;AL # SHAVIAN LETTER SO
-10456;AL # SHAVIAN LETTER SURE
-10457;AL # SHAVIAN LETTER CHURCH
-10458;AL # SHAVIAN LETTER YEA
-10459;AL # SHAVIAN LETTER HUNG
-1045A;AL # SHAVIAN LETTER BIB
-1045B;AL # SHAVIAN LETTER DEAD
-1045C;AL # SHAVIAN LETTER GAG
-1045D;AL # SHAVIAN LETTER VOW
-1045E;AL # SHAVIAN LETTER THEY
-1045F;AL # SHAVIAN LETTER ZOO
-10460;AL # SHAVIAN LETTER MEASURE
-10461;AL # SHAVIAN LETTER JUDGE
-10462;AL # SHAVIAN LETTER WOE
-10463;AL # SHAVIAN LETTER HA-HA
-10464;AL # SHAVIAN LETTER LOLL
-10465;AL # SHAVIAN LETTER MIME
-10466;AL # SHAVIAN LETTER IF
-10467;AL # SHAVIAN LETTER EGG
-10468;AL # SHAVIAN LETTER ASH
-10469;AL # SHAVIAN LETTER ADO
-1046A;AL # SHAVIAN LETTER ON
-1046B;AL # SHAVIAN LETTER WOOL
-1046C;AL # SHAVIAN LETTER OUT
-1046D;AL # SHAVIAN LETTER AH
-1046E;AL # SHAVIAN LETTER ROAR
-1046F;AL # SHAVIAN LETTER NUN
-10470;AL # SHAVIAN LETTER EAT
-10471;AL # SHAVIAN LETTER AGE
-10472;AL # SHAVIAN LETTER ICE
-10473;AL # SHAVIAN LETTER UP
-10474;AL # SHAVIAN LETTER OAK
-10475;AL # SHAVIAN LETTER OOZE
-10476;AL # SHAVIAN LETTER OIL
-10477;AL # SHAVIAN LETTER AWE
-10478;AL # SHAVIAN LETTER ARE
-10479;AL # SHAVIAN LETTER OR
-1047A;AL # SHAVIAN LETTER AIR
-1047B;AL # SHAVIAN LETTER ERR
-1047C;AL # SHAVIAN LETTER ARRAY
-1047D;AL # SHAVIAN LETTER EAR
-1047E;AL # SHAVIAN LETTER IAN
-1047F;AL # SHAVIAN LETTER YEW
-10480;AL # OSMANYA LETTER ALEF
-10481;AL # OSMANYA LETTER BA
-10482;AL # OSMANYA LETTER TA
-10483;AL # OSMANYA LETTER JA
-10484;AL # OSMANYA LETTER XA
-10485;AL # OSMANYA LETTER KHA
-10486;AL # OSMANYA LETTER DEEL
-10487;AL # OSMANYA LETTER RA
-10488;AL # OSMANYA LETTER SA
-10489;AL # OSMANYA LETTER SHIIN
-1048A;AL # OSMANYA LETTER DHA
-1048B;AL # OSMANYA LETTER CAYN
-1048C;AL # OSMANYA LETTER GA
-1048D;AL # OSMANYA LETTER FA
-1048E;AL # OSMANYA LETTER QAAF
-1048F;AL # OSMANYA LETTER KAAF
-10490;AL # OSMANYA LETTER LAAN
-10491;AL # OSMANYA LETTER MIIN
-10492;AL # OSMANYA LETTER NUUN
-10493;AL # OSMANYA LETTER WAW
-10494;AL # OSMANYA LETTER HA
-10495;AL # OSMANYA LETTER YA
-10496;AL # OSMANYA LETTER A
-10497;AL # OSMANYA LETTER E
-10498;AL # OSMANYA LETTER I
-10499;AL # OSMANYA LETTER O
-1049A;AL # OSMANYA LETTER U
-1049B;AL # OSMANYA LETTER AA
-1049C;AL # OSMANYA LETTER EE
-1049D;AL # OSMANYA LETTER OO
-104A0;NU # OSMANYA DIGIT ZERO
-104A1;NU # OSMANYA DIGIT ONE
-104A2;NU # OSMANYA DIGIT TWO
-104A3;NU # OSMANYA DIGIT THREE
-104A4;NU # OSMANYA DIGIT FOUR
-104A5;NU # OSMANYA DIGIT FIVE
-104A6;NU # OSMANYA DIGIT SIX
-104A7;NU # OSMANYA DIGIT SEVEN
-104A8;NU # OSMANYA DIGIT EIGHT
-104A9;NU # OSMANYA DIGIT NINE
-10800;AL # CYPRIOT SYLLABLE A
-10801;AL # CYPRIOT SYLLABLE E
-10802;AL # CYPRIOT SYLLABLE I
-10803;AL # CYPRIOT SYLLABLE O
-10804;AL # CYPRIOT SYLLABLE U
-10805;AL # CYPRIOT SYLLABLE JA
-10808;AL # CYPRIOT SYLLABLE JO
-1080A;AL # CYPRIOT SYLLABLE KA
-1080B;AL # CYPRIOT SYLLABLE KE
-1080C;AL # CYPRIOT SYLLABLE KI
-1080D;AL # CYPRIOT SYLLABLE KO
-1080E;AL # CYPRIOT SYLLABLE KU
-1080F;AL # CYPRIOT SYLLABLE LA
-10810;AL # CYPRIOT SYLLABLE LE
-10811;AL # CYPRIOT SYLLABLE LI
-10812;AL # CYPRIOT SYLLABLE LO
-10813;AL # CYPRIOT SYLLABLE LU
-10814;AL # CYPRIOT SYLLABLE MA
-10815;AL # CYPRIOT SYLLABLE ME
-10816;AL # CYPRIOT SYLLABLE MI
-10817;AL # CYPRIOT SYLLABLE MO
-10818;AL # CYPRIOT SYLLABLE MU
-10819;AL # CYPRIOT SYLLABLE NA
-1081A;AL # CYPRIOT SYLLABLE NE
-1081B;AL # CYPRIOT SYLLABLE NI
-1081C;AL # CYPRIOT SYLLABLE NO
-1081D;AL # CYPRIOT SYLLABLE NU
-1081E;AL # CYPRIOT SYLLABLE PA
-1081F;AL # CYPRIOT SYLLABLE PE
-10820;AL # CYPRIOT SYLLABLE PI
-10821;AL # CYPRIOT SYLLABLE PO
-10822;AL # CYPRIOT SYLLABLE PU
-10823;AL # CYPRIOT SYLLABLE RA
-10824;AL # CYPRIOT SYLLABLE RE
-10825;AL # CYPRIOT SYLLABLE RI
-10826;AL # CYPRIOT SYLLABLE RO
-10827;AL # CYPRIOT SYLLABLE RU
-10828;AL # CYPRIOT SYLLABLE SA
-10829;AL # CYPRIOT SYLLABLE SE
-1082A;AL # CYPRIOT SYLLABLE SI
-1082B;AL # CYPRIOT SYLLABLE SO
-1082C;AL # CYPRIOT SYLLABLE SU
-1082D;AL # CYPRIOT SYLLABLE TA
-1082E;AL # CYPRIOT SYLLABLE TE
-1082F;AL # CYPRIOT SYLLABLE TI
-10830;AL # CYPRIOT SYLLABLE TO
-10831;AL # CYPRIOT SYLLABLE TU
-10832;AL # CYPRIOT SYLLABLE WA
-10833;AL # CYPRIOT SYLLABLE WE
-10834;AL # CYPRIOT SYLLABLE WI
-10835;AL # CYPRIOT SYLLABLE WO
-10837;AL # CYPRIOT SYLLABLE XA
-10838;AL # CYPRIOT SYLLABLE XE
-1083C;AL # CYPRIOT SYLLABLE ZA
-1083F;AL # CYPRIOT SYLLABLE ZO
-10840;AL # IMPERIAL ARAMAIC LETTER ALEPH
-10841;AL # IMPERIAL ARAMAIC LETTER BETH
-10842;AL # IMPERIAL ARAMAIC LETTER GIMEL
-10843;AL # IMPERIAL ARAMAIC LETTER DALETH
-10844;AL # IMPERIAL ARAMAIC LETTER HE
-10845;AL # IMPERIAL ARAMAIC LETTER WAW
-10846;AL # IMPERIAL ARAMAIC LETTER ZAYIN
-10847;AL # IMPERIAL ARAMAIC LETTER HETH
-10848;AL # IMPERIAL ARAMAIC LETTER TETH
-10849;AL # IMPERIAL ARAMAIC LETTER YODH
-1084A;AL # IMPERIAL ARAMAIC LETTER KAPH
-1084B;AL # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C;AL # IMPERIAL ARAMAIC LETTER MEM
-1084D;AL # IMPERIAL ARAMAIC LETTER NUN
-1084E;AL # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F;AL # IMPERIAL ARAMAIC LETTER AYIN
-10850;AL # IMPERIAL ARAMAIC LETTER PE
-10851;AL # IMPERIAL ARAMAIC LETTER SADHE
-10852;AL # IMPERIAL ARAMAIC LETTER QOPH
-10853;AL # IMPERIAL ARAMAIC LETTER RESH
-10854;AL # IMPERIAL ARAMAIC LETTER SHIN
-10855;AL # IMPERIAL ARAMAIC LETTER TAW
-10857;BA # IMPERIAL ARAMAIC SECTION SIGN
-10858;AL # IMPERIAL ARAMAIC NUMBER ONE
-10859;AL # IMPERIAL ARAMAIC NUMBER TWO
-1085A;AL # IMPERIAL ARAMAIC NUMBER THREE
-1085B;AL # IMPERIAL ARAMAIC NUMBER TEN
-1085C;AL # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D;AL # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E;AL # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F;AL # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10900;AL # PHOENICIAN LETTER ALF
-10901;AL # PHOENICIAN LETTER BET
-10902;AL # PHOENICIAN LETTER GAML
-10903;AL # PHOENICIAN LETTER DELT
-10904;AL # PHOENICIAN LETTER HE
-10905;AL # PHOENICIAN LETTER WAU
-10906;AL # PHOENICIAN LETTER ZAI
-10907;AL # PHOENICIAN LETTER HET
-10908;AL # PHOENICIAN LETTER TET
-10909;AL # PHOENICIAN LETTER YOD
-1090A;AL # PHOENICIAN LETTER KAF
-1090B;AL # PHOENICIAN LETTER LAMD
-1090C;AL # PHOENICIAN LETTER MEM
-1090D;AL # PHOENICIAN LETTER NUN
-1090E;AL # PHOENICIAN LETTER SEMK
-1090F;AL # PHOENICIAN LETTER AIN
-10910;AL # PHOENICIAN LETTER PE
-10911;AL # PHOENICIAN LETTER SADE
-10912;AL # PHOENICIAN LETTER QOF
-10913;AL # PHOENICIAN LETTER ROSH
-10914;AL # PHOENICIAN LETTER SHIN
-10915;AL # PHOENICIAN LETTER TAU
-10916;AL # PHOENICIAN NUMBER ONE
-10917;AL # PHOENICIAN NUMBER TEN
-10918;AL # PHOENICIAN NUMBER TWENTY
-10919;AL # PHOENICIAN NUMBER ONE HUNDRED
-1091A;AL # PHOENICIAN NUMBER TWO
-1091B;AL # PHOENICIAN NUMBER THREE
-1091F;BA # PHOENICIAN WORD SEPARATOR
-10920;AL # LYDIAN LETTER A
-10921;AL # LYDIAN LETTER B
-10922;AL # LYDIAN LETTER G
-10923;AL # LYDIAN LETTER D
-10924;AL # LYDIAN LETTER E
-10925;AL # LYDIAN LETTER V
-10926;AL # LYDIAN LETTER I
-10927;AL # LYDIAN LETTER Y
-10928;AL # LYDIAN LETTER K
-10929;AL # LYDIAN LETTER L
-1092A;AL # LYDIAN LETTER M
-1092B;AL # LYDIAN LETTER N
-1092C;AL # LYDIAN LETTER O
-1092D;AL # LYDIAN LETTER R
-1092E;AL # LYDIAN LETTER SS
-1092F;AL # LYDIAN LETTER T
-10930;AL # LYDIAN LETTER U
-10931;AL # LYDIAN LETTER F
-10932;AL # LYDIAN LETTER Q
-10933;AL # LYDIAN LETTER S
-10934;AL # LYDIAN LETTER TT
-10935;AL # LYDIAN LETTER AN
-10936;AL # LYDIAN LETTER EN
-10937;AL # LYDIAN LETTER LY
-10938;AL # LYDIAN LETTER NN
-10939;AL # LYDIAN LETTER C
-1093F;AL # LYDIAN TRIANGULAR MARK
-10980;AL # MEROITIC HIEROGLYPHIC LETTER A
-10981;AL # MEROITIC HIEROGLYPHIC LETTER E
-10982;AL # MEROITIC HIEROGLYPHIC LETTER I
-10983;AL # MEROITIC HIEROGLYPHIC LETTER O
-10984;AL # MEROITIC HIEROGLYPHIC LETTER YA
-10985;AL # MEROITIC HIEROGLYPHIC LETTER WA
-10986;AL # MEROITIC HIEROGLYPHIC LETTER BA
-10987;AL # MEROITIC HIEROGLYPHIC LETTER BA-2
-10988;AL # MEROITIC HIEROGLYPHIC LETTER PA
-10989;AL # MEROITIC HIEROGLYPHIC LETTER MA
-1098A;AL # MEROITIC HIEROGLYPHIC LETTER NA
-1098B;AL # MEROITIC HIEROGLYPHIC LETTER NA-2
-1098C;AL # MEROITIC HIEROGLYPHIC LETTER NE
-1098D;AL # MEROITIC HIEROGLYPHIC LETTER NE-2
-1098E;AL # MEROITIC HIEROGLYPHIC LETTER RA
-1098F;AL # MEROITIC HIEROGLYPHIC LETTER RA-2
-10990;AL # MEROITIC HIEROGLYPHIC LETTER LA
-10991;AL # MEROITIC HIEROGLYPHIC LETTER KHA
-10992;AL # MEROITIC HIEROGLYPHIC LETTER HHA
-10993;AL # MEROITIC HIEROGLYPHIC LETTER SA
-10994;AL # MEROITIC HIEROGLYPHIC LETTER SA-2
-10995;AL # MEROITIC HIEROGLYPHIC LETTER SE
-10996;AL # MEROITIC HIEROGLYPHIC LETTER KA
-10997;AL # MEROITIC HIEROGLYPHIC LETTER QA
-10998;AL # MEROITIC HIEROGLYPHIC LETTER TA
-10999;AL # MEROITIC HIEROGLYPHIC LETTER TA-2
-1099A;AL # MEROITIC HIEROGLYPHIC LETTER TE
-1099B;AL # MEROITIC HIEROGLYPHIC LETTER TE-2
-1099C;AL # MEROITIC HIEROGLYPHIC LETTER TO
-1099D;AL # MEROITIC HIEROGLYPHIC LETTER DA
-1099E;AL # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F;AL # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
-109A0;AL # MEROITIC CURSIVE LETTER A
-109A1;AL # MEROITIC CURSIVE LETTER E
-109A2;AL # MEROITIC CURSIVE LETTER I
-109A3;AL # MEROITIC CURSIVE LETTER O
-109A4;AL # MEROITIC CURSIVE LETTER YA
-109A5;AL # MEROITIC CURSIVE LETTER WA
-109A6;AL # MEROITIC CURSIVE LETTER BA
-109A7;AL # MEROITIC CURSIVE LETTER PA
-109A8;AL # MEROITIC CURSIVE LETTER MA
-109A9;AL # MEROITIC CURSIVE LETTER NA
-109AA;AL # MEROITIC CURSIVE LETTER NE
-109AB;AL # MEROITIC CURSIVE LETTER RA
-109AC;AL # MEROITIC CURSIVE LETTER LA
-109AD;AL # MEROITIC CURSIVE LETTER KHA
-109AE;AL # MEROITIC CURSIVE LETTER HHA
-109AF;AL # MEROITIC CURSIVE LETTER SA
-109B0;AL # MEROITIC CURSIVE LETTER ARCHAIC SA
-109B1;AL # MEROITIC CURSIVE LETTER SE
-109B2;AL # MEROITIC CURSIVE LETTER KA
-109B3;AL # MEROITIC CURSIVE LETTER QA
-109B4;AL # MEROITIC CURSIVE LETTER TA
-109B5;AL # MEROITIC CURSIVE LETTER TE
-109B6;AL # MEROITIC CURSIVE LETTER TO
-109B7;AL # MEROITIC CURSIVE LETTER DA
-109BE;AL # MEROITIC CURSIVE LOGOGRAM RMT
-109BF;AL # MEROITIC CURSIVE LOGOGRAM IMN
-10A00;AL # KHAROSHTHI LETTER A
-10A01;CM # KHAROSHTHI VOWEL SIGN I
-10A02;CM # KHAROSHTHI VOWEL SIGN U
-10A03;CM # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05;CM # KHAROSHTHI VOWEL SIGN E
-10A06;CM # KHAROSHTHI VOWEL SIGN O
-10A0C;CM # KHAROSHTHI VOWEL LENGTH MARK
-10A0D;CM # KHAROSHTHI SIGN DOUBLE RING BELOW
-10A0E;CM # KHAROSHTHI SIGN ANUSVARA
-10A0F;CM # KHAROSHTHI SIGN VISARGA
-10A10;AL # KHAROSHTHI LETTER KA
-10A11;AL # KHAROSHTHI LETTER KHA
-10A12;AL # KHAROSHTHI LETTER GA
-10A13;AL # KHAROSHTHI LETTER GHA
-10A15;AL # KHAROSHTHI LETTER CA
-10A16;AL # KHAROSHTHI LETTER CHA
-10A17;AL # KHAROSHTHI LETTER JA
-10A19;AL # KHAROSHTHI LETTER NYA
-10A1A;AL # KHAROSHTHI LETTER TTA
-10A1B;AL # KHAROSHTHI LETTER TTHA
-10A1C;AL # KHAROSHTHI LETTER DDA
-10A1D;AL # KHAROSHTHI LETTER DDHA
-10A1E;AL # KHAROSHTHI LETTER NNA
-10A1F;AL # KHAROSHTHI LETTER TA
-10A20;AL # KHAROSHTHI LETTER THA
-10A21;AL # KHAROSHTHI LETTER DA
-10A22;AL # KHAROSHTHI LETTER DHA
-10A23;AL # KHAROSHTHI LETTER NA
-10A24;AL # KHAROSHTHI LETTER PA
-10A25;AL # KHAROSHTHI LETTER PHA
-10A26;AL # KHAROSHTHI LETTER BA
-10A27;AL # KHAROSHTHI LETTER BHA
-10A28;AL # KHAROSHTHI LETTER MA
-10A29;AL # KHAROSHTHI LETTER YA
-10A2A;AL # KHAROSHTHI LETTER RA
-10A2B;AL # KHAROSHTHI LETTER LA
-10A2C;AL # KHAROSHTHI LETTER VA
-10A2D;AL # KHAROSHTHI LETTER SHA
-10A2E;AL # KHAROSHTHI LETTER SSA
-10A2F;AL # KHAROSHTHI LETTER SA
-10A30;AL # KHAROSHTHI LETTER ZA
-10A31;AL # KHAROSHTHI LETTER HA
-10A32;AL # KHAROSHTHI LETTER KKA
-10A33;AL # KHAROSHTHI LETTER TTTHA
-10A38;CM # KHAROSHTHI SIGN BAR ABOVE
-10A39;CM # KHAROSHTHI SIGN CAUDA
-10A3A;CM # KHAROSHTHI SIGN DOT BELOW
-10A3F;CM # KHAROSHTHI VIRAMA
-10A40;AL # KHAROSHTHI DIGIT ONE
-10A41;AL # KHAROSHTHI DIGIT TWO
-10A42;AL # KHAROSHTHI DIGIT THREE
-10A43;AL # KHAROSHTHI DIGIT FOUR
-10A44;AL # KHAROSHTHI NUMBER TEN
-10A45;AL # KHAROSHTHI NUMBER TWENTY
-10A46;AL # KHAROSHTHI NUMBER ONE HUNDRED
-10A47;AL # KHAROSHTHI NUMBER ONE THOUSAND
-10A50;BA # KHAROSHTHI PUNCTUATION DOT
-10A51;BA # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52;BA # KHAROSHTHI PUNCTUATION CIRCLE
-10A53;BA # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54;BA # KHAROSHTHI PUNCTUATION MANGALAM
-10A55;BA # KHAROSHTHI PUNCTUATION LOTUS
-10A56;BA # KHAROSHTHI PUNCTUATION DANDA
-10A57;BA # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58;AL # KHAROSHTHI PUNCTUATION LINES
-10A60;AL # OLD SOUTH ARABIAN LETTER HE
-10A61;AL # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62;AL # OLD SOUTH ARABIAN LETTER HETH
-10A63;AL # OLD SOUTH ARABIAN LETTER MEM
-10A64;AL # OLD SOUTH ARABIAN LETTER QOPH
-10A65;AL # OLD SOUTH ARABIAN LETTER WAW
-10A66;AL # OLD SOUTH ARABIAN LETTER SHIN
-10A67;AL # OLD SOUTH ARABIAN LETTER RESH
-10A68;AL # OLD SOUTH ARABIAN LETTER BETH
-10A69;AL # OLD SOUTH ARABIAN LETTER TAW
-10A6A;AL # OLD SOUTH ARABIAN LETTER SAT
-10A6B;AL # OLD SOUTH ARABIAN LETTER KAPH
-10A6C;AL # OLD SOUTH ARABIAN LETTER NUN
-10A6D;AL # OLD SOUTH ARABIAN LETTER KHETH
-10A6E;AL # OLD SOUTH ARABIAN LETTER SADHE
-10A6F;AL # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70;AL # OLD SOUTH ARABIAN LETTER FE
-10A71;AL # OLD SOUTH ARABIAN LETTER ALEF
-10A72;AL # OLD SOUTH ARABIAN LETTER AYN
-10A73;AL # OLD SOUTH ARABIAN LETTER DHADHE
-10A74;AL # OLD SOUTH ARABIAN LETTER GIMEL
-10A75;AL # OLD SOUTH ARABIAN LETTER DALETH
-10A76;AL # OLD SOUTH ARABIAN LETTER GHAYN
-10A77;AL # OLD SOUTH ARABIAN LETTER TETH
-10A78;AL # OLD SOUTH ARABIAN LETTER ZAYN
-10A79;AL # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A;AL # OLD SOUTH ARABIAN LETTER YODH
-10A7B;AL # OLD SOUTH ARABIAN LETTER THAW
-10A7C;AL # OLD SOUTH ARABIAN LETTER THETH
-10A7D;AL # OLD SOUTH ARABIAN NUMBER ONE
-10A7E;AL # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F;AL # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10B00;AL # AVESTAN LETTER A
-10B01;AL # AVESTAN LETTER AA
-10B02;AL # AVESTAN LETTER AO
-10B03;AL # AVESTAN LETTER AAO
-10B04;AL # AVESTAN LETTER AN
-10B05;AL # AVESTAN LETTER AAN
-10B06;AL # AVESTAN LETTER AE
-10B07;AL # AVESTAN LETTER AEE
-10B08;AL # AVESTAN LETTER E
-10B09;AL # AVESTAN LETTER EE
-10B0A;AL # AVESTAN LETTER O
-10B0B;AL # AVESTAN LETTER OO
-10B0C;AL # AVESTAN LETTER I
-10B0D;AL # AVESTAN LETTER II
-10B0E;AL # AVESTAN LETTER U
-10B0F;AL # AVESTAN LETTER UU
-10B10;AL # AVESTAN LETTER KE
-10B11;AL # AVESTAN LETTER XE
-10B12;AL # AVESTAN LETTER XYE
-10B13;AL # AVESTAN LETTER XVE
-10B14;AL # AVESTAN LETTER GE
-10B15;AL # AVESTAN LETTER GGE
-10B16;AL # AVESTAN LETTER GHE
-10B17;AL # AVESTAN LETTER CE
-10B18;AL # AVESTAN LETTER JE
-10B19;AL # AVESTAN LETTER TE
-10B1A;AL # AVESTAN LETTER THE
-10B1B;AL # AVESTAN LETTER DE
-10B1C;AL # AVESTAN LETTER DHE
-10B1D;AL # AVESTAN LETTER TTE
-10B1E;AL # AVESTAN LETTER PE
-10B1F;AL # AVESTAN LETTER FE
-10B20;AL # AVESTAN LETTER BE
-10B21;AL # AVESTAN LETTER BHE
-10B22;AL # AVESTAN LETTER NGE
-10B23;AL # AVESTAN LETTER NGYE
-10B24;AL # AVESTAN LETTER NGVE
-10B25;AL # AVESTAN LETTER NE
-10B26;AL # AVESTAN LETTER NYE
-10B27;AL # AVESTAN LETTER NNE
-10B28;AL # AVESTAN LETTER ME
-10B29;AL # AVESTAN LETTER HME
-10B2A;AL # AVESTAN LETTER YYE
-10B2B;AL # AVESTAN LETTER YE
-10B2C;AL # AVESTAN LETTER VE
-10B2D;AL # AVESTAN LETTER RE
-10B2E;AL # AVESTAN LETTER LE
-10B2F;AL # AVESTAN LETTER SE
-10B30;AL # AVESTAN LETTER ZE
-10B31;AL # AVESTAN LETTER SHE
-10B32;AL # AVESTAN LETTER ZHE
-10B33;AL # AVESTAN LETTER SHYE
-10B34;AL # AVESTAN LETTER SSHE
-10B35;AL # AVESTAN LETTER HE
-10B39;BA # AVESTAN ABBREVIATION MARK
-10B3A;BA # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B;BA # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C;BA # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D;BA # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E;BA # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F;BA # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B40;AL # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41;AL # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42;AL # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43;AL # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44;AL # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45;AL # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46;AL # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47;AL # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48;AL # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49;AL # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A;AL # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B;AL # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C;AL # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D;AL # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E;AL # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F;AL # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50;AL # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51;AL # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52;AL # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53;AL # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54;AL # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55;AL # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B58;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B59;AL # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B5A;AL # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B5B;AL # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B5C;AL # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D;AL # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F;AL # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B60;AL # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61;AL # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62;AL # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63;AL # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64;AL # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65;AL # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66;AL # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67;AL # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68;AL # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69;AL # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A;AL # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B;AL # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C;AL # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D;AL # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E;AL # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F;AL # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70;AL # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71;AL # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72;AL # INSCRIPTIONAL PAHLAVI LETTER TAW
-10B78;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10B79;AL # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10B7A;AL # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10B7B;AL # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10B7C;AL # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D;AL # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F;AL # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10C00;AL # OLD TURKIC LETTER ORKHON A
-10C01;AL # OLD TURKIC LETTER YENISEI A
-10C02;AL # OLD TURKIC LETTER YENISEI AE
-10C03;AL # OLD TURKIC LETTER ORKHON I
-10C04;AL # OLD TURKIC LETTER YENISEI I
-10C05;AL # OLD TURKIC LETTER YENISEI E
-10C06;AL # OLD TURKIC LETTER ORKHON O
-10C07;AL # OLD TURKIC LETTER ORKHON OE
-10C08;AL # OLD TURKIC LETTER YENISEI OE
-10C09;AL # OLD TURKIC LETTER ORKHON AB
-10C0A;AL # OLD TURKIC LETTER YENISEI AB
-10C0B;AL # OLD TURKIC LETTER ORKHON AEB
-10C0C;AL # OLD TURKIC LETTER YENISEI AEB
-10C0D;AL # OLD TURKIC LETTER ORKHON AG
-10C0E;AL # OLD TURKIC LETTER YENISEI AG
-10C0F;AL # OLD TURKIC LETTER ORKHON AEG
-10C10;AL # OLD TURKIC LETTER YENISEI AEG
-10C11;AL # OLD TURKIC LETTER ORKHON AD
-10C12;AL # OLD TURKIC LETTER YENISEI AD
-10C13;AL # OLD TURKIC LETTER ORKHON AED
-10C14;AL # OLD TURKIC LETTER ORKHON EZ
-10C15;AL # OLD TURKIC LETTER YENISEI EZ
-10C16;AL # OLD TURKIC LETTER ORKHON AY
-10C17;AL # OLD TURKIC LETTER YENISEI AY
-10C18;AL # OLD TURKIC LETTER ORKHON AEY
-10C19;AL # OLD TURKIC LETTER YENISEI AEY
-10C1A;AL # OLD TURKIC LETTER ORKHON AEK
-10C1B;AL # OLD TURKIC LETTER YENISEI AEK
-10C1C;AL # OLD TURKIC LETTER ORKHON OEK
-10C1D;AL # OLD TURKIC LETTER YENISEI OEK
-10C1E;AL # OLD TURKIC LETTER ORKHON AL
-10C1F;AL # OLD TURKIC LETTER YENISEI AL
-10C20;AL # OLD TURKIC LETTER ORKHON AEL
-10C21;AL # OLD TURKIC LETTER ORKHON ELT
-10C22;AL # OLD TURKIC LETTER ORKHON EM
-10C23;AL # OLD TURKIC LETTER ORKHON AN
-10C24;AL # OLD TURKIC LETTER ORKHON AEN
-10C25;AL # OLD TURKIC LETTER YENISEI AEN
-10C26;AL # OLD TURKIC LETTER ORKHON ENT
-10C27;AL # OLD TURKIC LETTER YENISEI ENT
-10C28;AL # OLD TURKIC LETTER ORKHON ENC
-10C29;AL # OLD TURKIC LETTER YENISEI ENC
-10C2A;AL # OLD TURKIC LETTER ORKHON ENY
-10C2B;AL # OLD TURKIC LETTER YENISEI ENY
-10C2C;AL # OLD TURKIC LETTER YENISEI ANG
-10C2D;AL # OLD TURKIC LETTER ORKHON ENG
-10C2E;AL # OLD TURKIC LETTER YENISEI AENG
-10C2F;AL # OLD TURKIC LETTER ORKHON EP
-10C30;AL # OLD TURKIC LETTER ORKHON OP
-10C31;AL # OLD TURKIC LETTER ORKHON IC
-10C32;AL # OLD TURKIC LETTER ORKHON EC
-10C33;AL # OLD TURKIC LETTER YENISEI EC
-10C34;AL # OLD TURKIC LETTER ORKHON AQ
-10C35;AL # OLD TURKIC LETTER YENISEI AQ
-10C36;AL # OLD TURKIC LETTER ORKHON IQ
-10C37;AL # OLD TURKIC LETTER YENISEI IQ
-10C38;AL # OLD TURKIC LETTER ORKHON OQ
-10C39;AL # OLD TURKIC LETTER YENISEI OQ
-10C3A;AL # OLD TURKIC LETTER ORKHON AR
-10C3B;AL # OLD TURKIC LETTER YENISEI AR
-10C3C;AL # OLD TURKIC LETTER ORKHON AER
-10C3D;AL # OLD TURKIC LETTER ORKHON AS
-10C3E;AL # OLD TURKIC LETTER ORKHON AES
-10C3F;AL # OLD TURKIC LETTER ORKHON ASH
-10C40;AL # OLD TURKIC LETTER YENISEI ASH
-10C41;AL # OLD TURKIC LETTER ORKHON ESH
-10C42;AL # OLD TURKIC LETTER YENISEI ESH
-10C43;AL # OLD TURKIC LETTER ORKHON AT
-10C44;AL # OLD TURKIC LETTER YENISEI AT
-10C45;AL # OLD TURKIC LETTER ORKHON AET
-10C46;AL # OLD TURKIC LETTER YENISEI AET
-10C47;AL # OLD TURKIC LETTER ORKHON OT
-10C48;AL # OLD TURKIC LETTER ORKHON BASH
-10E60;AL # RUMI DIGIT ONE
-10E61;AL # RUMI DIGIT TWO
-10E62;AL # RUMI DIGIT THREE
-10E63;AL # RUMI DIGIT FOUR
-10E64;AL # RUMI DIGIT FIVE
-10E65;AL # RUMI DIGIT SIX
-10E66;AL # RUMI DIGIT SEVEN
-10E67;AL # RUMI DIGIT EIGHT
-10E68;AL # RUMI DIGIT NINE
-10E69;AL # RUMI NUMBER TEN
-10E6A;AL # RUMI NUMBER TWENTY
-10E6B;AL # RUMI NUMBER THIRTY
-10E6C;AL # RUMI NUMBER FORTY
-10E6D;AL # RUMI NUMBER FIFTY
-10E6E;AL # RUMI NUMBER SIXTY
-10E6F;AL # RUMI NUMBER SEVENTY
-10E70;AL # RUMI NUMBER EIGHTY
-10E71;AL # RUMI NUMBER NINETY
-10E72;AL # RUMI NUMBER ONE HUNDRED
-10E73;AL # RUMI NUMBER TWO HUNDRED
-10E74;AL # RUMI NUMBER THREE HUNDRED
-10E75;AL # RUMI NUMBER FOUR HUNDRED
-10E76;AL # RUMI NUMBER FIVE HUNDRED
-10E77;AL # RUMI NUMBER SIX HUNDRED
-10E78;AL # RUMI NUMBER SEVEN HUNDRED
-10E79;AL # RUMI NUMBER EIGHT HUNDRED
-10E7A;AL # RUMI NUMBER NINE HUNDRED
-10E7B;AL # RUMI FRACTION ONE HALF
-10E7C;AL # RUMI FRACTION ONE QUARTER
-10E7D;AL # RUMI FRACTION ONE THIRD
-10E7E;AL # RUMI FRACTION TWO THIRDS
-11000;CM # BRAHMI SIGN CANDRABINDU
-11001;CM # BRAHMI SIGN ANUSVARA
-11002;CM # BRAHMI SIGN VISARGA
-11003;AL # BRAHMI SIGN JIHVAMULIYA
-11004;AL # BRAHMI SIGN UPADHMANIYA
-11005;AL # BRAHMI LETTER A
-11006;AL # BRAHMI LETTER AA
-11007;AL # BRAHMI LETTER I
-11008;AL # BRAHMI LETTER II
-11009;AL # BRAHMI LETTER U
-1100A;AL # BRAHMI LETTER UU
-1100B;AL # BRAHMI LETTER VOCALIC R
-1100C;AL # BRAHMI LETTER VOCALIC RR
-1100D;AL # BRAHMI LETTER VOCALIC L
-1100E;AL # BRAHMI LETTER VOCALIC LL
-1100F;AL # BRAHMI LETTER E
-11010;AL # BRAHMI LETTER AI
-11011;AL # BRAHMI LETTER O
-11012;AL # BRAHMI LETTER AU
-11013;AL # BRAHMI LETTER KA
-11014;AL # BRAHMI LETTER KHA
-11015;AL # BRAHMI LETTER GA
-11016;AL # BRAHMI LETTER GHA
-11017;AL # BRAHMI LETTER NGA
-11018;AL # BRAHMI LETTER CA
-11019;AL # BRAHMI LETTER CHA
-1101A;AL # BRAHMI LETTER JA
-1101B;AL # BRAHMI LETTER JHA
-1101C;AL # BRAHMI LETTER NYA
-1101D;AL # BRAHMI LETTER TTA
-1101E;AL # BRAHMI LETTER TTHA
-1101F;AL # BRAHMI LETTER DDA
-11020;AL # BRAHMI LETTER DDHA
-11021;AL # BRAHMI LETTER NNA
-11022;AL # BRAHMI LETTER TA
-11023;AL # BRAHMI LETTER THA
-11024;AL # BRAHMI LETTER DA
-11025;AL # BRAHMI LETTER DHA
-11026;AL # BRAHMI LETTER NA
-11027;AL # BRAHMI LETTER PA
-11028;AL # BRAHMI LETTER PHA
-11029;AL # BRAHMI LETTER BA
-1102A;AL # BRAHMI LETTER BHA
-1102B;AL # BRAHMI LETTER MA
-1102C;AL # BRAHMI LETTER YA
-1102D;AL # BRAHMI LETTER RA
-1102E;AL # BRAHMI LETTER LA
-1102F;AL # BRAHMI LETTER VA
-11030;AL # BRAHMI LETTER SHA
-11031;AL # BRAHMI LETTER SSA
-11032;AL # BRAHMI LETTER SA
-11033;AL # BRAHMI LETTER HA
-11034;AL # BRAHMI LETTER LLA
-11035;AL # BRAHMI LETTER OLD TAMIL LLLA
-11036;AL # BRAHMI LETTER OLD TAMIL RRA
-11037;AL # BRAHMI LETTER OLD TAMIL NNNA
-11038;CM # BRAHMI VOWEL SIGN AA
-11039;CM # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A;CM # BRAHMI VOWEL SIGN I
-1103B;CM # BRAHMI VOWEL SIGN II
-1103C;CM # BRAHMI VOWEL SIGN U
-1103D;CM # BRAHMI VOWEL SIGN UU
-1103E;CM # BRAHMI VOWEL SIGN VOCALIC R
-1103F;CM # BRAHMI VOWEL SIGN VOCALIC RR
-11040;CM # BRAHMI VOWEL SIGN VOCALIC L
-11041;CM # BRAHMI VOWEL SIGN VOCALIC LL
-11042;CM # BRAHMI VOWEL SIGN E
-11043;CM # BRAHMI VOWEL SIGN AI
-11044;CM # BRAHMI VOWEL SIGN O
-11045;CM # BRAHMI VOWEL SIGN AU
-11046;CM # BRAHMI VIRAMA
-11047;BA # BRAHMI DANDA
-11048;BA # BRAHMI DOUBLE DANDA
-11049;AL # BRAHMI PUNCTUATION DOT
-1104A;AL # BRAHMI PUNCTUATION DOUBLE DOT
-1104B;AL # BRAHMI PUNCTUATION LINE
-1104C;AL # BRAHMI PUNCTUATION CRESCENT BAR
-1104D;AL # BRAHMI PUNCTUATION LOTUS
-11052;AL # BRAHMI NUMBER ONE
-11053;AL # BRAHMI NUMBER TWO
-11054;AL # BRAHMI NUMBER THREE
-11055;AL # BRAHMI NUMBER FOUR
-11056;AL # BRAHMI NUMBER FIVE
-11057;AL # BRAHMI NUMBER SIX
-11058;AL # BRAHMI NUMBER SEVEN
-11059;AL # BRAHMI NUMBER EIGHT
-1105A;AL # BRAHMI NUMBER NINE
-1105B;AL # BRAHMI NUMBER TEN
-1105C;AL # BRAHMI NUMBER TWENTY
-1105D;AL # BRAHMI NUMBER THIRTY
-1105E;AL # BRAHMI NUMBER FORTY
-1105F;AL # BRAHMI NUMBER FIFTY
-11060;AL # BRAHMI NUMBER SIXTY
-11061;AL # BRAHMI NUMBER SEVENTY
-11062;AL # BRAHMI NUMBER EIGHTY
-11063;AL # BRAHMI NUMBER NINETY
-11064;AL # BRAHMI NUMBER ONE HUNDRED
-11065;AL # BRAHMI NUMBER ONE THOUSAND
-11066;NU # BRAHMI DIGIT ZERO
-11067;NU # BRAHMI DIGIT ONE
-11068;NU # BRAHMI DIGIT TWO
-11069;NU # BRAHMI DIGIT THREE
-1106A;NU # BRAHMI DIGIT FOUR
-1106B;NU # BRAHMI DIGIT FIVE
-1106C;NU # BRAHMI DIGIT SIX
-1106D;NU # BRAHMI DIGIT SEVEN
-1106E;NU # BRAHMI DIGIT EIGHT
-1106F;NU # BRAHMI DIGIT NINE
-11080;CM # KAITHI SIGN CANDRABINDU
-11081;CM # KAITHI SIGN ANUSVARA
-11082;CM # KAITHI SIGN VISARGA
-11083;AL # KAITHI LETTER A
-11084;AL # KAITHI LETTER AA
-11085;AL # KAITHI LETTER I
-11086;AL # KAITHI LETTER II
-11087;AL # KAITHI LETTER U
-11088;AL # KAITHI LETTER UU
-11089;AL # KAITHI LETTER E
-1108A;AL # KAITHI LETTER AI
-1108B;AL # KAITHI LETTER O
-1108C;AL # KAITHI LETTER AU
-1108D;AL # KAITHI LETTER KA
-1108E;AL # KAITHI LETTER KHA
-1108F;AL # KAITHI LETTER GA
-11090;AL # KAITHI LETTER GHA
-11091;AL # KAITHI LETTER NGA
-11092;AL # KAITHI LETTER CA
-11093;AL # KAITHI LETTER CHA
-11094;AL # KAITHI LETTER JA
-11095;AL # KAITHI LETTER JHA
-11096;AL # KAITHI LETTER NYA
-11097;AL # KAITHI LETTER TTA
-11098;AL # KAITHI LETTER TTHA
-11099;AL # KAITHI LETTER DDA
-1109A;AL # KAITHI LETTER DDDHA
-1109B;AL # KAITHI LETTER DDHA
-1109C;AL # KAITHI LETTER RHA
-1109D;AL # KAITHI LETTER NNA
-1109E;AL # KAITHI LETTER TA
-1109F;AL # KAITHI LETTER THA
-110A0;AL # KAITHI LETTER DA
-110A1;AL # KAITHI LETTER DHA
-110A2;AL # KAITHI LETTER NA
-110A3;AL # KAITHI LETTER PA
-110A4;AL # KAITHI LETTER PHA
-110A5;AL # KAITHI LETTER BA
-110A6;AL # KAITHI LETTER BHA
-110A7;AL # KAITHI LETTER MA
-110A8;AL # KAITHI LETTER YA
-110A9;AL # KAITHI LETTER RA
-110AA;AL # KAITHI LETTER LA
-110AB;AL # KAITHI LETTER VA
-110AC;AL # KAITHI LETTER SHA
-110AD;AL # KAITHI LETTER SSA
-110AE;AL # KAITHI LETTER SA
-110AF;AL # KAITHI LETTER HA
-110B0;CM # KAITHI VOWEL SIGN AA
-110B1;CM # KAITHI VOWEL SIGN I
-110B2;CM # KAITHI VOWEL SIGN II
-110B3;CM # KAITHI VOWEL SIGN U
-110B4;CM # KAITHI VOWEL SIGN UU
-110B5;CM # KAITHI VOWEL SIGN E
-110B6;CM # KAITHI VOWEL SIGN AI
-110B7;CM # KAITHI VOWEL SIGN O
-110B8;CM # KAITHI VOWEL SIGN AU
-110B9;CM # KAITHI SIGN VIRAMA
-110BA;CM # KAITHI SIGN NUKTA
-110BB;AL # KAITHI ABBREVIATION SIGN
-110BC;AL # KAITHI ENUMERATION SIGN
-110BD;AL # KAITHI NUMBER SIGN
-110BE;BA # KAITHI SECTION MARK
-110BF;BA # KAITHI DOUBLE SECTION MARK
-110C0;BA # KAITHI DANDA
-110C1;BA # KAITHI DOUBLE DANDA
-110D0;AL # SORA SOMPENG LETTER SAH
-110D1;AL # SORA SOMPENG LETTER TAH
-110D2;AL # SORA SOMPENG LETTER BAH
-110D3;AL # SORA SOMPENG LETTER CAH
-110D4;AL # SORA SOMPENG LETTER DAH
-110D5;AL # SORA SOMPENG LETTER GAH
-110D6;AL # SORA SOMPENG LETTER MAH
-110D7;AL # SORA SOMPENG LETTER NGAH
-110D8;AL # SORA SOMPENG LETTER LAH
-110D9;AL # SORA SOMPENG LETTER NAH
-110DA;AL # SORA SOMPENG LETTER VAH
-110DB;AL # SORA SOMPENG LETTER PAH
-110DC;AL # SORA SOMPENG LETTER YAH
-110DD;AL # SORA SOMPENG LETTER RAH
-110DE;AL # SORA SOMPENG LETTER HAH
-110DF;AL # SORA SOMPENG LETTER KAH
-110E0;AL # SORA SOMPENG LETTER JAH
-110E1;AL # SORA SOMPENG LETTER NYAH
-110E2;AL # SORA SOMPENG LETTER AH
-110E3;AL # SORA SOMPENG LETTER EEH
-110E4;AL # SORA SOMPENG LETTER IH
-110E5;AL # SORA SOMPENG LETTER UH
-110E6;AL # SORA SOMPENG LETTER OH
-110E7;AL # SORA SOMPENG LETTER EH
-110E8;AL # SORA SOMPENG LETTER MAE
-110F0;NU # SORA SOMPENG DIGIT ZERO
-110F1;NU # SORA SOMPENG DIGIT ONE
-110F2;NU # SORA SOMPENG DIGIT TWO
-110F3;NU # SORA SOMPENG DIGIT THREE
-110F4;NU # SORA SOMPENG DIGIT FOUR
-110F5;NU # SORA SOMPENG DIGIT FIVE
-110F6;NU # SORA SOMPENG DIGIT SIX
-110F7;NU # SORA SOMPENG DIGIT SEVEN
-110F8;NU # SORA SOMPENG DIGIT EIGHT
-110F9;NU # SORA SOMPENG DIGIT NINE
-11100;CM # CHAKMA SIGN CANDRABINDU
-11101;CM # CHAKMA SIGN ANUSVARA
-11102;CM # CHAKMA SIGN VISARGA
-11103;AL # CHAKMA LETTER AA
-11104;AL # CHAKMA LETTER I
-11105;AL # CHAKMA LETTER U
-11106;AL # CHAKMA LETTER E
-11107;AL # CHAKMA LETTER KAA
-11108;AL # CHAKMA LETTER KHAA
-11109;AL # CHAKMA LETTER GAA
-1110A;AL # CHAKMA LETTER GHAA
-1110B;AL # CHAKMA LETTER NGAA
-1110C;AL # CHAKMA LETTER CAA
-1110D;AL # CHAKMA LETTER CHAA
-1110E;AL # CHAKMA LETTER JAA
-1110F;AL # CHAKMA LETTER JHAA
-11110;AL # CHAKMA LETTER NYAA
-11111;AL # CHAKMA LETTER TTAA
-11112;AL # CHAKMA LETTER TTHAA
-11113;AL # CHAKMA LETTER DDAA
-11114;AL # CHAKMA LETTER DDHAA
-11115;AL # CHAKMA LETTER NNAA
-11116;AL # CHAKMA LETTER TAA
-11117;AL # CHAKMA LETTER THAA
-11118;AL # CHAKMA LETTER DAA
-11119;AL # CHAKMA LETTER DHAA
-1111A;AL # CHAKMA LETTER NAA
-1111B;AL # CHAKMA LETTER PAA
-1111C;AL # CHAKMA LETTER PHAA
-1111D;AL # CHAKMA LETTER BAA
-1111E;AL # CHAKMA LETTER BHAA
-1111F;AL # CHAKMA LETTER MAA
-11120;AL # CHAKMA LETTER YYAA
-11121;AL # CHAKMA LETTER YAA
-11122;AL # CHAKMA LETTER RAA
-11123;AL # CHAKMA LETTER LAA
-11124;AL # CHAKMA LETTER WAA
-11125;AL # CHAKMA LETTER SAA
-11126;AL # CHAKMA LETTER HAA
-11127;CM # CHAKMA VOWEL SIGN A
-11128;CM # CHAKMA VOWEL SIGN I
-11129;CM # CHAKMA VOWEL SIGN II
-1112A;CM # CHAKMA VOWEL SIGN U
-1112B;CM # CHAKMA VOWEL SIGN UU
-1112C;CM # CHAKMA VOWEL SIGN E
-1112D;CM # CHAKMA VOWEL SIGN AI
-1112E;CM # CHAKMA VOWEL SIGN O
-1112F;CM # CHAKMA VOWEL SIGN AU
-11130;CM # CHAKMA VOWEL SIGN OI
-11131;CM # CHAKMA O MARK
-11132;CM # CHAKMA AU MARK
-11133;CM # CHAKMA VIRAMA
-11134;CM # CHAKMA MAAYYAA
-11136;NU # CHAKMA DIGIT ZERO
-11137;NU # CHAKMA DIGIT ONE
-11138;NU # CHAKMA DIGIT TWO
-11139;NU # CHAKMA DIGIT THREE
-1113A;NU # CHAKMA DIGIT FOUR
-1113B;NU # CHAKMA DIGIT FIVE
-1113C;NU # CHAKMA DIGIT SIX
-1113D;NU # CHAKMA DIGIT SEVEN
-1113E;NU # CHAKMA DIGIT EIGHT
-1113F;NU # CHAKMA DIGIT NINE
-11140;BA # CHAKMA SECTION MARK
-11141;BA # CHAKMA DANDA
-11142;BA # CHAKMA DOUBLE DANDA
-11143;BA # CHAKMA QUESTION MARK
-11180;CM # SHARADA SIGN CANDRABINDU
-11181;CM # SHARADA SIGN ANUSVARA
-11182;CM # SHARADA SIGN VISARGA
-11183;AL # SHARADA LETTER A
-11184;AL # SHARADA LETTER AA
-11185;AL # SHARADA LETTER I
-11186;AL # SHARADA LETTER II
-11187;AL # SHARADA LETTER U
-11188;AL # SHARADA LETTER UU
-11189;AL # SHARADA LETTER VOCALIC R
-1118A;AL # SHARADA LETTER VOCALIC RR
-1118B;AL # SHARADA LETTER VOCALIC L
-1118C;AL # SHARADA LETTER VOCALIC LL
-1118D;AL # SHARADA LETTER E
-1118E;AL # SHARADA LETTER AI
-1118F;AL # SHARADA LETTER O
-11190;AL # SHARADA LETTER AU
-11191;AL # SHARADA LETTER KA
-11192;AL # SHARADA LETTER KHA
-11193;AL # SHARADA LETTER GA
-11194;AL # SHARADA LETTER GHA
-11195;AL # SHARADA LETTER NGA
-11196;AL # SHARADA LETTER CA
-11197;AL # SHARADA LETTER CHA
-11198;AL # SHARADA LETTER JA
-11199;AL # SHARADA LETTER JHA
-1119A;AL # SHARADA LETTER NYA
-1119B;AL # SHARADA LETTER TTA
-1119C;AL # SHARADA LETTER TTHA
-1119D;AL # SHARADA LETTER DDA
-1119E;AL # SHARADA LETTER DDHA
-1119F;AL # SHARADA LETTER NNA
-111A0;AL # SHARADA LETTER TA
-111A1;AL # SHARADA LETTER THA
-111A2;AL # SHARADA LETTER DA
-111A3;AL # SHARADA LETTER DHA
-111A4;AL # SHARADA LETTER NA
-111A5;AL # SHARADA LETTER PA
-111A6;AL # SHARADA LETTER PHA
-111A7;AL # SHARADA LETTER BA
-111A8;AL # SHARADA LETTER BHA
-111A9;AL # SHARADA LETTER MA
-111AA;AL # SHARADA LETTER YA
-111AB;AL # SHARADA LETTER RA
-111AC;AL # SHARADA LETTER LA
-111AD;AL # SHARADA LETTER LLA
-111AE;AL # SHARADA LETTER VA
-111AF;AL # SHARADA LETTER SHA
-111B0;AL # SHARADA LETTER SSA
-111B1;AL # SHARADA LETTER SA
-111B2;AL # SHARADA LETTER HA
-111B3;CM # SHARADA VOWEL SIGN AA
-111B4;CM # SHARADA VOWEL SIGN I
-111B5;CM # SHARADA VOWEL SIGN II
-111B6;CM # SHARADA VOWEL SIGN U
-111B7;CM # SHARADA VOWEL SIGN UU
-111B8;CM # SHARADA VOWEL SIGN VOCALIC R
-111B9;CM # SHARADA VOWEL SIGN VOCALIC RR
-111BA;CM # SHARADA VOWEL SIGN VOCALIC L
-111BB;CM # SHARADA VOWEL SIGN VOCALIC LL
-111BC;CM # SHARADA VOWEL SIGN E
-111BD;CM # SHARADA VOWEL SIGN AI
-111BE;CM # SHARADA VOWEL SIGN O
-111BF;CM # SHARADA VOWEL SIGN AU
-111C0;CM # SHARADA SIGN VIRAMA
-111C1;AL # SHARADA SIGN AVAGRAHA
-111C2;AL # SHARADA SIGN JIHVAMULIYA
-111C3;AL # SHARADA SIGN UPADHMANIYA
-111C4;AL # SHARADA OM
-111C5;BA # SHARADA DANDA
-111C6;BA # SHARADA DOUBLE DANDA
-111C7;AL # SHARADA ABBREVIATION SIGN
-111C8;BA # SHARADA SEPARATOR
-111D0;NU # SHARADA DIGIT ZERO
-111D1;NU # SHARADA DIGIT ONE
-111D2;NU # SHARADA DIGIT TWO
-111D3;NU # SHARADA DIGIT THREE
-111D4;NU # SHARADA DIGIT FOUR
-111D5;NU # SHARADA DIGIT FIVE
-111D6;NU # SHARADA DIGIT SIX
-111D7;NU # SHARADA DIGIT SEVEN
-111D8;NU # SHARADA DIGIT EIGHT
-111D9;NU # SHARADA DIGIT NINE
-11680;AL # TAKRI LETTER A
-11681;AL # TAKRI LETTER AA
-11682;AL # TAKRI LETTER I
-11683;AL # TAKRI LETTER II
-11684;AL # TAKRI LETTER U
-11685;AL # TAKRI LETTER UU
-11686;AL # TAKRI LETTER E
-11687;AL # TAKRI LETTER AI
-11688;AL # TAKRI LETTER O
-11689;AL # TAKRI LETTER AU
-1168A;AL # TAKRI LETTER KA
-1168B;AL # TAKRI LETTER KHA
-1168C;AL # TAKRI LETTER GA
-1168D;AL # TAKRI LETTER GHA
-1168E;AL # TAKRI LETTER NGA
-1168F;AL # TAKRI LETTER CA
-11690;AL # TAKRI LETTER CHA
-11691;AL # TAKRI LETTER JA
-11692;AL # TAKRI LETTER JHA
-11693;AL # TAKRI LETTER NYA
-11694;AL # TAKRI LETTER TTA
-11695;AL # TAKRI LETTER TTHA
-11696;AL # TAKRI LETTER DDA
-11697;AL # TAKRI LETTER DDHA
-11698;AL # TAKRI LETTER NNA
-11699;AL # TAKRI LETTER TA
-1169A;AL # TAKRI LETTER THA
-1169B;AL # TAKRI LETTER DA
-1169C;AL # TAKRI LETTER DHA
-1169D;AL # TAKRI LETTER NA
-1169E;AL # TAKRI LETTER PA
-1169F;AL # TAKRI LETTER PHA
-116A0;AL # TAKRI LETTER BA
-116A1;AL # TAKRI LETTER BHA
-116A2;AL # TAKRI LETTER MA
-116A3;AL # TAKRI LETTER YA
-116A4;AL # TAKRI LETTER RA
-116A5;AL # TAKRI LETTER LA
-116A6;AL # TAKRI LETTER VA
-116A7;AL # TAKRI LETTER SHA
-116A8;AL # TAKRI LETTER SA
-116A9;AL # TAKRI LETTER HA
-116AA;AL # TAKRI LETTER RRA
-116AB;CM # TAKRI SIGN ANUSVARA
-116AC;CM # TAKRI SIGN VISARGA
-116AD;CM # TAKRI VOWEL SIGN AA
-116AE;CM # TAKRI VOWEL SIGN I
-116AF;CM # TAKRI VOWEL SIGN II
-116B0;CM # TAKRI VOWEL SIGN U
-116B1;CM # TAKRI VOWEL SIGN UU
-116B2;CM # TAKRI VOWEL SIGN E
-116B3;CM # TAKRI VOWEL SIGN AI
-116B4;CM # TAKRI VOWEL SIGN O
-116B5;CM # TAKRI VOWEL SIGN AU
-116B6;CM # TAKRI SIGN VIRAMA
-116B7;CM # TAKRI SIGN NUKTA
-116C0;NU # TAKRI DIGIT ZERO
-116C1;NU # TAKRI DIGIT ONE
-116C2;NU # TAKRI DIGIT TWO
-116C3;NU # TAKRI DIGIT THREE
-116C4;NU # TAKRI DIGIT FOUR
-116C5;NU # TAKRI DIGIT FIVE
-116C6;NU # TAKRI DIGIT SIX
-116C7;NU # TAKRI DIGIT SEVEN
-116C8;NU # TAKRI DIGIT EIGHT
-116C9;NU # TAKRI DIGIT NINE
-12000;AL # CUNEIFORM SIGN A
-12001;AL # CUNEIFORM SIGN A TIMES A
-12002;AL # CUNEIFORM SIGN A TIMES BAD
-12003;AL # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004;AL # CUNEIFORM SIGN A TIMES HA
-12005;AL # CUNEIFORM SIGN A TIMES IGI
-12006;AL # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007;AL # CUNEIFORM SIGN A TIMES MUSH
-12008;AL # CUNEIFORM SIGN A TIMES SAG
-12009;AL # CUNEIFORM SIGN A2
-1200A;AL # CUNEIFORM SIGN AB
-1200B;AL # CUNEIFORM SIGN AB TIMES ASH2
-1200C;AL # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D;AL # CUNEIFORM SIGN AB TIMES GAL
-1200E;AL # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F;AL # CUNEIFORM SIGN AB TIMES HA
-12010;AL # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011;AL # CUNEIFORM SIGN AB TIMES IMIN
-12012;AL # CUNEIFORM SIGN AB TIMES LAGAB
-12013;AL # CUNEIFORM SIGN AB TIMES SHESH
-12014;AL # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015;AL # CUNEIFORM SIGN AB GUNU
-12016;AL # CUNEIFORM SIGN AB2
-12017;AL # CUNEIFORM SIGN AB2 TIMES BALAG
-12018;AL # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019;AL # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A;AL # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B;AL # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C;AL # CUNEIFORM SIGN AD
-1201D;AL # CUNEIFORM SIGN AK
-1201E;AL # CUNEIFORM SIGN AK TIMES ERIN2
-1201F;AL # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020;AL # CUNEIFORM SIGN AL
-12021;AL # CUNEIFORM SIGN AL TIMES AL
-12022;AL # CUNEIFORM SIGN AL TIMES DIM2
-12023;AL # CUNEIFORM SIGN AL TIMES GISH
-12024;AL # CUNEIFORM SIGN AL TIMES HA
-12025;AL # CUNEIFORM SIGN AL TIMES KAD3
-12026;AL # CUNEIFORM SIGN AL TIMES KI
-12027;AL # CUNEIFORM SIGN AL TIMES SHE
-12028;AL # CUNEIFORM SIGN AL TIMES USH
-12029;AL # CUNEIFORM SIGN ALAN
-1202A;AL # CUNEIFORM SIGN ALEPH
-1202B;AL # CUNEIFORM SIGN AMAR
-1202C;AL # CUNEIFORM SIGN AMAR TIMES SHE
-1202D;AL # CUNEIFORM SIGN AN
-1202E;AL # CUNEIFORM SIGN AN OVER AN
-1202F;AL # CUNEIFORM SIGN AN THREE TIMES
-12030;AL # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031;AL # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032;AL # CUNEIFORM SIGN ANSHE
-12033;AL # CUNEIFORM SIGN APIN
-12034;AL # CUNEIFORM SIGN ARAD
-12035;AL # CUNEIFORM SIGN ARAD TIMES KUR
-12036;AL # CUNEIFORM SIGN ARKAB
-12037;AL # CUNEIFORM SIGN ASAL2
-12038;AL # CUNEIFORM SIGN ASH
-12039;AL # CUNEIFORM SIGN ASH ZIDA TENU
-1203A;AL # CUNEIFORM SIGN ASH KABA TENU
-1203B;AL # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C;AL # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D;AL # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E;AL # CUNEIFORM SIGN ASH2
-1203F;AL # CUNEIFORM SIGN ASHGAB
-12040;AL # CUNEIFORM SIGN BA
-12041;AL # CUNEIFORM SIGN BAD
-12042;AL # CUNEIFORM SIGN BAG3
-12043;AL # CUNEIFORM SIGN BAHAR2
-12044;AL # CUNEIFORM SIGN BAL
-12045;AL # CUNEIFORM SIGN BAL OVER BAL
-12046;AL # CUNEIFORM SIGN BALAG
-12047;AL # CUNEIFORM SIGN BAR
-12048;AL # CUNEIFORM SIGN BARA2
-12049;AL # CUNEIFORM SIGN BI
-1204A;AL # CUNEIFORM SIGN BI TIMES A
-1204B;AL # CUNEIFORM SIGN BI TIMES GAR
-1204C;AL # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D;AL # CUNEIFORM SIGN BU
-1204E;AL # CUNEIFORM SIGN BU OVER BU AB
-1204F;AL # CUNEIFORM SIGN BU OVER BU UN
-12050;AL # CUNEIFORM SIGN BU CROSSING BU
-12051;AL # CUNEIFORM SIGN BULUG
-12052;AL # CUNEIFORM SIGN BULUG OVER BULUG
-12053;AL # CUNEIFORM SIGN BUR
-12054;AL # CUNEIFORM SIGN BUR2
-12055;AL # CUNEIFORM SIGN DA
-12056;AL # CUNEIFORM SIGN DAG
-12057;AL # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058;AL # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059;AL # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A;AL # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F;AL # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060;AL # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061;AL # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062;AL # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063;AL # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067;AL # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068;AL # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069;AL # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A;AL # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B;AL # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C;AL # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D;AL # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E;AL # CUNEIFORM SIGN DAM
-1206F;AL # CUNEIFORM SIGN DAR
-12070;AL # CUNEIFORM SIGN DARA3
-12071;AL # CUNEIFORM SIGN DARA4
-12072;AL # CUNEIFORM SIGN DI
-12073;AL # CUNEIFORM SIGN DIB
-12074;AL # CUNEIFORM SIGN DIM
-12075;AL # CUNEIFORM SIGN DIM TIMES SHE
-12076;AL # CUNEIFORM SIGN DIM2
-12077;AL # CUNEIFORM SIGN DIN
-12078;AL # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079;AL # CUNEIFORM SIGN DISH
-1207A;AL # CUNEIFORM SIGN DU
-1207B;AL # CUNEIFORM SIGN DU OVER DU
-1207C;AL # CUNEIFORM SIGN DU GUNU
-1207D;AL # CUNEIFORM SIGN DU SHESHIG
-1207E;AL # CUNEIFORM SIGN DUB
-1207F;AL # CUNEIFORM SIGN DUB TIMES ESH2
-12080;AL # CUNEIFORM SIGN DUB2
-12081;AL # CUNEIFORM SIGN DUG
-12082;AL # CUNEIFORM SIGN DUGUD
-12083;AL # CUNEIFORM SIGN DUH
-12084;AL # CUNEIFORM SIGN DUN
-12085;AL # CUNEIFORM SIGN DUN3
-12086;AL # CUNEIFORM SIGN DUN3 GUNU
-12087;AL # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088;AL # CUNEIFORM SIGN DUN4
-12089;AL # CUNEIFORM SIGN DUR2
-1208A;AL # CUNEIFORM SIGN E
-1208B;AL # CUNEIFORM SIGN E TIMES PAP
-1208C;AL # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D;AL # CUNEIFORM SIGN E2
-1208E;AL # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F;AL # CUNEIFORM SIGN E2 TIMES GAR
-12090;AL # CUNEIFORM SIGN E2 TIMES MI
-12091;AL # CUNEIFORM SIGN E2 TIMES SAL
-12092;AL # CUNEIFORM SIGN E2 TIMES SHE
-12093;AL # CUNEIFORM SIGN E2 TIMES U
-12094;AL # CUNEIFORM SIGN EDIN
-12095;AL # CUNEIFORM SIGN EGIR
-12096;AL # CUNEIFORM SIGN EL
-12097;AL # CUNEIFORM SIGN EN
-12098;AL # CUNEIFORM SIGN EN TIMES GAN2
-12099;AL # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A;AL # CUNEIFORM SIGN EN TIMES ME
-1209B;AL # CUNEIFORM SIGN EN CROSSING EN
-1209C;AL # CUNEIFORM SIGN EN OPPOSING EN
-1209D;AL # CUNEIFORM SIGN EN SQUARED
-1209E;AL # CUNEIFORM SIGN EREN
-1209F;AL # CUNEIFORM SIGN ERIN2
-120A0;AL # CUNEIFORM SIGN ESH2
-120A1;AL # CUNEIFORM SIGN EZEN
-120A2;AL # CUNEIFORM SIGN EZEN TIMES A
-120A3;AL # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4;AL # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5;AL # CUNEIFORM SIGN EZEN TIMES AN
-120A6;AL # CUNEIFORM SIGN EZEN TIMES BAD
-120A7;AL # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8;AL # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9;AL # CUNEIFORM SIGN EZEN TIMES HA
-120AA;AL # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB;AL # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC;AL # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD;AL # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE;AL # CUNEIFORM SIGN EZEN TIMES KU3
-120AF;AL # CUNEIFORM SIGN EZEN TIMES LA
-120B0;AL # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1;AL # CUNEIFORM SIGN EZEN TIMES LI
-120B2;AL # CUNEIFORM SIGN EZEN TIMES LU
-120B3;AL # CUNEIFORM SIGN EZEN TIMES U2
-120B4;AL # CUNEIFORM SIGN EZEN TIMES UD
-120B5;AL # CUNEIFORM SIGN GA
-120B6;AL # CUNEIFORM SIGN GA GUNU
-120B7;AL # CUNEIFORM SIGN GA2
-120B8;AL # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9;AL # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA;AL # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB;AL # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC;AL # CUNEIFORM SIGN GA2 TIMES AN
-120BD;AL # CUNEIFORM SIGN GA2 TIMES ASH
-120BE;AL # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF;AL # CUNEIFORM SIGN GA2 TIMES BAD
-120C0;AL # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1;AL # CUNEIFORM SIGN GA2 TIMES BUR
-120C2;AL # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3;AL # CUNEIFORM SIGN GA2 TIMES DA
-120C4;AL # CUNEIFORM SIGN GA2 TIMES DI
-120C5;AL # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6;AL # CUNEIFORM SIGN GA2 TIMES DUB
-120C7;AL # CUNEIFORM SIGN GA2 TIMES EL
-120C8;AL # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9;AL # CUNEIFORM SIGN GA2 TIMES EN
-120CA;AL # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB;AL # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC;AL # CUNEIFORM SIGN GA2 TIMES GAR
-120CD;AL # CUNEIFORM SIGN GA2 TIMES GI
-120CE;AL # CUNEIFORM SIGN GA2 TIMES GI4
-120CF;AL # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0;AL # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1;AL # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2;AL # CUNEIFORM SIGN GA2 TIMES HAL
-120D3;AL # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4;AL # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5;AL # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6;AL # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7;AL # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8;AL # CUNEIFORM SIGN GA2 TIMES KAK
-120D9;AL # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA;AL # CUNEIFORM SIGN GA2 TIMES KID
-120DB;AL # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC;AL # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD;AL # CUNEIFORM SIGN GA2 TIMES LA
-120DE;AL # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF;AL # CUNEIFORM SIGN GA2 TIMES MI
-120E0;AL # CUNEIFORM SIGN GA2 TIMES NUN
-120E1;AL # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2;AL # CUNEIFORM SIGN GA2 TIMES PA
-120E3;AL # CUNEIFORM SIGN GA2 TIMES SAL
-120E4;AL # CUNEIFORM SIGN GA2 TIMES SAR
-120E5;AL # CUNEIFORM SIGN GA2 TIMES SHE
-120E6;AL # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7;AL # CUNEIFORM SIGN GA2 TIMES SHID
-120E8;AL # CUNEIFORM SIGN GA2 TIMES SUM
-120E9;AL # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA;AL # CUNEIFORM SIGN GA2 TIMES U
-120EB;AL # CUNEIFORM SIGN GA2 TIMES UD
-120EC;AL # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED;AL # CUNEIFORM SIGN GA2 OVER GA2
-120EE;AL # CUNEIFORM SIGN GABA
-120EF;AL # CUNEIFORM SIGN GABA CROSSING GABA
-120F0;AL # CUNEIFORM SIGN GAD
-120F1;AL # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2;AL # CUNEIFORM SIGN GAL
-120F3;AL # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4;AL # CUNEIFORM SIGN GALAM
-120F5;AL # CUNEIFORM SIGN GAM
-120F6;AL # CUNEIFORM SIGN GAN
-120F7;AL # CUNEIFORM SIGN GAN2
-120F8;AL # CUNEIFORM SIGN GAN2 TENU
-120F9;AL # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA;AL # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB;AL # CUNEIFORM SIGN GAR
-120FC;AL # CUNEIFORM SIGN GAR3
-120FD;AL # CUNEIFORM SIGN GASHAN
-120FE;AL # CUNEIFORM SIGN GESHTIN
-120FF;AL # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100;AL # CUNEIFORM SIGN GI
-12101;AL # CUNEIFORM SIGN GI TIMES E
-12102;AL # CUNEIFORM SIGN GI TIMES U
-12103;AL # CUNEIFORM SIGN GI CROSSING GI
-12104;AL # CUNEIFORM SIGN GI4
-12105;AL # CUNEIFORM SIGN GI4 OVER GI4
-12106;AL # CUNEIFORM SIGN GI4 CROSSING GI4
-12107;AL # CUNEIFORM SIGN GIDIM
-12108;AL # CUNEIFORM SIGN GIR2
-12109;AL # CUNEIFORM SIGN GIR2 GUNU
-1210A;AL # CUNEIFORM SIGN GIR3
-1210B;AL # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C;AL # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D;AL # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E;AL # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F;AL # CUNEIFORM SIGN GIR3 TIMES PA
-12110;AL # CUNEIFORM SIGN GISAL
-12111;AL # CUNEIFORM SIGN GISH
-12112;AL # CUNEIFORM SIGN GISH CROSSING GISH
-12113;AL # CUNEIFORM SIGN GISH TIMES BAD
-12114;AL # CUNEIFORM SIGN GISH TIMES TAK4
-12115;AL # CUNEIFORM SIGN GISH TENU
-12116;AL # CUNEIFORM SIGN GU
-12117;AL # CUNEIFORM SIGN GU CROSSING GU
-12118;AL # CUNEIFORM SIGN GU2
-12119;AL # CUNEIFORM SIGN GU2 TIMES KAK
-1211A;AL # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B;AL # CUNEIFORM SIGN GU2 TIMES NUN
-1211C;AL # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D;AL # CUNEIFORM SIGN GU2 GUNU
-1211E;AL # CUNEIFORM SIGN GUD
-1211F;AL # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120;AL # CUNEIFORM SIGN GUD TIMES KUR
-12121;AL # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122;AL # CUNEIFORM SIGN GUL
-12123;AL # CUNEIFORM SIGN GUM
-12124;AL # CUNEIFORM SIGN GUM TIMES SHE
-12125;AL # CUNEIFORM SIGN GUR
-12126;AL # CUNEIFORM SIGN GUR7
-12127;AL # CUNEIFORM SIGN GURUN
-12128;AL # CUNEIFORM SIGN GURUSH
-12129;AL # CUNEIFORM SIGN HA
-1212A;AL # CUNEIFORM SIGN HA TENU
-1212B;AL # CUNEIFORM SIGN HA GUNU
-1212C;AL # CUNEIFORM SIGN HAL
-1212D;AL # CUNEIFORM SIGN HI
-1212E;AL # CUNEIFORM SIGN HI TIMES ASH
-1212F;AL # CUNEIFORM SIGN HI TIMES ASH2
-12130;AL # CUNEIFORM SIGN HI TIMES BAD
-12131;AL # CUNEIFORM SIGN HI TIMES DISH
-12132;AL # CUNEIFORM SIGN HI TIMES GAD
-12133;AL # CUNEIFORM SIGN HI TIMES KIN
-12134;AL # CUNEIFORM SIGN HI TIMES NUN
-12135;AL # CUNEIFORM SIGN HI TIMES SHE
-12136;AL # CUNEIFORM SIGN HI TIMES U
-12137;AL # CUNEIFORM SIGN HU
-12138;AL # CUNEIFORM SIGN HUB2
-12139;AL # CUNEIFORM SIGN HUB2 TIMES AN
-1213A;AL # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B;AL # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C;AL # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D;AL # CUNEIFORM SIGN HUB2 TIMES UD
-1213E;AL # CUNEIFORM SIGN HUL2
-1213F;AL # CUNEIFORM SIGN I
-12140;AL # CUNEIFORM SIGN I A
-12141;AL # CUNEIFORM SIGN IB
-12142;AL # CUNEIFORM SIGN IDIM
-12143;AL # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144;AL # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145;AL # CUNEIFORM SIGN IG
-12146;AL # CUNEIFORM SIGN IGI
-12147;AL # CUNEIFORM SIGN IGI DIB
-12148;AL # CUNEIFORM SIGN IGI RI
-12149;AL # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A;AL # CUNEIFORM SIGN IGI GUNU
-1214B;AL # CUNEIFORM SIGN IL
-1214C;AL # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D;AL # CUNEIFORM SIGN IL2
-1214E;AL # CUNEIFORM SIGN IM
-1214F;AL # CUNEIFORM SIGN IM TIMES TAK4
-12150;AL # CUNEIFORM SIGN IM CROSSING IM
-12151;AL # CUNEIFORM SIGN IM OPPOSING IM
-12152;AL # CUNEIFORM SIGN IM SQUARED
-12153;AL # CUNEIFORM SIGN IMIN
-12154;AL # CUNEIFORM SIGN IN
-12155;AL # CUNEIFORM SIGN IR
-12156;AL # CUNEIFORM SIGN ISH
-12157;AL # CUNEIFORM SIGN KA
-12158;AL # CUNEIFORM SIGN KA TIMES A
-12159;AL # CUNEIFORM SIGN KA TIMES AD
-1215A;AL # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B;AL # CUNEIFORM SIGN KA TIMES ASH2
-1215C;AL # CUNEIFORM SIGN KA TIMES BAD
-1215D;AL # CUNEIFORM SIGN KA TIMES BALAG
-1215E;AL # CUNEIFORM SIGN KA TIMES BAR
-1215F;AL # CUNEIFORM SIGN KA TIMES BI
-12160;AL # CUNEIFORM SIGN KA TIMES ERIN2
-12161;AL # CUNEIFORM SIGN KA TIMES ESH2
-12162;AL # CUNEIFORM SIGN KA TIMES GA
-12163;AL # CUNEIFORM SIGN KA TIMES GAL
-12164;AL # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165;AL # CUNEIFORM SIGN KA TIMES GAR
-12166;AL # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167;AL # CUNEIFORM SIGN KA TIMES GI
-12168;AL # CUNEIFORM SIGN KA TIMES GIR2
-12169;AL # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A;AL # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B;AL # CUNEIFORM SIGN KA TIMES GU
-1216C;AL # CUNEIFORM SIGN KA TIMES GUR7
-1216D;AL # CUNEIFORM SIGN KA TIMES IGI
-1216E;AL # CUNEIFORM SIGN KA TIMES IM
-1216F;AL # CUNEIFORM SIGN KA TIMES KAK
-12170;AL # CUNEIFORM SIGN KA TIMES KI
-12171;AL # CUNEIFORM SIGN KA TIMES KID
-12172;AL # CUNEIFORM SIGN KA TIMES LI
-12173;AL # CUNEIFORM SIGN KA TIMES LU
-12174;AL # CUNEIFORM SIGN KA TIMES ME
-12175;AL # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176;AL # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177;AL # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178;AL # CUNEIFORM SIGN KA TIMES MI
-12179;AL # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A;AL # CUNEIFORM SIGN KA TIMES NE
-1217B;AL # CUNEIFORM SIGN KA TIMES NUN
-1217C;AL # CUNEIFORM SIGN KA TIMES PI
-1217D;AL # CUNEIFORM SIGN KA TIMES RU
-1217E;AL # CUNEIFORM SIGN KA TIMES SA
-1217F;AL # CUNEIFORM SIGN KA TIMES SAR
-12180;AL # CUNEIFORM SIGN KA TIMES SHA
-12181;AL # CUNEIFORM SIGN KA TIMES SHE
-12182;AL # CUNEIFORM SIGN KA TIMES SHID
-12183;AL # CUNEIFORM SIGN KA TIMES SHU
-12184;AL # CUNEIFORM SIGN KA TIMES SIG
-12185;AL # CUNEIFORM SIGN KA TIMES SUHUR
-12186;AL # CUNEIFORM SIGN KA TIMES TAR
-12187;AL # CUNEIFORM SIGN KA TIMES U
-12188;AL # CUNEIFORM SIGN KA TIMES U2
-12189;AL # CUNEIFORM SIGN KA TIMES UD
-1218A;AL # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B;AL # CUNEIFORM SIGN KA TIMES USH
-1218C;AL # CUNEIFORM SIGN KA TIMES ZI
-1218D;AL # CUNEIFORM SIGN KA2
-1218E;AL # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F;AL # CUNEIFORM SIGN KAB
-12190;AL # CUNEIFORM SIGN KAD2
-12191;AL # CUNEIFORM SIGN KAD3
-12192;AL # CUNEIFORM SIGN KAD4
-12193;AL # CUNEIFORM SIGN KAD5
-12194;AL # CUNEIFORM SIGN KAD5 OVER KAD5
-12195;AL # CUNEIFORM SIGN KAK
-12196;AL # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197;AL # CUNEIFORM SIGN KAL
-12198;AL # CUNEIFORM SIGN KAL TIMES BAD
-12199;AL # CUNEIFORM SIGN KAL CROSSING KAL
-1219A;AL # CUNEIFORM SIGN KAM2
-1219B;AL # CUNEIFORM SIGN KAM4
-1219C;AL # CUNEIFORM SIGN KASKAL
-1219D;AL # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E;AL # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F;AL # CUNEIFORM SIGN KESH2
-121A0;AL # CUNEIFORM SIGN KI
-121A1;AL # CUNEIFORM SIGN KI TIMES BAD
-121A2;AL # CUNEIFORM SIGN KI TIMES U
-121A3;AL # CUNEIFORM SIGN KI TIMES UD
-121A4;AL # CUNEIFORM SIGN KID
-121A5;AL # CUNEIFORM SIGN KIN
-121A6;AL # CUNEIFORM SIGN KISAL
-121A7;AL # CUNEIFORM SIGN KISH
-121A8;AL # CUNEIFORM SIGN KISIM5
-121A9;AL # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA;AL # CUNEIFORM SIGN KU
-121AB;AL # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC;AL # CUNEIFORM SIGN KU3
-121AD;AL # CUNEIFORM SIGN KU4
-121AE;AL # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF;AL # CUNEIFORM SIGN KU7
-121B0;AL # CUNEIFORM SIGN KUL
-121B1;AL # CUNEIFORM SIGN KUL GUNU
-121B2;AL # CUNEIFORM SIGN KUN
-121B3;AL # CUNEIFORM SIGN KUR
-121B4;AL # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5;AL # CUNEIFORM SIGN KUSHU2
-121B6;AL # CUNEIFORM SIGN KWU318
-121B7;AL # CUNEIFORM SIGN LA
-121B8;AL # CUNEIFORM SIGN LAGAB
-121B9;AL # CUNEIFORM SIGN LAGAB TIMES A
-121BA;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC;AL # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD;AL # CUNEIFORM SIGN LAGAB TIMES AL
-121BE;AL # CUNEIFORM SIGN LAGAB TIMES AN
-121BF;AL # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0;AL # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1;AL # CUNEIFORM SIGN LAGAB TIMES BI
-121C2;AL # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3;AL # CUNEIFORM SIGN LAGAB TIMES EN
-121C4;AL # CUNEIFORM SIGN LAGAB TIMES GA
-121C5;AL # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6;AL # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7;AL # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8;AL # CUNEIFORM SIGN LAGAB TIMES HA
-121C9;AL # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA;AL # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB;AL # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC;AL # CUNEIFORM SIGN LAGAB TIMES IM
-121CD;AL # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE;AL # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF;AL # CUNEIFORM SIGN LAGAB TIMES KI
-121D0;AL # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1;AL # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2;AL # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3;AL # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4;AL # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5;AL # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6;AL # CUNEIFORM SIGN LAGAB TIMES LU
-121D7;AL # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8;AL # CUNEIFORM SIGN LAGAB TIMES ME
-121D9;AL # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA;AL # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB;AL # CUNEIFORM SIGN LAGAB TIMES NE
-121DC;AL # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD;AL # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE;AL # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF;AL # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0;AL # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1;AL # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2;AL # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3;AL # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4;AL # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5;AL # CUNEIFORM SIGN LAGAB TIMES U
-121E6;AL # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7;AL # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8;AL # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9;AL # CUNEIFORM SIGN LAGAB TIMES UD
-121EA;AL # CUNEIFORM SIGN LAGAB TIMES USH
-121EB;AL # CUNEIFORM SIGN LAGAB SQUARED
-121EC;AL # CUNEIFORM SIGN LAGAR
-121ED;AL # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE;AL # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF;AL # CUNEIFORM SIGN LAGAR GUNU
-121F0;AL # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1;AL # CUNEIFORM SIGN LAHSHU
-121F2;AL # CUNEIFORM SIGN LAL
-121F3;AL # CUNEIFORM SIGN LAL TIMES LAL
-121F4;AL # CUNEIFORM SIGN LAM
-121F5;AL # CUNEIFORM SIGN LAM TIMES KUR
-121F6;AL # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7;AL # CUNEIFORM SIGN LI
-121F8;AL # CUNEIFORM SIGN LIL
-121F9;AL # CUNEIFORM SIGN LIMMU2
-121FA;AL # CUNEIFORM SIGN LISH
-121FB;AL # CUNEIFORM SIGN LU
-121FC;AL # CUNEIFORM SIGN LU TIMES BAD
-121FD;AL # CUNEIFORM SIGN LU2
-121FE;AL # CUNEIFORM SIGN LU2 TIMES AL
-121FF;AL # CUNEIFORM SIGN LU2 TIMES BAD
-12200;AL # CUNEIFORM SIGN LU2 TIMES ESH2
-12201;AL # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202;AL # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203;AL # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204;AL # CUNEIFORM SIGN LU2 TIMES IM
-12205;AL # CUNEIFORM SIGN LU2 TIMES KAD2
-12206;AL # CUNEIFORM SIGN LU2 TIMES KAD3
-12207;AL # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208;AL # CUNEIFORM SIGN LU2 TIMES KI
-12209;AL # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A;AL # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B;AL # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C;AL # CUNEIFORM SIGN LU2 TIMES NE
-1220D;AL # CUNEIFORM SIGN LU2 TIMES NU
-1220E;AL # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F;AL # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210;AL # CUNEIFORM SIGN LU2 TIMES TUG2
-12211;AL # CUNEIFORM SIGN LU2 TENU
-12212;AL # CUNEIFORM SIGN LU2 CROSSING LU2
-12213;AL # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214;AL # CUNEIFORM SIGN LU2 SQUARED
-12215;AL # CUNEIFORM SIGN LU2 SHESHIG
-12216;AL # CUNEIFORM SIGN LU3
-12217;AL # CUNEIFORM SIGN LUGAL
-12218;AL # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219;AL # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A;AL # CUNEIFORM SIGN LUGAL SHESHIG
-1221B;AL # CUNEIFORM SIGN LUH
-1221C;AL # CUNEIFORM SIGN LUL
-1221D;AL # CUNEIFORM SIGN LUM
-1221E;AL # CUNEIFORM SIGN LUM OVER LUM
-1221F;AL # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220;AL # CUNEIFORM SIGN MA
-12221;AL # CUNEIFORM SIGN MA TIMES TAK4
-12222;AL # CUNEIFORM SIGN MA GUNU
-12223;AL # CUNEIFORM SIGN MA2
-12224;AL # CUNEIFORM SIGN MAH
-12225;AL # CUNEIFORM SIGN MAR
-12226;AL # CUNEIFORM SIGN MASH
-12227;AL # CUNEIFORM SIGN MASH2
-12228;AL # CUNEIFORM SIGN ME
-12229;AL # CUNEIFORM SIGN MES
-1222A;AL # CUNEIFORM SIGN MI
-1222B;AL # CUNEIFORM SIGN MIN
-1222C;AL # CUNEIFORM SIGN MU
-1222D;AL # CUNEIFORM SIGN MU OVER MU
-1222E;AL # CUNEIFORM SIGN MUG
-1222F;AL # CUNEIFORM SIGN MUG GUNU
-12230;AL # CUNEIFORM SIGN MUNSUB
-12231;AL # CUNEIFORM SIGN MURGU2
-12232;AL # CUNEIFORM SIGN MUSH
-12233;AL # CUNEIFORM SIGN MUSH TIMES A
-12234;AL # CUNEIFORM SIGN MUSH TIMES KUR
-12235;AL # CUNEIFORM SIGN MUSH TIMES ZA
-12236;AL # CUNEIFORM SIGN MUSH OVER MUSH
-12237;AL # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238;AL # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239;AL # CUNEIFORM SIGN MUSH3
-1223A;AL # CUNEIFORM SIGN MUSH3 TIMES A
-1223B;AL # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C;AL # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D;AL # CUNEIFORM SIGN MUSH3 GUNU
-1223E;AL # CUNEIFORM SIGN NA
-1223F;AL # CUNEIFORM SIGN NA2
-12240;AL # CUNEIFORM SIGN NAGA
-12241;AL # CUNEIFORM SIGN NAGA INVERTED
-12242;AL # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243;AL # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244;AL # CUNEIFORM SIGN NAGAR
-12245;AL # CUNEIFORM SIGN NAM NUTILLU
-12246;AL # CUNEIFORM SIGN NAM
-12247;AL # CUNEIFORM SIGN NAM2
-12248;AL # CUNEIFORM SIGN NE
-12249;AL # CUNEIFORM SIGN NE TIMES A
-1224A;AL # CUNEIFORM SIGN NE TIMES UD
-1224B;AL # CUNEIFORM SIGN NE SHESHIG
-1224C;AL # CUNEIFORM SIGN NI
-1224D;AL # CUNEIFORM SIGN NI TIMES E
-1224E;AL # CUNEIFORM SIGN NI2
-1224F;AL # CUNEIFORM SIGN NIM
-12250;AL # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251;AL # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252;AL # CUNEIFORM SIGN NINDA2
-12253;AL # CUNEIFORM SIGN NINDA2 TIMES AN
-12254;AL # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255;AL # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256;AL # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257;AL # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258;AL # CUNEIFORM SIGN NINDA2 TIMES NE
-12259;AL # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A;AL # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D;AL # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E;AL # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F;AL # CUNEIFORM SIGN NINDA2 TIMES USH
-12260;AL # CUNEIFORM SIGN NISAG
-12261;AL # CUNEIFORM SIGN NU
-12262;AL # CUNEIFORM SIGN NU11
-12263;AL # CUNEIFORM SIGN NUN
-12264;AL # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265;AL # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266;AL # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267;AL # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268;AL # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269;AL # CUNEIFORM SIGN NUN TENU
-1226A;AL # CUNEIFORM SIGN NUN OVER NUN
-1226B;AL # CUNEIFORM SIGN NUN CROSSING NUN
-1226C;AL # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D;AL # CUNEIFORM SIGN NUNUZ
-1226E;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277;AL # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278;AL # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279;AL # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A;AL # CUNEIFORM SIGN PA
-1227B;AL # CUNEIFORM SIGN PAD
-1227C;AL # CUNEIFORM SIGN PAN
-1227D;AL # CUNEIFORM SIGN PAP
-1227E;AL # CUNEIFORM SIGN PESH2
-1227F;AL # CUNEIFORM SIGN PI
-12280;AL # CUNEIFORM SIGN PI TIMES A
-12281;AL # CUNEIFORM SIGN PI TIMES AB
-12282;AL # CUNEIFORM SIGN PI TIMES BI
-12283;AL # CUNEIFORM SIGN PI TIMES BU
-12284;AL # CUNEIFORM SIGN PI TIMES E
-12285;AL # CUNEIFORM SIGN PI TIMES I
-12286;AL # CUNEIFORM SIGN PI TIMES IB
-12287;AL # CUNEIFORM SIGN PI TIMES U
-12288;AL # CUNEIFORM SIGN PI TIMES U2
-12289;AL # CUNEIFORM SIGN PI CROSSING PI
-1228A;AL # CUNEIFORM SIGN PIRIG
-1228B;AL # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C;AL # CUNEIFORM SIGN PIRIG TIMES UD
-1228D;AL # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E;AL # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F;AL # CUNEIFORM SIGN RA
-12290;AL # CUNEIFORM SIGN RAB
-12291;AL # CUNEIFORM SIGN RI
-12292;AL # CUNEIFORM SIGN RU
-12293;AL # CUNEIFORM SIGN SA
-12294;AL # CUNEIFORM SIGN SAG NUTILLU
-12295;AL # CUNEIFORM SIGN SAG
-12296;AL # CUNEIFORM SIGN SAG TIMES A
-12297;AL # CUNEIFORM SIGN SAG TIMES DU
-12298;AL # CUNEIFORM SIGN SAG TIMES DUB
-12299;AL # CUNEIFORM SIGN SAG TIMES HA
-1229A;AL # CUNEIFORM SIGN SAG TIMES KAK
-1229B;AL # CUNEIFORM SIGN SAG TIMES KUR
-1229C;AL # CUNEIFORM SIGN SAG TIMES LUM
-1229D;AL # CUNEIFORM SIGN SAG TIMES MI
-1229E;AL # CUNEIFORM SIGN SAG TIMES NUN
-1229F;AL # CUNEIFORM SIGN SAG TIMES SAL
-122A0;AL # CUNEIFORM SIGN SAG TIMES SHID
-122A1;AL # CUNEIFORM SIGN SAG TIMES TAB
-122A2;AL # CUNEIFORM SIGN SAG TIMES U2
-122A3;AL # CUNEIFORM SIGN SAG TIMES UB
-122A4;AL # CUNEIFORM SIGN SAG TIMES UM
-122A5;AL # CUNEIFORM SIGN SAG TIMES UR
-122A6;AL # CUNEIFORM SIGN SAG TIMES USH
-122A7;AL # CUNEIFORM SIGN SAG OVER SAG
-122A8;AL # CUNEIFORM SIGN SAG GUNU
-122A9;AL # CUNEIFORM SIGN SAL
-122AA;AL # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB;AL # CUNEIFORM SIGN SANGA2
-122AC;AL # CUNEIFORM SIGN SAR
-122AD;AL # CUNEIFORM SIGN SHA
-122AE;AL # CUNEIFORM SIGN SHA3
-122AF;AL # CUNEIFORM SIGN SHA3 TIMES A
-122B0;AL # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1;AL # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2;AL # CUNEIFORM SIGN SHA3 TIMES NE
-122B3;AL # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4;AL # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5;AL # CUNEIFORM SIGN SHA3 TIMES U
-122B6;AL # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7;AL # CUNEIFORM SIGN SHA6
-122B8;AL # CUNEIFORM SIGN SHAB6
-122B9;AL # CUNEIFORM SIGN SHAR2
-122BA;AL # CUNEIFORM SIGN SHE
-122BB;AL # CUNEIFORM SIGN SHE HU
-122BC;AL # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD;AL # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE;AL # CUNEIFORM SIGN SHEG9
-122BF;AL # CUNEIFORM SIGN SHEN
-122C0;AL # CUNEIFORM SIGN SHESH
-122C1;AL # CUNEIFORM SIGN SHESH2
-122C2;AL # CUNEIFORM SIGN SHESHLAM
-122C3;AL # CUNEIFORM SIGN SHID
-122C4;AL # CUNEIFORM SIGN SHID TIMES A
-122C5;AL # CUNEIFORM SIGN SHID TIMES IM
-122C6;AL # CUNEIFORM SIGN SHIM
-122C7;AL # CUNEIFORM SIGN SHIM TIMES A
-122C8;AL # CUNEIFORM SIGN SHIM TIMES BAL
-122C9;AL # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA;AL # CUNEIFORM SIGN SHIM TIMES DIN
-122CB;AL # CUNEIFORM SIGN SHIM TIMES GAR
-122CC;AL # CUNEIFORM SIGN SHIM TIMES IGI
-122CD;AL # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE;AL # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF;AL # CUNEIFORM SIGN SHIM TIMES LUL
-122D0;AL # CUNEIFORM SIGN SHIM TIMES MUG
-122D1;AL # CUNEIFORM SIGN SHIM TIMES SAL
-122D2;AL # CUNEIFORM SIGN SHINIG
-122D3;AL # CUNEIFORM SIGN SHIR
-122D4;AL # CUNEIFORM SIGN SHIR TENU
-122D5;AL # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-122D6;AL # CUNEIFORM SIGN SHITA
-122D7;AL # CUNEIFORM SIGN SHU
-122D8;AL # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9;AL # CUNEIFORM SIGN SHU2
-122DA;AL # CUNEIFORM SIGN SHUBUR
-122DB;AL # CUNEIFORM SIGN SI
-122DC;AL # CUNEIFORM SIGN SI GUNU
-122DD;AL # CUNEIFORM SIGN SIG
-122DE;AL # CUNEIFORM SIGN SIG4
-122DF;AL # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0;AL # CUNEIFORM SIGN SIK2
-122E1;AL # CUNEIFORM SIGN SILA3
-122E2;AL # CUNEIFORM SIGN SU
-122E3;AL # CUNEIFORM SIGN SU OVER SU
-122E4;AL # CUNEIFORM SIGN SUD
-122E5;AL # CUNEIFORM SIGN SUD2
-122E6;AL # CUNEIFORM SIGN SUHUR
-122E7;AL # CUNEIFORM SIGN SUM
-122E8;AL # CUNEIFORM SIGN SUMASH
-122E9;AL # CUNEIFORM SIGN SUR
-122EA;AL # CUNEIFORM SIGN SUR9
-122EB;AL # CUNEIFORM SIGN TA
-122EC;AL # CUNEIFORM SIGN TA ASTERISK
-122ED;AL # CUNEIFORM SIGN TA TIMES HI
-122EE;AL # CUNEIFORM SIGN TA TIMES MI
-122EF;AL # CUNEIFORM SIGN TA GUNU
-122F0;AL # CUNEIFORM SIGN TAB
-122F1;AL # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2;AL # CUNEIFORM SIGN TAB SQUARED
-122F3;AL # CUNEIFORM SIGN TAG
-122F4;AL # CUNEIFORM SIGN TAG TIMES BI
-122F5;AL # CUNEIFORM SIGN TAG TIMES GUD
-122F6;AL # CUNEIFORM SIGN TAG TIMES SHE
-122F7;AL # CUNEIFORM SIGN TAG TIMES SHU
-122F8;AL # CUNEIFORM SIGN TAG TIMES TUG2
-122F9;AL # CUNEIFORM SIGN TAG TIMES UD
-122FA;AL # CUNEIFORM SIGN TAK4
-122FB;AL # CUNEIFORM SIGN TAR
-122FC;AL # CUNEIFORM SIGN TE
-122FD;AL # CUNEIFORM SIGN TE GUNU
-122FE;AL # CUNEIFORM SIGN TI
-122FF;AL # CUNEIFORM SIGN TI TENU
-12300;AL # CUNEIFORM SIGN TIL
-12301;AL # CUNEIFORM SIGN TIR
-12302;AL # CUNEIFORM SIGN TIR TIMES TAK4
-12303;AL # CUNEIFORM SIGN TIR OVER TIR
-12304;AL # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305;AL # CUNEIFORM SIGN TU
-12306;AL # CUNEIFORM SIGN TUG2
-12307;AL # CUNEIFORM SIGN TUK
-12308;AL # CUNEIFORM SIGN TUM
-12309;AL # CUNEIFORM SIGN TUR
-1230A;AL # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B;AL # CUNEIFORM SIGN U
-1230C;AL # CUNEIFORM SIGN U GUD
-1230D;AL # CUNEIFORM SIGN U U U
-1230E;AL # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F;AL # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310;AL # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311;AL # CUNEIFORM SIGN U2
-12312;AL # CUNEIFORM SIGN UB
-12313;AL # CUNEIFORM SIGN UD
-12314;AL # CUNEIFORM SIGN UD KUSHU2
-12315;AL # CUNEIFORM SIGN UD TIMES BAD
-12316;AL # CUNEIFORM SIGN UD TIMES MI
-12317;AL # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318;AL # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319;AL # CUNEIFORM SIGN UD GUNU
-1231A;AL # CUNEIFORM SIGN UD SHESHIG
-1231B;AL # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C;AL # CUNEIFORM SIGN UDUG
-1231D;AL # CUNEIFORM SIGN UM
-1231E;AL # CUNEIFORM SIGN UM TIMES LAGAB
-1231F;AL # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320;AL # CUNEIFORM SIGN UM TIMES SHA3
-12321;AL # CUNEIFORM SIGN UM TIMES U
-12322;AL # CUNEIFORM SIGN UMBIN
-12323;AL # CUNEIFORM SIGN UMUM
-12324;AL # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325;AL # CUNEIFORM SIGN UMUM TIMES PA
-12326;AL # CUNEIFORM SIGN UN
-12327;AL # CUNEIFORM SIGN UN GUNU
-12328;AL # CUNEIFORM SIGN UR
-12329;AL # CUNEIFORM SIGN UR CROSSING UR
-1232A;AL # CUNEIFORM SIGN UR SHESHIG
-1232B;AL # CUNEIFORM SIGN UR2
-1232C;AL # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D;AL # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E;AL # CUNEIFORM SIGN UR2 TIMES AL
-1232F;AL # CUNEIFORM SIGN UR2 TIMES HA
-12330;AL # CUNEIFORM SIGN UR2 TIMES NUN
-12331;AL # CUNEIFORM SIGN UR2 TIMES U2
-12332;AL # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333;AL # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334;AL # CUNEIFORM SIGN UR4
-12335;AL # CUNEIFORM SIGN URI
-12336;AL # CUNEIFORM SIGN URI3
-12337;AL # CUNEIFORM SIGN URU
-12338;AL # CUNEIFORM SIGN URU TIMES A
-12339;AL # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A;AL # CUNEIFORM SIGN URU TIMES BAR
-1233B;AL # CUNEIFORM SIGN URU TIMES DUN
-1233C;AL # CUNEIFORM SIGN URU TIMES GA
-1233D;AL # CUNEIFORM SIGN URU TIMES GAL
-1233E;AL # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F;AL # CUNEIFORM SIGN URU TIMES GAR
-12340;AL # CUNEIFORM SIGN URU TIMES GU
-12341;AL # CUNEIFORM SIGN URU TIMES HA
-12342;AL # CUNEIFORM SIGN URU TIMES IGI
-12343;AL # CUNEIFORM SIGN URU TIMES IM
-12344;AL # CUNEIFORM SIGN URU TIMES ISH
-12345;AL # CUNEIFORM SIGN URU TIMES KI
-12346;AL # CUNEIFORM SIGN URU TIMES LUM
-12347;AL # CUNEIFORM SIGN URU TIMES MIN
-12348;AL # CUNEIFORM SIGN URU TIMES PA
-12349;AL # CUNEIFORM SIGN URU TIMES SHE
-1234A;AL # CUNEIFORM SIGN URU TIMES SIG4
-1234B;AL # CUNEIFORM SIGN URU TIMES TU
-1234C;AL # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D;AL # CUNEIFORM SIGN URU TIMES UD
-1234E;AL # CUNEIFORM SIGN URU TIMES URUDA
-1234F;AL # CUNEIFORM SIGN URUDA
-12350;AL # CUNEIFORM SIGN URUDA TIMES U
-12351;AL # CUNEIFORM SIGN USH
-12352;AL # CUNEIFORM SIGN USH TIMES A
-12353;AL # CUNEIFORM SIGN USH TIMES KU
-12354;AL # CUNEIFORM SIGN USH TIMES KUR
-12355;AL # CUNEIFORM SIGN USH TIMES TAK4
-12356;AL # CUNEIFORM SIGN USHX
-12357;AL # CUNEIFORM SIGN USH2
-12358;AL # CUNEIFORM SIGN USHUMX
-12359;AL # CUNEIFORM SIGN UTUKI
-1235A;AL # CUNEIFORM SIGN UZ3
-1235B;AL # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C;AL # CUNEIFORM SIGN UZU
-1235D;AL # CUNEIFORM SIGN ZA
-1235E;AL # CUNEIFORM SIGN ZA TENU
-1235F;AL # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360;AL # CUNEIFORM SIGN ZAG
-12361;AL # CUNEIFORM SIGN ZAMX
-12362;AL # CUNEIFORM SIGN ZE2
-12363;AL # CUNEIFORM SIGN ZI
-12364;AL # CUNEIFORM SIGN ZI OVER ZI
-12365;AL # CUNEIFORM SIGN ZI3
-12366;AL # CUNEIFORM SIGN ZIB
-12367;AL # CUNEIFORM SIGN ZIB KABA TENU
-12368;AL # CUNEIFORM SIGN ZIG
-12369;AL # CUNEIFORM SIGN ZIZ2
-1236A;AL # CUNEIFORM SIGN ZU
-1236B;AL # CUNEIFORM SIGN ZU5
-1236C;AL # CUNEIFORM SIGN ZU5 TIMES A
-1236D;AL # CUNEIFORM SIGN ZUBUR
-1236E;AL # CUNEIFORM SIGN ZUM
-12400;AL # CUNEIFORM NUMERIC SIGN TWO ASH
-12401;AL # CUNEIFORM NUMERIC SIGN THREE ASH
-12402;AL # CUNEIFORM NUMERIC SIGN FOUR ASH
-12403;AL # CUNEIFORM NUMERIC SIGN FIVE ASH
-12404;AL # CUNEIFORM NUMERIC SIGN SIX ASH
-12405;AL # CUNEIFORM NUMERIC SIGN SEVEN ASH
-12406;AL # CUNEIFORM NUMERIC SIGN EIGHT ASH
-12407;AL # CUNEIFORM NUMERIC SIGN NINE ASH
-12408;AL # CUNEIFORM NUMERIC SIGN THREE DISH
-12409;AL # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240A;AL # CUNEIFORM NUMERIC SIGN FIVE DISH
-1240B;AL # CUNEIFORM NUMERIC SIGN SIX DISH
-1240C;AL # CUNEIFORM NUMERIC SIGN SEVEN DISH
-1240D;AL # CUNEIFORM NUMERIC SIGN EIGHT DISH
-1240E;AL # CUNEIFORM NUMERIC SIGN NINE DISH
-1240F;AL # CUNEIFORM NUMERIC SIGN FOUR U
-12410;AL # CUNEIFORM NUMERIC SIGN FIVE U
-12411;AL # CUNEIFORM NUMERIC SIGN SIX U
-12412;AL # CUNEIFORM NUMERIC SIGN SEVEN U
-12413;AL # CUNEIFORM NUMERIC SIGN EIGHT U
-12414;AL # CUNEIFORM NUMERIC SIGN NINE U
-12415;AL # CUNEIFORM NUMERIC SIGN ONE GESH2
-12416;AL # CUNEIFORM NUMERIC SIGN TWO GESH2
-12417;AL # CUNEIFORM NUMERIC SIGN THREE GESH2
-12418;AL # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12419;AL # CUNEIFORM NUMERIC SIGN FIVE GESH2
-1241A;AL # CUNEIFORM NUMERIC SIGN SIX GESH2
-1241B;AL # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-1241C;AL # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1241D;AL # CUNEIFORM NUMERIC SIGN NINE GESH2
-1241E;AL # CUNEIFORM NUMERIC SIGN ONE GESHU
-1241F;AL # CUNEIFORM NUMERIC SIGN TWO GESHU
-12420;AL # CUNEIFORM NUMERIC SIGN THREE GESHU
-12421;AL # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12422;AL # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12423;AL # CUNEIFORM NUMERIC SIGN TWO SHAR2
-12424;AL # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425;AL # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-12426;AL # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12427;AL # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12428;AL # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12429;AL # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-1242A;AL # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-1242B;AL # CUNEIFORM NUMERIC SIGN NINE SHAR2
-1242C;AL # CUNEIFORM NUMERIC SIGN ONE SHARU
-1242D;AL # CUNEIFORM NUMERIC SIGN TWO SHARU
-1242E;AL # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F;AL # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12430;AL # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12431;AL # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12432;AL # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433;AL # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-12434;AL # CUNEIFORM NUMERIC SIGN ONE BURU
-12435;AL # CUNEIFORM NUMERIC SIGN TWO BURU
-12436;AL # CUNEIFORM NUMERIC SIGN THREE BURU
-12437;AL # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-12438;AL # CUNEIFORM NUMERIC SIGN FOUR BURU
-12439;AL # CUNEIFORM NUMERIC SIGN FIVE BURU
-1243A;AL # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B;AL # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1243C;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F;AL # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-12440;AL # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-12441;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443;AL # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-12444;AL # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445;AL # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-12446;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449;AL # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1244A;AL # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-1244B;AL # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-1244C;AL # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-1244D;AL # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-1244E;AL # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1244F;AL # CUNEIFORM NUMERIC SIGN ONE BAN2
-12450;AL # CUNEIFORM NUMERIC SIGN TWO BAN2
-12451;AL # CUNEIFORM NUMERIC SIGN THREE BAN2
-12452;AL # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453;AL # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-12454;AL # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455;AL # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-12456;AL # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12457;AL # CUNEIFORM NUMERIC SIGN NIGIDAESH
-12458;AL # CUNEIFORM NUMERIC SIGN ONE ESHE3
-12459;AL # CUNEIFORM NUMERIC SIGN TWO ESHE3
-1245A;AL # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B;AL # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C;AL # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D;AL # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E;AL # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F;AL # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460;AL # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461;AL # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462;AL # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470;BA # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471;BA # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472;BA # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473;BA # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-13000;AL # EGYPTIAN HIEROGLYPH A001
-13001;AL # EGYPTIAN HIEROGLYPH A002
-13002;AL # EGYPTIAN HIEROGLYPH A003
-13003;AL # EGYPTIAN HIEROGLYPH A004
-13004;AL # EGYPTIAN HIEROGLYPH A005
-13005;AL # EGYPTIAN HIEROGLYPH A005A
-13006;AL # EGYPTIAN HIEROGLYPH A006
-13007;AL # EGYPTIAN HIEROGLYPH A006A
-13008;AL # EGYPTIAN HIEROGLYPH A006B
-13009;AL # EGYPTIAN HIEROGLYPH A007
-1300A;AL # EGYPTIAN HIEROGLYPH A008
-1300B;AL # EGYPTIAN HIEROGLYPH A009
-1300C;AL # EGYPTIAN HIEROGLYPH A010
-1300D;AL # EGYPTIAN HIEROGLYPH A011
-1300E;AL # EGYPTIAN HIEROGLYPH A012
-1300F;AL # EGYPTIAN HIEROGLYPH A013
-13010;AL # EGYPTIAN HIEROGLYPH A014
-13011;AL # EGYPTIAN HIEROGLYPH A014A
-13012;AL # EGYPTIAN HIEROGLYPH A015
-13013;AL # EGYPTIAN HIEROGLYPH A016
-13014;AL # EGYPTIAN HIEROGLYPH A017
-13015;AL # EGYPTIAN HIEROGLYPH A017A
-13016;AL # EGYPTIAN HIEROGLYPH A018
-13017;AL # EGYPTIAN HIEROGLYPH A019
-13018;AL # EGYPTIAN HIEROGLYPH A020
-13019;AL # EGYPTIAN HIEROGLYPH A021
-1301A;AL # EGYPTIAN HIEROGLYPH A022
-1301B;AL # EGYPTIAN HIEROGLYPH A023
-1301C;AL # EGYPTIAN HIEROGLYPH A024
-1301D;AL # EGYPTIAN HIEROGLYPH A025
-1301E;AL # EGYPTIAN HIEROGLYPH A026
-1301F;AL # EGYPTIAN HIEROGLYPH A027
-13020;AL # EGYPTIAN HIEROGLYPH A028
-13021;AL # EGYPTIAN HIEROGLYPH A029
-13022;AL # EGYPTIAN HIEROGLYPH A030
-13023;AL # EGYPTIAN HIEROGLYPH A031
-13024;AL # EGYPTIAN HIEROGLYPH A032
-13025;AL # EGYPTIAN HIEROGLYPH A032A
-13026;AL # EGYPTIAN HIEROGLYPH A033
-13027;AL # EGYPTIAN HIEROGLYPH A034
-13028;AL # EGYPTIAN HIEROGLYPH A035
-13029;AL # EGYPTIAN HIEROGLYPH A036
-1302A;AL # EGYPTIAN HIEROGLYPH A037
-1302B;AL # EGYPTIAN HIEROGLYPH A038
-1302C;AL # EGYPTIAN HIEROGLYPH A039
-1302D;AL # EGYPTIAN HIEROGLYPH A040
-1302E;AL # EGYPTIAN HIEROGLYPH A040A
-1302F;AL # EGYPTIAN HIEROGLYPH A041
-13030;AL # EGYPTIAN HIEROGLYPH A042
-13031;AL # EGYPTIAN HIEROGLYPH A042A
-13032;AL # EGYPTIAN HIEROGLYPH A043
-13033;AL # EGYPTIAN HIEROGLYPH A043A
-13034;AL # EGYPTIAN HIEROGLYPH A044
-13035;AL # EGYPTIAN HIEROGLYPH A045
-13036;AL # EGYPTIAN HIEROGLYPH A045A
-13037;AL # EGYPTIAN HIEROGLYPH A046
-13038;AL # EGYPTIAN HIEROGLYPH A047
-13039;AL # EGYPTIAN HIEROGLYPH A048
-1303A;AL # EGYPTIAN HIEROGLYPH A049
-1303B;AL # EGYPTIAN HIEROGLYPH A050
-1303C;AL # EGYPTIAN HIEROGLYPH A051
-1303D;AL # EGYPTIAN HIEROGLYPH A052
-1303E;AL # EGYPTIAN HIEROGLYPH A053
-1303F;AL # EGYPTIAN HIEROGLYPH A054
-13040;AL # EGYPTIAN HIEROGLYPH A055
-13041;AL # EGYPTIAN HIEROGLYPH A056
-13042;AL # EGYPTIAN HIEROGLYPH A057
-13043;AL # EGYPTIAN HIEROGLYPH A058
-13044;AL # EGYPTIAN HIEROGLYPH A059
-13045;AL # EGYPTIAN HIEROGLYPH A060
-13046;AL # EGYPTIAN HIEROGLYPH A061
-13047;AL # EGYPTIAN HIEROGLYPH A062
-13048;AL # EGYPTIAN HIEROGLYPH A063
-13049;AL # EGYPTIAN HIEROGLYPH A064
-1304A;AL # EGYPTIAN HIEROGLYPH A065
-1304B;AL # EGYPTIAN HIEROGLYPH A066
-1304C;AL # EGYPTIAN HIEROGLYPH A067
-1304D;AL # EGYPTIAN HIEROGLYPH A068
-1304E;AL # EGYPTIAN HIEROGLYPH A069
-1304F;AL # EGYPTIAN HIEROGLYPH A070
-13050;AL # EGYPTIAN HIEROGLYPH B001
-13051;AL # EGYPTIAN HIEROGLYPH B002
-13052;AL # EGYPTIAN HIEROGLYPH B003
-13053;AL # EGYPTIAN HIEROGLYPH B004
-13054;AL # EGYPTIAN HIEROGLYPH B005
-13055;AL # EGYPTIAN HIEROGLYPH B005A
-13056;AL # EGYPTIAN HIEROGLYPH B006
-13057;AL # EGYPTIAN HIEROGLYPH B007
-13058;AL # EGYPTIAN HIEROGLYPH B008
-13059;AL # EGYPTIAN HIEROGLYPH B009
-1305A;AL # EGYPTIAN HIEROGLYPH C001
-1305B;AL # EGYPTIAN HIEROGLYPH C002
-1305C;AL # EGYPTIAN HIEROGLYPH C002A
-1305D;AL # EGYPTIAN HIEROGLYPH C002B
-1305E;AL # EGYPTIAN HIEROGLYPH C002C
-1305F;AL # EGYPTIAN HIEROGLYPH C003
-13060;AL # EGYPTIAN HIEROGLYPH C004
-13061;AL # EGYPTIAN HIEROGLYPH C005
-13062;AL # EGYPTIAN HIEROGLYPH C006
-13063;AL # EGYPTIAN HIEROGLYPH C007
-13064;AL # EGYPTIAN HIEROGLYPH C008
-13065;AL # EGYPTIAN HIEROGLYPH C009
-13066;AL # EGYPTIAN HIEROGLYPH C010
-13067;AL # EGYPTIAN HIEROGLYPH C010A
-13068;AL # EGYPTIAN HIEROGLYPH C011
-13069;AL # EGYPTIAN HIEROGLYPH C012
-1306A;AL # EGYPTIAN HIEROGLYPH C013
-1306B;AL # EGYPTIAN HIEROGLYPH C014
-1306C;AL # EGYPTIAN HIEROGLYPH C015
-1306D;AL # EGYPTIAN HIEROGLYPH C016
-1306E;AL # EGYPTIAN HIEROGLYPH C017
-1306F;AL # EGYPTIAN HIEROGLYPH C018
-13070;AL # EGYPTIAN HIEROGLYPH C019
-13071;AL # EGYPTIAN HIEROGLYPH C020
-13072;AL # EGYPTIAN HIEROGLYPH C021
-13073;AL # EGYPTIAN HIEROGLYPH C022
-13074;AL # EGYPTIAN HIEROGLYPH C023
-13075;AL # EGYPTIAN HIEROGLYPH C024
-13076;AL # EGYPTIAN HIEROGLYPH D001
-13077;AL # EGYPTIAN HIEROGLYPH D002
-13078;AL # EGYPTIAN HIEROGLYPH D003
-13079;AL # EGYPTIAN HIEROGLYPH D004
-1307A;AL # EGYPTIAN HIEROGLYPH D005
-1307B;AL # EGYPTIAN HIEROGLYPH D006
-1307C;AL # EGYPTIAN HIEROGLYPH D007
-1307D;AL # EGYPTIAN HIEROGLYPH D008
-1307E;AL # EGYPTIAN HIEROGLYPH D008A
-1307F;AL # EGYPTIAN HIEROGLYPH D009
-13080;AL # EGYPTIAN HIEROGLYPH D010
-13081;AL # EGYPTIAN HIEROGLYPH D011
-13082;AL # EGYPTIAN HIEROGLYPH D012
-13083;AL # EGYPTIAN HIEROGLYPH D013
-13084;AL # EGYPTIAN HIEROGLYPH D014
-13085;AL # EGYPTIAN HIEROGLYPH D015
-13086;AL # EGYPTIAN HIEROGLYPH D016
-13087;AL # EGYPTIAN HIEROGLYPH D017
-13088;AL # EGYPTIAN HIEROGLYPH D018
-13089;AL # EGYPTIAN HIEROGLYPH D019
-1308A;AL # EGYPTIAN HIEROGLYPH D020
-1308B;AL # EGYPTIAN HIEROGLYPH D021
-1308C;AL # EGYPTIAN HIEROGLYPH D022
-1308D;AL # EGYPTIAN HIEROGLYPH D023
-1308E;AL # EGYPTIAN HIEROGLYPH D024
-1308F;AL # EGYPTIAN HIEROGLYPH D025
-13090;AL # EGYPTIAN HIEROGLYPH D026
-13091;AL # EGYPTIAN HIEROGLYPH D027
-13092;AL # EGYPTIAN HIEROGLYPH D027A
-13093;AL # EGYPTIAN HIEROGLYPH D028
-13094;AL # EGYPTIAN HIEROGLYPH D029
-13095;AL # EGYPTIAN HIEROGLYPH D030
-13096;AL # EGYPTIAN HIEROGLYPH D031
-13097;AL # EGYPTIAN HIEROGLYPH D031A
-13098;AL # EGYPTIAN HIEROGLYPH D032
-13099;AL # EGYPTIAN HIEROGLYPH D033
-1309A;AL # EGYPTIAN HIEROGLYPH D034
-1309B;AL # EGYPTIAN HIEROGLYPH D034A
-1309C;AL # EGYPTIAN HIEROGLYPH D035
-1309D;AL # EGYPTIAN HIEROGLYPH D036
-1309E;AL # EGYPTIAN HIEROGLYPH D037
-1309F;AL # EGYPTIAN HIEROGLYPH D038
-130A0;AL # EGYPTIAN HIEROGLYPH D039
-130A1;AL # EGYPTIAN HIEROGLYPH D040
-130A2;AL # EGYPTIAN HIEROGLYPH D041
-130A3;AL # EGYPTIAN HIEROGLYPH D042
-130A4;AL # EGYPTIAN HIEROGLYPH D043
-130A5;AL # EGYPTIAN HIEROGLYPH D044
-130A6;AL # EGYPTIAN HIEROGLYPH D045
-130A7;AL # EGYPTIAN HIEROGLYPH D046
-130A8;AL # EGYPTIAN HIEROGLYPH D046A
-130A9;AL # EGYPTIAN HIEROGLYPH D047
-130AA;AL # EGYPTIAN HIEROGLYPH D048
-130AB;AL # EGYPTIAN HIEROGLYPH D048A
-130AC;AL # EGYPTIAN HIEROGLYPH D049
-130AD;AL # EGYPTIAN HIEROGLYPH D050
-130AE;AL # EGYPTIAN HIEROGLYPH D050A
-130AF;AL # EGYPTIAN HIEROGLYPH D050B
-130B0;AL # EGYPTIAN HIEROGLYPH D050C
-130B1;AL # EGYPTIAN HIEROGLYPH D050D
-130B2;AL # EGYPTIAN HIEROGLYPH D050E
-130B3;AL # EGYPTIAN HIEROGLYPH D050F
-130B4;AL # EGYPTIAN HIEROGLYPH D050G
-130B5;AL # EGYPTIAN HIEROGLYPH D050H
-130B6;AL # EGYPTIAN HIEROGLYPH D050I
-130B7;AL # EGYPTIAN HIEROGLYPH D051
-130B8;AL # EGYPTIAN HIEROGLYPH D052
-130B9;AL # EGYPTIAN HIEROGLYPH D052A
-130BA;AL # EGYPTIAN HIEROGLYPH D053
-130BB;AL # EGYPTIAN HIEROGLYPH D054
-130BC;AL # EGYPTIAN HIEROGLYPH D054A
-130BD;AL # EGYPTIAN HIEROGLYPH D055
-130BE;AL # EGYPTIAN HIEROGLYPH D056
-130BF;AL # EGYPTIAN HIEROGLYPH D057
-130C0;AL # EGYPTIAN HIEROGLYPH D058
-130C1;AL # EGYPTIAN HIEROGLYPH D059
-130C2;AL # EGYPTIAN HIEROGLYPH D060
-130C3;AL # EGYPTIAN HIEROGLYPH D061
-130C4;AL # EGYPTIAN HIEROGLYPH D062
-130C5;AL # EGYPTIAN HIEROGLYPH D063
-130C6;AL # EGYPTIAN HIEROGLYPH D064
-130C7;AL # EGYPTIAN HIEROGLYPH D065
-130C8;AL # EGYPTIAN HIEROGLYPH D066
-130C9;AL # EGYPTIAN HIEROGLYPH D067
-130CA;AL # EGYPTIAN HIEROGLYPH D067A
-130CB;AL # EGYPTIAN HIEROGLYPH D067B
-130CC;AL # EGYPTIAN HIEROGLYPH D067C
-130CD;AL # EGYPTIAN HIEROGLYPH D067D
-130CE;AL # EGYPTIAN HIEROGLYPH D067E
-130CF;AL # EGYPTIAN HIEROGLYPH D067F
-130D0;AL # EGYPTIAN HIEROGLYPH D067G
-130D1;AL # EGYPTIAN HIEROGLYPH D067H
-130D2;AL # EGYPTIAN HIEROGLYPH E001
-130D3;AL # EGYPTIAN HIEROGLYPH E002
-130D4;AL # EGYPTIAN HIEROGLYPH E003
-130D5;AL # EGYPTIAN HIEROGLYPH E004
-130D6;AL # EGYPTIAN HIEROGLYPH E005
-130D7;AL # EGYPTIAN HIEROGLYPH E006
-130D8;AL # EGYPTIAN HIEROGLYPH E007
-130D9;AL # EGYPTIAN HIEROGLYPH E008
-130DA;AL # EGYPTIAN HIEROGLYPH E008A
-130DB;AL # EGYPTIAN HIEROGLYPH E009
-130DC;AL # EGYPTIAN HIEROGLYPH E009A
-130DD;AL # EGYPTIAN HIEROGLYPH E010
-130DE;AL # EGYPTIAN HIEROGLYPH E011
-130DF;AL # EGYPTIAN HIEROGLYPH E012
-130E0;AL # EGYPTIAN HIEROGLYPH E013
-130E1;AL # EGYPTIAN HIEROGLYPH E014
-130E2;AL # EGYPTIAN HIEROGLYPH E015
-130E3;AL # EGYPTIAN HIEROGLYPH E016
-130E4;AL # EGYPTIAN HIEROGLYPH E016A
-130E5;AL # EGYPTIAN HIEROGLYPH E017
-130E6;AL # EGYPTIAN HIEROGLYPH E017A
-130E7;AL # EGYPTIAN HIEROGLYPH E018
-130E8;AL # EGYPTIAN HIEROGLYPH E019
-130E9;AL # EGYPTIAN HIEROGLYPH E020
-130EA;AL # EGYPTIAN HIEROGLYPH E020A
-130EB;AL # EGYPTIAN HIEROGLYPH E021
-130EC;AL # EGYPTIAN HIEROGLYPH E022
-130ED;AL # EGYPTIAN HIEROGLYPH E023
-130EE;AL # EGYPTIAN HIEROGLYPH E024
-130EF;AL # EGYPTIAN HIEROGLYPH E025
-130F0;AL # EGYPTIAN HIEROGLYPH E026
-130F1;AL # EGYPTIAN HIEROGLYPH E027
-130F2;AL # EGYPTIAN HIEROGLYPH E028
-130F3;AL # EGYPTIAN HIEROGLYPH E028A
-130F4;AL # EGYPTIAN HIEROGLYPH E029
-130F5;AL # EGYPTIAN HIEROGLYPH E030
-130F6;AL # EGYPTIAN HIEROGLYPH E031
-130F7;AL # EGYPTIAN HIEROGLYPH E032
-130F8;AL # EGYPTIAN HIEROGLYPH E033
-130F9;AL # EGYPTIAN HIEROGLYPH E034
-130FA;AL # EGYPTIAN HIEROGLYPH E034A
-130FB;AL # EGYPTIAN HIEROGLYPH E036
-130FC;AL # EGYPTIAN HIEROGLYPH E037
-130FD;AL # EGYPTIAN HIEROGLYPH E038
-130FE;AL # EGYPTIAN HIEROGLYPH F001
-130FF;AL # EGYPTIAN HIEROGLYPH F001A
-13100;AL # EGYPTIAN HIEROGLYPH F002
-13101;AL # EGYPTIAN HIEROGLYPH F003
-13102;AL # EGYPTIAN HIEROGLYPH F004
-13103;AL # EGYPTIAN HIEROGLYPH F005
-13104;AL # EGYPTIAN HIEROGLYPH F006
-13105;AL # EGYPTIAN HIEROGLYPH F007
-13106;AL # EGYPTIAN HIEROGLYPH F008
-13107;AL # EGYPTIAN HIEROGLYPH F009
-13108;AL # EGYPTIAN HIEROGLYPH F010
-13109;AL # EGYPTIAN HIEROGLYPH F011
-1310A;AL # EGYPTIAN HIEROGLYPH F012
-1310B;AL # EGYPTIAN HIEROGLYPH F013
-1310C;AL # EGYPTIAN HIEROGLYPH F013A
-1310D;AL # EGYPTIAN HIEROGLYPH F014
-1310E;AL # EGYPTIAN HIEROGLYPH F015
-1310F;AL # EGYPTIAN HIEROGLYPH F016
-13110;AL # EGYPTIAN HIEROGLYPH F017
-13111;AL # EGYPTIAN HIEROGLYPH F018
-13112;AL # EGYPTIAN HIEROGLYPH F019
-13113;AL # EGYPTIAN HIEROGLYPH F020
-13114;AL # EGYPTIAN HIEROGLYPH F021
-13115;AL # EGYPTIAN HIEROGLYPH F021A
-13116;AL # EGYPTIAN HIEROGLYPH F022
-13117;AL # EGYPTIAN HIEROGLYPH F023
-13118;AL # EGYPTIAN HIEROGLYPH F024
-13119;AL # EGYPTIAN HIEROGLYPH F025
-1311A;AL # EGYPTIAN HIEROGLYPH F026
-1311B;AL # EGYPTIAN HIEROGLYPH F027
-1311C;AL # EGYPTIAN HIEROGLYPH F028
-1311D;AL # EGYPTIAN HIEROGLYPH F029
-1311E;AL # EGYPTIAN HIEROGLYPH F030
-1311F;AL # EGYPTIAN HIEROGLYPH F031
-13120;AL # EGYPTIAN HIEROGLYPH F031A
-13121;AL # EGYPTIAN HIEROGLYPH F032
-13122;AL # EGYPTIAN HIEROGLYPH F033
-13123;AL # EGYPTIAN HIEROGLYPH F034
-13124;AL # EGYPTIAN HIEROGLYPH F035
-13125;AL # EGYPTIAN HIEROGLYPH F036
-13126;AL # EGYPTIAN HIEROGLYPH F037
-13127;AL # EGYPTIAN HIEROGLYPH F037A
-13128;AL # EGYPTIAN HIEROGLYPH F038
-13129;AL # EGYPTIAN HIEROGLYPH F038A
-1312A;AL # EGYPTIAN HIEROGLYPH F039
-1312B;AL # EGYPTIAN HIEROGLYPH F040
-1312C;AL # EGYPTIAN HIEROGLYPH F041
-1312D;AL # EGYPTIAN HIEROGLYPH F042
-1312E;AL # EGYPTIAN HIEROGLYPH F043
-1312F;AL # EGYPTIAN HIEROGLYPH F044
-13130;AL # EGYPTIAN HIEROGLYPH F045
-13131;AL # EGYPTIAN HIEROGLYPH F045A
-13132;AL # EGYPTIAN HIEROGLYPH F046
-13133;AL # EGYPTIAN HIEROGLYPH F046A
-13134;AL # EGYPTIAN HIEROGLYPH F047
-13135;AL # EGYPTIAN HIEROGLYPH F047A
-13136;AL # EGYPTIAN HIEROGLYPH F048
-13137;AL # EGYPTIAN HIEROGLYPH F049
-13138;AL # EGYPTIAN HIEROGLYPH F050
-13139;AL # EGYPTIAN HIEROGLYPH F051
-1313A;AL # EGYPTIAN HIEROGLYPH F051A
-1313B;AL # EGYPTIAN HIEROGLYPH F051B
-1313C;AL # EGYPTIAN HIEROGLYPH F051C
-1313D;AL # EGYPTIAN HIEROGLYPH F052
-1313E;AL # EGYPTIAN HIEROGLYPH F053
-1313F;AL # EGYPTIAN HIEROGLYPH G001
-13140;AL # EGYPTIAN HIEROGLYPH G002
-13141;AL # EGYPTIAN HIEROGLYPH G003
-13142;AL # EGYPTIAN HIEROGLYPH G004
-13143;AL # EGYPTIAN HIEROGLYPH G005
-13144;AL # EGYPTIAN HIEROGLYPH G006
-13145;AL # EGYPTIAN HIEROGLYPH G006A
-13146;AL # EGYPTIAN HIEROGLYPH G007
-13147;AL # EGYPTIAN HIEROGLYPH G007A
-13148;AL # EGYPTIAN HIEROGLYPH G007B
-13149;AL # EGYPTIAN HIEROGLYPH G008
-1314A;AL # EGYPTIAN HIEROGLYPH G009
-1314B;AL # EGYPTIAN HIEROGLYPH G010
-1314C;AL # EGYPTIAN HIEROGLYPH G011
-1314D;AL # EGYPTIAN HIEROGLYPH G011A
-1314E;AL # EGYPTIAN HIEROGLYPH G012
-1314F;AL # EGYPTIAN HIEROGLYPH G013
-13150;AL # EGYPTIAN HIEROGLYPH G014
-13151;AL # EGYPTIAN HIEROGLYPH G015
-13152;AL # EGYPTIAN HIEROGLYPH G016
-13153;AL # EGYPTIAN HIEROGLYPH G017
-13154;AL # EGYPTIAN HIEROGLYPH G018
-13155;AL # EGYPTIAN HIEROGLYPH G019
-13156;AL # EGYPTIAN HIEROGLYPH G020
-13157;AL # EGYPTIAN HIEROGLYPH G020A
-13158;AL # EGYPTIAN HIEROGLYPH G021
-13159;AL # EGYPTIAN HIEROGLYPH G022
-1315A;AL # EGYPTIAN HIEROGLYPH G023
-1315B;AL # EGYPTIAN HIEROGLYPH G024
-1315C;AL # EGYPTIAN HIEROGLYPH G025
-1315D;AL # EGYPTIAN HIEROGLYPH G026
-1315E;AL # EGYPTIAN HIEROGLYPH G026A
-1315F;AL # EGYPTIAN HIEROGLYPH G027
-13160;AL # EGYPTIAN HIEROGLYPH G028
-13161;AL # EGYPTIAN HIEROGLYPH G029
-13162;AL # EGYPTIAN HIEROGLYPH G030
-13163;AL # EGYPTIAN HIEROGLYPH G031
-13164;AL # EGYPTIAN HIEROGLYPH G032
-13165;AL # EGYPTIAN HIEROGLYPH G033
-13166;AL # EGYPTIAN HIEROGLYPH G034
-13167;AL # EGYPTIAN HIEROGLYPH G035
-13168;AL # EGYPTIAN HIEROGLYPH G036
-13169;AL # EGYPTIAN HIEROGLYPH G036A
-1316A;AL # EGYPTIAN HIEROGLYPH G037
-1316B;AL # EGYPTIAN HIEROGLYPH G037A
-1316C;AL # EGYPTIAN HIEROGLYPH G038
-1316D;AL # EGYPTIAN HIEROGLYPH G039
-1316E;AL # EGYPTIAN HIEROGLYPH G040
-1316F;AL # EGYPTIAN HIEROGLYPH G041
-13170;AL # EGYPTIAN HIEROGLYPH G042
-13171;AL # EGYPTIAN HIEROGLYPH G043
-13172;AL # EGYPTIAN HIEROGLYPH G043A
-13173;AL # EGYPTIAN HIEROGLYPH G044
-13174;AL # EGYPTIAN HIEROGLYPH G045
-13175;AL # EGYPTIAN HIEROGLYPH G045A
-13176;AL # EGYPTIAN HIEROGLYPH G046
-13177;AL # EGYPTIAN HIEROGLYPH G047
-13178;AL # EGYPTIAN HIEROGLYPH G048
-13179;AL # EGYPTIAN HIEROGLYPH G049
-1317A;AL # EGYPTIAN HIEROGLYPH G050
-1317B;AL # EGYPTIAN HIEROGLYPH G051
-1317C;AL # EGYPTIAN HIEROGLYPH G052
-1317D;AL # EGYPTIAN HIEROGLYPH G053
-1317E;AL # EGYPTIAN HIEROGLYPH G054
-1317F;AL # EGYPTIAN HIEROGLYPH H001
-13180;AL # EGYPTIAN HIEROGLYPH H002
-13181;AL # EGYPTIAN HIEROGLYPH H003
-13182;AL # EGYPTIAN HIEROGLYPH H004
-13183;AL # EGYPTIAN HIEROGLYPH H005
-13184;AL # EGYPTIAN HIEROGLYPH H006
-13185;AL # EGYPTIAN HIEROGLYPH H006A
-13186;AL # EGYPTIAN HIEROGLYPH H007
-13187;AL # EGYPTIAN HIEROGLYPH H008
-13188;AL # EGYPTIAN HIEROGLYPH I001
-13189;AL # EGYPTIAN HIEROGLYPH I002
-1318A;AL # EGYPTIAN HIEROGLYPH I003
-1318B;AL # EGYPTIAN HIEROGLYPH I004
-1318C;AL # EGYPTIAN HIEROGLYPH I005
-1318D;AL # EGYPTIAN HIEROGLYPH I005A
-1318E;AL # EGYPTIAN HIEROGLYPH I006
-1318F;AL # EGYPTIAN HIEROGLYPH I007
-13190;AL # EGYPTIAN HIEROGLYPH I008
-13191;AL # EGYPTIAN HIEROGLYPH I009
-13192;AL # EGYPTIAN HIEROGLYPH I009A
-13193;AL # EGYPTIAN HIEROGLYPH I010
-13194;AL # EGYPTIAN HIEROGLYPH I010A
-13195;AL # EGYPTIAN HIEROGLYPH I011
-13196;AL # EGYPTIAN HIEROGLYPH I011A
-13197;AL # EGYPTIAN HIEROGLYPH I012
-13198;AL # EGYPTIAN HIEROGLYPH I013
-13199;AL # EGYPTIAN HIEROGLYPH I014
-1319A;AL # EGYPTIAN HIEROGLYPH I015
-1319B;AL # EGYPTIAN HIEROGLYPH K001
-1319C;AL # EGYPTIAN HIEROGLYPH K002
-1319D;AL # EGYPTIAN HIEROGLYPH K003
-1319E;AL # EGYPTIAN HIEROGLYPH K004
-1319F;AL # EGYPTIAN HIEROGLYPH K005
-131A0;AL # EGYPTIAN HIEROGLYPH K006
-131A1;AL # EGYPTIAN HIEROGLYPH K007
-131A2;AL # EGYPTIAN HIEROGLYPH K008
-131A3;AL # EGYPTIAN HIEROGLYPH L001
-131A4;AL # EGYPTIAN HIEROGLYPH L002
-131A5;AL # EGYPTIAN HIEROGLYPH L002A
-131A6;AL # EGYPTIAN HIEROGLYPH L003
-131A7;AL # EGYPTIAN HIEROGLYPH L004
-131A8;AL # EGYPTIAN HIEROGLYPH L005
-131A9;AL # EGYPTIAN HIEROGLYPH L006
-131AA;AL # EGYPTIAN HIEROGLYPH L006A
-131AB;AL # EGYPTIAN HIEROGLYPH L007
-131AC;AL # EGYPTIAN HIEROGLYPH L008
-131AD;AL # EGYPTIAN HIEROGLYPH M001
-131AE;AL # EGYPTIAN HIEROGLYPH M001A
-131AF;AL # EGYPTIAN HIEROGLYPH M001B
-131B0;AL # EGYPTIAN HIEROGLYPH M002
-131B1;AL # EGYPTIAN HIEROGLYPH M003
-131B2;AL # EGYPTIAN HIEROGLYPH M003A
-131B3;AL # EGYPTIAN HIEROGLYPH M004
-131B4;AL # EGYPTIAN HIEROGLYPH M005
-131B5;AL # EGYPTIAN HIEROGLYPH M006
-131B6;AL # EGYPTIAN HIEROGLYPH M007
-131B7;AL # EGYPTIAN HIEROGLYPH M008
-131B8;AL # EGYPTIAN HIEROGLYPH M009
-131B9;AL # EGYPTIAN HIEROGLYPH M010
-131BA;AL # EGYPTIAN HIEROGLYPH M010A
-131BB;AL # EGYPTIAN HIEROGLYPH M011
-131BC;AL # EGYPTIAN HIEROGLYPH M012
-131BD;AL # EGYPTIAN HIEROGLYPH M012A
-131BE;AL # EGYPTIAN HIEROGLYPH M012B
-131BF;AL # EGYPTIAN HIEROGLYPH M012C
-131C0;AL # EGYPTIAN HIEROGLYPH M012D
-131C1;AL # EGYPTIAN HIEROGLYPH M012E
-131C2;AL # EGYPTIAN HIEROGLYPH M012F
-131C3;AL # EGYPTIAN HIEROGLYPH M012G
-131C4;AL # EGYPTIAN HIEROGLYPH M012H
-131C5;AL # EGYPTIAN HIEROGLYPH M013
-131C6;AL # EGYPTIAN HIEROGLYPH M014
-131C7;AL # EGYPTIAN HIEROGLYPH M015
-131C8;AL # EGYPTIAN HIEROGLYPH M015A
-131C9;AL # EGYPTIAN HIEROGLYPH M016
-131CA;AL # EGYPTIAN HIEROGLYPH M016A
-131CB;AL # EGYPTIAN HIEROGLYPH M017
-131CC;AL # EGYPTIAN HIEROGLYPH M017A
-131CD;AL # EGYPTIAN HIEROGLYPH M018
-131CE;AL # EGYPTIAN HIEROGLYPH M019
-131CF;AL # EGYPTIAN HIEROGLYPH M020
-131D0;AL # EGYPTIAN HIEROGLYPH M021
-131D1;AL # EGYPTIAN HIEROGLYPH M022
-131D2;AL # EGYPTIAN HIEROGLYPH M022A
-131D3;AL # EGYPTIAN HIEROGLYPH M023
-131D4;AL # EGYPTIAN HIEROGLYPH M024
-131D5;AL # EGYPTIAN HIEROGLYPH M024A
-131D6;AL # EGYPTIAN HIEROGLYPH M025
-131D7;AL # EGYPTIAN HIEROGLYPH M026
-131D8;AL # EGYPTIAN HIEROGLYPH M027
-131D9;AL # EGYPTIAN HIEROGLYPH M028
-131DA;AL # EGYPTIAN HIEROGLYPH M028A
-131DB;AL # EGYPTIAN HIEROGLYPH M029
-131DC;AL # EGYPTIAN HIEROGLYPH M030
-131DD;AL # EGYPTIAN HIEROGLYPH M031
-131DE;AL # EGYPTIAN HIEROGLYPH M031A
-131DF;AL # EGYPTIAN HIEROGLYPH M032
-131E0;AL # EGYPTIAN HIEROGLYPH M033
-131E1;AL # EGYPTIAN HIEROGLYPH M033A
-131E2;AL # EGYPTIAN HIEROGLYPH M033B
-131E3;AL # EGYPTIAN HIEROGLYPH M034
-131E4;AL # EGYPTIAN HIEROGLYPH M035
-131E5;AL # EGYPTIAN HIEROGLYPH M036
-131E6;AL # EGYPTIAN HIEROGLYPH M037
-131E7;AL # EGYPTIAN HIEROGLYPH M038
-131E8;AL # EGYPTIAN HIEROGLYPH M039
-131E9;AL # EGYPTIAN HIEROGLYPH M040
-131EA;AL # EGYPTIAN HIEROGLYPH M040A
-131EB;AL # EGYPTIAN HIEROGLYPH M041
-131EC;AL # EGYPTIAN HIEROGLYPH M042
-131ED;AL # EGYPTIAN HIEROGLYPH M043
-131EE;AL # EGYPTIAN HIEROGLYPH M044
-131EF;AL # EGYPTIAN HIEROGLYPH N001
-131F0;AL # EGYPTIAN HIEROGLYPH N002
-131F1;AL # EGYPTIAN HIEROGLYPH N003
-131F2;AL # EGYPTIAN HIEROGLYPH N004
-131F3;AL # EGYPTIAN HIEROGLYPH N005
-131F4;AL # EGYPTIAN HIEROGLYPH N006
-131F5;AL # EGYPTIAN HIEROGLYPH N007
-131F6;AL # EGYPTIAN HIEROGLYPH N008
-131F7;AL # EGYPTIAN HIEROGLYPH N009
-131F8;AL # EGYPTIAN HIEROGLYPH N010
-131F9;AL # EGYPTIAN HIEROGLYPH N011
-131FA;AL # EGYPTIAN HIEROGLYPH N012
-131FB;AL # EGYPTIAN HIEROGLYPH N013
-131FC;AL # EGYPTIAN HIEROGLYPH N014
-131FD;AL # EGYPTIAN HIEROGLYPH N015
-131FE;AL # EGYPTIAN HIEROGLYPH N016
-131FF;AL # EGYPTIAN HIEROGLYPH N017
-13200;AL # EGYPTIAN HIEROGLYPH N018
-13201;AL # EGYPTIAN HIEROGLYPH N018A
-13202;AL # EGYPTIAN HIEROGLYPH N018B
-13203;AL # EGYPTIAN HIEROGLYPH N019
-13204;AL # EGYPTIAN HIEROGLYPH N020
-13205;AL # EGYPTIAN HIEROGLYPH N021
-13206;AL # EGYPTIAN HIEROGLYPH N022
-13207;AL # EGYPTIAN HIEROGLYPH N023
-13208;AL # EGYPTIAN HIEROGLYPH N024
-13209;AL # EGYPTIAN HIEROGLYPH N025
-1320A;AL # EGYPTIAN HIEROGLYPH N025A
-1320B;AL # EGYPTIAN HIEROGLYPH N026
-1320C;AL # EGYPTIAN HIEROGLYPH N027
-1320D;AL # EGYPTIAN HIEROGLYPH N028
-1320E;AL # EGYPTIAN HIEROGLYPH N029
-1320F;AL # EGYPTIAN HIEROGLYPH N030
-13210;AL # EGYPTIAN HIEROGLYPH N031
-13211;AL # EGYPTIAN HIEROGLYPH N032
-13212;AL # EGYPTIAN HIEROGLYPH N033
-13213;AL # EGYPTIAN HIEROGLYPH N033A
-13214;AL # EGYPTIAN HIEROGLYPH N034
-13215;AL # EGYPTIAN HIEROGLYPH N034A
-13216;AL # EGYPTIAN HIEROGLYPH N035
-13217;AL # EGYPTIAN HIEROGLYPH N035A
-13218;AL # EGYPTIAN HIEROGLYPH N036
-13219;AL # EGYPTIAN HIEROGLYPH N037
-1321A;AL # EGYPTIAN HIEROGLYPH N037A
-1321B;AL # EGYPTIAN HIEROGLYPH N038
-1321C;AL # EGYPTIAN HIEROGLYPH N039
-1321D;AL # EGYPTIAN HIEROGLYPH N040
-1321E;AL # EGYPTIAN HIEROGLYPH N041
-1321F;AL # EGYPTIAN HIEROGLYPH N042
-13220;AL # EGYPTIAN HIEROGLYPH NL001
-13221;AL # EGYPTIAN HIEROGLYPH NL002
-13222;AL # EGYPTIAN HIEROGLYPH NL003
-13223;AL # EGYPTIAN HIEROGLYPH NL004
-13224;AL # EGYPTIAN HIEROGLYPH NL005
-13225;AL # EGYPTIAN HIEROGLYPH NL005A
-13226;AL # EGYPTIAN HIEROGLYPH NL006
-13227;AL # EGYPTIAN HIEROGLYPH NL007
-13228;AL # EGYPTIAN HIEROGLYPH NL008
-13229;AL # EGYPTIAN HIEROGLYPH NL009
-1322A;AL # EGYPTIAN HIEROGLYPH NL010
-1322B;AL # EGYPTIAN HIEROGLYPH NL011
-1322C;AL # EGYPTIAN HIEROGLYPH NL012
-1322D;AL # EGYPTIAN HIEROGLYPH NL013
-1322E;AL # EGYPTIAN HIEROGLYPH NL014
-1322F;AL # EGYPTIAN HIEROGLYPH NL015
-13230;AL # EGYPTIAN HIEROGLYPH NL016
-13231;AL # EGYPTIAN HIEROGLYPH NL017
-13232;AL # EGYPTIAN HIEROGLYPH NL017A
-13233;AL # EGYPTIAN HIEROGLYPH NL018
-13234;AL # EGYPTIAN HIEROGLYPH NL019
-13235;AL # EGYPTIAN HIEROGLYPH NL020
-13236;AL # EGYPTIAN HIEROGLYPH NU001
-13237;AL # EGYPTIAN HIEROGLYPH NU002
-13238;AL # EGYPTIAN HIEROGLYPH NU003
-13239;AL # EGYPTIAN HIEROGLYPH NU004
-1323A;AL # EGYPTIAN HIEROGLYPH NU005
-1323B;AL # EGYPTIAN HIEROGLYPH NU006
-1323C;AL # EGYPTIAN HIEROGLYPH NU007
-1323D;AL # EGYPTIAN HIEROGLYPH NU008
-1323E;AL # EGYPTIAN HIEROGLYPH NU009
-1323F;AL # EGYPTIAN HIEROGLYPH NU010
-13240;AL # EGYPTIAN HIEROGLYPH NU010A
-13241;AL # EGYPTIAN HIEROGLYPH NU011
-13242;AL # EGYPTIAN HIEROGLYPH NU011A
-13243;AL # EGYPTIAN HIEROGLYPH NU012
-13244;AL # EGYPTIAN HIEROGLYPH NU013
-13245;AL # EGYPTIAN HIEROGLYPH NU014
-13246;AL # EGYPTIAN HIEROGLYPH NU015
-13247;AL # EGYPTIAN HIEROGLYPH NU016
-13248;AL # EGYPTIAN HIEROGLYPH NU017
-13249;AL # EGYPTIAN HIEROGLYPH NU018
-1324A;AL # EGYPTIAN HIEROGLYPH NU018A
-1324B;AL # EGYPTIAN HIEROGLYPH NU019
-1324C;AL # EGYPTIAN HIEROGLYPH NU020
-1324D;AL # EGYPTIAN HIEROGLYPH NU021
-1324E;AL # EGYPTIAN HIEROGLYPH NU022
-1324F;AL # EGYPTIAN HIEROGLYPH NU022A
-13250;AL # EGYPTIAN HIEROGLYPH O001
-13251;AL # EGYPTIAN HIEROGLYPH O001A
-13252;AL # EGYPTIAN HIEROGLYPH O002
-13253;AL # EGYPTIAN HIEROGLYPH O003
-13254;AL # EGYPTIAN HIEROGLYPH O004
-13255;AL # EGYPTIAN HIEROGLYPH O005
-13256;AL # EGYPTIAN HIEROGLYPH O005A
-13257;AL # EGYPTIAN HIEROGLYPH O006
-13258;OP # EGYPTIAN HIEROGLYPH O006A
-13259;OP # EGYPTIAN HIEROGLYPH O006B
-1325A;OP # EGYPTIAN HIEROGLYPH O006C
-1325B;CL # EGYPTIAN HIEROGLYPH O006D
-1325C;CL # EGYPTIAN HIEROGLYPH O006E
-1325D;CL # EGYPTIAN HIEROGLYPH O006F
-1325E;AL # EGYPTIAN HIEROGLYPH O007
-1325F;AL # EGYPTIAN HIEROGLYPH O008
-13260;AL # EGYPTIAN HIEROGLYPH O009
-13261;AL # EGYPTIAN HIEROGLYPH O010
-13262;AL # EGYPTIAN HIEROGLYPH O010A
-13263;AL # EGYPTIAN HIEROGLYPH O010B
-13264;AL # EGYPTIAN HIEROGLYPH O010C
-13265;AL # EGYPTIAN HIEROGLYPH O011
-13266;AL # EGYPTIAN HIEROGLYPH O012
-13267;AL # EGYPTIAN HIEROGLYPH O013
-13268;AL # EGYPTIAN HIEROGLYPH O014
-13269;AL # EGYPTIAN HIEROGLYPH O015
-1326A;AL # EGYPTIAN HIEROGLYPH O016
-1326B;AL # EGYPTIAN HIEROGLYPH O017
-1326C;AL # EGYPTIAN HIEROGLYPH O018
-1326D;AL # EGYPTIAN HIEROGLYPH O019
-1326E;AL # EGYPTIAN HIEROGLYPH O019A
-1326F;AL # EGYPTIAN HIEROGLYPH O020
-13270;AL # EGYPTIAN HIEROGLYPH O020A
-13271;AL # EGYPTIAN HIEROGLYPH O021
-13272;AL # EGYPTIAN HIEROGLYPH O022
-13273;AL # EGYPTIAN HIEROGLYPH O023
-13274;AL # EGYPTIAN HIEROGLYPH O024
-13275;AL # EGYPTIAN HIEROGLYPH O024A
-13276;AL # EGYPTIAN HIEROGLYPH O025
-13277;AL # EGYPTIAN HIEROGLYPH O025A
-13278;AL # EGYPTIAN HIEROGLYPH O026
-13279;AL # EGYPTIAN HIEROGLYPH O027
-1327A;AL # EGYPTIAN HIEROGLYPH O028
-1327B;AL # EGYPTIAN HIEROGLYPH O029
-1327C;AL # EGYPTIAN HIEROGLYPH O029A
-1327D;AL # EGYPTIAN HIEROGLYPH O030
-1327E;AL # EGYPTIAN HIEROGLYPH O030A
-1327F;AL # EGYPTIAN HIEROGLYPH O031
-13280;AL # EGYPTIAN HIEROGLYPH O032
-13281;AL # EGYPTIAN HIEROGLYPH O033
-13282;CL # EGYPTIAN HIEROGLYPH O033A
-13283;AL # EGYPTIAN HIEROGLYPH O034
-13284;AL # EGYPTIAN HIEROGLYPH O035
-13285;AL # EGYPTIAN HIEROGLYPH O036
-13286;OP # EGYPTIAN HIEROGLYPH O036A
-13287;CL # EGYPTIAN HIEROGLYPH O036B
-13288;OP # EGYPTIAN HIEROGLYPH O036C
-13289;CL # EGYPTIAN HIEROGLYPH O036D
-1328A;AL # EGYPTIAN HIEROGLYPH O037
-1328B;AL # EGYPTIAN HIEROGLYPH O038
-1328C;AL # EGYPTIAN HIEROGLYPH O039
-1328D;AL # EGYPTIAN HIEROGLYPH O040
-1328E;AL # EGYPTIAN HIEROGLYPH O041
-1328F;AL # EGYPTIAN HIEROGLYPH O042
-13290;AL # EGYPTIAN HIEROGLYPH O043
-13291;AL # EGYPTIAN HIEROGLYPH O044
-13292;AL # EGYPTIAN HIEROGLYPH O045
-13293;AL # EGYPTIAN HIEROGLYPH O046
-13294;AL # EGYPTIAN HIEROGLYPH O047
-13295;AL # EGYPTIAN HIEROGLYPH O048
-13296;AL # EGYPTIAN HIEROGLYPH O049
-13297;AL # EGYPTIAN HIEROGLYPH O050
-13298;AL # EGYPTIAN HIEROGLYPH O050A
-13299;AL # EGYPTIAN HIEROGLYPH O050B
-1329A;AL # EGYPTIAN HIEROGLYPH O051
-1329B;AL # EGYPTIAN HIEROGLYPH P001
-1329C;AL # EGYPTIAN HIEROGLYPH P001A
-1329D;AL # EGYPTIAN HIEROGLYPH P002
-1329E;AL # EGYPTIAN HIEROGLYPH P003
-1329F;AL # EGYPTIAN HIEROGLYPH P003A
-132A0;AL # EGYPTIAN HIEROGLYPH P004
-132A1;AL # EGYPTIAN HIEROGLYPH P005
-132A2;AL # EGYPTIAN HIEROGLYPH P006
-132A3;AL # EGYPTIAN HIEROGLYPH P007
-132A4;AL # EGYPTIAN HIEROGLYPH P008
-132A5;AL # EGYPTIAN HIEROGLYPH P009
-132A6;AL # EGYPTIAN HIEROGLYPH P010
-132A7;AL # EGYPTIAN HIEROGLYPH P011
-132A8;AL # EGYPTIAN HIEROGLYPH Q001
-132A9;AL # EGYPTIAN HIEROGLYPH Q002
-132AA;AL # EGYPTIAN HIEROGLYPH Q003
-132AB;AL # EGYPTIAN HIEROGLYPH Q004
-132AC;AL # EGYPTIAN HIEROGLYPH Q005
-132AD;AL # EGYPTIAN HIEROGLYPH Q006
-132AE;AL # EGYPTIAN HIEROGLYPH Q007
-132AF;AL # EGYPTIAN HIEROGLYPH R001
-132B0;AL # EGYPTIAN HIEROGLYPH R002
-132B1;AL # EGYPTIAN HIEROGLYPH R002A
-132B2;AL # EGYPTIAN HIEROGLYPH R003
-132B3;AL # EGYPTIAN HIEROGLYPH R003A
-132B4;AL # EGYPTIAN HIEROGLYPH R003B
-132B5;AL # EGYPTIAN HIEROGLYPH R004
-132B6;AL # EGYPTIAN HIEROGLYPH R005
-132B7;AL # EGYPTIAN HIEROGLYPH R006
-132B8;AL # EGYPTIAN HIEROGLYPH R007
-132B9;AL # EGYPTIAN HIEROGLYPH R008
-132BA;AL # EGYPTIAN HIEROGLYPH R009
-132BB;AL # EGYPTIAN HIEROGLYPH R010
-132BC;AL # EGYPTIAN HIEROGLYPH R010A
-132BD;AL # EGYPTIAN HIEROGLYPH R011
-132BE;AL # EGYPTIAN HIEROGLYPH R012
-132BF;AL # EGYPTIAN HIEROGLYPH R013
-132C0;AL # EGYPTIAN HIEROGLYPH R014
-132C1;AL # EGYPTIAN HIEROGLYPH R015
-132C2;AL # EGYPTIAN HIEROGLYPH R016
-132C3;AL # EGYPTIAN HIEROGLYPH R016A
-132C4;AL # EGYPTIAN HIEROGLYPH R017
-132C5;AL # EGYPTIAN HIEROGLYPH R018
-132C6;AL # EGYPTIAN HIEROGLYPH R019
-132C7;AL # EGYPTIAN HIEROGLYPH R020
-132C8;AL # EGYPTIAN HIEROGLYPH R021
-132C9;AL # EGYPTIAN HIEROGLYPH R022
-132CA;AL # EGYPTIAN HIEROGLYPH R023
-132CB;AL # EGYPTIAN HIEROGLYPH R024
-132CC;AL # EGYPTIAN HIEROGLYPH R025
-132CD;AL # EGYPTIAN HIEROGLYPH R026
-132CE;AL # EGYPTIAN HIEROGLYPH R027
-132CF;AL # EGYPTIAN HIEROGLYPH R028
-132D0;AL # EGYPTIAN HIEROGLYPH R029
-132D1;AL # EGYPTIAN HIEROGLYPH S001
-132D2;AL # EGYPTIAN HIEROGLYPH S002
-132D3;AL # EGYPTIAN HIEROGLYPH S002A
-132D4;AL # EGYPTIAN HIEROGLYPH S003
-132D5;AL # EGYPTIAN HIEROGLYPH S004
-132D6;AL # EGYPTIAN HIEROGLYPH S005
-132D7;AL # EGYPTIAN HIEROGLYPH S006
-132D8;AL # EGYPTIAN HIEROGLYPH S006A
-132D9;AL # EGYPTIAN HIEROGLYPH S007
-132DA;AL # EGYPTIAN HIEROGLYPH S008
-132DB;AL # EGYPTIAN HIEROGLYPH S009
-132DC;AL # EGYPTIAN HIEROGLYPH S010
-132DD;AL # EGYPTIAN HIEROGLYPH S011
-132DE;AL # EGYPTIAN HIEROGLYPH S012
-132DF;AL # EGYPTIAN HIEROGLYPH S013
-132E0;AL # EGYPTIAN HIEROGLYPH S014
-132E1;AL # EGYPTIAN HIEROGLYPH S014A
-132E2;AL # EGYPTIAN HIEROGLYPH S014B
-132E3;AL # EGYPTIAN HIEROGLYPH S015
-132E4;AL # EGYPTIAN HIEROGLYPH S016
-132E5;AL # EGYPTIAN HIEROGLYPH S017
-132E6;AL # EGYPTIAN HIEROGLYPH S017A
-132E7;AL # EGYPTIAN HIEROGLYPH S018
-132E8;AL # EGYPTIAN HIEROGLYPH S019
-132E9;AL # EGYPTIAN HIEROGLYPH S020
-132EA;AL # EGYPTIAN HIEROGLYPH S021
-132EB;AL # EGYPTIAN HIEROGLYPH S022
-132EC;AL # EGYPTIAN HIEROGLYPH S023
-132ED;AL # EGYPTIAN HIEROGLYPH S024
-132EE;AL # EGYPTIAN HIEROGLYPH S025
-132EF;AL # EGYPTIAN HIEROGLYPH S026
-132F0;AL # EGYPTIAN HIEROGLYPH S026A
-132F1;AL # EGYPTIAN HIEROGLYPH S026B
-132F2;AL # EGYPTIAN HIEROGLYPH S027
-132F3;AL # EGYPTIAN HIEROGLYPH S028
-132F4;AL # EGYPTIAN HIEROGLYPH S029
-132F5;AL # EGYPTIAN HIEROGLYPH S030
-132F6;AL # EGYPTIAN HIEROGLYPH S031
-132F7;AL # EGYPTIAN HIEROGLYPH S032
-132F8;AL # EGYPTIAN HIEROGLYPH S033
-132F9;AL # EGYPTIAN HIEROGLYPH S034
-132FA;AL # EGYPTIAN HIEROGLYPH S035
-132FB;AL # EGYPTIAN HIEROGLYPH S035A
-132FC;AL # EGYPTIAN HIEROGLYPH S036
-132FD;AL # EGYPTIAN HIEROGLYPH S037
-132FE;AL # EGYPTIAN HIEROGLYPH S038
-132FF;AL # EGYPTIAN HIEROGLYPH S039
-13300;AL # EGYPTIAN HIEROGLYPH S040
-13301;AL # EGYPTIAN HIEROGLYPH S041
-13302;AL # EGYPTIAN HIEROGLYPH S042
-13303;AL # EGYPTIAN HIEROGLYPH S043
-13304;AL # EGYPTIAN HIEROGLYPH S044
-13305;AL # EGYPTIAN HIEROGLYPH S045
-13306;AL # EGYPTIAN HIEROGLYPH S046
-13307;AL # EGYPTIAN HIEROGLYPH T001
-13308;AL # EGYPTIAN HIEROGLYPH T002
-13309;AL # EGYPTIAN HIEROGLYPH T003
-1330A;AL # EGYPTIAN HIEROGLYPH T003A
-1330B;AL # EGYPTIAN HIEROGLYPH T004
-1330C;AL # EGYPTIAN HIEROGLYPH T005
-1330D;AL # EGYPTIAN HIEROGLYPH T006
-1330E;AL # EGYPTIAN HIEROGLYPH T007
-1330F;AL # EGYPTIAN HIEROGLYPH T007A
-13310;AL # EGYPTIAN HIEROGLYPH T008
-13311;AL # EGYPTIAN HIEROGLYPH T008A
-13312;AL # EGYPTIAN HIEROGLYPH T009
-13313;AL # EGYPTIAN HIEROGLYPH T009A
-13314;AL # EGYPTIAN HIEROGLYPH T010
-13315;AL # EGYPTIAN HIEROGLYPH T011
-13316;AL # EGYPTIAN HIEROGLYPH T011A
-13317;AL # EGYPTIAN HIEROGLYPH T012
-13318;AL # EGYPTIAN HIEROGLYPH T013
-13319;AL # EGYPTIAN HIEROGLYPH T014
-1331A;AL # EGYPTIAN HIEROGLYPH T015
-1331B;AL # EGYPTIAN HIEROGLYPH T016
-1331C;AL # EGYPTIAN HIEROGLYPH T016A
-1331D;AL # EGYPTIAN HIEROGLYPH T017
-1331E;AL # EGYPTIAN HIEROGLYPH T018
-1331F;AL # EGYPTIAN HIEROGLYPH T019
-13320;AL # EGYPTIAN HIEROGLYPH T020
-13321;AL # EGYPTIAN HIEROGLYPH T021
-13322;AL # EGYPTIAN HIEROGLYPH T022
-13323;AL # EGYPTIAN HIEROGLYPH T023
-13324;AL # EGYPTIAN HIEROGLYPH T024
-13325;AL # EGYPTIAN HIEROGLYPH T025
-13326;AL # EGYPTIAN HIEROGLYPH T026
-13327;AL # EGYPTIAN HIEROGLYPH T027
-13328;AL # EGYPTIAN HIEROGLYPH T028
-13329;AL # EGYPTIAN HIEROGLYPH T029
-1332A;AL # EGYPTIAN HIEROGLYPH T030
-1332B;AL # EGYPTIAN HIEROGLYPH T031
-1332C;AL # EGYPTIAN HIEROGLYPH T032
-1332D;AL # EGYPTIAN HIEROGLYPH T032A
-1332E;AL # EGYPTIAN HIEROGLYPH T033
-1332F;AL # EGYPTIAN HIEROGLYPH T033A
-13330;AL # EGYPTIAN HIEROGLYPH T034
-13331;AL # EGYPTIAN HIEROGLYPH T035
-13332;AL # EGYPTIAN HIEROGLYPH T036
-13333;AL # EGYPTIAN HIEROGLYPH U001
-13334;AL # EGYPTIAN HIEROGLYPH U002
-13335;AL # EGYPTIAN HIEROGLYPH U003
-13336;AL # EGYPTIAN HIEROGLYPH U004
-13337;AL # EGYPTIAN HIEROGLYPH U005
-13338;AL # EGYPTIAN HIEROGLYPH U006
-13339;AL # EGYPTIAN HIEROGLYPH U006A
-1333A;AL # EGYPTIAN HIEROGLYPH U006B
-1333B;AL # EGYPTIAN HIEROGLYPH U007
-1333C;AL # EGYPTIAN HIEROGLYPH U008
-1333D;AL # EGYPTIAN HIEROGLYPH U009
-1333E;AL # EGYPTIAN HIEROGLYPH U010
-1333F;AL # EGYPTIAN HIEROGLYPH U011
-13340;AL # EGYPTIAN HIEROGLYPH U012
-13341;AL # EGYPTIAN HIEROGLYPH U013
-13342;AL # EGYPTIAN HIEROGLYPH U014
-13343;AL # EGYPTIAN HIEROGLYPH U015
-13344;AL # EGYPTIAN HIEROGLYPH U016
-13345;AL # EGYPTIAN HIEROGLYPH U017
-13346;AL # EGYPTIAN HIEROGLYPH U018
-13347;AL # EGYPTIAN HIEROGLYPH U019
-13348;AL # EGYPTIAN HIEROGLYPH U020
-13349;AL # EGYPTIAN HIEROGLYPH U021
-1334A;AL # EGYPTIAN HIEROGLYPH U022
-1334B;AL # EGYPTIAN HIEROGLYPH U023
-1334C;AL # EGYPTIAN HIEROGLYPH U023A
-1334D;AL # EGYPTIAN HIEROGLYPH U024
-1334E;AL # EGYPTIAN HIEROGLYPH U025
-1334F;AL # EGYPTIAN HIEROGLYPH U026
-13350;AL # EGYPTIAN HIEROGLYPH U027
-13351;AL # EGYPTIAN HIEROGLYPH U028
-13352;AL # EGYPTIAN HIEROGLYPH U029
-13353;AL # EGYPTIAN HIEROGLYPH U029A
-13354;AL # EGYPTIAN HIEROGLYPH U030
-13355;AL # EGYPTIAN HIEROGLYPH U031
-13356;AL # EGYPTIAN HIEROGLYPH U032
-13357;AL # EGYPTIAN HIEROGLYPH U032A
-13358;AL # EGYPTIAN HIEROGLYPH U033
-13359;AL # EGYPTIAN HIEROGLYPH U034
-1335A;AL # EGYPTIAN HIEROGLYPH U035
-1335B;AL # EGYPTIAN HIEROGLYPH U036
-1335C;AL # EGYPTIAN HIEROGLYPH U037
-1335D;AL # EGYPTIAN HIEROGLYPH U038
-1335E;AL # EGYPTIAN HIEROGLYPH U039
-1335F;AL # EGYPTIAN HIEROGLYPH U040
-13360;AL # EGYPTIAN HIEROGLYPH U041
-13361;AL # EGYPTIAN HIEROGLYPH U042
-13362;AL # EGYPTIAN HIEROGLYPH V001
-13363;AL # EGYPTIAN HIEROGLYPH V001A
-13364;AL # EGYPTIAN HIEROGLYPH V001B
-13365;AL # EGYPTIAN HIEROGLYPH V001C
-13366;AL # EGYPTIAN HIEROGLYPH V001D
-13367;AL # EGYPTIAN HIEROGLYPH V001E
-13368;AL # EGYPTIAN HIEROGLYPH V001F
-13369;AL # EGYPTIAN HIEROGLYPH V001G
-1336A;AL # EGYPTIAN HIEROGLYPH V001H
-1336B;AL # EGYPTIAN HIEROGLYPH V001I
-1336C;AL # EGYPTIAN HIEROGLYPH V002
-1336D;AL # EGYPTIAN HIEROGLYPH V002A
-1336E;AL # EGYPTIAN HIEROGLYPH V003
-1336F;AL # EGYPTIAN HIEROGLYPH V004
-13370;AL # EGYPTIAN HIEROGLYPH V005
-13371;AL # EGYPTIAN HIEROGLYPH V006
-13372;AL # EGYPTIAN HIEROGLYPH V007
-13373;AL # EGYPTIAN HIEROGLYPH V007A
-13374;AL # EGYPTIAN HIEROGLYPH V007B
-13375;AL # EGYPTIAN HIEROGLYPH V008
-13376;AL # EGYPTIAN HIEROGLYPH V009
-13377;AL # EGYPTIAN HIEROGLYPH V010
-13378;AL # EGYPTIAN HIEROGLYPH V011
-13379;OP # EGYPTIAN HIEROGLYPH V011A
-1337A;CL # EGYPTIAN HIEROGLYPH V011B
-1337B;CL # EGYPTIAN HIEROGLYPH V011C
-1337C;AL # EGYPTIAN HIEROGLYPH V012
-1337D;AL # EGYPTIAN HIEROGLYPH V012A
-1337E;AL # EGYPTIAN HIEROGLYPH V012B
-1337F;AL # EGYPTIAN HIEROGLYPH V013
-13380;AL # EGYPTIAN HIEROGLYPH V014
-13381;AL # EGYPTIAN HIEROGLYPH V015
-13382;AL # EGYPTIAN HIEROGLYPH V016
-13383;AL # EGYPTIAN HIEROGLYPH V017
-13384;AL # EGYPTIAN HIEROGLYPH V018
-13385;AL # EGYPTIAN HIEROGLYPH V019
-13386;AL # EGYPTIAN HIEROGLYPH V020
-13387;AL # EGYPTIAN HIEROGLYPH V020A
-13388;AL # EGYPTIAN HIEROGLYPH V020B
-13389;AL # EGYPTIAN HIEROGLYPH V020C
-1338A;AL # EGYPTIAN HIEROGLYPH V020D
-1338B;AL # EGYPTIAN HIEROGLYPH V020E
-1338C;AL # EGYPTIAN HIEROGLYPH V020F
-1338D;AL # EGYPTIAN HIEROGLYPH V020G
-1338E;AL # EGYPTIAN HIEROGLYPH V020H
-1338F;AL # EGYPTIAN HIEROGLYPH V020I
-13390;AL # EGYPTIAN HIEROGLYPH V020J
-13391;AL # EGYPTIAN HIEROGLYPH V020K
-13392;AL # EGYPTIAN HIEROGLYPH V020L
-13393;AL # EGYPTIAN HIEROGLYPH V021
-13394;AL # EGYPTIAN HIEROGLYPH V022
-13395;AL # EGYPTIAN HIEROGLYPH V023
-13396;AL # EGYPTIAN HIEROGLYPH V023A
-13397;AL # EGYPTIAN HIEROGLYPH V024
-13398;AL # EGYPTIAN HIEROGLYPH V025
-13399;AL # EGYPTIAN HIEROGLYPH V026
-1339A;AL # EGYPTIAN HIEROGLYPH V027
-1339B;AL # EGYPTIAN HIEROGLYPH V028
-1339C;AL # EGYPTIAN HIEROGLYPH V028A
-1339D;AL # EGYPTIAN HIEROGLYPH V029
-1339E;AL # EGYPTIAN HIEROGLYPH V029A
-1339F;AL # EGYPTIAN HIEROGLYPH V030
-133A0;AL # EGYPTIAN HIEROGLYPH V030A
-133A1;AL # EGYPTIAN HIEROGLYPH V031
-133A2;AL # EGYPTIAN HIEROGLYPH V031A
-133A3;AL # EGYPTIAN HIEROGLYPH V032
-133A4;AL # EGYPTIAN HIEROGLYPH V033
-133A5;AL # EGYPTIAN HIEROGLYPH V033A
-133A6;AL # EGYPTIAN HIEROGLYPH V034
-133A7;AL # EGYPTIAN HIEROGLYPH V035
-133A8;AL # EGYPTIAN HIEROGLYPH V036
-133A9;AL # EGYPTIAN HIEROGLYPH V037
-133AA;AL # EGYPTIAN HIEROGLYPH V037A
-133AB;AL # EGYPTIAN HIEROGLYPH V038
-133AC;AL # EGYPTIAN HIEROGLYPH V039
-133AD;AL # EGYPTIAN HIEROGLYPH V040
-133AE;AL # EGYPTIAN HIEROGLYPH V040A
-133AF;AL # EGYPTIAN HIEROGLYPH W001
-133B0;AL # EGYPTIAN HIEROGLYPH W002
-133B1;AL # EGYPTIAN HIEROGLYPH W003
-133B2;AL # EGYPTIAN HIEROGLYPH W003A
-133B3;AL # EGYPTIAN HIEROGLYPH W004
-133B4;AL # EGYPTIAN HIEROGLYPH W005
-133B5;AL # EGYPTIAN HIEROGLYPH W006
-133B6;AL # EGYPTIAN HIEROGLYPH W007
-133B7;AL # EGYPTIAN HIEROGLYPH W008
-133B8;AL # EGYPTIAN HIEROGLYPH W009
-133B9;AL # EGYPTIAN HIEROGLYPH W009A
-133BA;AL # EGYPTIAN HIEROGLYPH W010
-133BB;AL # EGYPTIAN HIEROGLYPH W010A
-133BC;AL # EGYPTIAN HIEROGLYPH W011
-133BD;AL # EGYPTIAN HIEROGLYPH W012
-133BE;AL # EGYPTIAN HIEROGLYPH W013
-133BF;AL # EGYPTIAN HIEROGLYPH W014
-133C0;AL # EGYPTIAN HIEROGLYPH W014A
-133C1;AL # EGYPTIAN HIEROGLYPH W015
-133C2;AL # EGYPTIAN HIEROGLYPH W016
-133C3;AL # EGYPTIAN HIEROGLYPH W017
-133C4;AL # EGYPTIAN HIEROGLYPH W017A
-133C5;AL # EGYPTIAN HIEROGLYPH W018
-133C6;AL # EGYPTIAN HIEROGLYPH W018A
-133C7;AL # EGYPTIAN HIEROGLYPH W019
-133C8;AL # EGYPTIAN HIEROGLYPH W020
-133C9;AL # EGYPTIAN HIEROGLYPH W021
-133CA;AL # EGYPTIAN HIEROGLYPH W022
-133CB;AL # EGYPTIAN HIEROGLYPH W023
-133CC;AL # EGYPTIAN HIEROGLYPH W024
-133CD;AL # EGYPTIAN HIEROGLYPH W024A
-133CE;AL # EGYPTIAN HIEROGLYPH W025
-133CF;AL # EGYPTIAN HIEROGLYPH X001
-133D0;AL # EGYPTIAN HIEROGLYPH X002
-133D1;AL # EGYPTIAN HIEROGLYPH X003
-133D2;AL # EGYPTIAN HIEROGLYPH X004
-133D3;AL # EGYPTIAN HIEROGLYPH X004A
-133D4;AL # EGYPTIAN HIEROGLYPH X004B
-133D5;AL # EGYPTIAN HIEROGLYPH X005
-133D6;AL # EGYPTIAN HIEROGLYPH X006
-133D7;AL # EGYPTIAN HIEROGLYPH X006A
-133D8;AL # EGYPTIAN HIEROGLYPH X007
-133D9;AL # EGYPTIAN HIEROGLYPH X008
-133DA;AL # EGYPTIAN HIEROGLYPH X008A
-133DB;AL # EGYPTIAN HIEROGLYPH Y001
-133DC;AL # EGYPTIAN HIEROGLYPH Y001A
-133DD;AL # EGYPTIAN HIEROGLYPH Y002
-133DE;AL # EGYPTIAN HIEROGLYPH Y003
-133DF;AL # EGYPTIAN HIEROGLYPH Y004
-133E0;AL # EGYPTIAN HIEROGLYPH Y005
-133E1;AL # EGYPTIAN HIEROGLYPH Y006
-133E2;AL # EGYPTIAN HIEROGLYPH Y007
-133E3;AL # EGYPTIAN HIEROGLYPH Y008
-133E4;AL # EGYPTIAN HIEROGLYPH Z001
-133E5;AL # EGYPTIAN HIEROGLYPH Z002
-133E6;AL # EGYPTIAN HIEROGLYPH Z002A
-133E7;AL # EGYPTIAN HIEROGLYPH Z002B
-133E8;AL # EGYPTIAN HIEROGLYPH Z002C
-133E9;AL # EGYPTIAN HIEROGLYPH Z002D
-133EA;AL # EGYPTIAN HIEROGLYPH Z003
-133EB;AL # EGYPTIAN HIEROGLYPH Z003A
-133EC;AL # EGYPTIAN HIEROGLYPH Z003B
-133ED;AL # EGYPTIAN HIEROGLYPH Z004
-133EE;AL # EGYPTIAN HIEROGLYPH Z004A
-133EF;AL # EGYPTIAN HIEROGLYPH Z005
-133F0;AL # EGYPTIAN HIEROGLYPH Z005A
-133F1;AL # EGYPTIAN HIEROGLYPH Z006
-133F2;AL # EGYPTIAN HIEROGLYPH Z007
-133F3;AL # EGYPTIAN HIEROGLYPH Z008
-133F4;AL # EGYPTIAN HIEROGLYPH Z009
-133F5;AL # EGYPTIAN HIEROGLYPH Z010
-133F6;AL # EGYPTIAN HIEROGLYPH Z011
-133F7;AL # EGYPTIAN HIEROGLYPH Z012
-133F8;AL # EGYPTIAN HIEROGLYPH Z013
-133F9;AL # EGYPTIAN HIEROGLYPH Z014
-133FA;AL # EGYPTIAN HIEROGLYPH Z015
-133FB;AL # EGYPTIAN HIEROGLYPH Z015A
-133FC;AL # EGYPTIAN HIEROGLYPH Z015B
-133FD;AL # EGYPTIAN HIEROGLYPH Z015C
-133FE;AL # EGYPTIAN HIEROGLYPH Z015D
-133FF;AL # EGYPTIAN HIEROGLYPH Z015E
-13400;AL # EGYPTIAN HIEROGLYPH Z015F
-13401;AL # EGYPTIAN HIEROGLYPH Z015G
-13402;AL # EGYPTIAN HIEROGLYPH Z015H
-13403;AL # EGYPTIAN HIEROGLYPH Z015I
-13404;AL # EGYPTIAN HIEROGLYPH Z016
-13405;AL # EGYPTIAN HIEROGLYPH Z016A
-13406;AL # EGYPTIAN HIEROGLYPH Z016B
-13407;AL # EGYPTIAN HIEROGLYPH Z016C
-13408;AL # EGYPTIAN HIEROGLYPH Z016D
-13409;AL # EGYPTIAN HIEROGLYPH Z016E
-1340A;AL # EGYPTIAN HIEROGLYPH Z016F
-1340B;AL # EGYPTIAN HIEROGLYPH Z016G
-1340C;AL # EGYPTIAN HIEROGLYPH Z016H
-1340D;AL # EGYPTIAN HIEROGLYPH AA001
-1340E;AL # EGYPTIAN HIEROGLYPH AA002
-1340F;AL # EGYPTIAN HIEROGLYPH AA003
-13410;AL # EGYPTIAN HIEROGLYPH AA004
-13411;AL # EGYPTIAN HIEROGLYPH AA005
-13412;AL # EGYPTIAN HIEROGLYPH AA006
-13413;AL # EGYPTIAN HIEROGLYPH AA007
-13414;AL # EGYPTIAN HIEROGLYPH AA007A
-13415;AL # EGYPTIAN HIEROGLYPH AA007B
-13416;AL # EGYPTIAN HIEROGLYPH AA008
-13417;AL # EGYPTIAN HIEROGLYPH AA009
-13418;AL # EGYPTIAN HIEROGLYPH AA010
-13419;AL # EGYPTIAN HIEROGLYPH AA011
-1341A;AL # EGYPTIAN HIEROGLYPH AA012
-1341B;AL # EGYPTIAN HIEROGLYPH AA013
-1341C;AL # EGYPTIAN HIEROGLYPH AA014
-1341D;AL # EGYPTIAN HIEROGLYPH AA015
-1341E;AL # EGYPTIAN HIEROGLYPH AA016
-1341F;AL # EGYPTIAN HIEROGLYPH AA017
-13420;AL # EGYPTIAN HIEROGLYPH AA018
-13421;AL # EGYPTIAN HIEROGLYPH AA019
-13422;AL # EGYPTIAN HIEROGLYPH AA020
-13423;AL # EGYPTIAN HIEROGLYPH AA021
-13424;AL # EGYPTIAN HIEROGLYPH AA022
-13425;AL # EGYPTIAN HIEROGLYPH AA023
-13426;AL # EGYPTIAN HIEROGLYPH AA024
-13427;AL # EGYPTIAN HIEROGLYPH AA025
-13428;AL # EGYPTIAN HIEROGLYPH AA026
-13429;AL # EGYPTIAN HIEROGLYPH AA027
-1342A;AL # EGYPTIAN HIEROGLYPH AA028
-1342B;AL # EGYPTIAN HIEROGLYPH AA029
-1342C;AL # EGYPTIAN HIEROGLYPH AA030
-1342D;AL # EGYPTIAN HIEROGLYPH AA031
-1342E;AL # EGYPTIAN HIEROGLYPH AA032
-16800;AL # BAMUM LETTER PHASE-A NGKUE MFON
-16801;AL # BAMUM LETTER PHASE-A GBIEE FON
-16802;AL # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803;AL # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804;AL # BAMUM LETTER PHASE-A NAA MFON
-16805;AL # BAMUM LETTER PHASE-A SHUENSHUET
-16806;AL # BAMUM LETTER PHASE-A TITA MFON
-16807;AL # BAMUM LETTER PHASE-A NZA MFON
-16808;AL # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809;AL # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A;AL # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B;AL # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C;AL # BAMUM LETTER PHASE-A TU MAEMBA
-1680D;AL # BAMUM LETTER PHASE-A NGANGU
-1680E;AL # BAMUM LETTER PHASE-A MAEMVEUX
-1680F;AL # BAMUM LETTER PHASE-A MANSUAE
-16810;AL # BAMUM LETTER PHASE-A MVEUAENGAM
-16811;AL # BAMUM LETTER PHASE-A SEUNYAM
-16812;AL # BAMUM LETTER PHASE-A NTOQPEN
-16813;AL # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814;AL # BAMUM LETTER PHASE-A NKINDI
-16815;AL # BAMUM LETTER PHASE-A SUU
-16816;AL # BAMUM LETTER PHASE-A NGKUENZEUM
-16817;AL # BAMUM LETTER PHASE-A LAPAQ
-16818;AL # BAMUM LETTER PHASE-A LET KUT
-16819;AL # BAMUM LETTER PHASE-A NTAP MFAA
-1681A;AL # BAMUM LETTER PHASE-A MAEKEUP
-1681B;AL # BAMUM LETTER PHASE-A PASHAE
-1681C;AL # BAMUM LETTER PHASE-A GHEUAERAE
-1681D;AL # BAMUM LETTER PHASE-A PAMSHAE
-1681E;AL # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F;AL # BAMUM LETTER PHASE-A NZUN MEUT
-16820;AL # BAMUM LETTER PHASE-A U YUQ NAE
-16821;AL # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822;AL # BAMUM LETTER PHASE-A NTAP NTAA
-16823;AL # BAMUM LETTER PHASE-A SISA
-16824;AL # BAMUM LETTER PHASE-A MGBASA
-16825;AL # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826;AL # BAMUM LETTER PHASE-A MOOMPUQ
-16827;AL # BAMUM LETTER PHASE-A KAFA
-16828;AL # BAMUM LETTER PHASE-A PA LEERAEWA
-16829;AL # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A;AL # BAMUM LETTER PHASE-A PET
-1682B;AL # BAMUM LETTER PHASE-A MAEMKPEN
-1682C;AL # BAMUM LETTER PHASE-A NIKA
-1682D;AL # BAMUM LETTER PHASE-A PUP
-1682E;AL # BAMUM LETTER PHASE-A TUAEP
-1682F;AL # BAMUM LETTER PHASE-A LUAEP
-16830;AL # BAMUM LETTER PHASE-A SONJAM
-16831;AL # BAMUM LETTER PHASE-A TEUTEUWEN
-16832;AL # BAMUM LETTER PHASE-A MAENYI
-16833;AL # BAMUM LETTER PHASE-A KET
-16834;AL # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835;AL # BAMUM LETTER PHASE-A KUOQ
-16836;AL # BAMUM LETTER PHASE-A MOOMEUT
-16837;AL # BAMUM LETTER PHASE-A SHUM
-16838;AL # BAMUM LETTER PHASE-A LOMMAE
-16839;AL # BAMUM LETTER PHASE-A FIRI
-1683A;AL # BAMUM LETTER PHASE-A ROM
-1683B;AL # BAMUM LETTER PHASE-A KPOQ
-1683C;AL # BAMUM LETTER PHASE-A SOQ
-1683D;AL # BAMUM LETTER PHASE-A MAP PIEET
-1683E;AL # BAMUM LETTER PHASE-A SHIRAE
-1683F;AL # BAMUM LETTER PHASE-A NTAP
-16840;AL # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841;AL # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842;AL # BAMUM LETTER PHASE-A PAARAE
-16843;AL # BAMUM LETTER PHASE-A NKAARAE
-16844;AL # BAMUM LETTER PHASE-A UNKNOWN
-16845;AL # BAMUM LETTER PHASE-A NGGEN
-16846;AL # BAMUM LETTER PHASE-A MAESI
-16847;AL # BAMUM LETTER PHASE-A NJAM
-16848;AL # BAMUM LETTER PHASE-A MBANYI
-16849;AL # BAMUM LETTER PHASE-A NYET
-1684A;AL # BAMUM LETTER PHASE-A TEUAEN
-1684B;AL # BAMUM LETTER PHASE-A SOT
-1684C;AL # BAMUM LETTER PHASE-A PAAM
-1684D;AL # BAMUM LETTER PHASE-A NSHIEE
-1684E;AL # BAMUM LETTER PHASE-A MAEM
-1684F;AL # BAMUM LETTER PHASE-A NYI
-16850;AL # BAMUM LETTER PHASE-A KAQ
-16851;AL # BAMUM LETTER PHASE-A NSHA
-16852;AL # BAMUM LETTER PHASE-A VEE
-16853;AL # BAMUM LETTER PHASE-A LU
-16854;AL # BAMUM LETTER PHASE-A NEN
-16855;AL # BAMUM LETTER PHASE-A NAQ
-16856;AL # BAMUM LETTER PHASE-A MBAQ
-16857;AL # BAMUM LETTER PHASE-B NSHUET
-16858;AL # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859;AL # BAMUM LETTER PHASE-B SIEE
-1685A;AL # BAMUM LETTER PHASE-B SET TU
-1685B;AL # BAMUM LETTER PHASE-B LOM NTEUM
-1685C;AL # BAMUM LETTER PHASE-B MBA MAELEE
-1685D;AL # BAMUM LETTER PHASE-B KIEEM
-1685E;AL # BAMUM LETTER PHASE-B YEURAE
-1685F;AL # BAMUM LETTER PHASE-B MBAARAE
-16860;AL # BAMUM LETTER PHASE-B KAM
-16861;AL # BAMUM LETTER PHASE-B PEESHI
-16862;AL # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863;AL # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864;AL # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865;AL # BAMUM LETTER PHASE-B NDU NJAA
-16866;AL # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867;AL # BAMUM LETTER PHASE-B PIT
-16868;AL # BAMUM LETTER PHASE-B TU NSIEE
-16869;AL # BAMUM LETTER PHASE-B SHET NJAQ
-1686A;AL # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B;AL # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C;AL # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D;AL # BAMUM LETTER PHASE-B NYI NTEUM
-1686E;AL # BAMUM LETTER PHASE-B KEUPUQ
-1686F;AL # BAMUM LETTER PHASE-B GHEUGHEN
-16870;AL # BAMUM LETTER PHASE-B KEUYEUX
-16871;AL # BAMUM LETTER PHASE-B LAANAE
-16872;AL # BAMUM LETTER PHASE-B PARUM
-16873;AL # BAMUM LETTER PHASE-B VEUM
-16874;AL # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875;AL # BAMUM LETTER PHASE-B NGGEU MBU
-16876;AL # BAMUM LETTER PHASE-B WUAET
-16877;AL # BAMUM LETTER PHASE-B SAKEUAE
-16878;AL # BAMUM LETTER PHASE-B TAAM
-16879;AL # BAMUM LETTER PHASE-B MEUQ
-1687A;AL # BAMUM LETTER PHASE-B NGGUOQ
-1687B;AL # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C;AL # BAMUM LETTER PHASE-B MFIYAQ
-1687D;AL # BAMUM LETTER PHASE-B SUE
-1687E;AL # BAMUM LETTER PHASE-B MBEURI
-1687F;AL # BAMUM LETTER PHASE-B MONTIEEN
-16880;AL # BAMUM LETTER PHASE-B NYAEMAE
-16881;AL # BAMUM LETTER PHASE-B PUNGAAM
-16882;AL # BAMUM LETTER PHASE-B MEUT NGGEET
-16883;AL # BAMUM LETTER PHASE-B FEUX
-16884;AL # BAMUM LETTER PHASE-B MBUOQ
-16885;AL # BAMUM LETTER PHASE-B FEE
-16886;AL # BAMUM LETTER PHASE-B KEUAEM
-16887;AL # BAMUM LETTER PHASE-B MA NJEUAENA
-16888;AL # BAMUM LETTER PHASE-B MA NJUQA
-16889;AL # BAMUM LETTER PHASE-B LET
-1688A;AL # BAMUM LETTER PHASE-B NGGAAM
-1688B;AL # BAMUM LETTER PHASE-B NSEN
-1688C;AL # BAMUM LETTER PHASE-B MA
-1688D;AL # BAMUM LETTER PHASE-B KIQ
-1688E;AL # BAMUM LETTER PHASE-B NGOM
-1688F;AL # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890;AL # BAMUM LETTER PHASE-C NZA
-16891;AL # BAMUM LETTER PHASE-C YUM
-16892;AL # BAMUM LETTER PHASE-C WANGKUOQ
-16893;AL # BAMUM LETTER PHASE-C NGGEN
-16894;AL # BAMUM LETTER PHASE-C NDEUAEREE
-16895;AL # BAMUM LETTER PHASE-C NGKAQ
-16896;AL # BAMUM LETTER PHASE-C GHARAE
-16897;AL # BAMUM LETTER PHASE-C MBEEKEET
-16898;AL # BAMUM LETTER PHASE-C GBAYI
-16899;AL # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A;AL # BAMUM LETTER PHASE-C NTU MBIT
-1689B;AL # BAMUM LETTER PHASE-C MBEUM
-1689C;AL # BAMUM LETTER PHASE-C PIRIEEN
-1689D;AL # BAMUM LETTER PHASE-C NDOMBU
-1689E;AL # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F;AL # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0;AL # BAMUM LETTER PHASE-C GHAP
-168A1;AL # BAMUM LETTER PHASE-C KEUKAQ
-168A2;AL # BAMUM LETTER PHASE-C YU MUOMAE
-168A3;AL # BAMUM LETTER PHASE-C NZEUM
-168A4;AL # BAMUM LETTER PHASE-C MBUE
-168A5;AL # BAMUM LETTER PHASE-C NSEUAEN
-168A6;AL # BAMUM LETTER PHASE-C MBIT
-168A7;AL # BAMUM LETTER PHASE-C YEUQ
-168A8;AL # BAMUM LETTER PHASE-C KPARAQ
-168A9;AL # BAMUM LETTER PHASE-C KAA
-168AA;AL # BAMUM LETTER PHASE-C SEUX
-168AB;AL # BAMUM LETTER PHASE-C NDIDA
-168AC;AL # BAMUM LETTER PHASE-C TAASHAE
-168AD;AL # BAMUM LETTER PHASE-C NJUEQ
-168AE;AL # BAMUM LETTER PHASE-C TITA YUE
-168AF;AL # BAMUM LETTER PHASE-C SUAET
-168B0;AL # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1;AL # BAMUM LETTER PHASE-C VEUX
-168B2;AL # BAMUM LETTER PHASE-C NANSANAQ
-168B3;AL # BAMUM LETTER PHASE-C MA KEUAERI
-168B4;AL # BAMUM LETTER PHASE-C NTAA
-168B5;AL # BAMUM LETTER PHASE-C NGGUON
-168B6;AL # BAMUM LETTER PHASE-C LAP
-168B7;AL # BAMUM LETTER PHASE-C MBIRIEEN
-168B8;AL # BAMUM LETTER PHASE-C MGBASAQ
-168B9;AL # BAMUM LETTER PHASE-C NTEUNGBA
-168BA;AL # BAMUM LETTER PHASE-C TEUTEUX
-168BB;AL # BAMUM LETTER PHASE-C NGGUM
-168BC;AL # BAMUM LETTER PHASE-C FUE
-168BD;AL # BAMUM LETTER PHASE-C NDEUT
-168BE;AL # BAMUM LETTER PHASE-C NSA
-168BF;AL # BAMUM LETTER PHASE-C NSHAQ
-168C0;AL # BAMUM LETTER PHASE-C BUNG
-168C1;AL # BAMUM LETTER PHASE-C VEUAEPEN
-168C2;AL # BAMUM LETTER PHASE-C MBERAE
-168C3;AL # BAMUM LETTER PHASE-C RU
-168C4;AL # BAMUM LETTER PHASE-C NJAEM
-168C5;AL # BAMUM LETTER PHASE-C LAM
-168C6;AL # BAMUM LETTER PHASE-C TITUAEP
-168C7;AL # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8;AL # BAMUM LETTER PHASE-C NJEEEE
-168C9;AL # BAMUM LETTER PHASE-C KET
-168CA;AL # BAMUM LETTER PHASE-C NGGU
-168CB;AL # BAMUM LETTER PHASE-C MAESI
-168CC;AL # BAMUM LETTER PHASE-C MBUAEM
-168CD;AL # BAMUM LETTER PHASE-C LU
-168CE;AL # BAMUM LETTER PHASE-C KUT
-168CF;AL # BAMUM LETTER PHASE-C NJAM
-168D0;AL # BAMUM LETTER PHASE-C NGOM
-168D1;AL # BAMUM LETTER PHASE-C WUP
-168D2;AL # BAMUM LETTER PHASE-C NGGUEET
-168D3;AL # BAMUM LETTER PHASE-C NSOM
-168D4;AL # BAMUM LETTER PHASE-C NTEN
-168D5;AL # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6;AL # BAMUM LETTER PHASE-C NSUN
-168D7;AL # BAMUM LETTER PHASE-C NDAM
-168D8;AL # BAMUM LETTER PHASE-C MA NSIEE
-168D9;AL # BAMUM LETTER PHASE-C YAA
-168DA;AL # BAMUM LETTER PHASE-C NDAP
-168DB;AL # BAMUM LETTER PHASE-C SHUEQ
-168DC;AL # BAMUM LETTER PHASE-C SETFON
-168DD;AL # BAMUM LETTER PHASE-C MBI
-168DE;AL # BAMUM LETTER PHASE-C MAEMBA
-168DF;AL # BAMUM LETTER PHASE-C MBANYI
-168E0;AL # BAMUM LETTER PHASE-C KEUSEUX
-168E1;AL # BAMUM LETTER PHASE-C MBEUX
-168E2;AL # BAMUM LETTER PHASE-C KEUM
-168E3;AL # BAMUM LETTER PHASE-C MBAA PICKET
-168E4;AL # BAMUM LETTER PHASE-C YUWOQ
-168E5;AL # BAMUM LETTER PHASE-C NJEUX
-168E6;AL # BAMUM LETTER PHASE-C MIEE
-168E7;AL # BAMUM LETTER PHASE-C MUAE
-168E8;AL # BAMUM LETTER PHASE-C SHIQ
-168E9;AL # BAMUM LETTER PHASE-C KEN LAW
-168EA;AL # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB;AL # BAMUM LETTER PHASE-C NGAQ
-168EC;AL # BAMUM LETTER PHASE-C NAQ
-168ED;AL # BAMUM LETTER PHASE-C LIQ
-168EE;AL # BAMUM LETTER PHASE-C PIN
-168EF;AL # BAMUM LETTER PHASE-C PEN
-168F0;AL # BAMUM LETTER PHASE-C TET
-168F1;AL # BAMUM LETTER PHASE-D MBUO
-168F2;AL # BAMUM LETTER PHASE-D WAP
-168F3;AL # BAMUM LETTER PHASE-D NJI
-168F4;AL # BAMUM LETTER PHASE-D MFON
-168F5;AL # BAMUM LETTER PHASE-D NJIEE
-168F6;AL # BAMUM LETTER PHASE-D LIEE
-168F7;AL # BAMUM LETTER PHASE-D NJEUT
-168F8;AL # BAMUM LETTER PHASE-D NSHEE
-168F9;AL # BAMUM LETTER PHASE-D NGGAAMAE
-168FA;AL # BAMUM LETTER PHASE-D NYAM
-168FB;AL # BAMUM LETTER PHASE-D WUAEN
-168FC;AL # BAMUM LETTER PHASE-D NGKUN
-168FD;AL # BAMUM LETTER PHASE-D SHEE
-168FE;AL # BAMUM LETTER PHASE-D NGKAP
-168FF;AL # BAMUM LETTER PHASE-D KEUAETMEUN
-16900;AL # BAMUM LETTER PHASE-D TEUT
-16901;AL # BAMUM LETTER PHASE-D SHEUAE
-16902;AL # BAMUM LETTER PHASE-D NJAP
-16903;AL # BAMUM LETTER PHASE-D SUE
-16904;AL # BAMUM LETTER PHASE-D KET
-16905;AL # BAMUM LETTER PHASE-D YAEMMAE
-16906;AL # BAMUM LETTER PHASE-D KUOM
-16907;AL # BAMUM LETTER PHASE-D SAP
-16908;AL # BAMUM LETTER PHASE-D MFEUT
-16909;AL # BAMUM LETTER PHASE-D NDEUX
-1690A;AL # BAMUM LETTER PHASE-D MALEERI
-1690B;AL # BAMUM LETTER PHASE-D MEUT
-1690C;AL # BAMUM LETTER PHASE-D SEUAEQ
-1690D;AL # BAMUM LETTER PHASE-D YEN
-1690E;AL # BAMUM LETTER PHASE-D NJEUAEM
-1690F;AL # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910;AL # BAMUM LETTER PHASE-D NGKEURI
-16911;AL # BAMUM LETTER PHASE-D TU
-16912;AL # BAMUM LETTER PHASE-D GHAA
-16913;AL # BAMUM LETTER PHASE-D NGKYEE
-16914;AL # BAMUM LETTER PHASE-D FEUFEUAET
-16915;AL # BAMUM LETTER PHASE-D NDEE
-16916;AL # BAMUM LETTER PHASE-D MGBOFUM
-16917;AL # BAMUM LETTER PHASE-D LEUAEP
-16918;AL # BAMUM LETTER PHASE-D NDON
-16919;AL # BAMUM LETTER PHASE-D MONI
-1691A;AL # BAMUM LETTER PHASE-D MGBEUN
-1691B;AL # BAMUM LETTER PHASE-D PUUT
-1691C;AL # BAMUM LETTER PHASE-D MGBIEE
-1691D;AL # BAMUM LETTER PHASE-D MFO
-1691E;AL # BAMUM LETTER PHASE-D LUM
-1691F;AL # BAMUM LETTER PHASE-D NSIEEP
-16920;AL # BAMUM LETTER PHASE-D MBAA
-16921;AL # BAMUM LETTER PHASE-D KWAET
-16922;AL # BAMUM LETTER PHASE-D NYET
-16923;AL # BAMUM LETTER PHASE-D TEUAEN
-16924;AL # BAMUM LETTER PHASE-D SOT
-16925;AL # BAMUM LETTER PHASE-D YUWOQ
-16926;AL # BAMUM LETTER PHASE-D KEUM
-16927;AL # BAMUM LETTER PHASE-D RAEM
-16928;AL # BAMUM LETTER PHASE-D TEEEE
-16929;AL # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A;AL # BAMUM LETTER PHASE-D MFEUAE
-1692B;AL # BAMUM LETTER PHASE-D NSIEET
-1692C;AL # BAMUM LETTER PHASE-D KEUP
-1692D;AL # BAMUM LETTER PHASE-D PIP
-1692E;AL # BAMUM LETTER PHASE-D PEUTAE
-1692F;AL # BAMUM LETTER PHASE-D NYUE
-16930;AL # BAMUM LETTER PHASE-D LET
-16931;AL # BAMUM LETTER PHASE-D NGGAAM
-16932;AL # BAMUM LETTER PHASE-D MFIEE
-16933;AL # BAMUM LETTER PHASE-D NGGWAEN
-16934;AL # BAMUM LETTER PHASE-D YUOM
-16935;AL # BAMUM LETTER PHASE-D PAP
-16936;AL # BAMUM LETTER PHASE-D YUOP
-16937;AL # BAMUM LETTER PHASE-D NDAM
-16938;AL # BAMUM LETTER PHASE-D NTEUM
-16939;AL # BAMUM LETTER PHASE-D SUAE
-1693A;AL # BAMUM LETTER PHASE-D KUN
-1693B;AL # BAMUM LETTER PHASE-D NGGEUX
-1693C;AL # BAMUM LETTER PHASE-D NGKIEE
-1693D;AL # BAMUM LETTER PHASE-D TUOT
-1693E;AL # BAMUM LETTER PHASE-D MEUN
-1693F;AL # BAMUM LETTER PHASE-D KUQ
-16940;AL # BAMUM LETTER PHASE-D NSUM
-16941;AL # BAMUM LETTER PHASE-D TEUN
-16942;AL # BAMUM LETTER PHASE-D MAENJET
-16943;AL # BAMUM LETTER PHASE-D NGGAP
-16944;AL # BAMUM LETTER PHASE-D LEUM
-16945;AL # BAMUM LETTER PHASE-D NGGUOM
-16946;AL # BAMUM LETTER PHASE-D NSHUT
-16947;AL # BAMUM LETTER PHASE-D NJUEQ
-16948;AL # BAMUM LETTER PHASE-D GHEUAE
-16949;AL # BAMUM LETTER PHASE-D KU
-1694A;AL # BAMUM LETTER PHASE-D REN OLD
-1694B;AL # BAMUM LETTER PHASE-D TAE
-1694C;AL # BAMUM LETTER PHASE-D TOQ
-1694D;AL # BAMUM LETTER PHASE-D NYI
-1694E;AL # BAMUM LETTER PHASE-D RII
-1694F;AL # BAMUM LETTER PHASE-D LEEEE
-16950;AL # BAMUM LETTER PHASE-D MEEEE
-16951;AL # BAMUM LETTER PHASE-D M
-16952;AL # BAMUM LETTER PHASE-D SUU
-16953;AL # BAMUM LETTER PHASE-D MU
-16954;AL # BAMUM LETTER PHASE-D SHII
-16955;AL # BAMUM LETTER PHASE-D SHEUX
-16956;AL # BAMUM LETTER PHASE-D KYEE
-16957;AL # BAMUM LETTER PHASE-D NU
-16958;AL # BAMUM LETTER PHASE-D SHU
-16959;AL # BAMUM LETTER PHASE-D NTEE
-1695A;AL # BAMUM LETTER PHASE-D PEE
-1695B;AL # BAMUM LETTER PHASE-D NI
-1695C;AL # BAMUM LETTER PHASE-D SHOQ
-1695D;AL # BAMUM LETTER PHASE-D PUQ
-1695E;AL # BAMUM LETTER PHASE-D MVOP
-1695F;AL # BAMUM LETTER PHASE-D LOQ
-16960;AL # BAMUM LETTER PHASE-D REN MUCH
-16961;AL # BAMUM LETTER PHASE-D TI
-16962;AL # BAMUM LETTER PHASE-D NTUU
-16963;AL # BAMUM LETTER PHASE-D MBAA SEVEN
-16964;AL # BAMUM LETTER PHASE-D SAQ
-16965;AL # BAMUM LETTER PHASE-D FAA
-16966;AL # BAMUM LETTER PHASE-E NDAP
-16967;AL # BAMUM LETTER PHASE-E TOON
-16968;AL # BAMUM LETTER PHASE-E MBEUM
-16969;AL # BAMUM LETTER PHASE-E LAP
-1696A;AL # BAMUM LETTER PHASE-E VOM
-1696B;AL # BAMUM LETTER PHASE-E LOON
-1696C;AL # BAMUM LETTER PHASE-E PAA
-1696D;AL # BAMUM LETTER PHASE-E SOM
-1696E;AL # BAMUM LETTER PHASE-E RAQ
-1696F;AL # BAMUM LETTER PHASE-E NSHUOP
-16970;AL # BAMUM LETTER PHASE-E NDUN
-16971;AL # BAMUM LETTER PHASE-E PUAE
-16972;AL # BAMUM LETTER PHASE-E TAM
-16973;AL # BAMUM LETTER PHASE-E NGKA
-16974;AL # BAMUM LETTER PHASE-E KPEUX
-16975;AL # BAMUM LETTER PHASE-E WUO
-16976;AL # BAMUM LETTER PHASE-E SEE
-16977;AL # BAMUM LETTER PHASE-E NGGEUAET
-16978;AL # BAMUM LETTER PHASE-E PAAM
-16979;AL # BAMUM LETTER PHASE-E TOO
-1697A;AL # BAMUM LETTER PHASE-E KUOP
-1697B;AL # BAMUM LETTER PHASE-E LOM
-1697C;AL # BAMUM LETTER PHASE-E NSHIEE
-1697D;AL # BAMUM LETTER PHASE-E NGOP
-1697E;AL # BAMUM LETTER PHASE-E MAEM
-1697F;AL # BAMUM LETTER PHASE-E NGKEUX
-16980;AL # BAMUM LETTER PHASE-E NGOQ
-16981;AL # BAMUM LETTER PHASE-E NSHUE
-16982;AL # BAMUM LETTER PHASE-E RIMGBA
-16983;AL # BAMUM LETTER PHASE-E NJEUX
-16984;AL # BAMUM LETTER PHASE-E PEEM
-16985;AL # BAMUM LETTER PHASE-E SAA
-16986;AL # BAMUM LETTER PHASE-E NGGURAE
-16987;AL # BAMUM LETTER PHASE-E MGBA
-16988;AL # BAMUM LETTER PHASE-E GHEUX
-16989;AL # BAMUM LETTER PHASE-E NGKEUAEM
-1698A;AL # BAMUM LETTER PHASE-E NJAEMLI
-1698B;AL # BAMUM LETTER PHASE-E MAP
-1698C;AL # BAMUM LETTER PHASE-E LOOT
-1698D;AL # BAMUM LETTER PHASE-E NGGEEEE
-1698E;AL # BAMUM LETTER PHASE-E NDIQ
-1698F;AL # BAMUM LETTER PHASE-E TAEN NTEUM
-16990;AL # BAMUM LETTER PHASE-E SET
-16991;AL # BAMUM LETTER PHASE-E PUM
-16992;AL # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993;AL # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994;AL # BAMUM LETTER PHASE-E YIEE
-16995;AL # BAMUM LETTER PHASE-E GHEUN
-16996;AL # BAMUM LETTER PHASE-E TUAE
-16997;AL # BAMUM LETTER PHASE-E YEUAE
-16998;AL # BAMUM LETTER PHASE-E PO
-16999;AL # BAMUM LETTER PHASE-E TUMAE
-1699A;AL # BAMUM LETTER PHASE-E KEUAE
-1699B;AL # BAMUM LETTER PHASE-E SUAEN
-1699C;AL # BAMUM LETTER PHASE-E TEUAEQ
-1699D;AL # BAMUM LETTER PHASE-E VEUAE
-1699E;AL # BAMUM LETTER PHASE-E WEUX
-1699F;AL # BAMUM LETTER PHASE-E LAAM
-169A0;AL # BAMUM LETTER PHASE-E PU
-169A1;AL # BAMUM LETTER PHASE-E TAAQ
-169A2;AL # BAMUM LETTER PHASE-E GHAAMAE
-169A3;AL # BAMUM LETTER PHASE-E NGEUREUT
-169A4;AL # BAMUM LETTER PHASE-E SHEUAEQ
-169A5;AL # BAMUM LETTER PHASE-E MGBEN
-169A6;AL # BAMUM LETTER PHASE-E MBEE
-169A7;AL # BAMUM LETTER PHASE-E NZAQ
-169A8;AL # BAMUM LETTER PHASE-E NKOM
-169A9;AL # BAMUM LETTER PHASE-E GBET
-169AA;AL # BAMUM LETTER PHASE-E TUM
-169AB;AL # BAMUM LETTER PHASE-E KUET
-169AC;AL # BAMUM LETTER PHASE-E YAP
-169AD;AL # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE;AL # BAMUM LETTER PHASE-E YIT
-169AF;AL # BAMUM LETTER PHASE-E MFEUQ
-169B0;AL # BAMUM LETTER PHASE-E NDIAQ
-169B1;AL # BAMUM LETTER PHASE-E PIEEQ
-169B2;AL # BAMUM LETTER PHASE-E YUEQ
-169B3;AL # BAMUM LETTER PHASE-E LEUAEM
-169B4;AL # BAMUM LETTER PHASE-E FUE
-169B5;AL # BAMUM LETTER PHASE-E GBEUX
-169B6;AL # BAMUM LETTER PHASE-E NGKUP
-169B7;AL # BAMUM LETTER PHASE-E KET
-169B8;AL # BAMUM LETTER PHASE-E MAE
-169B9;AL # BAMUM LETTER PHASE-E NGKAAMI
-169BA;AL # BAMUM LETTER PHASE-E GHET
-169BB;AL # BAMUM LETTER PHASE-E FA
-169BC;AL # BAMUM LETTER PHASE-E NTUM
-169BD;AL # BAMUM LETTER PHASE-E PEUT
-169BE;AL # BAMUM LETTER PHASE-E YEUM
-169BF;AL # BAMUM LETTER PHASE-E NGGEUAE
-169C0;AL # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1;AL # BAMUM LETTER PHASE-E NZUQ
-169C2;AL # BAMUM LETTER PHASE-E POON
-169C3;AL # BAMUM LETTER PHASE-E MIEE
-169C4;AL # BAMUM LETTER PHASE-E FUET
-169C5;AL # BAMUM LETTER PHASE-E NAE
-169C6;AL # BAMUM LETTER PHASE-E MUAE
-169C7;AL # BAMUM LETTER PHASE-E GHEUAE
-169C8;AL # BAMUM LETTER PHASE-E FU I
-169C9;AL # BAMUM LETTER PHASE-E MVI
-169CA;AL # BAMUM LETTER PHASE-E PUAQ
-169CB;AL # BAMUM LETTER PHASE-E NGKUM
-169CC;AL # BAMUM LETTER PHASE-E KUT
-169CD;AL # BAMUM LETTER PHASE-E PIET
-169CE;AL # BAMUM LETTER PHASE-E NTAP
-169CF;AL # BAMUM LETTER PHASE-E YEUAET
-169D0;AL # BAMUM LETTER PHASE-E NGGUP
-169D1;AL # BAMUM LETTER PHASE-E PA PEOPLE
-169D2;AL # BAMUM LETTER PHASE-E FU CALL
-169D3;AL # BAMUM LETTER PHASE-E FOM
-169D4;AL # BAMUM LETTER PHASE-E NJEE
-169D5;AL # BAMUM LETTER PHASE-E A
-169D6;AL # BAMUM LETTER PHASE-E TOQ
-169D7;AL # BAMUM LETTER PHASE-E O
-169D8;AL # BAMUM LETTER PHASE-E I
-169D9;AL # BAMUM LETTER PHASE-E LAQ
-169DA;AL # BAMUM LETTER PHASE-E PA PLURAL
-169DB;AL # BAMUM LETTER PHASE-E TAA
-169DC;AL # BAMUM LETTER PHASE-E TAQ
-169DD;AL # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE;AL # BAMUM LETTER PHASE-E SHIQ
-169DF;AL # BAMUM LETTER PHASE-E YEUX
-169E0;AL # BAMUM LETTER PHASE-E NGUAE
-169E1;AL # BAMUM LETTER PHASE-E YUAEN
-169E2;AL # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3;AL # BAMUM LETTER PHASE-E YOQ COVER
-169E4;AL # BAMUM LETTER PHASE-E YUQ
-169E5;AL # BAMUM LETTER PHASE-E YUN
-169E6;AL # BAMUM LETTER PHASE-E KEUX
-169E7;AL # BAMUM LETTER PHASE-E PEUX
-169E8;AL # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9;AL # BAMUM LETTER PHASE-E PUE
-169EA;AL # BAMUM LETTER PHASE-E WUE
-169EB;AL # BAMUM LETTER PHASE-E FEE
-169EC;AL # BAMUM LETTER PHASE-E VEE
-169ED;AL # BAMUM LETTER PHASE-E LU
-169EE;AL # BAMUM LETTER PHASE-E MI
-169EF;AL # BAMUM LETTER PHASE-E REUX
-169F0;AL # BAMUM LETTER PHASE-E RAE
-169F1;AL # BAMUM LETTER PHASE-E NGUAET
-169F2;AL # BAMUM LETTER PHASE-E NGA
-169F3;AL # BAMUM LETTER PHASE-E SHO
-169F4;AL # BAMUM LETTER PHASE-E SHOQ
-169F5;AL # BAMUM LETTER PHASE-E FU REMEDY
-169F6;AL # BAMUM LETTER PHASE-E NA
-169F7;AL # BAMUM LETTER PHASE-E PI
-169F8;AL # BAMUM LETTER PHASE-E LOQ
-169F9;AL # BAMUM LETTER PHASE-E KO
-169FA;AL # BAMUM LETTER PHASE-E MEN
-169FB;AL # BAMUM LETTER PHASE-E MA
-169FC;AL # BAMUM LETTER PHASE-E MAQ
-169FD;AL # BAMUM LETTER PHASE-E TEU
-169FE;AL # BAMUM LETTER PHASE-E KI
-169FF;AL # BAMUM LETTER PHASE-E MON
-16A00;AL # BAMUM LETTER PHASE-E TEN
-16A01;AL # BAMUM LETTER PHASE-E FAQ
-16A02;AL # BAMUM LETTER PHASE-E GHOM
-16A03;AL # BAMUM LETTER PHASE-F KA
-16A04;AL # BAMUM LETTER PHASE-F U
-16A05;AL # BAMUM LETTER PHASE-F KU
-16A06;AL # BAMUM LETTER PHASE-F EE
-16A07;AL # BAMUM LETTER PHASE-F REE
-16A08;AL # BAMUM LETTER PHASE-F TAE
-16A09;AL # BAMUM LETTER PHASE-F NYI
-16A0A;AL # BAMUM LETTER PHASE-F LA
-16A0B;AL # BAMUM LETTER PHASE-F RII
-16A0C;AL # BAMUM LETTER PHASE-F RIEE
-16A0D;AL # BAMUM LETTER PHASE-F MEEEE
-16A0E;AL # BAMUM LETTER PHASE-F TAA
-16A0F;AL # BAMUM LETTER PHASE-F NDAA
-16A10;AL # BAMUM LETTER PHASE-F NJAEM
-16A11;AL # BAMUM LETTER PHASE-F M
-16A12;AL # BAMUM LETTER PHASE-F SUU
-16A13;AL # BAMUM LETTER PHASE-F SHII
-16A14;AL # BAMUM LETTER PHASE-F SI
-16A15;AL # BAMUM LETTER PHASE-F SEUX
-16A16;AL # BAMUM LETTER PHASE-F KYEE
-16A17;AL # BAMUM LETTER PHASE-F KET
-16A18;AL # BAMUM LETTER PHASE-F NUAE
-16A19;AL # BAMUM LETTER PHASE-F NU
-16A1A;AL # BAMUM LETTER PHASE-F NJUAE
-16A1B;AL # BAMUM LETTER PHASE-F YOQ
-16A1C;AL # BAMUM LETTER PHASE-F SHU
-16A1D;AL # BAMUM LETTER PHASE-F YA
-16A1E;AL # BAMUM LETTER PHASE-F NSHA
-16A1F;AL # BAMUM LETTER PHASE-F PEUX
-16A20;AL # BAMUM LETTER PHASE-F NTEE
-16A21;AL # BAMUM LETTER PHASE-F WUE
-16A22;AL # BAMUM LETTER PHASE-F PEE
-16A23;AL # BAMUM LETTER PHASE-F RU
-16A24;AL # BAMUM LETTER PHASE-F NI
-16A25;AL # BAMUM LETTER PHASE-F REUX
-16A26;AL # BAMUM LETTER PHASE-F KEN
-16A27;AL # BAMUM LETTER PHASE-F NGKWAEN
-16A28;AL # BAMUM LETTER PHASE-F NGGA
-16A29;AL # BAMUM LETTER PHASE-F SHO
-16A2A;AL # BAMUM LETTER PHASE-F PUAE
-16A2B;AL # BAMUM LETTER PHASE-F FOM
-16A2C;AL # BAMUM LETTER PHASE-F WA
-16A2D;AL # BAMUM LETTER PHASE-F LI
-16A2E;AL # BAMUM LETTER PHASE-F LOQ
-16A2F;AL # BAMUM LETTER PHASE-F KO
-16A30;AL # BAMUM LETTER PHASE-F MBEN
-16A31;AL # BAMUM LETTER PHASE-F REN
-16A32;AL # BAMUM LETTER PHASE-F MA
-16A33;AL # BAMUM LETTER PHASE-F MO
-16A34;AL # BAMUM LETTER PHASE-F MBAA
-16A35;AL # BAMUM LETTER PHASE-F TET
-16A36;AL # BAMUM LETTER PHASE-F KPA
-16A37;AL # BAMUM LETTER PHASE-F SAMBA
-16A38;AL # BAMUM LETTER PHASE-F VUEQ
-16F00;AL # MIAO LETTER PA
-16F01;AL # MIAO LETTER BA
-16F02;AL # MIAO LETTER YI PA
-16F03;AL # MIAO LETTER PLA
-16F04;AL # MIAO LETTER MA
-16F05;AL # MIAO LETTER MHA
-16F06;AL # MIAO LETTER ARCHAIC MA
-16F07;AL # MIAO LETTER FA
-16F08;AL # MIAO LETTER VA
-16F09;AL # MIAO LETTER VFA
-16F0A;AL # MIAO LETTER TA
-16F0B;AL # MIAO LETTER DA
-16F0C;AL # MIAO LETTER YI TTA
-16F0D;AL # MIAO LETTER YI TA
-16F0E;AL # MIAO LETTER TTA
-16F0F;AL # MIAO LETTER DDA
-16F10;AL # MIAO LETTER NA
-16F11;AL # MIAO LETTER NHA
-16F12;AL # MIAO LETTER YI NNA
-16F13;AL # MIAO LETTER ARCHAIC NA
-16F14;AL # MIAO LETTER NNA
-16F15;AL # MIAO LETTER NNHA
-16F16;AL # MIAO LETTER LA
-16F17;AL # MIAO LETTER LYA
-16F18;AL # MIAO LETTER LHA
-16F19;AL # MIAO LETTER LHYA
-16F1A;AL # MIAO LETTER TLHA
-16F1B;AL # MIAO LETTER DLHA
-16F1C;AL # MIAO LETTER TLHYA
-16F1D;AL # MIAO LETTER DLHYA
-16F1E;AL # MIAO LETTER KA
-16F1F;AL # MIAO LETTER GA
-16F20;AL # MIAO LETTER YI KA
-16F21;AL # MIAO LETTER QA
-16F22;AL # MIAO LETTER QGA
-16F23;AL # MIAO LETTER NGA
-16F24;AL # MIAO LETTER NGHA
-16F25;AL # MIAO LETTER ARCHAIC NGA
-16F26;AL # MIAO LETTER HA
-16F27;AL # MIAO LETTER XA
-16F28;AL # MIAO LETTER GHA
-16F29;AL # MIAO LETTER GHHA
-16F2A;AL # MIAO LETTER TSSA
-16F2B;AL # MIAO LETTER DZZA
-16F2C;AL # MIAO LETTER NYA
-16F2D;AL # MIAO LETTER NYHA
-16F2E;AL # MIAO LETTER TSHA
-16F2F;AL # MIAO LETTER DZHA
-16F30;AL # MIAO LETTER YI TSHA
-16F31;AL # MIAO LETTER YI DZHA
-16F32;AL # MIAO LETTER REFORMED TSHA
-16F33;AL # MIAO LETTER SHA
-16F34;AL # MIAO LETTER SSA
-16F35;AL # MIAO LETTER ZHA
-16F36;AL # MIAO LETTER ZSHA
-16F37;AL # MIAO LETTER TSA
-16F38;AL # MIAO LETTER DZA
-16F39;AL # MIAO LETTER YI TSA
-16F3A;AL # MIAO LETTER SA
-16F3B;AL # MIAO LETTER ZA
-16F3C;AL # MIAO LETTER ZSA
-16F3D;AL # MIAO LETTER ZZA
-16F3E;AL # MIAO LETTER ZZSA
-16F3F;AL # MIAO LETTER ARCHAIC ZZA
-16F40;AL # MIAO LETTER ZZYA
-16F41;AL # MIAO LETTER ZZSYA
-16F42;AL # MIAO LETTER WA
-16F43;AL # MIAO LETTER AH
-16F44;AL # MIAO LETTER HHA
-16F50;AL # MIAO LETTER NASALIZATION
-16F51;CM # MIAO SIGN ASPIRATION
-16F52;CM # MIAO SIGN REFORMED VOICING
-16F53;CM # MIAO SIGN REFORMED ASPIRATION
-16F54;CM # MIAO VOWEL SIGN A
-16F55;CM # MIAO VOWEL SIGN AA
-16F56;CM # MIAO VOWEL SIGN AHH
-16F57;CM # MIAO VOWEL SIGN AN
-16F58;CM # MIAO VOWEL SIGN ANG
-16F59;CM # MIAO VOWEL SIGN O
-16F5A;CM # MIAO VOWEL SIGN OO
-16F5B;CM # MIAO VOWEL SIGN WO
-16F5C;CM # MIAO VOWEL SIGN W
-16F5D;CM # MIAO VOWEL SIGN E
-16F5E;CM # MIAO VOWEL SIGN EN
-16F5F;CM # MIAO VOWEL SIGN ENG
-16F60;CM # MIAO VOWEL SIGN OEY
-16F61;CM # MIAO VOWEL SIGN I
-16F62;CM # MIAO VOWEL SIGN IA
-16F63;CM # MIAO VOWEL SIGN IAN
-16F64;CM # MIAO VOWEL SIGN IANG
-16F65;CM # MIAO VOWEL SIGN IO
-16F66;CM # MIAO VOWEL SIGN IE
-16F67;CM # MIAO VOWEL SIGN II
-16F68;CM # MIAO VOWEL SIGN IU
-16F69;CM # MIAO VOWEL SIGN ING
-16F6A;CM # MIAO VOWEL SIGN U
-16F6B;CM # MIAO VOWEL SIGN UA
-16F6C;CM # MIAO VOWEL SIGN UAN
-16F6D;CM # MIAO VOWEL SIGN UANG
-16F6E;CM # MIAO VOWEL SIGN UU
-16F6F;CM # MIAO VOWEL SIGN UEI
-16F70;CM # MIAO VOWEL SIGN UNG
-16F71;CM # MIAO VOWEL SIGN Y
-16F72;CM # MIAO VOWEL SIGN YI
-16F73;CM # MIAO VOWEL SIGN AE
-16F74;CM # MIAO VOWEL SIGN AEE
-16F75;CM # MIAO VOWEL SIGN ERR
-16F76;CM # MIAO VOWEL SIGN ROUNDED ERR
-16F77;CM # MIAO VOWEL SIGN ER
-16F78;CM # MIAO VOWEL SIGN ROUNDED ER
-16F79;CM # MIAO VOWEL SIGN AI
-16F7A;CM # MIAO VOWEL SIGN EI
-16F7B;CM # MIAO VOWEL SIGN AU
-16F7C;CM # MIAO VOWEL SIGN OU
-16F7D;CM # MIAO VOWEL SIGN N
-16F7E;CM # MIAO VOWEL SIGN NG
-16F8F;CM # MIAO TONE RIGHT
-16F90;CM # MIAO TONE TOP RIGHT
-16F91;CM # MIAO TONE ABOVE
-16F92;CM # MIAO TONE BELOW
-16F93;AL # MIAO LETTER TONE-2
-16F94;AL # MIAO LETTER TONE-3
-16F95;AL # MIAO LETTER TONE-4
-16F96;AL # MIAO LETTER TONE-5
-16F97;AL # MIAO LETTER TONE-6
-16F98;AL # MIAO LETTER TONE-7
-16F99;AL # MIAO LETTER TONE-8
-16F9A;AL # MIAO LETTER REFORMED TONE-1
-16F9B;AL # MIAO LETTER REFORMED TONE-2
-16F9C;AL # MIAO LETTER REFORMED TONE-4
-16F9D;AL # MIAO LETTER REFORMED TONE-5
-16F9E;AL # MIAO LETTER REFORMED TONE-6
-16F9F;AL # MIAO LETTER REFORMED TONE-8
-1B000;ID # KATAKANA LETTER ARCHAIC E
-1B001;ID # HIRAGANA LETTER ARCHAIC YE
-1D000;AL # BYZANTINE MUSICAL SYMBOL PSILI
-1D001;AL # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002;AL # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003;AL # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004;AL # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005;AL # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006;AL # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007;AL # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008;AL # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C;AL # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D;AL # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E;AL # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F;AL # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013;AL # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014;AL # BYZANTINE MUSICAL SYMBOL THITA
-1D015;AL # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016;AL # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017;AL # BYZANTINE MUSICAL SYMBOL PSILON
-1D018;AL # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019;AL # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A;AL # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B;AL # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D;AL # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E;AL # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F;AL # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020;AL # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021;AL # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022;AL # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023;AL # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024;AL # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025;AL # BYZANTINE MUSICAL SYMBOL REVMA
-1D026;AL # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027;AL # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028;AL # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029;AL # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D;AL # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E;AL # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F;AL # BYZANTINE MUSICAL SYMBOL DYO
-1D030;AL # BYZANTINE MUSICAL SYMBOL TRIA
-1D031;AL # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032;AL # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033;AL # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037;AL # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038;AL # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C;AL # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F;AL # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040;AL # BYZANTINE MUSICAL SYMBOL NANA
-1D041;AL # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044;AL # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045;AL # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046;AL # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047;AL # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048;AL # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049;AL # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A;AL # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B;AL # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C;AL # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D;AL # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050;AL # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053;AL # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054;AL # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055;AL # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056;AL # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057;AL # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058;AL # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059;AL # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B;AL # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D;AL # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060;AL # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061;AL # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063;AL # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064;AL # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066;AL # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068;AL # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069;AL # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A;AL # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D;AL # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070;AL # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072;AL # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073;AL # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074;AL # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078;AL # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079;AL # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A;AL # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B;AL # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C;AL # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D;AL # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E;AL # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F;AL # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080;AL # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083;AL # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084;AL # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085;AL # BYZANTINE MUSICAL SYMBOL APLI
-1D086;AL # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087;AL # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088;AL # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089;AL # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A;AL # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B;AL # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E;AL # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092;AL # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096;AL # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097;AL # BYZANTINE MUSICAL SYMBOL ARGON
-1D098;AL # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099;AL # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D;AL # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E;AL # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC;AL # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6;AL # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7;AL # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC;AL # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5;AL # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7;AL # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8;AL # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9;AL # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA;AL # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB;AL # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC;AL # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF;AL # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0;AL # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1;AL # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2;AL # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4;AL # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5;AL # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6;AL # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8;AL # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9;AL # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6;AL # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7;AL # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8;AL # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4;AL # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100;AL # MUSICAL SYMBOL SINGLE BARLINE
-1D101;AL # MUSICAL SYMBOL DOUBLE BARLINE
-1D102;AL # MUSICAL SYMBOL FINAL BARLINE
-1D103;AL # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104;AL # MUSICAL SYMBOL DASHED BARLINE
-1D105;AL # MUSICAL SYMBOL SHORT BARLINE
-1D106;AL # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107;AL # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108;AL # MUSICAL SYMBOL REPEAT DOTS
-1D109;AL # MUSICAL SYMBOL DAL SEGNO
-1D10A;AL # MUSICAL SYMBOL DA CAPO
-1D10B;AL # MUSICAL SYMBOL SEGNO
-1D10C;AL # MUSICAL SYMBOL CODA
-1D10D;AL # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E;AL # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F;AL # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110;AL # MUSICAL SYMBOL FERMATA
-1D111;AL # MUSICAL SYMBOL FERMATA BELOW
-1D112;AL # MUSICAL SYMBOL BREATH MARK
-1D113;AL # MUSICAL SYMBOL CAESURA
-1D114;AL # MUSICAL SYMBOL BRACE
-1D115;AL # MUSICAL SYMBOL BRACKET
-1D116;AL # MUSICAL SYMBOL ONE-LINE STAFF
-1D117;AL # MUSICAL SYMBOL TWO-LINE STAFF
-1D118;AL # MUSICAL SYMBOL THREE-LINE STAFF
-1D119;AL # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A;AL # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B;AL # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C;AL # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D;AL # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E;AL # MUSICAL SYMBOL G CLEF
-1D11F;AL # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120;AL # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121;AL # MUSICAL SYMBOL C CLEF
-1D122;AL # MUSICAL SYMBOL F CLEF
-1D123;AL # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124;AL # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125;AL # MUSICAL SYMBOL DRUM CLEF-1
-1D126;AL # MUSICAL SYMBOL DRUM CLEF-2
-1D129;AL # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A;AL # MUSICAL SYMBOL DOUBLE SHARP
-1D12B;AL # MUSICAL SYMBOL DOUBLE FLAT
-1D12C;AL # MUSICAL SYMBOL FLAT UP
-1D12D;AL # MUSICAL SYMBOL FLAT DOWN
-1D12E;AL # MUSICAL SYMBOL NATURAL UP
-1D12F;AL # MUSICAL SYMBOL NATURAL DOWN
-1D130;AL # MUSICAL SYMBOL SHARP UP
-1D131;AL # MUSICAL SYMBOL SHARP DOWN
-1D132;AL # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133;AL # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134;AL # MUSICAL SYMBOL COMMON TIME
-1D135;AL # MUSICAL SYMBOL CUT TIME
-1D136;AL # MUSICAL SYMBOL OTTAVA ALTA
-1D137;AL # MUSICAL SYMBOL OTTAVA BASSA
-1D138;AL # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139;AL # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A;AL # MUSICAL SYMBOL MULTI REST
-1D13B;AL # MUSICAL SYMBOL WHOLE REST
-1D13C;AL # MUSICAL SYMBOL HALF REST
-1D13D;AL # MUSICAL SYMBOL QUARTER REST
-1D13E;AL # MUSICAL SYMBOL EIGHTH REST
-1D13F;AL # MUSICAL SYMBOL SIXTEENTH REST
-1D140;AL # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141;AL # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143;AL # MUSICAL SYMBOL X NOTEHEAD
-1D144;AL # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145;AL # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146;AL # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147;AL # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152;AL # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153;AL # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156;AL # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157;AL # MUSICAL SYMBOL VOID NOTEHEAD
-1D158;AL # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159;AL # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C;AL # MUSICAL SYMBOL BREVE
-1D15D;AL # MUSICAL SYMBOL WHOLE NOTE
-1D15E;AL # MUSICAL SYMBOL HALF NOTE
-1D15F;AL # MUSICAL SYMBOL QUARTER NOTE
-1D160;AL # MUSICAL SYMBOL EIGHTH NOTE
-1D161;AL # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162;AL # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163;AL # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165;CM # MUSICAL SYMBOL COMBINING STEM
-1D166;CM # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D167;CM # MUSICAL SYMBOL COMBINING TREMOLO-1
-1D168;CM # MUSICAL SYMBOL COMBINING TREMOLO-2
-1D169;CM # MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A;AL # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B;AL # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C;AL # MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D;CM # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-1D16E;CM # MUSICAL SYMBOL COMBINING FLAG-1
-1D16F;CM # MUSICAL SYMBOL COMBINING FLAG-2
-1D170;CM # MUSICAL SYMBOL COMBINING FLAG-3
-1D171;CM # MUSICAL SYMBOL COMBINING FLAG-4
-1D172;CM # MUSICAL SYMBOL COMBINING FLAG-5
-1D173;CM # MUSICAL SYMBOL BEGIN BEAM
-1D174;CM # MUSICAL SYMBOL END BEAM
-1D175;CM # MUSICAL SYMBOL BEGIN TIE
-1D176;CM # MUSICAL SYMBOL END TIE
-1D177;CM # MUSICAL SYMBOL BEGIN SLUR
-1D178;CM # MUSICAL SYMBOL END SLUR
-1D179;CM # MUSICAL SYMBOL BEGIN PHRASE
-1D17A;CM # MUSICAL SYMBOL END PHRASE
-1D17B;CM # MUSICAL SYMBOL COMBINING ACCENT
-1D17C;CM # MUSICAL SYMBOL COMBINING STACCATO
-1D17D;CM # MUSICAL SYMBOL COMBINING TENUTO
-1D17E;CM # MUSICAL SYMBOL COMBINING STACCATISSIMO
-1D17F;CM # MUSICAL SYMBOL COMBINING MARCATO
-1D180;CM # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
-1D181;CM # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
-1D182;CM # MUSICAL SYMBOL COMBINING LOURE
-1D183;AL # MUSICAL SYMBOL ARPEGGIATO UP
-1D184;AL # MUSICAL SYMBOL ARPEGGIATO DOWN
-1D185;CM # MUSICAL SYMBOL COMBINING DOIT
-1D186;CM # MUSICAL SYMBOL COMBINING RIP
-1D187;CM # MUSICAL SYMBOL COMBINING FLIP
-1D188;CM # MUSICAL SYMBOL COMBINING SMEAR
-1D189;CM # MUSICAL SYMBOL COMBINING BEND
-1D18A;CM # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
-1D18B;CM # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C;AL # MUSICAL SYMBOL RINFORZANDO
-1D18D;AL # MUSICAL SYMBOL SUBITO
-1D18E;AL # MUSICAL SYMBOL Z
-1D18F;AL # MUSICAL SYMBOL PIANO
-1D190;AL # MUSICAL SYMBOL MEZZO
-1D191;AL # MUSICAL SYMBOL FORTE
-1D192;AL # MUSICAL SYMBOL CRESCENDO
-1D193;AL # MUSICAL SYMBOL DECRESCENDO
-1D194;AL # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195;AL # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196;AL # MUSICAL SYMBOL TR
-1D197;AL # MUSICAL SYMBOL TURN
-1D198;AL # MUSICAL SYMBOL INVERTED TURN
-1D199;AL # MUSICAL SYMBOL TURN SLASH
-1D19A;AL # MUSICAL SYMBOL TURN UP
-1D19B;AL # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C;AL # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D;AL # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E;AL # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F;AL # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0;AL # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1;AL # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2;AL # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3;AL # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4;AL # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5;AL # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6;AL # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7;AL # MUSICAL SYMBOL NEBENSTIMME
-1D1A8;AL # MUSICAL SYMBOL END OF STIMME
-1D1A9;AL # MUSICAL SYMBOL DEGREE SLASH
-1D1AA;CM # MUSICAL SYMBOL COMBINING DOWN BOW
-1D1AB;CM # MUSICAL SYMBOL COMBINING UP BOW
-1D1AC;CM # MUSICAL SYMBOL COMBINING HARMONIC
-1D1AD;CM # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE;AL # MUSICAL SYMBOL PEDAL MARK
-1D1AF;AL # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0;AL # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1;AL # MUSICAL SYMBOL GLISSANDO UP
-1D1B2;AL # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3;AL # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4;AL # MUSICAL SYMBOL DAMP
-1D1B5;AL # MUSICAL SYMBOL DAMP ALL
-1D1B6;AL # MUSICAL SYMBOL MAXIMA
-1D1B7;AL # MUSICAL SYMBOL LONGA
-1D1B8;AL # MUSICAL SYMBOL BREVIS
-1D1B9;AL # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA;AL # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB;AL # MUSICAL SYMBOL MINIMA
-1D1BC;AL # MUSICAL SYMBOL MINIMA BLACK
-1D1BD;AL # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE;AL # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF;AL # MUSICAL SYMBOL FUSA WHITE
-1D1C0;AL # MUSICAL SYMBOL FUSA BLACK
-1D1C1;AL # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2;AL # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3;AL # MUSICAL SYMBOL BREVIS REST
-1D1C4;AL # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5;AL # MUSICAL SYMBOL MINIMA REST
-1D1C6;AL # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF;AL # MUSICAL SYMBOL CROIX
-1D1D0;AL # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1;AL # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2;AL # MUSICAL SYMBOL SQUARE B
-1D1D3;AL # MUSICAL SYMBOL VIRGA
-1D1D4;AL # MUSICAL SYMBOL PODATUS
-1D1D5;AL # MUSICAL SYMBOL CLIVIS
-1D1D6;AL # MUSICAL SYMBOL SCANDICUS
-1D1D7;AL # MUSICAL SYMBOL CLIMACUS
-1D1D8;AL # MUSICAL SYMBOL TORCULUS
-1D1D9;AL # MUSICAL SYMBOL PORRECTUS
-1D1DA;AL # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB;AL # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC;AL # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD;AL # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200;AL # GREEK VOCAL NOTATION SYMBOL-1
-1D201;AL # GREEK VOCAL NOTATION SYMBOL-2
-1D202;AL # GREEK VOCAL NOTATION SYMBOL-3
-1D203;AL # GREEK VOCAL NOTATION SYMBOL-4
-1D204;AL # GREEK VOCAL NOTATION SYMBOL-5
-1D205;AL # GREEK VOCAL NOTATION SYMBOL-6
-1D206;AL # GREEK VOCAL NOTATION SYMBOL-7
-1D207;AL # GREEK VOCAL NOTATION SYMBOL-8
-1D208;AL # GREEK VOCAL NOTATION SYMBOL-9
-1D209;AL # GREEK VOCAL NOTATION SYMBOL-10
-1D20A;AL # GREEK VOCAL NOTATION SYMBOL-11
-1D20B;AL # GREEK VOCAL NOTATION SYMBOL-12
-1D20C;AL # GREEK VOCAL NOTATION SYMBOL-13
-1D20D;AL # GREEK VOCAL NOTATION SYMBOL-14
-1D20E;AL # GREEK VOCAL NOTATION SYMBOL-15
-1D20F;AL # GREEK VOCAL NOTATION SYMBOL-16
-1D210;AL # GREEK VOCAL NOTATION SYMBOL-17
-1D211;AL # GREEK VOCAL NOTATION SYMBOL-18
-1D212;AL # GREEK VOCAL NOTATION SYMBOL-19
-1D213;AL # GREEK VOCAL NOTATION SYMBOL-20
-1D214;AL # GREEK VOCAL NOTATION SYMBOL-21
-1D215;AL # GREEK VOCAL NOTATION SYMBOL-22
-1D216;AL # GREEK VOCAL NOTATION SYMBOL-23
-1D217;AL # GREEK VOCAL NOTATION SYMBOL-24
-1D218;AL # GREEK VOCAL NOTATION SYMBOL-50
-1D219;AL # GREEK VOCAL NOTATION SYMBOL-51
-1D21A;AL # GREEK VOCAL NOTATION SYMBOL-52
-1D21B;AL # GREEK VOCAL NOTATION SYMBOL-53
-1D21C;AL # GREEK VOCAL NOTATION SYMBOL-54
-1D21D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241;AL # GREEK INSTRUMENTAL NOTATION SYMBOL-54
-1D242;CM # COMBINING GREEK MUSICAL TRISEME
-1D243;CM # COMBINING GREEK MUSICAL TETRASEME
-1D244;CM # COMBINING GREEK MUSICAL PENTASEME
-1D245;AL # GREEK MUSICAL LEIMMA
-1D300;AL # MONOGRAM FOR EARTH
-1D301;AL # DIGRAM FOR HEAVENLY EARTH
-1D302;AL # DIGRAM FOR HUMAN EARTH
-1D303;AL # DIGRAM FOR EARTHLY HEAVEN
-1D304;AL # DIGRAM FOR EARTHLY HUMAN
-1D305;AL # DIGRAM FOR EARTH
-1D306;AL # TETRAGRAM FOR CENTRE
-1D307;AL # TETRAGRAM FOR FULL CIRCLE
-1D308;AL # TETRAGRAM FOR MIRED
-1D309;AL # TETRAGRAM FOR BARRIER
-1D30A;AL # TETRAGRAM FOR KEEPING SMALL
-1D30B;AL # TETRAGRAM FOR CONTRARIETY
-1D30C;AL # TETRAGRAM FOR ASCENT
-1D30D;AL # TETRAGRAM FOR OPPOSITION
-1D30E;AL # TETRAGRAM FOR BRANCHING OUT
-1D30F;AL # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310;AL # TETRAGRAM FOR DIVERGENCE
-1D311;AL # TETRAGRAM FOR YOUTHFULNESS
-1D312;AL # TETRAGRAM FOR INCREASE
-1D313;AL # TETRAGRAM FOR PENETRATION
-1D314;AL # TETRAGRAM FOR REACH
-1D315;AL # TETRAGRAM FOR CONTACT
-1D316;AL # TETRAGRAM FOR HOLDING BACK
-1D317;AL # TETRAGRAM FOR WAITING
-1D318;AL # TETRAGRAM FOR FOLLOWING
-1D319;AL # TETRAGRAM FOR ADVANCE
-1D31A;AL # TETRAGRAM FOR RELEASE
-1D31B;AL # TETRAGRAM FOR RESISTANCE
-1D31C;AL # TETRAGRAM FOR EASE
-1D31D;AL # TETRAGRAM FOR JOY
-1D31E;AL # TETRAGRAM FOR CONTENTION
-1D31F;AL # TETRAGRAM FOR ENDEAVOUR
-1D320;AL # TETRAGRAM FOR DUTIES
-1D321;AL # TETRAGRAM FOR CHANGE
-1D322;AL # TETRAGRAM FOR DECISIVENESS
-1D323;AL # TETRAGRAM FOR BOLD RESOLUTION
-1D324;AL # TETRAGRAM FOR PACKING
-1D325;AL # TETRAGRAM FOR LEGION
-1D326;AL # TETRAGRAM FOR CLOSENESS
-1D327;AL # TETRAGRAM FOR KINSHIP
-1D328;AL # TETRAGRAM FOR GATHERING
-1D329;AL # TETRAGRAM FOR STRENGTH
-1D32A;AL # TETRAGRAM FOR PURITY
-1D32B;AL # TETRAGRAM FOR FULLNESS
-1D32C;AL # TETRAGRAM FOR RESIDENCE
-1D32D;AL # TETRAGRAM FOR LAW OR MODEL
-1D32E;AL # TETRAGRAM FOR RESPONSE
-1D32F;AL # TETRAGRAM FOR GOING TO MEET
-1D330;AL # TETRAGRAM FOR ENCOUNTERS
-1D331;AL # TETRAGRAM FOR STOVE
-1D332;AL # TETRAGRAM FOR GREATNESS
-1D333;AL # TETRAGRAM FOR ENLARGEMENT
-1D334;AL # TETRAGRAM FOR PATTERN
-1D335;AL # TETRAGRAM FOR RITUAL
-1D336;AL # TETRAGRAM FOR FLIGHT
-1D337;AL # TETRAGRAM FOR VASTNESS OR WASTING
-1D338;AL # TETRAGRAM FOR CONSTANCY
-1D339;AL # TETRAGRAM FOR MEASURE
-1D33A;AL # TETRAGRAM FOR ETERNITY
-1D33B;AL # TETRAGRAM FOR UNITY
-1D33C;AL # TETRAGRAM FOR DIMINISHMENT
-1D33D;AL # TETRAGRAM FOR CLOSED MOUTH
-1D33E;AL # TETRAGRAM FOR GUARDEDNESS
-1D33F;AL # TETRAGRAM FOR GATHERING IN
-1D340;AL # TETRAGRAM FOR MASSING
-1D341;AL # TETRAGRAM FOR ACCUMULATION
-1D342;AL # TETRAGRAM FOR EMBELLISHMENT
-1D343;AL # TETRAGRAM FOR DOUBT
-1D344;AL # TETRAGRAM FOR WATCH
-1D345;AL # TETRAGRAM FOR SINKING
-1D346;AL # TETRAGRAM FOR INNER
-1D347;AL # TETRAGRAM FOR DEPARTURE
-1D348;AL # TETRAGRAM FOR DARKENING
-1D349;AL # TETRAGRAM FOR DIMMING
-1D34A;AL # TETRAGRAM FOR EXHAUSTION
-1D34B;AL # TETRAGRAM FOR SEVERANCE
-1D34C;AL # TETRAGRAM FOR STOPPAGE
-1D34D;AL # TETRAGRAM FOR HARDNESS
-1D34E;AL # TETRAGRAM FOR COMPLETION
-1D34F;AL # TETRAGRAM FOR CLOSURE
-1D350;AL # TETRAGRAM FOR FAILURE
-1D351;AL # TETRAGRAM FOR AGGRAVATION
-1D352;AL # TETRAGRAM FOR COMPLIANCE
-1D353;AL # TETRAGRAM FOR ON THE VERGE
-1D354;AL # TETRAGRAM FOR DIFFICULTIES
-1D355;AL # TETRAGRAM FOR LABOURING
-1D356;AL # TETRAGRAM FOR FOSTERING
-1D360;AL # COUNTING ROD UNIT DIGIT ONE
-1D361;AL # COUNTING ROD UNIT DIGIT TWO
-1D362;AL # COUNTING ROD UNIT DIGIT THREE
-1D363;AL # COUNTING ROD UNIT DIGIT FOUR
-1D364;AL # COUNTING ROD UNIT DIGIT FIVE
-1D365;AL # COUNTING ROD UNIT DIGIT SIX
-1D366;AL # COUNTING ROD UNIT DIGIT SEVEN
-1D367;AL # COUNTING ROD UNIT DIGIT EIGHT
-1D368;AL # COUNTING ROD UNIT DIGIT NINE
-1D369;AL # COUNTING ROD TENS DIGIT ONE
-1D36A;AL # COUNTING ROD TENS DIGIT TWO
-1D36B;AL # COUNTING ROD TENS DIGIT THREE
-1D36C;AL # COUNTING ROD TENS DIGIT FOUR
-1D36D;AL # COUNTING ROD TENS DIGIT FIVE
-1D36E;AL # COUNTING ROD TENS DIGIT SIX
-1D36F;AL # COUNTING ROD TENS DIGIT SEVEN
-1D370;AL # COUNTING ROD TENS DIGIT EIGHT
-1D371;AL # COUNTING ROD TENS DIGIT NINE
-1D400;AL # MATHEMATICAL BOLD CAPITAL A
-1D401;AL # MATHEMATICAL BOLD CAPITAL B
-1D402;AL # MATHEMATICAL BOLD CAPITAL C
-1D403;AL # MATHEMATICAL BOLD CAPITAL D
-1D404;AL # MATHEMATICAL BOLD CAPITAL E
-1D405;AL # MATHEMATICAL BOLD CAPITAL F
-1D406;AL # MATHEMATICAL BOLD CAPITAL G
-1D407;AL # MATHEMATICAL BOLD CAPITAL H
-1D408;AL # MATHEMATICAL BOLD CAPITAL I
-1D409;AL # MATHEMATICAL BOLD CAPITAL J
-1D40A;AL # MATHEMATICAL BOLD CAPITAL K
-1D40B;AL # MATHEMATICAL BOLD CAPITAL L
-1D40C;AL # MATHEMATICAL BOLD CAPITAL M
-1D40D;AL # MATHEMATICAL BOLD CAPITAL N
-1D40E;AL # MATHEMATICAL BOLD CAPITAL O
-1D40F;AL # MATHEMATICAL BOLD CAPITAL P
-1D410;AL # MATHEMATICAL BOLD CAPITAL Q
-1D411;AL # MATHEMATICAL BOLD CAPITAL R
-1D412;AL # MATHEMATICAL BOLD CAPITAL S
-1D413;AL # MATHEMATICAL BOLD CAPITAL T
-1D414;AL # MATHEMATICAL BOLD CAPITAL U
-1D415;AL # MATHEMATICAL BOLD CAPITAL V
-1D416;AL # MATHEMATICAL BOLD CAPITAL W
-1D417;AL # MATHEMATICAL BOLD CAPITAL X
-1D418;AL # MATHEMATICAL BOLD CAPITAL Y
-1D419;AL # MATHEMATICAL BOLD CAPITAL Z
-1D41A;AL # MATHEMATICAL BOLD SMALL A
-1D41B;AL # MATHEMATICAL BOLD SMALL B
-1D41C;AL # MATHEMATICAL BOLD SMALL C
-1D41D;AL # MATHEMATICAL BOLD SMALL D
-1D41E;AL # MATHEMATICAL BOLD SMALL E
-1D41F;AL # MATHEMATICAL BOLD SMALL F
-1D420;AL # MATHEMATICAL BOLD SMALL G
-1D421;AL # MATHEMATICAL BOLD SMALL H
-1D422;AL # MATHEMATICAL BOLD SMALL I
-1D423;AL # MATHEMATICAL BOLD SMALL J
-1D424;AL # MATHEMATICAL BOLD SMALL K
-1D425;AL # MATHEMATICAL BOLD SMALL L
-1D426;AL # MATHEMATICAL BOLD SMALL M
-1D427;AL # MATHEMATICAL BOLD SMALL N
-1D428;AL # MATHEMATICAL BOLD SMALL O
-1D429;AL # MATHEMATICAL BOLD SMALL P
-1D42A;AL # MATHEMATICAL BOLD SMALL Q
-1D42B;AL # MATHEMATICAL BOLD SMALL R
-1D42C;AL # MATHEMATICAL BOLD SMALL S
-1D42D;AL # MATHEMATICAL BOLD SMALL T
-1D42E;AL # MATHEMATICAL BOLD SMALL U
-1D42F;AL # MATHEMATICAL BOLD SMALL V
-1D430;AL # MATHEMATICAL BOLD SMALL W
-1D431;AL # MATHEMATICAL BOLD SMALL X
-1D432;AL # MATHEMATICAL BOLD SMALL Y
-1D433;AL # MATHEMATICAL BOLD SMALL Z
-1D434;AL # MATHEMATICAL ITALIC CAPITAL A
-1D435;AL # MATHEMATICAL ITALIC CAPITAL B
-1D436;AL # MATHEMATICAL ITALIC CAPITAL C
-1D437;AL # MATHEMATICAL ITALIC CAPITAL D
-1D438;AL # MATHEMATICAL ITALIC CAPITAL E
-1D439;AL # MATHEMATICAL ITALIC CAPITAL F
-1D43A;AL # MATHEMATICAL ITALIC CAPITAL G
-1D43B;AL # MATHEMATICAL ITALIC CAPITAL H
-1D43C;AL # MATHEMATICAL ITALIC CAPITAL I
-1D43D;AL # MATHEMATICAL ITALIC CAPITAL J
-1D43E;AL # MATHEMATICAL ITALIC CAPITAL K
-1D43F;AL # MATHEMATICAL ITALIC CAPITAL L
-1D440;AL # MATHEMATICAL ITALIC CAPITAL M
-1D441;AL # MATHEMATICAL ITALIC CAPITAL N
-1D442;AL # MATHEMATICAL ITALIC CAPITAL O
-1D443;AL # MATHEMATICAL ITALIC CAPITAL P
-1D444;AL # MATHEMATICAL ITALIC CAPITAL Q
-1D445;AL # MATHEMATICAL ITALIC CAPITAL R
-1D446;AL # MATHEMATICAL ITALIC CAPITAL S
-1D447;AL # MATHEMATICAL ITALIC CAPITAL T
-1D448;AL # MATHEMATICAL ITALIC CAPITAL U
-1D449;AL # MATHEMATICAL ITALIC CAPITAL V
-1D44A;AL # MATHEMATICAL ITALIC CAPITAL W
-1D44B;AL # MATHEMATICAL ITALIC CAPITAL X
-1D44C;AL # MATHEMATICAL ITALIC CAPITAL Y
-1D44D;AL # MATHEMATICAL ITALIC CAPITAL Z
-1D44E;AL # MATHEMATICAL ITALIC SMALL A
-1D44F;AL # MATHEMATICAL ITALIC SMALL B
-1D450;AL # MATHEMATICAL ITALIC SMALL C
-1D451;AL # MATHEMATICAL ITALIC SMALL D
-1D452;AL # MATHEMATICAL ITALIC SMALL E
-1D453;AL # MATHEMATICAL ITALIC SMALL F
-1D454;AL # MATHEMATICAL ITALIC SMALL G
-1D456;AL # MATHEMATICAL ITALIC SMALL I
-1D457;AL # MATHEMATICAL ITALIC SMALL J
-1D458;AL # MATHEMATICAL ITALIC SMALL K
-1D459;AL # MATHEMATICAL ITALIC SMALL L
-1D45A;AL # MATHEMATICAL ITALIC SMALL M
-1D45B;AL # MATHEMATICAL ITALIC SMALL N
-1D45C;AL # MATHEMATICAL ITALIC SMALL O
-1D45D;AL # MATHEMATICAL ITALIC SMALL P
-1D45E;AL # MATHEMATICAL ITALIC SMALL Q
-1D45F;AL # MATHEMATICAL ITALIC SMALL R
-1D460;AL # MATHEMATICAL ITALIC SMALL S
-1D461;AL # MATHEMATICAL ITALIC SMALL T
-1D462;AL # MATHEMATICAL ITALIC SMALL U
-1D463;AL # MATHEMATICAL ITALIC SMALL V
-1D464;AL # MATHEMATICAL ITALIC SMALL W
-1D465;AL # MATHEMATICAL ITALIC SMALL X
-1D466;AL # MATHEMATICAL ITALIC SMALL Y
-1D467;AL # MATHEMATICAL ITALIC SMALL Z
-1D468;AL # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D469;AL # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D46A;AL # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D46B;AL # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D46C;AL # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D46D;AL # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D46E;AL # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D46F;AL # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D470;AL # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D471;AL # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D472;AL # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D473;AL # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D474;AL # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D475;AL # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D476;AL # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D477;AL # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D478;AL # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D479;AL # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D47A;AL # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D47B;AL # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D47C;AL # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D47D;AL # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D47E;AL # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D47F;AL # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D480;AL # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D481;AL # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D482;AL # MATHEMATICAL BOLD ITALIC SMALL A
-1D483;AL # MATHEMATICAL BOLD ITALIC SMALL B
-1D484;AL # MATHEMATICAL BOLD ITALIC SMALL C
-1D485;AL # MATHEMATICAL BOLD ITALIC SMALL D
-1D486;AL # MATHEMATICAL BOLD ITALIC SMALL E
-1D487;AL # MATHEMATICAL BOLD ITALIC SMALL F
-1D488;AL # MATHEMATICAL BOLD ITALIC SMALL G
-1D489;AL # MATHEMATICAL BOLD ITALIC SMALL H
-1D48A;AL # MATHEMATICAL BOLD ITALIC SMALL I
-1D48B;AL # MATHEMATICAL BOLD ITALIC SMALL J
-1D48C;AL # MATHEMATICAL BOLD ITALIC SMALL K
-1D48D;AL # MATHEMATICAL BOLD ITALIC SMALL L
-1D48E;AL # MATHEMATICAL BOLD ITALIC SMALL M
-1D48F;AL # MATHEMATICAL BOLD ITALIC SMALL N
-1D490;AL # MATHEMATICAL BOLD ITALIC SMALL O
-1D491;AL # MATHEMATICAL BOLD ITALIC SMALL P
-1D492;AL # MATHEMATICAL BOLD ITALIC SMALL Q
-1D493;AL # MATHEMATICAL BOLD ITALIC SMALL R
-1D494;AL # MATHEMATICAL BOLD ITALIC SMALL S
-1D495;AL # MATHEMATICAL BOLD ITALIC SMALL T
-1D496;AL # MATHEMATICAL BOLD ITALIC SMALL U
-1D497;AL # MATHEMATICAL BOLD ITALIC SMALL V
-1D498;AL # MATHEMATICAL BOLD ITALIC SMALL W
-1D499;AL # MATHEMATICAL BOLD ITALIC SMALL X
-1D49A;AL # MATHEMATICAL BOLD ITALIC SMALL Y
-1D49B;AL # MATHEMATICAL BOLD ITALIC SMALL Z
-1D49C;AL # MATHEMATICAL SCRIPT CAPITAL A
-1D49E;AL # MATHEMATICAL SCRIPT CAPITAL C
-1D49F;AL # MATHEMATICAL SCRIPT CAPITAL D
-1D4A2;AL # MATHEMATICAL SCRIPT CAPITAL G
-1D4A5;AL # MATHEMATICAL SCRIPT CAPITAL J
-1D4A6;AL # MATHEMATICAL SCRIPT CAPITAL K
-1D4A9;AL # MATHEMATICAL SCRIPT CAPITAL N
-1D4AA;AL # MATHEMATICAL SCRIPT CAPITAL O
-1D4AB;AL # MATHEMATICAL SCRIPT CAPITAL P
-1D4AC;AL # MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE;AL # MATHEMATICAL SCRIPT CAPITAL S
-1D4AF;AL # MATHEMATICAL SCRIPT CAPITAL T
-1D4B0;AL # MATHEMATICAL SCRIPT CAPITAL U
-1D4B1;AL # MATHEMATICAL SCRIPT CAPITAL V
-1D4B2;AL # MATHEMATICAL SCRIPT CAPITAL W
-1D4B3;AL # MATHEMATICAL SCRIPT CAPITAL X
-1D4B4;AL # MATHEMATICAL SCRIPT CAPITAL Y
-1D4B5;AL # MATHEMATICAL SCRIPT CAPITAL Z
-1D4B6;AL # MATHEMATICAL SCRIPT SMALL A
-1D4B7;AL # MATHEMATICAL SCRIPT SMALL B
-1D4B8;AL # MATHEMATICAL SCRIPT SMALL C
-1D4B9;AL # MATHEMATICAL SCRIPT SMALL D
-1D4BB;AL # MATHEMATICAL SCRIPT SMALL F
-1D4BD;AL # MATHEMATICAL SCRIPT SMALL H
-1D4BE;AL # MATHEMATICAL SCRIPT SMALL I
-1D4BF;AL # MATHEMATICAL SCRIPT SMALL J
-1D4C0;AL # MATHEMATICAL SCRIPT SMALL K
-1D4C1;AL # MATHEMATICAL SCRIPT SMALL L
-1D4C2;AL # MATHEMATICAL SCRIPT SMALL M
-1D4C3;AL # MATHEMATICAL SCRIPT SMALL N
-1D4C5;AL # MATHEMATICAL SCRIPT SMALL P
-1D4C6;AL # MATHEMATICAL SCRIPT SMALL Q
-1D4C7;AL # MATHEMATICAL SCRIPT SMALL R
-1D4C8;AL # MATHEMATICAL SCRIPT SMALL S
-1D4C9;AL # MATHEMATICAL SCRIPT SMALL T
-1D4CA;AL # MATHEMATICAL SCRIPT SMALL U
-1D4CB;AL # MATHEMATICAL SCRIPT SMALL V
-1D4CC;AL # MATHEMATICAL SCRIPT SMALL W
-1D4CD;AL # MATHEMATICAL SCRIPT SMALL X
-1D4CE;AL # MATHEMATICAL SCRIPT SMALL Y
-1D4CF;AL # MATHEMATICAL SCRIPT SMALL Z
-1D4D0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D4D1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D4D2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D4D3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D4D4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D4D5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D4D6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D4D7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D4D8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D4D9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D4DA;AL # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D4DB;AL # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D4DC;AL # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D4DD;AL # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D4DE;AL # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D4DF;AL # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D4E0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D4E1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D4E2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D4E3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D4E4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D4E5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D4E6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D4E7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D4E8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D4E9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D4EA;AL # MATHEMATICAL BOLD SCRIPT SMALL A
-1D4EB;AL # MATHEMATICAL BOLD SCRIPT SMALL B
-1D4EC;AL # MATHEMATICAL BOLD SCRIPT SMALL C
-1D4ED;AL # MATHEMATICAL BOLD SCRIPT SMALL D
-1D4EE;AL # MATHEMATICAL BOLD SCRIPT SMALL E
-1D4EF;AL # MATHEMATICAL BOLD SCRIPT SMALL F
-1D4F0;AL # MATHEMATICAL BOLD SCRIPT SMALL G
-1D4F1;AL # MATHEMATICAL BOLD SCRIPT SMALL H
-1D4F2;AL # MATHEMATICAL BOLD SCRIPT SMALL I
-1D4F3;AL # MATHEMATICAL BOLD SCRIPT SMALL J
-1D4F4;AL # MATHEMATICAL BOLD SCRIPT SMALL K
-1D4F5;AL # MATHEMATICAL BOLD SCRIPT SMALL L
-1D4F6;AL # MATHEMATICAL BOLD SCRIPT SMALL M
-1D4F7;AL # MATHEMATICAL BOLD SCRIPT SMALL N
-1D4F8;AL # MATHEMATICAL BOLD SCRIPT SMALL O
-1D4F9;AL # MATHEMATICAL BOLD SCRIPT SMALL P
-1D4FA;AL # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D4FB;AL # MATHEMATICAL BOLD SCRIPT SMALL R
-1D4FC;AL # MATHEMATICAL BOLD SCRIPT SMALL S
-1D4FD;AL # MATHEMATICAL BOLD SCRIPT SMALL T
-1D4FE;AL # MATHEMATICAL BOLD SCRIPT SMALL U
-1D4FF;AL # MATHEMATICAL BOLD SCRIPT SMALL V
-1D500;AL # MATHEMATICAL BOLD SCRIPT SMALL W
-1D501;AL # MATHEMATICAL BOLD SCRIPT SMALL X
-1D502;AL # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D503;AL # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D504;AL # MATHEMATICAL FRAKTUR CAPITAL A
-1D505;AL # MATHEMATICAL FRAKTUR CAPITAL B
-1D507;AL # MATHEMATICAL FRAKTUR CAPITAL D
-1D508;AL # MATHEMATICAL FRAKTUR CAPITAL E
-1D509;AL # MATHEMATICAL FRAKTUR CAPITAL F
-1D50A;AL # MATHEMATICAL FRAKTUR CAPITAL G
-1D50D;AL # MATHEMATICAL FRAKTUR CAPITAL J
-1D50E;AL # MATHEMATICAL FRAKTUR CAPITAL K
-1D50F;AL # MATHEMATICAL FRAKTUR CAPITAL L
-1D510;AL # MATHEMATICAL FRAKTUR CAPITAL M
-1D511;AL # MATHEMATICAL FRAKTUR CAPITAL N
-1D512;AL # MATHEMATICAL FRAKTUR CAPITAL O
-1D513;AL # MATHEMATICAL FRAKTUR CAPITAL P
-1D514;AL # MATHEMATICAL FRAKTUR CAPITAL Q
-1D516;AL # MATHEMATICAL FRAKTUR CAPITAL S
-1D517;AL # MATHEMATICAL FRAKTUR CAPITAL T
-1D518;AL # MATHEMATICAL FRAKTUR CAPITAL U
-1D519;AL # MATHEMATICAL FRAKTUR CAPITAL V
-1D51A;AL # MATHEMATICAL FRAKTUR CAPITAL W
-1D51B;AL # MATHEMATICAL FRAKTUR CAPITAL X
-1D51C;AL # MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E;AL # MATHEMATICAL FRAKTUR SMALL A
-1D51F;AL # MATHEMATICAL FRAKTUR SMALL B
-1D520;AL # MATHEMATICAL FRAKTUR SMALL C
-1D521;AL # MATHEMATICAL FRAKTUR SMALL D
-1D522;AL # MATHEMATICAL FRAKTUR SMALL E
-1D523;AL # MATHEMATICAL FRAKTUR SMALL F
-1D524;AL # MATHEMATICAL FRAKTUR SMALL G
-1D525;AL # MATHEMATICAL FRAKTUR SMALL H
-1D526;AL # MATHEMATICAL FRAKTUR SMALL I
-1D527;AL # MATHEMATICAL FRAKTUR SMALL J
-1D528;AL # MATHEMATICAL FRAKTUR SMALL K
-1D529;AL # MATHEMATICAL FRAKTUR SMALL L
-1D52A;AL # MATHEMATICAL FRAKTUR SMALL M
-1D52B;AL # MATHEMATICAL FRAKTUR SMALL N
-1D52C;AL # MATHEMATICAL FRAKTUR SMALL O
-1D52D;AL # MATHEMATICAL FRAKTUR SMALL P
-1D52E;AL # MATHEMATICAL FRAKTUR SMALL Q
-1D52F;AL # MATHEMATICAL FRAKTUR SMALL R
-1D530;AL # MATHEMATICAL FRAKTUR SMALL S
-1D531;AL # MATHEMATICAL FRAKTUR SMALL T
-1D532;AL # MATHEMATICAL FRAKTUR SMALL U
-1D533;AL # MATHEMATICAL FRAKTUR SMALL V
-1D534;AL # MATHEMATICAL FRAKTUR SMALL W
-1D535;AL # MATHEMATICAL FRAKTUR SMALL X
-1D536;AL # MATHEMATICAL FRAKTUR SMALL Y
-1D537;AL # MATHEMATICAL FRAKTUR SMALL Z
-1D538;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D539;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D53C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D53D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D53E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D541;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D542;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D543;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D544;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D54B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D54C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D54D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D54E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D54F;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D550;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552;AL # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D553;AL # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D554;AL # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D555;AL # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D556;AL # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D557;AL # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D558;AL # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D559;AL # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D55A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D55B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D55C;AL # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D55D;AL # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D55E;AL # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D55F;AL # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D560;AL # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D561;AL # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D562;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D563;AL # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D564;AL # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D565;AL # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D566;AL # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D567;AL # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D568;AL # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D569;AL # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D56A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D56B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D56C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D56D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D56E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D56F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D570;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D571;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D572;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D573;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D574;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D575;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D576;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D577;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D578;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D579;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D57A;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D57B;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D57C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D57D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D57E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D57F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D580;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D581;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D582;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D583;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D584;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D585;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D586;AL # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D587;AL # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D588;AL # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D589;AL # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D58A;AL # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D58B;AL # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D58C;AL # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D58D;AL # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D58E;AL # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D58F;AL # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D590;AL # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D591;AL # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D592;AL # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D593;AL # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D594;AL # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D595;AL # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D596;AL # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D597;AL # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D598;AL # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D599;AL # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D59A;AL # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D59B;AL # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D59C;AL # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D59D;AL # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D59E;AL # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D59F;AL # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5A0;AL # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5A1;AL # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5A2;AL # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5A3;AL # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5A4;AL # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5A5;AL # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5A6;AL # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5A7;AL # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5A8;AL # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5A9;AL # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5AA;AL # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5AB;AL # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5AC;AL # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5AD;AL # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5AE;AL # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5AF;AL # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5B0;AL # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5B1;AL # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5B2;AL # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5B3;AL # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5B4;AL # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5B5;AL # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5B6;AL # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5B7;AL # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5B8;AL # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5B9;AL # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5BA;AL # MATHEMATICAL SANS-SERIF SMALL A
-1D5BB;AL # MATHEMATICAL SANS-SERIF SMALL B
-1D5BC;AL # MATHEMATICAL SANS-SERIF SMALL C
-1D5BD;AL # MATHEMATICAL SANS-SERIF SMALL D
-1D5BE;AL # MATHEMATICAL SANS-SERIF SMALL E
-1D5BF;AL # MATHEMATICAL SANS-SERIF SMALL F
-1D5C0;AL # MATHEMATICAL SANS-SERIF SMALL G
-1D5C1;AL # MATHEMATICAL SANS-SERIF SMALL H
-1D5C2;AL # MATHEMATICAL SANS-SERIF SMALL I
-1D5C3;AL # MATHEMATICAL SANS-SERIF SMALL J
-1D5C4;AL # MATHEMATICAL SANS-SERIF SMALL K
-1D5C5;AL # MATHEMATICAL SANS-SERIF SMALL L
-1D5C6;AL # MATHEMATICAL SANS-SERIF SMALL M
-1D5C7;AL # MATHEMATICAL SANS-SERIF SMALL N
-1D5C8;AL # MATHEMATICAL SANS-SERIF SMALL O
-1D5C9;AL # MATHEMATICAL SANS-SERIF SMALL P
-1D5CA;AL # MATHEMATICAL SANS-SERIF SMALL Q
-1D5CB;AL # MATHEMATICAL SANS-SERIF SMALL R
-1D5CC;AL # MATHEMATICAL SANS-SERIF SMALL S
-1D5CD;AL # MATHEMATICAL SANS-SERIF SMALL T
-1D5CE;AL # MATHEMATICAL SANS-SERIF SMALL U
-1D5CF;AL # MATHEMATICAL SANS-SERIF SMALL V
-1D5D0;AL # MATHEMATICAL SANS-SERIF SMALL W
-1D5D1;AL # MATHEMATICAL SANS-SERIF SMALL X
-1D5D2;AL # MATHEMATICAL SANS-SERIF SMALL Y
-1D5D3;AL # MATHEMATICAL SANS-SERIF SMALL Z
-1D5D4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D5D5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D5D6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D5D7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D5D8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D5D9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D5DA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D5DB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D5DC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D5DD;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D5DE;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D5DF;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D5E0;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D5E1;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D5E2;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D5E3;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D5E4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D5E5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D5E6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D5E7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D5E8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D5E9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D5EA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D5EB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D5EC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D5ED;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D5EE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D5EF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D5F0;AL # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D5F1;AL # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D5F2;AL # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D5F3;AL # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D5F4;AL # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D5F5;AL # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D5F6;AL # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D5F7;AL # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D5F8;AL # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D5F9;AL # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D5FA;AL # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D5FB;AL # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D5FC;AL # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D5FD;AL # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D5FE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D5FF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D600;AL # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D601;AL # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D602;AL # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D603;AL # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D604;AL # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D605;AL # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D606;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D607;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D608;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D609;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D60A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D60B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D60C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D60D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D60E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D60F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D610;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D611;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D612;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D613;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D614;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D615;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D616;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D617;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D618;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D619;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D61A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D61B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D61C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D61D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D61E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D61F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D620;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D621;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D622;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D623;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D624;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D625;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D626;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D627;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D628;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D629;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D62A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D62B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D62C;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D62D;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D62E;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D62F;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D630;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D631;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D632;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D633;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D634;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D635;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D636;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D637;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D638;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D639;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D63A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D63B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D63C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D63D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D63E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D63F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D640;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D641;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D642;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D643;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D644;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D645;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D646;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D647;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D648;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D649;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D64A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D64B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D64C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D64D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D64E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D64F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D650;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D651;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D652;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D653;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D654;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D655;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D656;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D657;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D658;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D659;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D65A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D65B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D65C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D65D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D65E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D65F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D660;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D661;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D662;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D663;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D664;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D665;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D666;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D667;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D668;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D669;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D66A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D66B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D66C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D66D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D66E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D66F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D670;AL # MATHEMATICAL MONOSPACE CAPITAL A
-1D671;AL # MATHEMATICAL MONOSPACE CAPITAL B
-1D672;AL # MATHEMATICAL MONOSPACE CAPITAL C
-1D673;AL # MATHEMATICAL MONOSPACE CAPITAL D
-1D674;AL # MATHEMATICAL MONOSPACE CAPITAL E
-1D675;AL # MATHEMATICAL MONOSPACE CAPITAL F
-1D676;AL # MATHEMATICAL MONOSPACE CAPITAL G
-1D677;AL # MATHEMATICAL MONOSPACE CAPITAL H
-1D678;AL # MATHEMATICAL MONOSPACE CAPITAL I
-1D679;AL # MATHEMATICAL MONOSPACE CAPITAL J
-1D67A;AL # MATHEMATICAL MONOSPACE CAPITAL K
-1D67B;AL # MATHEMATICAL MONOSPACE CAPITAL L
-1D67C;AL # MATHEMATICAL MONOSPACE CAPITAL M
-1D67D;AL # MATHEMATICAL MONOSPACE CAPITAL N
-1D67E;AL # MATHEMATICAL MONOSPACE CAPITAL O
-1D67F;AL # MATHEMATICAL MONOSPACE CAPITAL P
-1D680;AL # MATHEMATICAL MONOSPACE CAPITAL Q
-1D681;AL # MATHEMATICAL MONOSPACE CAPITAL R
-1D682;AL # MATHEMATICAL MONOSPACE CAPITAL S
-1D683;AL # MATHEMATICAL MONOSPACE CAPITAL T
-1D684;AL # MATHEMATICAL MONOSPACE CAPITAL U
-1D685;AL # MATHEMATICAL MONOSPACE CAPITAL V
-1D686;AL # MATHEMATICAL MONOSPACE CAPITAL W
-1D687;AL # MATHEMATICAL MONOSPACE CAPITAL X
-1D688;AL # MATHEMATICAL MONOSPACE CAPITAL Y
-1D689;AL # MATHEMATICAL MONOSPACE CAPITAL Z
-1D68A;AL # MATHEMATICAL MONOSPACE SMALL A
-1D68B;AL # MATHEMATICAL MONOSPACE SMALL B
-1D68C;AL # MATHEMATICAL MONOSPACE SMALL C
-1D68D;AL # MATHEMATICAL MONOSPACE SMALL D
-1D68E;AL # MATHEMATICAL MONOSPACE SMALL E
-1D68F;AL # MATHEMATICAL MONOSPACE SMALL F
-1D690;AL # MATHEMATICAL MONOSPACE SMALL G
-1D691;AL # MATHEMATICAL MONOSPACE SMALL H
-1D692;AL # MATHEMATICAL MONOSPACE SMALL I
-1D693;AL # MATHEMATICAL MONOSPACE SMALL J
-1D694;AL # MATHEMATICAL MONOSPACE SMALL K
-1D695;AL # MATHEMATICAL MONOSPACE SMALL L
-1D696;AL # MATHEMATICAL MONOSPACE SMALL M
-1D697;AL # MATHEMATICAL MONOSPACE SMALL N
-1D698;AL # MATHEMATICAL MONOSPACE SMALL O
-1D699;AL # MATHEMATICAL MONOSPACE SMALL P
-1D69A;AL # MATHEMATICAL MONOSPACE SMALL Q
-1D69B;AL # MATHEMATICAL MONOSPACE SMALL R
-1D69C;AL # MATHEMATICAL MONOSPACE SMALL S
-1D69D;AL # MATHEMATICAL MONOSPACE SMALL T
-1D69E;AL # MATHEMATICAL MONOSPACE SMALL U
-1D69F;AL # MATHEMATICAL MONOSPACE SMALL V
-1D6A0;AL # MATHEMATICAL MONOSPACE SMALL W
-1D6A1;AL # MATHEMATICAL MONOSPACE SMALL X
-1D6A2;AL # MATHEMATICAL MONOSPACE SMALL Y
-1D6A3;AL # MATHEMATICAL MONOSPACE SMALL Z
-1D6A4;AL # MATHEMATICAL ITALIC SMALL DOTLESS I
-1D6A5;AL # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A8;AL # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6A9;AL # MATHEMATICAL BOLD CAPITAL BETA
-1D6AA;AL # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6AB;AL # MATHEMATICAL BOLD CAPITAL DELTA
-1D6AC;AL # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6AD;AL # MATHEMATICAL BOLD CAPITAL ZETA
-1D6AE;AL # MATHEMATICAL BOLD CAPITAL ETA
-1D6AF;AL # MATHEMATICAL BOLD CAPITAL THETA
-1D6B0;AL # MATHEMATICAL BOLD CAPITAL IOTA
-1D6B1;AL # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6B2;AL # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6B3;AL # MATHEMATICAL BOLD CAPITAL MU
-1D6B4;AL # MATHEMATICAL BOLD CAPITAL NU
-1D6B5;AL # MATHEMATICAL BOLD CAPITAL XI
-1D6B6;AL # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6B7;AL # MATHEMATICAL BOLD CAPITAL PI
-1D6B8;AL # MATHEMATICAL BOLD CAPITAL RHO
-1D6B9;AL # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6BA;AL # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6BB;AL # MATHEMATICAL BOLD CAPITAL TAU
-1D6BC;AL # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6BD;AL # MATHEMATICAL BOLD CAPITAL PHI
-1D6BE;AL # MATHEMATICAL BOLD CAPITAL CHI
-1D6BF;AL # MATHEMATICAL BOLD CAPITAL PSI
-1D6C0;AL # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1;AL # MATHEMATICAL BOLD NABLA
-1D6C2;AL # MATHEMATICAL BOLD SMALL ALPHA
-1D6C3;AL # MATHEMATICAL BOLD SMALL BETA
-1D6C4;AL # MATHEMATICAL BOLD SMALL GAMMA
-1D6C5;AL # MATHEMATICAL BOLD SMALL DELTA
-1D6C6;AL # MATHEMATICAL BOLD SMALL EPSILON
-1D6C7;AL # MATHEMATICAL BOLD SMALL ZETA
-1D6C8;AL # MATHEMATICAL BOLD SMALL ETA
-1D6C9;AL # MATHEMATICAL BOLD SMALL THETA
-1D6CA;AL # MATHEMATICAL BOLD SMALL IOTA
-1D6CB;AL # MATHEMATICAL BOLD SMALL KAPPA
-1D6CC;AL # MATHEMATICAL BOLD SMALL LAMDA
-1D6CD;AL # MATHEMATICAL BOLD SMALL MU
-1D6CE;AL # MATHEMATICAL BOLD SMALL NU
-1D6CF;AL # MATHEMATICAL BOLD SMALL XI
-1D6D0;AL # MATHEMATICAL BOLD SMALL OMICRON
-1D6D1;AL # MATHEMATICAL BOLD SMALL PI
-1D6D2;AL # MATHEMATICAL BOLD SMALL RHO
-1D6D3;AL # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4;AL # MATHEMATICAL BOLD SMALL SIGMA
-1D6D5;AL # MATHEMATICAL BOLD SMALL TAU
-1D6D6;AL # MATHEMATICAL BOLD SMALL UPSILON
-1D6D7;AL # MATHEMATICAL BOLD SMALL PHI
-1D6D8;AL # MATHEMATICAL BOLD SMALL CHI
-1D6D9;AL # MATHEMATICAL BOLD SMALL PSI
-1D6DA;AL # MATHEMATICAL BOLD SMALL OMEGA
-1D6DB;AL # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC;AL # MATHEMATICAL BOLD EPSILON SYMBOL
-1D6DD;AL # MATHEMATICAL BOLD THETA SYMBOL
-1D6DE;AL # MATHEMATICAL BOLD KAPPA SYMBOL
-1D6DF;AL # MATHEMATICAL BOLD PHI SYMBOL
-1D6E0;AL # MATHEMATICAL BOLD RHO SYMBOL
-1D6E1;AL # MATHEMATICAL BOLD PI SYMBOL
-1D6E2;AL # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D6E3;AL # MATHEMATICAL ITALIC CAPITAL BETA
-1D6E4;AL # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D6E5;AL # MATHEMATICAL ITALIC CAPITAL DELTA
-1D6E6;AL # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D6E7;AL # MATHEMATICAL ITALIC CAPITAL ZETA
-1D6E8;AL # MATHEMATICAL ITALIC CAPITAL ETA
-1D6E9;AL # MATHEMATICAL ITALIC CAPITAL THETA
-1D6EA;AL # MATHEMATICAL ITALIC CAPITAL IOTA
-1D6EB;AL # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D6EC;AL # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D6ED;AL # MATHEMATICAL ITALIC CAPITAL MU
-1D6EE;AL # MATHEMATICAL ITALIC CAPITAL NU
-1D6EF;AL # MATHEMATICAL ITALIC CAPITAL XI
-1D6F0;AL # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D6F1;AL # MATHEMATICAL ITALIC CAPITAL PI
-1D6F2;AL # MATHEMATICAL ITALIC CAPITAL RHO
-1D6F3;AL # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D6F4;AL # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D6F5;AL # MATHEMATICAL ITALIC CAPITAL TAU
-1D6F6;AL # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D6F7;AL # MATHEMATICAL ITALIC CAPITAL PHI
-1D6F8;AL # MATHEMATICAL ITALIC CAPITAL CHI
-1D6F9;AL # MATHEMATICAL ITALIC CAPITAL PSI
-1D6FA;AL # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB;AL # MATHEMATICAL ITALIC NABLA
-1D6FC;AL # MATHEMATICAL ITALIC SMALL ALPHA
-1D6FD;AL # MATHEMATICAL ITALIC SMALL BETA
-1D6FE;AL # MATHEMATICAL ITALIC SMALL GAMMA
-1D6FF;AL # MATHEMATICAL ITALIC SMALL DELTA
-1D700;AL # MATHEMATICAL ITALIC SMALL EPSILON
-1D701;AL # MATHEMATICAL ITALIC SMALL ZETA
-1D702;AL # MATHEMATICAL ITALIC SMALL ETA
-1D703;AL # MATHEMATICAL ITALIC SMALL THETA
-1D704;AL # MATHEMATICAL ITALIC SMALL IOTA
-1D705;AL # MATHEMATICAL ITALIC SMALL KAPPA
-1D706;AL # MATHEMATICAL ITALIC SMALL LAMDA
-1D707;AL # MATHEMATICAL ITALIC SMALL MU
-1D708;AL # MATHEMATICAL ITALIC SMALL NU
-1D709;AL # MATHEMATICAL ITALIC SMALL XI
-1D70A;AL # MATHEMATICAL ITALIC SMALL OMICRON
-1D70B;AL # MATHEMATICAL ITALIC SMALL PI
-1D70C;AL # MATHEMATICAL ITALIC SMALL RHO
-1D70D;AL # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E;AL # MATHEMATICAL ITALIC SMALL SIGMA
-1D70F;AL # MATHEMATICAL ITALIC SMALL TAU
-1D710;AL # MATHEMATICAL ITALIC SMALL UPSILON
-1D711;AL # MATHEMATICAL ITALIC SMALL PHI
-1D712;AL # MATHEMATICAL ITALIC SMALL CHI
-1D713;AL # MATHEMATICAL ITALIC SMALL PSI
-1D714;AL # MATHEMATICAL ITALIC SMALL OMEGA
-1D715;AL # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716;AL # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D717;AL # MATHEMATICAL ITALIC THETA SYMBOL
-1D718;AL # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D719;AL # MATHEMATICAL ITALIC PHI SYMBOL
-1D71A;AL # MATHEMATICAL ITALIC RHO SYMBOL
-1D71B;AL # MATHEMATICAL ITALIC PI SYMBOL
-1D71C;AL # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D71D;AL # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D71E;AL # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D71F;AL # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D720;AL # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D721;AL # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D722;AL # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D723;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D724;AL # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D725;AL # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D726;AL # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D727;AL # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D728;AL # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D729;AL # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D72A;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D72B;AL # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D72C;AL # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D72D;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D72E;AL # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D72F;AL # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D730;AL # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D731;AL # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D732;AL # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D733;AL # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D734;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735;AL # MATHEMATICAL BOLD ITALIC NABLA
-1D736;AL # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D737;AL # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D738;AL # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D739;AL # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D73A;AL # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D73B;AL # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D73C;AL # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D73D;AL # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D73E;AL # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D73F;AL # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D740;AL # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D741;AL # MATHEMATICAL BOLD ITALIC SMALL MU
-1D742;AL # MATHEMATICAL BOLD ITALIC SMALL NU
-1D743;AL # MATHEMATICAL BOLD ITALIC SMALL XI
-1D744;AL # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D745;AL # MATHEMATICAL BOLD ITALIC SMALL PI
-1D746;AL # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D747;AL # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748;AL # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D749;AL # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D74A;AL # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D74B;AL # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D74C;AL # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D74D;AL # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D74E;AL # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F;AL # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750;AL # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D751;AL # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D752;AL # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D753;AL # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D754;AL # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D755;AL # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D756;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D757;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D758;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D759;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D75A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D75B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D75C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D75D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D75E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D75F;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D760;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D761;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D762;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D763;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D764;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D765;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D766;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D767;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D768;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D769;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D76A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D76B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D76C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D76D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D76E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F;AL # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D771;AL # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D772;AL # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D773;AL # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D774;AL # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D775;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D776;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D777;AL # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D778;AL # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D779;AL # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D77A;AL # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D77B;AL # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D77C;AL # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D77D;AL # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D77E;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D77F;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D780;AL # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D781;AL # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782;AL # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D783;AL # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D784;AL # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D785;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D786;AL # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D787;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D788;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789;AL # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A;AL # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D78B;AL # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D78C;AL # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D78D;AL # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D78E;AL # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D78F;AL # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D790;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1D791;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D792;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D793;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D794;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1D795;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-1D796;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1D797;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D798;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1D799;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-1D79A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D79B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-1D79C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-1D79D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-1D79E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1D79F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D7A0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D7A1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1D7A2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-1D7A3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-1D7A4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1D7A5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D7A6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D7A7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D7A8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-1D7AB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-1D7AC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-1D7AD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-1D7AE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7AF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-1D7B0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-1D7B1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7B2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-1D7B3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7B4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-1D7B5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-1D7B6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-1D7B7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-1D7B8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-1D7B9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7BA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7BB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-1D7BD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-1D7BE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-1D7BF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-1D7C1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-1D7C2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-1D7C5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-1D7C6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-1D7C7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-1D7C8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-1D7C9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CA;AL # MATHEMATICAL BOLD CAPITAL DIGAMMA
-1D7CB;AL # MATHEMATICAL BOLD SMALL DIGAMMA
-1D7CE;NU # MATHEMATICAL BOLD DIGIT ZERO
-1D7CF;NU # MATHEMATICAL BOLD DIGIT ONE
-1D7D0;NU # MATHEMATICAL BOLD DIGIT TWO
-1D7D1;NU # MATHEMATICAL BOLD DIGIT THREE
-1D7D2;NU # MATHEMATICAL BOLD DIGIT FOUR
-1D7D3;NU # MATHEMATICAL BOLD DIGIT FIVE
-1D7D4;NU # MATHEMATICAL BOLD DIGIT SIX
-1D7D5;NU # MATHEMATICAL BOLD DIGIT SEVEN
-1D7D6;NU # MATHEMATICAL BOLD DIGIT EIGHT
-1D7D7;NU # MATHEMATICAL BOLD DIGIT NINE
-1D7D8;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7D9;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7DA;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7DB;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7DC;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7DD;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7DE;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7DF;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E0;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7E1;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7E2;NU # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7E3;NU # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7E4;NU # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7E5;NU # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7E6;NU # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7E7;NU # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7E8;NU # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7E9;NU # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7EA;NU # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7EB;NU # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7EC;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7ED;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7EE;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7EF;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F0;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7F1;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7F2;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7F3;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7F4;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7F5;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7F6;NU # MATHEMATICAL MONOSPACE DIGIT ZERO
-1D7F7;NU # MATHEMATICAL MONOSPACE DIGIT ONE
-1D7F8;NU # MATHEMATICAL MONOSPACE DIGIT TWO
-1D7F9;NU # MATHEMATICAL MONOSPACE DIGIT THREE
-1D7FA;NU # MATHEMATICAL MONOSPACE DIGIT FOUR
-1D7FB;NU # MATHEMATICAL MONOSPACE DIGIT FIVE
-1D7FC;NU # MATHEMATICAL MONOSPACE DIGIT SIX
-1D7FD;NU # MATHEMATICAL MONOSPACE DIGIT SEVEN
-1D7FE;NU # MATHEMATICAL MONOSPACE DIGIT EIGHT
-1D7FF;NU # MATHEMATICAL MONOSPACE DIGIT NINE
-1EE00;AL # ARABIC MATHEMATICAL ALEF
-1EE01;AL # ARABIC MATHEMATICAL BEH
-1EE02;AL # ARABIC MATHEMATICAL JEEM
-1EE03;AL # ARABIC MATHEMATICAL DAL
-1EE05;AL # ARABIC MATHEMATICAL WAW
-1EE06;AL # ARABIC MATHEMATICAL ZAIN
-1EE07;AL # ARABIC MATHEMATICAL HAH
-1EE08;AL # ARABIC MATHEMATICAL TAH
-1EE09;AL # ARABIC MATHEMATICAL YEH
-1EE0A;AL # ARABIC MATHEMATICAL KAF
-1EE0B;AL # ARABIC MATHEMATICAL LAM
-1EE0C;AL # ARABIC MATHEMATICAL MEEM
-1EE0D;AL # ARABIC MATHEMATICAL NOON
-1EE0E;AL # ARABIC MATHEMATICAL SEEN
-1EE0F;AL # ARABIC MATHEMATICAL AIN
-1EE10;AL # ARABIC MATHEMATICAL FEH
-1EE11;AL # ARABIC MATHEMATICAL SAD
-1EE12;AL # ARABIC MATHEMATICAL QAF
-1EE13;AL # ARABIC MATHEMATICAL REH
-1EE14;AL # ARABIC MATHEMATICAL SHEEN
-1EE15;AL # ARABIC MATHEMATICAL TEH
-1EE16;AL # ARABIC MATHEMATICAL THEH
-1EE17;AL # ARABIC MATHEMATICAL KHAH
-1EE18;AL # ARABIC MATHEMATICAL THAL
-1EE19;AL # ARABIC MATHEMATICAL DAD
-1EE1A;AL # ARABIC MATHEMATICAL ZAH
-1EE1B;AL # ARABIC MATHEMATICAL GHAIN
-1EE1C;AL # ARABIC MATHEMATICAL DOTLESS BEH
-1EE1D;AL # ARABIC MATHEMATICAL DOTLESS NOON
-1EE1E;AL # ARABIC MATHEMATICAL DOTLESS FEH
-1EE1F;AL # ARABIC MATHEMATICAL DOTLESS QAF
-1EE21;AL # ARABIC MATHEMATICAL INITIAL BEH
-1EE22;AL # ARABIC MATHEMATICAL INITIAL JEEM
-1EE24;AL # ARABIC MATHEMATICAL INITIAL HEH
-1EE27;AL # ARABIC MATHEMATICAL INITIAL HAH
-1EE29;AL # ARABIC MATHEMATICAL INITIAL YEH
-1EE2A;AL # ARABIC MATHEMATICAL INITIAL KAF
-1EE2B;AL # ARABIC MATHEMATICAL INITIAL LAM
-1EE2C;AL # ARABIC MATHEMATICAL INITIAL MEEM
-1EE2D;AL # ARABIC MATHEMATICAL INITIAL NOON
-1EE2E;AL # ARABIC MATHEMATICAL INITIAL SEEN
-1EE2F;AL # ARABIC MATHEMATICAL INITIAL AIN
-1EE30;AL # ARABIC MATHEMATICAL INITIAL FEH
-1EE31;AL # ARABIC MATHEMATICAL INITIAL SAD
-1EE32;AL # ARABIC MATHEMATICAL INITIAL QAF
-1EE34;AL # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE35;AL # ARABIC MATHEMATICAL INITIAL TEH
-1EE36;AL # ARABIC MATHEMATICAL INITIAL THEH
-1EE37;AL # ARABIC MATHEMATICAL INITIAL KHAH
-1EE39;AL # ARABIC MATHEMATICAL INITIAL DAD
-1EE3B;AL # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE42;AL # ARABIC MATHEMATICAL TAILED JEEM
-1EE47;AL # ARABIC MATHEMATICAL TAILED HAH
-1EE49;AL # ARABIC MATHEMATICAL TAILED YEH
-1EE4B;AL # ARABIC MATHEMATICAL TAILED LAM
-1EE4D;AL # ARABIC MATHEMATICAL TAILED NOON
-1EE4E;AL # ARABIC MATHEMATICAL TAILED SEEN
-1EE4F;AL # ARABIC MATHEMATICAL TAILED AIN
-1EE51;AL # ARABIC MATHEMATICAL TAILED SAD
-1EE52;AL # ARABIC MATHEMATICAL TAILED QAF
-1EE54;AL # ARABIC MATHEMATICAL TAILED SHEEN
-1EE57;AL # ARABIC MATHEMATICAL TAILED KHAH
-1EE59;AL # ARABIC MATHEMATICAL TAILED DAD
-1EE5B;AL # ARABIC MATHEMATICAL TAILED GHAIN
-1EE5D;AL # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-1EE5F;AL # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-1EE61;AL # ARABIC MATHEMATICAL STRETCHED BEH
-1EE62;AL # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE64;AL # ARABIC MATHEMATICAL STRETCHED HEH
-1EE67;AL # ARABIC MATHEMATICAL STRETCHED HAH
-1EE68;AL # ARABIC MATHEMATICAL STRETCHED TAH
-1EE69;AL # ARABIC MATHEMATICAL STRETCHED YEH
-1EE6A;AL # ARABIC MATHEMATICAL STRETCHED KAF
-1EE6C;AL # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE6D;AL # ARABIC MATHEMATICAL STRETCHED NOON
-1EE6E;AL # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE6F;AL # ARABIC MATHEMATICAL STRETCHED AIN
-1EE70;AL # ARABIC MATHEMATICAL STRETCHED FEH
-1EE71;AL # ARABIC MATHEMATICAL STRETCHED SAD
-1EE72;AL # ARABIC MATHEMATICAL STRETCHED QAF
-1EE74;AL # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE75;AL # ARABIC MATHEMATICAL STRETCHED TEH
-1EE76;AL # ARABIC MATHEMATICAL STRETCHED THEH
-1EE77;AL # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE79;AL # ARABIC MATHEMATICAL STRETCHED DAD
-1EE7A;AL # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE7B;AL # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE7C;AL # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-1EE7E;AL # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-1EE80;AL # ARABIC MATHEMATICAL LOOPED ALEF
-1EE81;AL # ARABIC MATHEMATICAL LOOPED BEH
-1EE82;AL # ARABIC MATHEMATICAL LOOPED JEEM
-1EE83;AL # ARABIC MATHEMATICAL LOOPED DAL
-1EE84;AL # ARABIC MATHEMATICAL LOOPED HEH
-1EE85;AL # ARABIC MATHEMATICAL LOOPED WAW
-1EE86;AL # ARABIC MATHEMATICAL LOOPED ZAIN
-1EE87;AL # ARABIC MATHEMATICAL LOOPED HAH
-1EE88;AL # ARABIC MATHEMATICAL LOOPED TAH
-1EE89;AL # ARABIC MATHEMATICAL LOOPED YEH
-1EE8B;AL # ARABIC MATHEMATICAL LOOPED LAM
-1EE8C;AL # ARABIC MATHEMATICAL LOOPED MEEM
-1EE8D;AL # ARABIC MATHEMATICAL LOOPED NOON
-1EE8E;AL # ARABIC MATHEMATICAL LOOPED SEEN
-1EE8F;AL # ARABIC MATHEMATICAL LOOPED AIN
-1EE90;AL # ARABIC MATHEMATICAL LOOPED FEH
-1EE91;AL # ARABIC MATHEMATICAL LOOPED SAD
-1EE92;AL # ARABIC MATHEMATICAL LOOPED QAF
-1EE93;AL # ARABIC MATHEMATICAL LOOPED REH
-1EE94;AL # ARABIC MATHEMATICAL LOOPED SHEEN
-1EE95;AL # ARABIC MATHEMATICAL LOOPED TEH
-1EE96;AL # ARABIC MATHEMATICAL LOOPED THEH
-1EE97;AL # ARABIC MATHEMATICAL LOOPED KHAH
-1EE98;AL # ARABIC MATHEMATICAL LOOPED THAL
-1EE99;AL # ARABIC MATHEMATICAL LOOPED DAD
-1EE9A;AL # ARABIC MATHEMATICAL LOOPED ZAH
-1EE9B;AL # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEA1;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-1EEA2;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-1EEA3;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-1EEA5;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-1EEA6;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-1EEA7;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-1EEA8;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-1EEA9;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-1EEAB;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-1EEAC;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-1EEAD;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-1EEAE;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-1EEAF;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-1EEB0;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-1EEB1;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-1EEB2;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-1EEB3;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-1EEB4;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-1EEB5;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-1EEB6;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-1EEB7;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-1EEB8;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-1EEB9;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-1EEBA;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-1EEBB;AL # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-1EEF0;AL # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1;AL # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000;ID # MAHJONG TILE EAST WIND
-1F001;ID # MAHJONG TILE SOUTH WIND
-1F002;ID # MAHJONG TILE WEST WIND
-1F003;ID # MAHJONG TILE NORTH WIND
-1F004;ID # MAHJONG TILE RED DRAGON
-1F005;ID # MAHJONG TILE GREEN DRAGON
-1F006;ID # MAHJONG TILE WHITE DRAGON
-1F007;ID # MAHJONG TILE ONE OF CHARACTERS
-1F008;ID # MAHJONG TILE TWO OF CHARACTERS
-1F009;ID # MAHJONG TILE THREE OF CHARACTERS
-1F00A;ID # MAHJONG TILE FOUR OF CHARACTERS
-1F00B;ID # MAHJONG TILE FIVE OF CHARACTERS
-1F00C;ID # MAHJONG TILE SIX OF CHARACTERS
-1F00D;ID # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E;ID # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F;ID # MAHJONG TILE NINE OF CHARACTERS
-1F010;ID # MAHJONG TILE ONE OF BAMBOOS
-1F011;ID # MAHJONG TILE TWO OF BAMBOOS
-1F012;ID # MAHJONG TILE THREE OF BAMBOOS
-1F013;ID # MAHJONG TILE FOUR OF BAMBOOS
-1F014;ID # MAHJONG TILE FIVE OF BAMBOOS
-1F015;ID # MAHJONG TILE SIX OF BAMBOOS
-1F016;ID # MAHJONG TILE SEVEN OF BAMBOOS
-1F017;ID # MAHJONG TILE EIGHT OF BAMBOOS
-1F018;ID # MAHJONG TILE NINE OF BAMBOOS
-1F019;ID # MAHJONG TILE ONE OF CIRCLES
-1F01A;ID # MAHJONG TILE TWO OF CIRCLES
-1F01B;ID # MAHJONG TILE THREE OF CIRCLES
-1F01C;ID # MAHJONG TILE FOUR OF CIRCLES
-1F01D;ID # MAHJONG TILE FIVE OF CIRCLES
-1F01E;ID # MAHJONG TILE SIX OF CIRCLES
-1F01F;ID # MAHJONG TILE SEVEN OF CIRCLES
-1F020;ID # MAHJONG TILE EIGHT OF CIRCLES
-1F021;ID # MAHJONG TILE NINE OF CIRCLES
-1F022;ID # MAHJONG TILE PLUM
-1F023;ID # MAHJONG TILE ORCHID
-1F024;ID # MAHJONG TILE BAMBOO
-1F025;ID # MAHJONG TILE CHRYSANTHEMUM
-1F026;ID # MAHJONG TILE SPRING
-1F027;ID # MAHJONG TILE SUMMER
-1F028;ID # MAHJONG TILE AUTUMN
-1F029;ID # MAHJONG TILE WINTER
-1F02A;ID # MAHJONG TILE JOKER
-1F02B;ID # MAHJONG TILE BACK
-1F030;ID # DOMINO TILE HORIZONTAL BACK
-1F031;ID # DOMINO TILE HORIZONTAL-00-00
-1F032;ID # DOMINO TILE HORIZONTAL-00-01
-1F033;ID # DOMINO TILE HORIZONTAL-00-02
-1F034;ID # DOMINO TILE HORIZONTAL-00-03
-1F035;ID # DOMINO TILE HORIZONTAL-00-04
-1F036;ID # DOMINO TILE HORIZONTAL-00-05
-1F037;ID # DOMINO TILE HORIZONTAL-00-06
-1F038;ID # DOMINO TILE HORIZONTAL-01-00
-1F039;ID # DOMINO TILE HORIZONTAL-01-01
-1F03A;ID # DOMINO TILE HORIZONTAL-01-02
-1F03B;ID # DOMINO TILE HORIZONTAL-01-03
-1F03C;ID # DOMINO TILE HORIZONTAL-01-04
-1F03D;ID # DOMINO TILE HORIZONTAL-01-05
-1F03E;ID # DOMINO TILE HORIZONTAL-01-06
-1F03F;ID # DOMINO TILE HORIZONTAL-02-00
-1F040;ID # DOMINO TILE HORIZONTAL-02-01
-1F041;ID # DOMINO TILE HORIZONTAL-02-02
-1F042;ID # DOMINO TILE HORIZONTAL-02-03
-1F043;ID # DOMINO TILE HORIZONTAL-02-04
-1F044;ID # DOMINO TILE HORIZONTAL-02-05
-1F045;ID # DOMINO TILE HORIZONTAL-02-06
-1F046;ID # DOMINO TILE HORIZONTAL-03-00
-1F047;ID # DOMINO TILE HORIZONTAL-03-01
-1F048;ID # DOMINO TILE HORIZONTAL-03-02
-1F049;ID # DOMINO TILE HORIZONTAL-03-03
-1F04A;ID # DOMINO TILE HORIZONTAL-03-04
-1F04B;ID # DOMINO TILE HORIZONTAL-03-05
-1F04C;ID # DOMINO TILE HORIZONTAL-03-06
-1F04D;ID # DOMINO TILE HORIZONTAL-04-00
-1F04E;ID # DOMINO TILE HORIZONTAL-04-01
-1F04F;ID # DOMINO TILE HORIZONTAL-04-02
-1F050;ID # DOMINO TILE HORIZONTAL-04-03
-1F051;ID # DOMINO TILE HORIZONTAL-04-04
-1F052;ID # DOMINO TILE HORIZONTAL-04-05
-1F053;ID # DOMINO TILE HORIZONTAL-04-06
-1F054;ID # DOMINO TILE HORIZONTAL-05-00
-1F055;ID # DOMINO TILE HORIZONTAL-05-01
-1F056;ID # DOMINO TILE HORIZONTAL-05-02
-1F057;ID # DOMINO TILE HORIZONTAL-05-03
-1F058;ID # DOMINO TILE HORIZONTAL-05-04
-1F059;ID # DOMINO TILE HORIZONTAL-05-05
-1F05A;ID # DOMINO TILE HORIZONTAL-05-06
-1F05B;ID # DOMINO TILE HORIZONTAL-06-00
-1F05C;ID # DOMINO TILE HORIZONTAL-06-01
-1F05D;ID # DOMINO TILE HORIZONTAL-06-02
-1F05E;ID # DOMINO TILE HORIZONTAL-06-03
-1F05F;ID # DOMINO TILE HORIZONTAL-06-04
-1F060;ID # DOMINO TILE HORIZONTAL-06-05
-1F061;ID # DOMINO TILE HORIZONTAL-06-06
-1F062;ID # DOMINO TILE VERTICAL BACK
-1F063;ID # DOMINO TILE VERTICAL-00-00
-1F064;ID # DOMINO TILE VERTICAL-00-01
-1F065;ID # DOMINO TILE VERTICAL-00-02
-1F066;ID # DOMINO TILE VERTICAL-00-03
-1F067;ID # DOMINO TILE VERTICAL-00-04
-1F068;ID # DOMINO TILE VERTICAL-00-05
-1F069;ID # DOMINO TILE VERTICAL-00-06
-1F06A;ID # DOMINO TILE VERTICAL-01-00
-1F06B;ID # DOMINO TILE VERTICAL-01-01
-1F06C;ID # DOMINO TILE VERTICAL-01-02
-1F06D;ID # DOMINO TILE VERTICAL-01-03
-1F06E;ID # DOMINO TILE VERTICAL-01-04
-1F06F;ID # DOMINO TILE VERTICAL-01-05
-1F070;ID # DOMINO TILE VERTICAL-01-06
-1F071;ID # DOMINO TILE VERTICAL-02-00
-1F072;ID # DOMINO TILE VERTICAL-02-01
-1F073;ID # DOMINO TILE VERTICAL-02-02
-1F074;ID # DOMINO TILE VERTICAL-02-03
-1F075;ID # DOMINO TILE VERTICAL-02-04
-1F076;ID # DOMINO TILE VERTICAL-02-05
-1F077;ID # DOMINO TILE VERTICAL-02-06
-1F078;ID # DOMINO TILE VERTICAL-03-00
-1F079;ID # DOMINO TILE VERTICAL-03-01
-1F07A;ID # DOMINO TILE VERTICAL-03-02
-1F07B;ID # DOMINO TILE VERTICAL-03-03
-1F07C;ID # DOMINO TILE VERTICAL-03-04
-1F07D;ID # DOMINO TILE VERTICAL-03-05
-1F07E;ID # DOMINO TILE VERTICAL-03-06
-1F07F;ID # DOMINO TILE VERTICAL-04-00
-1F080;ID # DOMINO TILE VERTICAL-04-01
-1F081;ID # DOMINO TILE VERTICAL-04-02
-1F082;ID # DOMINO TILE VERTICAL-04-03
-1F083;ID # DOMINO TILE VERTICAL-04-04
-1F084;ID # DOMINO TILE VERTICAL-04-05
-1F085;ID # DOMINO TILE VERTICAL-04-06
-1F086;ID # DOMINO TILE VERTICAL-05-00
-1F087;ID # DOMINO TILE VERTICAL-05-01
-1F088;ID # DOMINO TILE VERTICAL-05-02
-1F089;ID # DOMINO TILE VERTICAL-05-03
-1F08A;ID # DOMINO TILE VERTICAL-05-04
-1F08B;ID # DOMINO TILE VERTICAL-05-05
-1F08C;ID # DOMINO TILE VERTICAL-05-06
-1F08D;ID # DOMINO TILE VERTICAL-06-00
-1F08E;ID # DOMINO TILE VERTICAL-06-01
-1F08F;ID # DOMINO TILE VERTICAL-06-02
-1F090;ID # DOMINO TILE VERTICAL-06-03
-1F091;ID # DOMINO TILE VERTICAL-06-04
-1F092;ID # DOMINO TILE VERTICAL-06-05
-1F093;ID # DOMINO TILE VERTICAL-06-06
-1F0A0;ID # PLAYING CARD BACK
-1F0A1;ID # PLAYING CARD ACE OF SPADES
-1F0A2;ID # PLAYING CARD TWO OF SPADES
-1F0A3;ID # PLAYING CARD THREE OF SPADES
-1F0A4;ID # PLAYING CARD FOUR OF SPADES
-1F0A5;ID # PLAYING CARD FIVE OF SPADES
-1F0A6;ID # PLAYING CARD SIX OF SPADES
-1F0A7;ID # PLAYING CARD SEVEN OF SPADES
-1F0A8;ID # PLAYING CARD EIGHT OF SPADES
-1F0A9;ID # PLAYING CARD NINE OF SPADES
-1F0AA;ID # PLAYING CARD TEN OF SPADES
-1F0AB;ID # PLAYING CARD JACK OF SPADES
-1F0AC;ID # PLAYING CARD KNIGHT OF SPADES
-1F0AD;ID # PLAYING CARD QUEEN OF SPADES
-1F0AE;ID # PLAYING CARD KING OF SPADES
-1F0B1;ID # PLAYING CARD ACE OF HEARTS
-1F0B2;ID # PLAYING CARD TWO OF HEARTS
-1F0B3;ID # PLAYING CARD THREE OF HEARTS
-1F0B4;ID # PLAYING CARD FOUR OF HEARTS
-1F0B5;ID # PLAYING CARD FIVE OF HEARTS
-1F0B6;ID # PLAYING CARD SIX OF HEARTS
-1F0B7;ID # PLAYING CARD SEVEN OF HEARTS
-1F0B8;ID # PLAYING CARD EIGHT OF HEARTS
-1F0B9;ID # PLAYING CARD NINE OF HEARTS
-1F0BA;ID # PLAYING CARD TEN OF HEARTS
-1F0BB;ID # PLAYING CARD JACK OF HEARTS
-1F0BC;ID # PLAYING CARD KNIGHT OF HEARTS
-1F0BD;ID # PLAYING CARD QUEEN OF HEARTS
-1F0BE;ID # PLAYING CARD KING OF HEARTS
-1F0C1;ID # PLAYING CARD ACE OF DIAMONDS
-1F0C2;ID # PLAYING CARD TWO OF DIAMONDS
-1F0C3;ID # PLAYING CARD THREE OF DIAMONDS
-1F0C4;ID # PLAYING CARD FOUR OF DIAMONDS
-1F0C5;ID # PLAYING CARD FIVE OF DIAMONDS
-1F0C6;ID # PLAYING CARD SIX OF DIAMONDS
-1F0C7;ID # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8;ID # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9;ID # PLAYING CARD NINE OF DIAMONDS
-1F0CA;ID # PLAYING CARD TEN OF DIAMONDS
-1F0CB;ID # PLAYING CARD JACK OF DIAMONDS
-1F0CC;ID # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD;ID # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE;ID # PLAYING CARD KING OF DIAMONDS
-1F0CF;ID # PLAYING CARD BLACK JOKER
-1F0D1;ID # PLAYING CARD ACE OF CLUBS
-1F0D2;ID # PLAYING CARD TWO OF CLUBS
-1F0D3;ID # PLAYING CARD THREE OF CLUBS
-1F0D4;ID # PLAYING CARD FOUR OF CLUBS
-1F0D5;ID # PLAYING CARD FIVE OF CLUBS
-1F0D6;ID # PLAYING CARD SIX OF CLUBS
-1F0D7;ID # PLAYING CARD SEVEN OF CLUBS
-1F0D8;ID # PLAYING CARD EIGHT OF CLUBS
-1F0D9;ID # PLAYING CARD NINE OF CLUBS
-1F0DA;ID # PLAYING CARD TEN OF CLUBS
-1F0DB;ID # PLAYING CARD JACK OF CLUBS
-1F0DC;ID # PLAYING CARD KNIGHT OF CLUBS
-1F0DD;ID # PLAYING CARD QUEEN OF CLUBS
-1F0DE;ID # PLAYING CARD KING OF CLUBS
-1F0DF;ID # PLAYING CARD WHITE JOKER
-1F100;AI # DIGIT ZERO FULL STOP
-1F101;AI # DIGIT ZERO COMMA
-1F102;AI # DIGIT ONE COMMA
-1F103;AI # DIGIT TWO COMMA
-1F104;AI # DIGIT THREE COMMA
-1F105;AI # DIGIT FOUR COMMA
-1F106;AI # DIGIT FIVE COMMA
-1F107;AI # DIGIT SIX COMMA
-1F108;AI # DIGIT SEVEN COMMA
-1F109;AI # DIGIT EIGHT COMMA
-1F10A;AI # DIGIT NINE COMMA
-1F110;AI # PARENTHESIZED LATIN CAPITAL LETTER A
-1F111;AI # PARENTHESIZED LATIN CAPITAL LETTER B
-1F112;AI # PARENTHESIZED LATIN CAPITAL LETTER C
-1F113;AI # PARENTHESIZED LATIN CAPITAL LETTER D
-1F114;AI # PARENTHESIZED LATIN CAPITAL LETTER E
-1F115;AI # PARENTHESIZED LATIN CAPITAL LETTER F
-1F116;AI # PARENTHESIZED LATIN CAPITAL LETTER G
-1F117;AI # PARENTHESIZED LATIN CAPITAL LETTER H
-1F118;AI # PARENTHESIZED LATIN CAPITAL LETTER I
-1F119;AI # PARENTHESIZED LATIN CAPITAL LETTER J
-1F11A;AI # PARENTHESIZED LATIN CAPITAL LETTER K
-1F11B;AI # PARENTHESIZED LATIN CAPITAL LETTER L
-1F11C;AI # PARENTHESIZED LATIN CAPITAL LETTER M
-1F11D;AI # PARENTHESIZED LATIN CAPITAL LETTER N
-1F11E;AI # PARENTHESIZED LATIN CAPITAL LETTER O
-1F11F;AI # PARENTHESIZED LATIN CAPITAL LETTER P
-1F120;AI # PARENTHESIZED LATIN CAPITAL LETTER Q
-1F121;AI # PARENTHESIZED LATIN CAPITAL LETTER R
-1F122;AI # PARENTHESIZED LATIN CAPITAL LETTER S
-1F123;AI # PARENTHESIZED LATIN CAPITAL LETTER T
-1F124;AI # PARENTHESIZED LATIN CAPITAL LETTER U
-1F125;AI # PARENTHESIZED LATIN CAPITAL LETTER V
-1F126;AI # PARENTHESIZED LATIN CAPITAL LETTER W
-1F127;AI # PARENTHESIZED LATIN CAPITAL LETTER X
-1F128;AI # PARENTHESIZED LATIN CAPITAL LETTER Y
-1F129;AI # PARENTHESIZED LATIN CAPITAL LETTER Z
-1F12A;AI # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1F12B;AI # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F12C;AI # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F12D;AI # CIRCLED CD
-1F12E;AL # CIRCLED WZ
-1F130;AI # SQUARED LATIN CAPITAL LETTER A
-1F131;AI # SQUARED LATIN CAPITAL LETTER B
-1F132;AI # SQUARED LATIN CAPITAL LETTER C
-1F133;AI # SQUARED LATIN CAPITAL LETTER D
-1F134;AI # SQUARED LATIN CAPITAL LETTER E
-1F135;AI # SQUARED LATIN CAPITAL LETTER F
-1F136;AI # SQUARED LATIN CAPITAL LETTER G
-1F137;AI # SQUARED LATIN CAPITAL LETTER H
-1F138;AI # SQUARED LATIN CAPITAL LETTER I
-1F139;AI # SQUARED LATIN CAPITAL LETTER J
-1F13A;AI # SQUARED LATIN CAPITAL LETTER K
-1F13B;AI # SQUARED LATIN CAPITAL LETTER L
-1F13C;AI # SQUARED LATIN CAPITAL LETTER M
-1F13D;AI # SQUARED LATIN CAPITAL LETTER N
-1F13E;AI # SQUARED LATIN CAPITAL LETTER O
-1F13F;AI # SQUARED LATIN CAPITAL LETTER P
-1F140;AI # SQUARED LATIN CAPITAL LETTER Q
-1F141;AI # SQUARED LATIN CAPITAL LETTER R
-1F142;AI # SQUARED LATIN CAPITAL LETTER S
-1F143;AI # SQUARED LATIN CAPITAL LETTER T
-1F144;AI # SQUARED LATIN CAPITAL LETTER U
-1F145;AI # SQUARED LATIN CAPITAL LETTER V
-1F146;AI # SQUARED LATIN CAPITAL LETTER W
-1F147;AI # SQUARED LATIN CAPITAL LETTER X
-1F148;AI # SQUARED LATIN CAPITAL LETTER Y
-1F149;AI # SQUARED LATIN CAPITAL LETTER Z
-1F14A;AI # SQUARED HV
-1F14B;AI # SQUARED MV
-1F14C;AI # SQUARED SD
-1F14D;AI # SQUARED SS
-1F14E;AI # SQUARED PPV
-1F14F;AI # SQUARED WC
-1F150;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-1F151;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1F152;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1F153;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1F154;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1F155;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1F156;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1F157;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-1F158;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-1F159;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-1F15A;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1F15B;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-1F15C;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1F15D;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-1F15E;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-1F15F;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1F160;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F161;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-1F162;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-1F163;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1F164;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1F165;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1F166;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-1F167;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-1F168;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-1F169;AI # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1F16A;AL # RAISED MC SIGN
-1F16B;AL # RAISED MD SIGN
-1F170;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-1F171;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1F172;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-1F173;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-1F174;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-1F175;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1F176;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-1F177;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-1F178;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-1F179;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-1F17A;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1F17B;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-1F17C;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1F17D;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-1F17E;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-1F17F;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F180;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-1F181;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-1F182;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-1F183;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-1F184;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-1F185;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1F186;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1F187;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1F188;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-1F189;AI # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-1F18A;AI # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18B;AI # NEGATIVE SQUARED IC
-1F18C;AI # NEGATIVE SQUARED PA
-1F18D;AI # NEGATIVE SQUARED SA
-1F18E;AI # NEGATIVE SQUARED AB
-1F18F;AI # NEGATIVE SQUARED WC
-1F190;AI # SQUARE DJ
-1F191;AI # SQUARED CL
-1F192;AI # SQUARED COOL
-1F193;AI # SQUARED FREE
-1F194;AI # SQUARED ID
-1F195;AI # SQUARED NEW
-1F196;AI # SQUARED NG
-1F197;AI # SQUARED OK
-1F198;AI # SQUARED SOS
-1F199;AI # SQUARED UP WITH EXCLAMATION MARK
-1F19A;AI # SQUARED VS
-1F1E6;RI # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7;RI # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8;RI # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9;RI # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA;RI # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB;RI # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC;RI # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED;RI # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE;RI # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF;RI # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0;RI # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1;RI # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2;RI # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3;RI # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4;RI # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5;RI # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6;RI # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7;RI # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8;RI # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9;RI # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA;RI # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB;RI # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC;RI # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD;RI # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE;RI # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF;RI # REGIONAL INDICATOR SYMBOL LETTER Z
-1F200;ID # SQUARE HIRAGANA HOKA
-1F201;ID # SQUARED KATAKANA KOKO
-1F202;ID # SQUARED KATAKANA SA
-1F210;ID # SQUARED CJK UNIFIED IDEOGRAPH-624B
-1F211;ID # SQUARED CJK UNIFIED IDEOGRAPH-5B57
-1F212;ID # SQUARED CJK UNIFIED IDEOGRAPH-53CC
-1F213;ID # SQUARED KATAKANA DE
-1F214;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E8C
-1F215;ID # SQUARED CJK UNIFIED IDEOGRAPH-591A
-1F216;ID # SQUARED CJK UNIFIED IDEOGRAPH-89E3
-1F217;ID # SQUARED CJK UNIFIED IDEOGRAPH-5929
-1F218;ID # SQUARED CJK UNIFIED IDEOGRAPH-4EA4
-1F219;ID # SQUARED CJK UNIFIED IDEOGRAPH-6620
-1F21A;ID # SQUARED CJK UNIFIED IDEOGRAPH-7121
-1F21B;ID # SQUARED CJK UNIFIED IDEOGRAPH-6599
-1F21C;ID # SQUARED CJK UNIFIED IDEOGRAPH-524D
-1F21D;ID # SQUARED CJK UNIFIED IDEOGRAPH-5F8C
-1F21E;ID # SQUARED CJK UNIFIED IDEOGRAPH-518D
-1F21F;ID # SQUARED CJK UNIFIED IDEOGRAPH-65B0
-1F220;ID # SQUARED CJK UNIFIED IDEOGRAPH-521D
-1F221;ID # SQUARED CJK UNIFIED IDEOGRAPH-7D42
-1F222;ID # SQUARED CJK UNIFIED IDEOGRAPH-751F
-1F223;ID # SQUARED CJK UNIFIED IDEOGRAPH-8CA9
-1F224;ID # SQUARED CJK UNIFIED IDEOGRAPH-58F0
-1F225;ID # SQUARED CJK UNIFIED IDEOGRAPH-5439
-1F226;ID # SQUARED CJK UNIFIED IDEOGRAPH-6F14
-1F227;ID # SQUARED CJK UNIFIED IDEOGRAPH-6295
-1F228;ID # SQUARED CJK UNIFIED IDEOGRAPH-6355
-1F229;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E00
-1F22A;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E09
-1F22B;ID # SQUARED CJK UNIFIED IDEOGRAPH-904A
-1F22C;ID # SQUARED CJK UNIFIED IDEOGRAPH-5DE6
-1F22D;ID # SQUARED CJK UNIFIED IDEOGRAPH-4E2D
-1F22E;ID # SQUARED CJK UNIFIED IDEOGRAPH-53F3
-1F22F;ID # SQUARED CJK UNIFIED IDEOGRAPH-6307
-1F230;ID # SQUARED CJK UNIFIED IDEOGRAPH-8D70
-1F231;ID # SQUARED CJK UNIFIED IDEOGRAPH-6253
-1F232;ID # SQUARED CJK UNIFIED IDEOGRAPH-7981
-1F233;ID # SQUARED CJK UNIFIED IDEOGRAPH-7A7A
-1F234;ID # SQUARED CJK UNIFIED IDEOGRAPH-5408
-1F235;ID # SQUARED CJK UNIFIED IDEOGRAPH-6E80
-1F236;ID # SQUARED CJK UNIFIED IDEOGRAPH-6709
-1F237;ID # SQUARED CJK UNIFIED IDEOGRAPH-6708
-1F238;ID # SQUARED CJK UNIFIED IDEOGRAPH-7533
-1F239;ID # SQUARED CJK UNIFIED IDEOGRAPH-5272
-1F23A;ID # SQUARED CJK UNIFIED IDEOGRAPH-55B6
-1F240;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F241;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F243;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F244;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F245;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F246;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
-1F247;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F248;ID # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F250;ID # CIRCLED IDEOGRAPH ADVANTAGE
-1F251;ID # CIRCLED IDEOGRAPH ACCEPT
-1F300;ID # CYCLONE
-1F301;ID # FOGGY
-1F302;ID # CLOSED UMBRELLA
-1F303;ID # NIGHT WITH STARS
-1F304;ID # SUNRISE OVER MOUNTAINS
-1F305;ID # SUNRISE
-1F306;ID # CITYSCAPE AT DUSK
-1F307;ID # SUNSET OVER BUILDINGS
-1F308;ID # RAINBOW
-1F309;ID # BRIDGE AT NIGHT
-1F30A;ID # WATER WAVE
-1F30B;ID # VOLCANO
-1F30C;ID # MILKY WAY
-1F30D;ID # EARTH GLOBE EUROPE-AFRICA
-1F30E;ID # EARTH GLOBE AMERICAS
-1F30F;ID # EARTH GLOBE ASIA-AUSTRALIA
-1F310;ID # GLOBE WITH MERIDIANS
-1F311;ID # NEW MOON SYMBOL
-1F312;ID # WAXING CRESCENT MOON SYMBOL
-1F313;ID # FIRST QUARTER MOON SYMBOL
-1F314;ID # WAXING GIBBOUS MOON SYMBOL
-1F315;ID # FULL MOON SYMBOL
-1F316;ID # WANING GIBBOUS MOON SYMBOL
-1F317;ID # LAST QUARTER MOON SYMBOL
-1F318;ID # WANING CRESCENT MOON SYMBOL
-1F319;ID # CRESCENT MOON
-1F31A;ID # NEW MOON WITH FACE
-1F31B;ID # FIRST QUARTER MOON WITH FACE
-1F31C;ID # LAST QUARTER MOON WITH FACE
-1F31D;ID # FULL MOON WITH FACE
-1F31E;ID # SUN WITH FACE
-1F31F;ID # GLOWING STAR
-1F320;ID # SHOOTING STAR
-1F330;ID # CHESTNUT
-1F331;ID # SEEDLING
-1F332;ID # EVERGREEN TREE
-1F333;ID # DECIDUOUS TREE
-1F334;ID # PALM TREE
-1F335;ID # CACTUS
-1F337;ID # TULIP
-1F338;ID # CHERRY BLOSSOM
-1F339;ID # ROSE
-1F33A;ID # HIBISCUS
-1F33B;ID # SUNFLOWER
-1F33C;ID # BLOSSOM
-1F33D;ID # EAR OF MAIZE
-1F33E;ID # EAR OF RICE
-1F33F;ID # HERB
-1F340;ID # FOUR LEAF CLOVER
-1F341;ID # MAPLE LEAF
-1F342;ID # FALLEN LEAF
-1F343;ID # LEAF FLUTTERING IN WIND
-1F344;ID # MUSHROOM
-1F345;ID # TOMATO
-1F346;ID # AUBERGINE
-1F347;ID # GRAPES
-1F348;ID # MELON
-1F349;ID # WATERMELON
-1F34A;ID # TANGERINE
-1F34B;ID # LEMON
-1F34C;ID # BANANA
-1F34D;ID # PINEAPPLE
-1F34E;ID # RED APPLE
-1F34F;ID # GREEN APPLE
-1F350;ID # PEAR
-1F351;ID # PEACH
-1F352;ID # CHERRIES
-1F353;ID # STRAWBERRY
-1F354;ID # HAMBURGER
-1F355;ID # SLICE OF PIZZA
-1F356;ID # MEAT ON BONE
-1F357;ID # POULTRY LEG
-1F358;ID # RICE CRACKER
-1F359;ID # RICE BALL
-1F35A;ID # COOKED RICE
-1F35B;ID # CURRY AND RICE
-1F35C;ID # STEAMING BOWL
-1F35D;ID # SPAGHETTI
-1F35E;ID # BREAD
-1F35F;ID # FRENCH FRIES
-1F360;ID # ROASTED SWEET POTATO
-1F361;ID # DANGO
-1F362;ID # ODEN
-1F363;ID # SUSHI
-1F364;ID # FRIED SHRIMP
-1F365;ID # FISH CAKE WITH SWIRL DESIGN
-1F366;ID # SOFT ICE CREAM
-1F367;ID # SHAVED ICE
-1F368;ID # ICE CREAM
-1F369;ID # DOUGHNUT
-1F36A;ID # COOKIE
-1F36B;ID # CHOCOLATE BAR
-1F36C;ID # CANDY
-1F36D;ID # LOLLIPOP
-1F36E;ID # CUSTARD
-1F36F;ID # HONEY POT
-1F370;ID # SHORTCAKE
-1F371;ID # BENTO BOX
-1F372;ID # POT OF FOOD
-1F373;ID # COOKING
-1F374;ID # FORK AND KNIFE
-1F375;ID # TEACUP WITHOUT HANDLE
-1F376;ID # SAKE BOTTLE AND CUP
-1F377;ID # WINE GLASS
-1F378;ID # COCKTAIL GLASS
-1F379;ID # TROPICAL DRINK
-1F37A;ID # BEER MUG
-1F37B;ID # CLINKING BEER MUGS
-1F37C;ID # BABY BOTTLE
-1F380;ID # RIBBON
-1F381;ID # WRAPPED PRESENT
-1F382;ID # BIRTHDAY CAKE
-1F383;ID # JACK-O-LANTERN
-1F384;ID # CHRISTMAS TREE
-1F385;ID # FATHER CHRISTMAS
-1F386;ID # FIREWORKS
-1F387;ID # FIREWORK SPARKLER
-1F388;ID # BALLOON
-1F389;ID # PARTY POPPER
-1F38A;ID # CONFETTI BALL
-1F38B;ID # TANABATA TREE
-1F38C;ID # CROSSED FLAGS
-1F38D;ID # PINE DECORATION
-1F38E;ID # JAPANESE DOLLS
-1F38F;ID # CARP STREAMER
-1F390;ID # WIND CHIME
-1F391;ID # MOON VIEWING CEREMONY
-1F392;ID # SCHOOL SATCHEL
-1F393;ID # GRADUATION CAP
-1F3A0;ID # CAROUSEL HORSE
-1F3A1;ID # FERRIS WHEEL
-1F3A2;ID # ROLLER COASTER
-1F3A3;ID # FISHING POLE AND FISH
-1F3A4;ID # MICROPHONE
-1F3A5;ID # MOVIE CAMERA
-1F3A6;ID # CINEMA
-1F3A7;ID # HEADPHONE
-1F3A8;ID # ARTIST PALETTE
-1F3A9;ID # TOP HAT
-1F3AA;ID # CIRCUS TENT
-1F3AB;ID # TICKET
-1F3AC;ID # CLAPPER BOARD
-1F3AD;ID # PERFORMING ARTS
-1F3AE;ID # VIDEO GAME
-1F3AF;ID # DIRECT HIT
-1F3B0;ID # SLOT MACHINE
-1F3B1;ID # BILLIARDS
-1F3B2;ID # GAME DIE
-1F3B3;ID # BOWLING
-1F3B4;ID # FLOWER PLAYING CARDS
-1F3B5;AL # MUSICAL NOTE
-1F3B6;AL # MULTIPLE MUSICAL NOTES
-1F3B7;ID # SAXOPHONE
-1F3B8;ID # GUITAR
-1F3B9;ID # MUSICAL KEYBOARD
-1F3BA;ID # TRUMPET
-1F3BB;ID # VIOLIN
-1F3BC;AL # MUSICAL SCORE
-1F3BD;ID # RUNNING SHIRT WITH SASH
-1F3BE;ID # TENNIS RACQUET AND BALL
-1F3BF;ID # SKI AND SKI BOOT
-1F3C0;ID # BASKETBALL AND HOOP
-1F3C1;ID # CHEQUERED FLAG
-1F3C2;ID # SNOWBOARDER
-1F3C3;ID # RUNNER
-1F3C4;ID # SURFER
-1F3C6;ID # TROPHY
-1F3C7;ID # HORSE RACING
-1F3C8;ID # AMERICAN FOOTBALL
-1F3C9;ID # RUGBY FOOTBALL
-1F3CA;ID # SWIMMER
-1F3E0;ID # HOUSE BUILDING
-1F3E1;ID # HOUSE WITH GARDEN
-1F3E2;ID # OFFICE BUILDING
-1F3E3;ID # JAPANESE POST OFFICE
-1F3E4;ID # EUROPEAN POST OFFICE
-1F3E5;ID # HOSPITAL
-1F3E6;ID # BANK
-1F3E7;ID # AUTOMATED TELLER MACHINE
-1F3E8;ID # HOTEL
-1F3E9;ID # LOVE HOTEL
-1F3EA;ID # CONVENIENCE STORE
-1F3EB;ID # SCHOOL
-1F3EC;ID # DEPARTMENT STORE
-1F3ED;ID # FACTORY
-1F3EE;ID # IZAKAYA LANTERN
-1F3EF;ID # JAPANESE CASTLE
-1F3F0;ID # EUROPEAN CASTLE
-1F400;ID # RAT
-1F401;ID # MOUSE
-1F402;ID # OX
-1F403;ID # WATER BUFFALO
-1F404;ID # COW
-1F405;ID # TIGER
-1F406;ID # LEOPARD
-1F407;ID # RABBIT
-1F408;ID # CAT
-1F409;ID # DRAGON
-1F40A;ID # CROCODILE
-1F40B;ID # WHALE
-1F40C;ID # SNAIL
-1F40D;ID # SNAKE
-1F40E;ID # HORSE
-1F40F;ID # RAM
-1F410;ID # GOAT
-1F411;ID # SHEEP
-1F412;ID # MONKEY
-1F413;ID # ROOSTER
-1F414;ID # CHICKEN
-1F415;ID # DOG
-1F416;ID # PIG
-1F417;ID # BOAR
-1F418;ID # ELEPHANT
-1F419;ID # OCTOPUS
-1F41A;ID # SPIRAL SHELL
-1F41B;ID # BUG
-1F41C;ID # ANT
-1F41D;ID # HONEYBEE
-1F41E;ID # LADY BEETLE
-1F41F;ID # FISH
-1F420;ID # TROPICAL FISH
-1F421;ID # BLOWFISH
-1F422;ID # TURTLE
-1F423;ID # HATCHING CHICK
-1F424;ID # BABY CHICK
-1F425;ID # FRONT-FACING BABY CHICK
-1F426;ID # BIRD
-1F427;ID # PENGUIN
-1F428;ID # KOALA
-1F429;ID # POODLE
-1F42A;ID # DROMEDARY CAMEL
-1F42B;ID # BACTRIAN CAMEL
-1F42C;ID # DOLPHIN
-1F42D;ID # MOUSE FACE
-1F42E;ID # COW FACE
-1F42F;ID # TIGER FACE
-1F430;ID # RABBIT FACE
-1F431;ID # CAT FACE
-1F432;ID # DRAGON FACE
-1F433;ID # SPOUTING WHALE
-1F434;ID # HORSE FACE
-1F435;ID # MONKEY FACE
-1F436;ID # DOG FACE
-1F437;ID # PIG FACE
-1F438;ID # FROG FACE
-1F439;ID # HAMSTER FACE
-1F43A;ID # WOLF FACE
-1F43B;ID # BEAR FACE
-1F43C;ID # PANDA FACE
-1F43D;ID # PIG NOSE
-1F43E;ID # PAW PRINTS
-1F440;ID # EYES
-1F442;ID # EAR
-1F443;ID # NOSE
-1F444;ID # MOUTH
-1F445;ID # TONGUE
-1F446;ID # WHITE UP POINTING BACKHAND INDEX
-1F447;ID # WHITE DOWN POINTING BACKHAND INDEX
-1F448;ID # WHITE LEFT POINTING BACKHAND INDEX
-1F449;ID # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A;ID # FISTED HAND SIGN
-1F44B;ID # WAVING HAND SIGN
-1F44C;ID # OK HAND SIGN
-1F44D;ID # THUMBS UP SIGN
-1F44E;ID # THUMBS DOWN SIGN
-1F44F;ID # CLAPPING HANDS SIGN
-1F450;ID # OPEN HANDS SIGN
-1F451;ID # CROWN
-1F452;ID # WOMANS HAT
-1F453;ID # EYEGLASSES
-1F454;ID # NECKTIE
-1F455;ID # T-SHIRT
-1F456;ID # JEANS
-1F457;ID # DRESS
-1F458;ID # KIMONO
-1F459;ID # BIKINI
-1F45A;ID # WOMANS CLOTHES
-1F45B;ID # PURSE
-1F45C;ID # HANDBAG
-1F45D;ID # POUCH
-1F45E;ID # MANS SHOE
-1F45F;ID # ATHLETIC SHOE
-1F460;ID # HIGH-HEELED SHOE
-1F461;ID # WOMANS SANDAL
-1F462;ID # WOMANS BOOTS
-1F463;ID # FOOTPRINTS
-1F464;ID # BUST IN SILHOUETTE
-1F465;ID # BUSTS IN SILHOUETTE
-1F466;ID # BOY
-1F467;ID # GIRL
-1F468;ID # MAN
-1F469;ID # WOMAN
-1F46A;ID # FAMILY
-1F46B;ID # MAN AND WOMAN HOLDING HANDS
-1F46C;ID # TWO MEN HOLDING HANDS
-1F46D;ID # TWO WOMEN HOLDING HANDS
-1F46E;ID # POLICE OFFICER
-1F46F;ID # WOMAN WITH BUNNY EARS
-1F470;ID # BRIDE WITH VEIL
-1F471;ID # PERSON WITH BLOND HAIR
-1F472;ID # MAN WITH GUA PI MAO
-1F473;ID # MAN WITH TURBAN
-1F474;ID # OLDER MAN
-1F475;ID # OLDER WOMAN
-1F476;ID # BABY
-1F477;ID # CONSTRUCTION WORKER
-1F478;ID # PRINCESS
-1F479;ID # JAPANESE OGRE
-1F47A;ID # JAPANESE GOBLIN
-1F47B;ID # GHOST
-1F47C;ID # BABY ANGEL
-1F47D;ID # EXTRATERRESTRIAL ALIEN
-1F47E;ID # ALIEN MONSTER
-1F47F;ID # IMP
-1F480;ID # SKULL
-1F481;ID # INFORMATION DESK PERSON
-1F482;ID # GUARDSMAN
-1F483;ID # DANCER
-1F484;ID # LIPSTICK
-1F485;ID # NAIL POLISH
-1F486;ID # FACE MASSAGE
-1F487;ID # HAIRCUT
-1F488;ID # BARBER POLE
-1F489;ID # SYRINGE
-1F48A;ID # PILL
-1F48B;ID # KISS MARK
-1F48C;ID # LOVE LETTER
-1F48D;ID # RING
-1F48E;ID # GEM STONE
-1F48F;ID # KISS
-1F490;ID # BOUQUET
-1F491;ID # COUPLE WITH HEART
-1F492;ID # WEDDING
-1F493;ID # BEATING HEART
-1F494;ID # BROKEN HEART
-1F495;ID # TWO HEARTS
-1F496;ID # SPARKLING HEART
-1F497;ID # GROWING HEART
-1F498;ID # HEART WITH ARROW
-1F499;ID # BLUE HEART
-1F49A;ID # GREEN HEART
-1F49B;ID # YELLOW HEART
-1F49C;ID # PURPLE HEART
-1F49D;ID # HEART WITH RIBBON
-1F49E;ID # REVOLVING HEARTS
-1F49F;ID # HEART DECORATION
-1F4A0;AL # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1;ID # ELECTRIC LIGHT BULB
-1F4A2;AL # ANGER SYMBOL
-1F4A3;ID # BOMB
-1F4A4;AL # SLEEPING SYMBOL
-1F4A5;ID # COLLISION SYMBOL
-1F4A6;ID # SPLASHING SWEAT SYMBOL
-1F4A7;ID # DROPLET
-1F4A8;ID # DASH SYMBOL
-1F4A9;ID # PILE OF POO
-1F4AA;ID # FLEXED BICEPS
-1F4AB;ID # DIZZY SYMBOL
-1F4AC;ID # SPEECH BALLOON
-1F4AD;ID # THOUGHT BALLOON
-1F4AE;ID # WHITE FLOWER
-1F4AF;AL # HUNDRED POINTS SYMBOL
-1F4B0;ID # MONEY BAG
-1F4B1;AL # CURRENCY EXCHANGE
-1F4B2;AL # HEAVY DOLLAR SIGN
-1F4B3;ID # CREDIT CARD
-1F4B4;ID # BANKNOTE WITH YEN SIGN
-1F4B5;ID # BANKNOTE WITH DOLLAR SIGN
-1F4B6;ID # BANKNOTE WITH EURO SIGN
-1F4B7;ID # BANKNOTE WITH POUND SIGN
-1F4B8;ID # MONEY WITH WINGS
-1F4B9;ID # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA;ID # SEAT
-1F4BB;ID # PERSONAL COMPUTER
-1F4BC;ID # BRIEFCASE
-1F4BD;ID # MINIDISC
-1F4BE;ID # FLOPPY DISK
-1F4BF;ID # OPTICAL DISC
-1F4C0;ID # DVD
-1F4C1;ID # FILE FOLDER
-1F4C2;ID # OPEN FILE FOLDER
-1F4C3;ID # PAGE WITH CURL
-1F4C4;ID # PAGE FACING UP
-1F4C5;ID # CALENDAR
-1F4C6;ID # TEAR-OFF CALENDAR
-1F4C7;ID # CARD INDEX
-1F4C8;ID # CHART WITH UPWARDS TREND
-1F4C9;ID # CHART WITH DOWNWARDS TREND
-1F4CA;ID # BAR CHART
-1F4CB;ID # CLIPBOARD
-1F4CC;ID # PUSHPIN
-1F4CD;ID # ROUND PUSHPIN
-1F4CE;ID # PAPERCLIP
-1F4CF;ID # STRAIGHT RULER
-1F4D0;ID # TRIANGULAR RULER
-1F4D1;ID # BOOKMARK TABS
-1F4D2;ID # LEDGER
-1F4D3;ID # NOTEBOOK
-1F4D4;ID # NOTEBOOK WITH DECORATIVE COVER
-1F4D5;ID # CLOSED BOOK
-1F4D6;ID # OPEN BOOK
-1F4D7;ID # GREEN BOOK
-1F4D8;ID # BLUE BOOK
-1F4D9;ID # ORANGE BOOK
-1F4DA;ID # BOOKS
-1F4DB;ID # NAME BADGE
-1F4DC;ID # SCROLL
-1F4DD;ID # MEMO
-1F4DE;ID # TELEPHONE RECEIVER
-1F4DF;ID # PAGER
-1F4E0;ID # FAX MACHINE
-1F4E1;ID # SATELLITE ANTENNA
-1F4E2;ID # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3;ID # CHEERING MEGAPHONE
-1F4E4;ID # OUTBOX TRAY
-1F4E5;ID # INBOX TRAY
-1F4E6;ID # PACKAGE
-1F4E7;ID # E-MAIL SYMBOL
-1F4E8;ID # INCOMING ENVELOPE
-1F4E9;ID # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA;ID # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB;ID # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC;ID # OPEN MAILBOX WITH RAISED FLAG
-1F4ED;ID # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE;ID # POSTBOX
-1F4EF;ID # POSTAL HORN
-1F4F0;ID # NEWSPAPER
-1F4F1;ID # MOBILE PHONE
-1F4F2;ID # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3;ID # VIBRATION MODE
-1F4F4;ID # MOBILE PHONE OFF
-1F4F5;ID # NO MOBILE PHONES
-1F4F6;ID # ANTENNA WITH BARS
-1F4F7;ID # CAMERA
-1F4F9;ID # VIDEO CAMERA
-1F4FA;ID # TELEVISION
-1F4FB;ID # RADIO
-1F4FC;ID # VIDEOCASSETTE
-1F500;AL # TWISTED RIGHTWARDS ARROWS
-1F501;AL # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502;AL # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503;AL # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504;AL # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505;AL # LOW BRIGHTNESS SYMBOL
-1F506;AL # HIGH BRIGHTNESS SYMBOL
-1F507;ID # SPEAKER WITH CANCELLATION STROKE
-1F508;ID # SPEAKER
-1F509;ID # SPEAKER WITH ONE SOUND WAVE
-1F50A;ID # SPEAKER WITH THREE SOUND WAVES
-1F50B;ID # BATTERY
-1F50C;ID # ELECTRIC PLUG
-1F50D;ID # LEFT-POINTING MAGNIFYING GLASS
-1F50E;ID # RIGHT-POINTING MAGNIFYING GLASS
-1F50F;ID # LOCK WITH INK PEN
-1F510;ID # CLOSED LOCK WITH KEY
-1F511;ID # KEY
-1F512;ID # LOCK
-1F513;ID # OPEN LOCK
-1F514;ID # BELL
-1F515;ID # BELL WITH CANCELLATION STROKE
-1F516;ID # BOOKMARK
-1F517;AL # LINK SYMBOL
-1F518;AL # RADIO BUTTON
-1F519;AL # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A;AL # END WITH LEFTWARDS ARROW ABOVE
-1F51B;AL # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C;AL # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D;AL # TOP WITH UPWARDS ARROW ABOVE
-1F51E;AL # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F;AL # KEYCAP TEN
-1F520;AL # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521;AL # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522;AL # INPUT SYMBOL FOR NUMBERS
-1F523;AL # INPUT SYMBOL FOR SYMBOLS
-1F524;AL # INPUT SYMBOL FOR LATIN LETTERS
-1F525;ID # FIRE
-1F526;ID # ELECTRIC TORCH
-1F527;ID # WRENCH
-1F528;ID # HAMMER
-1F529;ID # NUT AND BOLT
-1F52A;ID # HOCHO
-1F52B;ID # PISTOL
-1F52C;ID # MICROSCOPE
-1F52D;ID # TELESCOPE
-1F52E;ID # CRYSTAL BALL
-1F52F;ID # SIX POINTED STAR WITH MIDDLE DOT
-1F530;ID # JAPANESE SYMBOL FOR BEGINNER
-1F531;ID # TRIDENT EMBLEM
-1F532;AL # BLACK SQUARE BUTTON
-1F533;AL # WHITE SQUARE BUTTON
-1F534;AL # LARGE RED CIRCLE
-1F535;AL # LARGE BLUE CIRCLE
-1F536;AL # LARGE ORANGE DIAMOND
-1F537;AL # LARGE BLUE DIAMOND
-1F538;AL # SMALL ORANGE DIAMOND
-1F539;AL # SMALL BLUE DIAMOND
-1F53A;AL # UP-POINTING RED TRIANGLE
-1F53B;AL # DOWN-POINTING RED TRIANGLE
-1F53C;AL # UP-POINTING SMALL RED TRIANGLE
-1F53D;AL # DOWN-POINTING SMALL RED TRIANGLE
-1F540;AL # CIRCLED CROSS POMMEE
-1F541;AL # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542;AL # CROSS POMMEE
-1F543;AL # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550;ID # CLOCK FACE ONE OCLOCK
-1F551;ID # CLOCK FACE TWO OCLOCK
-1F552;ID # CLOCK FACE THREE OCLOCK
-1F553;ID # CLOCK FACE FOUR OCLOCK
-1F554;ID # CLOCK FACE FIVE OCLOCK
-1F555;ID # CLOCK FACE SIX OCLOCK
-1F556;ID # CLOCK FACE SEVEN OCLOCK
-1F557;ID # CLOCK FACE EIGHT OCLOCK
-1F558;ID # CLOCK FACE NINE OCLOCK
-1F559;ID # CLOCK FACE TEN OCLOCK
-1F55A;ID # CLOCK FACE ELEVEN OCLOCK
-1F55B;ID # CLOCK FACE TWELVE OCLOCK
-1F55C;ID # CLOCK FACE ONE-THIRTY
-1F55D;ID # CLOCK FACE TWO-THIRTY
-1F55E;ID # CLOCK FACE THREE-THIRTY
-1F55F;ID # CLOCK FACE FOUR-THIRTY
-1F560;ID # CLOCK FACE FIVE-THIRTY
-1F561;ID # CLOCK FACE SIX-THIRTY
-1F562;ID # CLOCK FACE SEVEN-THIRTY
-1F563;ID # CLOCK FACE EIGHT-THIRTY
-1F564;ID # CLOCK FACE NINE-THIRTY
-1F565;ID # CLOCK FACE TEN-THIRTY
-1F566;ID # CLOCK FACE ELEVEN-THIRTY
-1F567;ID # CLOCK FACE TWELVE-THIRTY
-1F5FB;ID # MOUNT FUJI
-1F5FC;ID # TOKYO TOWER
-1F5FD;ID # STATUE OF LIBERTY
-1F5FE;ID # SILHOUETTE OF JAPAN
-1F5FF;ID # MOYAI
-1F600;ID # GRINNING FACE
-1F601;ID # GRINNING FACE WITH SMILING EYES
-1F602;ID # FACE WITH TEARS OF JOY
-1F603;ID # SMILING FACE WITH OPEN MOUTH
-1F604;ID # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605;ID # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606;ID # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607;ID # SMILING FACE WITH HALO
-1F608;ID # SMILING FACE WITH HORNS
-1F609;ID # WINKING FACE
-1F60A;ID # SMILING FACE WITH SMILING EYES
-1F60B;ID # FACE SAVOURING DELICIOUS FOOD
-1F60C;ID # RELIEVED FACE
-1F60D;ID # SMILING FACE WITH HEART-SHAPED EYES
-1F60E;ID # SMILING FACE WITH SUNGLASSES
-1F60F;ID # SMIRKING FACE
-1F610;ID # NEUTRAL FACE
-1F611;ID # EXPRESSIONLESS FACE
-1F612;ID # UNAMUSED FACE
-1F613;ID # FACE WITH COLD SWEAT
-1F614;ID # PENSIVE FACE
-1F615;ID # CONFUSED FACE
-1F616;ID # CONFOUNDED FACE
-1F617;ID # KISSING FACE
-1F618;ID # FACE THROWING A KISS
-1F619;ID # KISSING FACE WITH SMILING EYES
-1F61A;ID # KISSING FACE WITH CLOSED EYES
-1F61B;ID # FACE WITH STUCK-OUT TONGUE
-1F61C;ID # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D;ID # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E;ID # DISAPPOINTED FACE
-1F61F;ID # WORRIED FACE
-1F620;ID # ANGRY FACE
-1F621;ID # POUTING FACE
-1F622;ID # CRYING FACE
-1F623;ID # PERSEVERING FACE
-1F624;ID # FACE WITH LOOK OF TRIUMPH
-1F625;ID # DISAPPOINTED BUT RELIEVED FACE
-1F626;ID # FROWNING FACE WITH OPEN MOUTH
-1F627;ID # ANGUISHED FACE
-1F628;ID # FEARFUL FACE
-1F629;ID # WEARY FACE
-1F62A;ID # SLEEPY FACE
-1F62B;ID # TIRED FACE
-1F62C;ID # GRIMACING FACE
-1F62D;ID # LOUDLY CRYING FACE
-1F62E;ID # FACE WITH OPEN MOUTH
-1F62F;ID # HUSHED FACE
-1F630;ID # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631;ID # FACE SCREAMING IN FEAR
-1F632;ID # ASTONISHED FACE
-1F633;ID # FLUSHED FACE
-1F634;ID # SLEEPING FACE
-1F635;ID # DIZZY FACE
-1F636;ID # FACE WITHOUT MOUTH
-1F637;ID # FACE WITH MEDICAL MASK
-1F638;ID # GRINNING CAT FACE WITH SMILING EYES
-1F639;ID # CAT FACE WITH TEARS OF JOY
-1F63A;ID # SMILING CAT FACE WITH OPEN MOUTH
-1F63B;ID # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C;ID # CAT FACE WITH WRY SMILE
-1F63D;ID # KISSING CAT FACE WITH CLOSED EYES
-1F63E;ID # POUTING CAT FACE
-1F63F;ID # CRYING CAT FACE
-1F640;ID # WEARY CAT FACE
-1F645;ID # FACE WITH NO GOOD GESTURE
-1F646;ID # FACE WITH OK GESTURE
-1F647;ID # PERSON BOWING DEEPLY
-1F648;ID # SEE-NO-EVIL MONKEY
-1F649;ID # HEAR-NO-EVIL MONKEY
-1F64A;ID # SPEAK-NO-EVIL MONKEY
-1F64B;ID # HAPPY PERSON RAISING ONE HAND
-1F64C;ID # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D;ID # PERSON FROWNING
-1F64E;ID # PERSON WITH POUTING FACE
-1F64F;ID # PERSON WITH FOLDED HANDS
-1F680;ID # ROCKET
-1F681;ID # HELICOPTER
-1F682;ID # STEAM LOCOMOTIVE
-1F683;ID # RAILWAY CAR
-1F684;ID # HIGH-SPEED TRAIN
-1F685;ID # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686;ID # TRAIN
-1F687;ID # METRO
-1F688;ID # LIGHT RAIL
-1F689;ID # STATION
-1F68A;ID # TRAM
-1F68B;ID # TRAM CAR
-1F68C;ID # BUS
-1F68D;ID # ONCOMING BUS
-1F68E;ID # TROLLEYBUS
-1F68F;ID # BUS STOP
-1F690;ID # MINIBUS
-1F691;ID # AMBULANCE
-1F692;ID # FIRE ENGINE
-1F693;ID # POLICE CAR
-1F694;ID # ONCOMING POLICE CAR
-1F695;ID # TAXI
-1F696;ID # ONCOMING TAXI
-1F697;ID # AUTOMOBILE
-1F698;ID # ONCOMING AUTOMOBILE
-1F699;ID # RECREATIONAL VEHICLE
-1F69A;ID # DELIVERY TRUCK
-1F69B;ID # ARTICULATED LORRY
-1F69C;ID # TRACTOR
-1F69D;ID # MONORAIL
-1F69E;ID # MOUNTAIN RAILWAY
-1F69F;ID # SUSPENSION RAILWAY
-1F6A0;ID # MOUNTAIN CABLEWAY
-1F6A1;ID # AERIAL TRAMWAY
-1F6A2;ID # SHIP
-1F6A3;ID # ROWBOAT
-1F6A4;ID # SPEEDBOAT
-1F6A5;ID # HORIZONTAL TRAFFIC LIGHT
-1F6A6;ID # VERTICAL TRAFFIC LIGHT
-1F6A7;ID # CONSTRUCTION SIGN
-1F6A8;ID # POLICE CARS REVOLVING LIGHT
-1F6A9;ID # TRIANGULAR FLAG ON POST
-1F6AA;ID # DOOR
-1F6AB;ID # NO ENTRY SIGN
-1F6AC;ID # SMOKING SYMBOL
-1F6AD;ID # NO SMOKING SYMBOL
-1F6AE;ID # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF;ID # DO NOT LITTER SYMBOL
-1F6B0;ID # POTABLE WATER SYMBOL
-1F6B1;ID # NON-POTABLE WATER SYMBOL
-1F6B2;ID # BICYCLE
-1F6B3;ID # NO BICYCLES
-1F6B4;ID # BICYCLIST
-1F6B5;ID # MOUNTAIN BICYCLIST
-1F6B6;ID # PEDESTRIAN
-1F6B7;ID # NO PEDESTRIANS
-1F6B8;ID # CHILDREN CROSSING
-1F6B9;ID # MENS SYMBOL
-1F6BA;ID # WOMENS SYMBOL
-1F6BB;ID # RESTROOM
-1F6BC;ID # BABY SYMBOL
-1F6BD;ID # TOILET
-1F6BE;ID # WATER CLOSET
-1F6BF;ID # SHOWER
-1F6C0;ID # BATH
-1F6C1;ID # BATHTUB
-1F6C2;ID # PASSPORT CONTROL
-1F6C3;ID # CUSTOMS
-1F6C4;ID # BAGGAGE CLAIM
-1F6C5;ID # LEFT LUGGAGE
-1F700;AL # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701;AL # ALCHEMICAL SYMBOL FOR AIR
-1F702;AL # ALCHEMICAL SYMBOL FOR FIRE
-1F703;AL # ALCHEMICAL SYMBOL FOR EARTH
-1F704;AL # ALCHEMICAL SYMBOL FOR WATER
-1F705;AL # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706;AL # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707;AL # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708;AL # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709;AL # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A;AL # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B;AL # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C;AL # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D;AL # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E;AL # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F;AL # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712;AL # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713;AL # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714;AL # ALCHEMICAL SYMBOL FOR SALT
-1F715;AL # ALCHEMICAL SYMBOL FOR NITRE
-1F716;AL # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717;AL # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718;AL # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719;AL # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A;AL # ALCHEMICAL SYMBOL FOR GOLD
-1F71B;AL # ALCHEMICAL SYMBOL FOR SILVER
-1F71C;AL # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D;AL # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E;AL # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F;AL # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720;AL # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721;AL # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723;AL # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724;AL # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725;AL # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726;AL # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728;AL # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729;AL # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A;AL # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B;AL # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D;AL # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E;AL # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F;AL # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730;AL # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731;AL # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732;AL # ALCHEMICAL SYMBOL FOR REGULUS
-1F733;AL # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734;AL # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735;AL # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736;AL # ALCHEMICAL SYMBOL FOR ALKALI
-1F737;AL # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738;AL # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739;AL # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A;AL # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B;AL # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C;AL # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D;AL # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E;AL # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F;AL # ALCHEMICAL SYMBOL FOR TARTAR
-1F740;AL # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741;AL # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742;AL # ALCHEMICAL SYMBOL FOR BORAX
-1F743;AL # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744;AL # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745;AL # ALCHEMICAL SYMBOL FOR ALUM
-1F746;AL # ALCHEMICAL SYMBOL FOR OIL
-1F747;AL # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748;AL # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749;AL # ALCHEMICAL SYMBOL FOR GUM
-1F74A;AL # ALCHEMICAL SYMBOL FOR WAX
-1F74B;AL # ALCHEMICAL SYMBOL FOR POWDER
-1F74C;AL # ALCHEMICAL SYMBOL FOR CALX
-1F74D;AL # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E;AL # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F;AL # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750;AL # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751;AL # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752;AL # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753;AL # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754;AL # ALCHEMICAL SYMBOL FOR SOAP
-1F755;AL # ALCHEMICAL SYMBOL FOR URINE
-1F756;AL # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757;AL # ALCHEMICAL SYMBOL FOR ASHES
-1F758;AL # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759;AL # ALCHEMICAL SYMBOL FOR BRICK
-1F75A;AL # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B;AL # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C;AL # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D;AL # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E;AL # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F;AL # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760;AL # ALCHEMICAL SYMBOL FOR DISTILL
-1F761;AL # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762;AL # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763;AL # ALCHEMICAL SYMBOL FOR PURIFY
-1F764;AL # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769;AL # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A;AL # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B;AL # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C;AL # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D;AL # ALCHEMICAL SYMBOL FOR RETORT
-1F76E;AL # ALCHEMICAL SYMBOL FOR HOUR
-1F76F;AL # ALCHEMICAL SYMBOL FOR NIGHT
-1F770;AL # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771;AL # ALCHEMICAL SYMBOL FOR MONTH
-1F772;AL # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773;AL # ALCHEMICAL SYMBOL FOR HALF OUNCE
-20000..2A6D6;ID # <CJK Ideograph Extension B, First>..<CJK Ideograph Extension B, Last>
-2A6D7..2A6FF;ID # <reserved-2A6D7>..<reserved-2A6FF>
-2A700..2B734;ID # <CJK Ideograph Extension C, First>..<CJK Ideograph Extension C, Last>
-2B735..2B73F;ID # <reserved-2B735>..<reserved-2B73F>
-2B740..2B81D;ID # <CJK Ideograph Extension D, First>..<CJK Ideograph Extension D, Last>
-2B81E..2F7FF;ID # <reserved-2B81E>..<reserved-2F7FF>
-2F800;ID # CJK COMPATIBILITY IDEOGRAPH-2F800
-2F801;ID # CJK COMPATIBILITY IDEOGRAPH-2F801
-2F802;ID # CJK COMPATIBILITY IDEOGRAPH-2F802
-2F803;ID # CJK COMPATIBILITY IDEOGRAPH-2F803
-2F804;ID # CJK COMPATIBILITY IDEOGRAPH-2F804
-2F805;ID # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806;ID # CJK COMPATIBILITY IDEOGRAPH-2F806
-2F807;ID # CJK COMPATIBILITY IDEOGRAPH-2F807
-2F808;ID # CJK COMPATIBILITY IDEOGRAPH-2F808
-2F809;ID # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80A;ID # CJK COMPATIBILITY IDEOGRAPH-2F80A
-2F80B;ID # CJK COMPATIBILITY IDEOGRAPH-2F80B
-2F80C;ID # CJK COMPATIBILITY IDEOGRAPH-2F80C
-2F80D;ID # CJK COMPATIBILITY IDEOGRAPH-2F80D
-2F80E;ID # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F80F;ID # CJK COMPATIBILITY IDEOGRAPH-2F80F
-2F810;ID # CJK COMPATIBILITY IDEOGRAPH-2F810
-2F811;ID # CJK COMPATIBILITY IDEOGRAPH-2F811
-2F812;ID # CJK COMPATIBILITY IDEOGRAPH-2F812
-2F813;ID # CJK COMPATIBILITY IDEOGRAPH-2F813
-2F814;ID # CJK COMPATIBILITY IDEOGRAPH-2F814
-2F815;ID # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F816;ID # CJK COMPATIBILITY IDEOGRAPH-2F816
-2F817;ID # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818;ID # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F819;ID # CJK COMPATIBILITY IDEOGRAPH-2F819
-2F81A;ID # CJK COMPATIBILITY IDEOGRAPH-2F81A
-2F81B;ID # CJK COMPATIBILITY IDEOGRAPH-2F81B
-2F81C;ID # CJK COMPATIBILITY IDEOGRAPH-2F81C
-2F81D;ID # CJK COMPATIBILITY IDEOGRAPH-2F81D
-2F81E;ID # CJK COMPATIBILITY IDEOGRAPH-2F81E
-2F81F;ID # CJK COMPATIBILITY IDEOGRAPH-2F81F
-2F820;ID # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F821;ID # CJK COMPATIBILITY IDEOGRAPH-2F821
-2F822;ID # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823;ID # CJK COMPATIBILITY IDEOGRAPH-2F823
-2F824;ID # CJK COMPATIBILITY IDEOGRAPH-2F824
-2F825;ID # CJK COMPATIBILITY IDEOGRAPH-2F825
-2F826;ID # CJK COMPATIBILITY IDEOGRAPH-2F826
-2F827;ID # CJK COMPATIBILITY IDEOGRAPH-2F827
-2F828;ID # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829;ID # CJK COMPATIBILITY IDEOGRAPH-2F829
-2F82A;ID # CJK COMPATIBILITY IDEOGRAPH-2F82A
-2F82B;ID # CJK COMPATIBILITY IDEOGRAPH-2F82B
-2F82C;ID # CJK COMPATIBILITY IDEOGRAPH-2F82C
-2F82D;ID # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E;ID # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F;ID # CJK COMPATIBILITY IDEOGRAPH-2F82F
-2F830;ID # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831;ID # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832;ID # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833;ID # CJK COMPATIBILITY IDEOGRAPH-2F833
-2F834;ID # CJK COMPATIBILITY IDEOGRAPH-2F834
-2F835;ID # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F836;ID # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837;ID # CJK COMPATIBILITY IDEOGRAPH-2F837
-2F838;ID # CJK COMPATIBILITY IDEOGRAPH-2F838
-2F839;ID # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A;ID # CJK COMPATIBILITY IDEOGRAPH-2F83A
-2F83B;ID # CJK COMPATIBILITY IDEOGRAPH-2F83B
-2F83C;ID # CJK COMPATIBILITY IDEOGRAPH-2F83C
-2F83D;ID # CJK COMPATIBILITY IDEOGRAPH-2F83D
-2F83E;ID # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F;ID # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840;ID # CJK COMPATIBILITY IDEOGRAPH-2F840
-2F841;ID # CJK COMPATIBILITY IDEOGRAPH-2F841
-2F842;ID # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843;ID # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844;ID # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845;ID # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846;ID # CJK COMPATIBILITY IDEOGRAPH-2F846
-2F847;ID # CJK COMPATIBILITY IDEOGRAPH-2F847
-2F848;ID # CJK COMPATIBILITY IDEOGRAPH-2F848
-2F849;ID # CJK COMPATIBILITY IDEOGRAPH-2F849
-2F84A;ID # CJK COMPATIBILITY IDEOGRAPH-2F84A
-2F84B;ID # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F84C;ID # CJK COMPATIBILITY IDEOGRAPH-2F84C
-2F84D;ID # CJK COMPATIBILITY IDEOGRAPH-2F84D
-2F84E;ID # CJK COMPATIBILITY IDEOGRAPH-2F84E
-2F84F;ID # CJK COMPATIBILITY IDEOGRAPH-2F84F
-2F850;ID # CJK COMPATIBILITY IDEOGRAPH-2F850
-2F851;ID # CJK COMPATIBILITY IDEOGRAPH-2F851
-2F852;ID # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853;ID # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F854;ID # CJK COMPATIBILITY IDEOGRAPH-2F854
-2F855;ID # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F856;ID # CJK COMPATIBILITY IDEOGRAPH-2F856
-2F857;ID # CJK COMPATIBILITY IDEOGRAPH-2F857
-2F858;ID # CJK COMPATIBILITY IDEOGRAPH-2F858
-2F859;ID # CJK COMPATIBILITY IDEOGRAPH-2F859
-2F85A;ID # CJK COMPATIBILITY IDEOGRAPH-2F85A
-2F85B;ID # CJK COMPATIBILITY IDEOGRAPH-2F85B
-2F85C;ID # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D;ID # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E;ID # CJK COMPATIBILITY IDEOGRAPH-2F85E
-2F85F;ID # CJK COMPATIBILITY IDEOGRAPH-2F85F
-2F860;ID # CJK COMPATIBILITY IDEOGRAPH-2F860
-2F861;ID # CJK COMPATIBILITY IDEOGRAPH-2F861
-2F862;ID # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863;ID # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864;ID # CJK COMPATIBILITY IDEOGRAPH-2F864
-2F865;ID # CJK COMPATIBILITY IDEOGRAPH-2F865
-2F866;ID # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F867;ID # CJK COMPATIBILITY IDEOGRAPH-2F867
-2F868;ID # CJK COMPATIBILITY IDEOGRAPH-2F868
-2F869;ID # CJK COMPATIBILITY IDEOGRAPH-2F869
-2F86A;ID # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B;ID # CJK COMPATIBILITY IDEOGRAPH-2F86B
-2F86C;ID # CJK COMPATIBILITY IDEOGRAPH-2F86C
-2F86D;ID # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E;ID # CJK COMPATIBILITY IDEOGRAPH-2F86E
-2F86F;ID # CJK COMPATIBILITY IDEOGRAPH-2F86F
-2F870;ID # CJK COMPATIBILITY IDEOGRAPH-2F870
-2F871;ID # CJK COMPATIBILITY IDEOGRAPH-2F871
-2F872;ID # CJK COMPATIBILITY IDEOGRAPH-2F872
-2F873;ID # CJK COMPATIBILITY IDEOGRAPH-2F873
-2F874;ID # CJK COMPATIBILITY IDEOGRAPH-2F874
-2F875;ID # CJK COMPATIBILITY IDEOGRAPH-2F875
-2F876;ID # CJK COMPATIBILITY IDEOGRAPH-2F876
-2F877;ID # CJK COMPATIBILITY IDEOGRAPH-2F877
-2F878;ID # CJK COMPATIBILITY IDEOGRAPH-2F878
-2F879;ID # CJK COMPATIBILITY IDEOGRAPH-2F879
-2F87A;ID # CJK COMPATIBILITY IDEOGRAPH-2F87A
-2F87B;ID # CJK COMPATIBILITY IDEOGRAPH-2F87B
-2F87C;ID # CJK COMPATIBILITY IDEOGRAPH-2F87C
-2F87D;ID # CJK COMPATIBILITY IDEOGRAPH-2F87D
-2F87E;ID # CJK COMPATIBILITY IDEOGRAPH-2F87E
-2F87F;ID # CJK COMPATIBILITY IDEOGRAPH-2F87F
-2F880;ID # CJK COMPATIBILITY IDEOGRAPH-2F880
-2F881;ID # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882;ID # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F883;ID # CJK COMPATIBILITY IDEOGRAPH-2F883
-2F884;ID # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885;ID # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886;ID # CJK COMPATIBILITY IDEOGRAPH-2F886
-2F887;ID # CJK COMPATIBILITY IDEOGRAPH-2F887
-2F888;ID # CJK COMPATIBILITY IDEOGRAPH-2F888
-2F889;ID # CJK COMPATIBILITY IDEOGRAPH-2F889
-2F88A;ID # CJK COMPATIBILITY IDEOGRAPH-2F88A
-2F88B;ID # CJK COMPATIBILITY IDEOGRAPH-2F88B
-2F88C;ID # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D;ID # CJK COMPATIBILITY IDEOGRAPH-2F88D
-2F88E;ID # CJK COMPATIBILITY IDEOGRAPH-2F88E
-2F88F;ID # CJK COMPATIBILITY IDEOGRAPH-2F88F
-2F890;ID # CJK COMPATIBILITY IDEOGRAPH-2F890
-2F891;ID # CJK COMPATIBILITY IDEOGRAPH-2F891
-2F892;ID # CJK COMPATIBILITY IDEOGRAPH-2F892
-2F893;ID # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F894;ID # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895;ID # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F896;ID # CJK COMPATIBILITY IDEOGRAPH-2F896
-2F897;ID # CJK COMPATIBILITY IDEOGRAPH-2F897
-2F898;ID # CJK COMPATIBILITY IDEOGRAPH-2F898
-2F899;ID # CJK COMPATIBILITY IDEOGRAPH-2F899
-2F89A;ID # CJK COMPATIBILITY IDEOGRAPH-2F89A
-2F89B;ID # CJK COMPATIBILITY IDEOGRAPH-2F89B
-2F89C;ID # CJK COMPATIBILITY IDEOGRAPH-2F89C
-2F89D;ID # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E;ID # CJK COMPATIBILITY IDEOGRAPH-2F89E
-2F89F;ID # CJK COMPATIBILITY IDEOGRAPH-2F89F
-2F8A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-2F8A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A1
-2F8A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A2
-2F8A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A4
-2F8A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-2F8A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A8
-2F8A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-2F8AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-2F8AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-2F8AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-2F8B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-2F8B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-2F8B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-2F8B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B3
-2F8B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B4
-2F8B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-2F8B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-2F8B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B8
-2F8B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BA
-2F8BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-2F8BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-2F8BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BD
-2F8BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BE
-2F8BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C0
-2F8C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-2F8C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C2
-2F8C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-2F8C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C4
-2F8C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-2F8C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C6
-2F8C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C7
-2F8C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-2F8C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-2F8CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CA
-2F8CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-2F8CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-2F8CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CE
-2F8CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-2F8D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D0
-2F8D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D1
-2F8D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F8D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-2F8D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D5
-2F8D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F8D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D7
-2F8D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-2F8D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-2F8DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DA
-2F8DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-2F8DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-2F8DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DD
-2F8DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DE
-2F8DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DF
-2F8E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E0
-2F8E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E1
-2F8E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-2F8E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E3
-2F8E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E4
-2F8E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E5
-2F8E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E6
-2F8E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E7
-2F8E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E9
-2F8EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-2F8EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EB
-2F8EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EC
-2F8ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-2F8EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EE
-2F8EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F0
-2F8F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F2
-2F8F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-2F8F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F4
-2F8F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F6
-2F8F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F7
-2F8F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F8
-2F8F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F9
-2F8FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-2F8FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FB
-2F8FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-2F8FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FD
-2F8FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FE
-2F8FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FF
-2F900;ID # CJK COMPATIBILITY IDEOGRAPH-2F900
-2F901;ID # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F902;ID # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903;ID # CJK COMPATIBILITY IDEOGRAPH-2F903
-2F904;ID # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905;ID # CJK COMPATIBILITY IDEOGRAPH-2F905
-2F906;ID # CJK COMPATIBILITY IDEOGRAPH-2F906
-2F907;ID # CJK COMPATIBILITY IDEOGRAPH-2F907
-2F908;ID # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909;ID # CJK COMPATIBILITY IDEOGRAPH-2F909
-2F90A;ID # CJK COMPATIBILITY IDEOGRAPH-2F90A
-2F90B;ID # CJK COMPATIBILITY IDEOGRAPH-2F90B
-2F90C;ID # CJK COMPATIBILITY IDEOGRAPH-2F90C
-2F90D;ID # CJK COMPATIBILITY IDEOGRAPH-2F90D
-2F90E;ID # CJK COMPATIBILITY IDEOGRAPH-2F90E
-2F90F;ID # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F910;ID # CJK COMPATIBILITY IDEOGRAPH-2F910
-2F911;ID # CJK COMPATIBILITY IDEOGRAPH-2F911
-2F912;ID # CJK COMPATIBILITY IDEOGRAPH-2F912
-2F913;ID # CJK COMPATIBILITY IDEOGRAPH-2F913
-2F914;ID # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F915;ID # CJK COMPATIBILITY IDEOGRAPH-2F915
-2F916;ID # CJK COMPATIBILITY IDEOGRAPH-2F916
-2F917;ID # CJK COMPATIBILITY IDEOGRAPH-2F917
-2F918;ID # CJK COMPATIBILITY IDEOGRAPH-2F918
-2F919;ID # CJK COMPATIBILITY IDEOGRAPH-2F919
-2F91A;ID # CJK COMPATIBILITY IDEOGRAPH-2F91A
-2F91B;ID # CJK COMPATIBILITY IDEOGRAPH-2F91B
-2F91C;ID # CJK COMPATIBILITY IDEOGRAPH-2F91C
-2F91D;ID # CJK COMPATIBILITY IDEOGRAPH-2F91D
-2F91E;ID # CJK COMPATIBILITY IDEOGRAPH-2F91E
-2F91F;ID # CJK COMPATIBILITY IDEOGRAPH-2F91F
-2F920;ID # CJK COMPATIBILITY IDEOGRAPH-2F920
-2F921;ID # CJK COMPATIBILITY IDEOGRAPH-2F921
-2F922;ID # CJK COMPATIBILITY IDEOGRAPH-2F922
-2F923;ID # CJK COMPATIBILITY IDEOGRAPH-2F923
-2F924;ID # CJK COMPATIBILITY IDEOGRAPH-2F924
-2F925;ID # CJK COMPATIBILITY IDEOGRAPH-2F925
-2F926;ID # CJK COMPATIBILITY IDEOGRAPH-2F926
-2F927;ID # CJK COMPATIBILITY IDEOGRAPH-2F927
-2F928;ID # CJK COMPATIBILITY IDEOGRAPH-2F928
-2F929;ID # CJK COMPATIBILITY IDEOGRAPH-2F929
-2F92A;ID # CJK COMPATIBILITY IDEOGRAPH-2F92A
-2F92B;ID # CJK COMPATIBILITY IDEOGRAPH-2F92B
-2F92C;ID # CJK COMPATIBILITY IDEOGRAPH-2F92C
-2F92D;ID # CJK COMPATIBILITY IDEOGRAPH-2F92D
-2F92E;ID # CJK COMPATIBILITY IDEOGRAPH-2F92E
-2F92F;ID # CJK COMPATIBILITY IDEOGRAPH-2F92F
-2F930;ID # CJK COMPATIBILITY IDEOGRAPH-2F930
-2F931;ID # CJK COMPATIBILITY IDEOGRAPH-2F931
-2F932;ID # CJK COMPATIBILITY IDEOGRAPH-2F932
-2F933;ID # CJK COMPATIBILITY IDEOGRAPH-2F933
-2F934;ID # CJK COMPATIBILITY IDEOGRAPH-2F934
-2F935;ID # CJK COMPATIBILITY IDEOGRAPH-2F935
-2F936;ID # CJK COMPATIBILITY IDEOGRAPH-2F936
-2F937;ID # CJK COMPATIBILITY IDEOGRAPH-2F937
-2F938;ID # CJK COMPATIBILITY IDEOGRAPH-2F938
-2F939;ID # CJK COMPATIBILITY IDEOGRAPH-2F939
-2F93A;ID # CJK COMPATIBILITY IDEOGRAPH-2F93A
-2F93B;ID # CJK COMPATIBILITY IDEOGRAPH-2F93B
-2F93C;ID # CJK COMPATIBILITY IDEOGRAPH-2F93C
-2F93D;ID # CJK COMPATIBILITY IDEOGRAPH-2F93D
-2F93E;ID # CJK COMPATIBILITY IDEOGRAPH-2F93E
-2F93F;ID # CJK COMPATIBILITY IDEOGRAPH-2F93F
-2F940;ID # CJK COMPATIBILITY IDEOGRAPH-2F940
-2F941;ID # CJK COMPATIBILITY IDEOGRAPH-2F941
-2F942;ID # CJK COMPATIBILITY IDEOGRAPH-2F942
-2F943;ID # CJK COMPATIBILITY IDEOGRAPH-2F943
-2F944;ID # CJK COMPATIBILITY IDEOGRAPH-2F944
-2F945;ID # CJK COMPATIBILITY IDEOGRAPH-2F945
-2F946;ID # CJK COMPATIBILITY IDEOGRAPH-2F946
-2F947;ID # CJK COMPATIBILITY IDEOGRAPH-2F947
-2F948;ID # CJK COMPATIBILITY IDEOGRAPH-2F948
-2F949;ID # CJK COMPATIBILITY IDEOGRAPH-2F949
-2F94A;ID # CJK COMPATIBILITY IDEOGRAPH-2F94A
-2F94B;ID # CJK COMPATIBILITY IDEOGRAPH-2F94B
-2F94C;ID # CJK COMPATIBILITY IDEOGRAPH-2F94C
-2F94D;ID # CJK COMPATIBILITY IDEOGRAPH-2F94D
-2F94E;ID # CJK COMPATIBILITY IDEOGRAPH-2F94E
-2F94F;ID # CJK COMPATIBILITY IDEOGRAPH-2F94F
-2F950;ID # CJK COMPATIBILITY IDEOGRAPH-2F950
-2F951;ID # CJK COMPATIBILITY IDEOGRAPH-2F951
-2F952;ID # CJK COMPATIBILITY IDEOGRAPH-2F952
-2F953;ID # CJK COMPATIBILITY IDEOGRAPH-2F953
-2F954;ID # CJK COMPATIBILITY IDEOGRAPH-2F954
-2F955;ID # CJK COMPATIBILITY IDEOGRAPH-2F955
-2F956;ID # CJK COMPATIBILITY IDEOGRAPH-2F956
-2F957;ID # CJK COMPATIBILITY IDEOGRAPH-2F957
-2F958;ID # CJK COMPATIBILITY IDEOGRAPH-2F958
-2F959;ID # CJK COMPATIBILITY IDEOGRAPH-2F959
-2F95A;ID # CJK COMPATIBILITY IDEOGRAPH-2F95A
-2F95B;ID # CJK COMPATIBILITY IDEOGRAPH-2F95B
-2F95C;ID # CJK COMPATIBILITY IDEOGRAPH-2F95C
-2F95D;ID # CJK COMPATIBILITY IDEOGRAPH-2F95D
-2F95E;ID # CJK COMPATIBILITY IDEOGRAPH-2F95E
-2F95F;ID # CJK COMPATIBILITY IDEOGRAPH-2F95F
-2F960;ID # CJK COMPATIBILITY IDEOGRAPH-2F960
-2F961;ID # CJK COMPATIBILITY IDEOGRAPH-2F961
-2F962;ID # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963;ID # CJK COMPATIBILITY IDEOGRAPH-2F963
-2F964;ID # CJK COMPATIBILITY IDEOGRAPH-2F964
-2F965;ID # CJK COMPATIBILITY IDEOGRAPH-2F965
-2F966;ID # CJK COMPATIBILITY IDEOGRAPH-2F966
-2F967;ID # CJK COMPATIBILITY IDEOGRAPH-2F967
-2F968;ID # CJK COMPATIBILITY IDEOGRAPH-2F968
-2F969;ID # CJK COMPATIBILITY IDEOGRAPH-2F969
-2F96A;ID # CJK COMPATIBILITY IDEOGRAPH-2F96A
-2F96B;ID # CJK COMPATIBILITY IDEOGRAPH-2F96B
-2F96C;ID # CJK COMPATIBILITY IDEOGRAPH-2F96C
-2F96D;ID # CJK COMPATIBILITY IDEOGRAPH-2F96D
-2F96E;ID # CJK COMPATIBILITY IDEOGRAPH-2F96E
-2F96F;ID # CJK COMPATIBILITY IDEOGRAPH-2F96F
-2F970;ID # CJK COMPATIBILITY IDEOGRAPH-2F970
-2F971;ID # CJK COMPATIBILITY IDEOGRAPH-2F971
-2F972;ID # CJK COMPATIBILITY IDEOGRAPH-2F972
-2F973;ID # CJK COMPATIBILITY IDEOGRAPH-2F973
-2F974;ID # CJK COMPATIBILITY IDEOGRAPH-2F974
-2F975;ID # CJK COMPATIBILITY IDEOGRAPH-2F975
-2F976;ID # CJK COMPATIBILITY IDEOGRAPH-2F976
-2F977;ID # CJK COMPATIBILITY IDEOGRAPH-2F977
-2F978;ID # CJK COMPATIBILITY IDEOGRAPH-2F978
-2F979;ID # CJK COMPATIBILITY IDEOGRAPH-2F979
-2F97A;ID # CJK COMPATIBILITY IDEOGRAPH-2F97A
-2F97B;ID # CJK COMPATIBILITY IDEOGRAPH-2F97B
-2F97C;ID # CJK COMPATIBILITY IDEOGRAPH-2F97C
-2F97D;ID # CJK COMPATIBILITY IDEOGRAPH-2F97D
-2F97E;ID # CJK COMPATIBILITY IDEOGRAPH-2F97E
-2F97F;ID # CJK COMPATIBILITY IDEOGRAPH-2F97F
-2F980;ID # CJK COMPATIBILITY IDEOGRAPH-2F980
-2F981;ID # CJK COMPATIBILITY IDEOGRAPH-2F981
-2F982;ID # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F983;ID # CJK COMPATIBILITY IDEOGRAPH-2F983
-2F984;ID # CJK COMPATIBILITY IDEOGRAPH-2F984
-2F985;ID # CJK COMPATIBILITY IDEOGRAPH-2F985
-2F986;ID # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F987;ID # CJK COMPATIBILITY IDEOGRAPH-2F987
-2F988;ID # CJK COMPATIBILITY IDEOGRAPH-2F988
-2F989;ID # CJK COMPATIBILITY IDEOGRAPH-2F989
-2F98A;ID # CJK COMPATIBILITY IDEOGRAPH-2F98A
-2F98B;ID # CJK COMPATIBILITY IDEOGRAPH-2F98B
-2F98C;ID # CJK COMPATIBILITY IDEOGRAPH-2F98C
-2F98D;ID # CJK COMPATIBILITY IDEOGRAPH-2F98D
-2F98E;ID # CJK COMPATIBILITY IDEOGRAPH-2F98E
-2F98F;ID # CJK COMPATIBILITY IDEOGRAPH-2F98F
-2F990;ID # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991;ID # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F992;ID # CJK COMPATIBILITY IDEOGRAPH-2F992
-2F993;ID # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994;ID # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995;ID # CJK COMPATIBILITY IDEOGRAPH-2F995
-2F996;ID # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F997;ID # CJK COMPATIBILITY IDEOGRAPH-2F997
-2F998;ID # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F999;ID # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99A;ID # CJK COMPATIBILITY IDEOGRAPH-2F99A
-2F99B;ID # CJK COMPATIBILITY IDEOGRAPH-2F99B
-2F99C;ID # CJK COMPATIBILITY IDEOGRAPH-2F99C
-2F99D;ID # CJK COMPATIBILITY IDEOGRAPH-2F99D
-2F99E;ID # CJK COMPATIBILITY IDEOGRAPH-2F99E
-2F99F;ID # CJK COMPATIBILITY IDEOGRAPH-2F99F
-2F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A0
-2F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-2F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A4
-2F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A5
-2F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A6
-2F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A7
-2F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-2F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A9
-2F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AA
-2F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AB
-2F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-2F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AD
-2F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AE
-2F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AF
-2F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B0
-2F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B1
-2F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B2
-2F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-2F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B6
-2F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B8
-2F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B9
-2F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BA
-2F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BB
-2F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-2F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BD
-2F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BE
-2F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BF
-2F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C0
-2F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C1
-2F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C2
-2F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C3
-2F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-2F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C5
-2F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C6
-2F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C7
-2F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C8
-2F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C9
-2F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CA
-2F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CB
-2F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CC
-2F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CD
-2F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CE
-2F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-2F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-2F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-2F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D3
-2F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-2F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D8
-2F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D9
-2F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-2F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DB
-2F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DC
-2F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DD
-2F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DE
-2F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-2F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E0
-2F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E1
-2F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E2
-2F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E3
-2F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E4
-2F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E5
-2F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E6
-2F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-2F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E9
-2F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EB
-2F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EC
-2F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F9ED
-2F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-2F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EF
-2F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F0
-2F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F1
-2F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F2
-2F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F3
-2F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F4
-2F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-2F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F6
-2F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F7
-2F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F8
-2F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F9
-2F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-2F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FB
-2F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FC
-2F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FD
-2F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FE
-2F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FF
-2FA00;ID # CJK COMPATIBILITY IDEOGRAPH-2FA00
-2FA01;ID # CJK COMPATIBILITY IDEOGRAPH-2FA01
-2FA02;ID # CJK COMPATIBILITY IDEOGRAPH-2FA02
-2FA03;ID # CJK COMPATIBILITY IDEOGRAPH-2FA03
-2FA04;ID # CJK COMPATIBILITY IDEOGRAPH-2FA04
-2FA05;ID # CJK COMPATIBILITY IDEOGRAPH-2FA05
-2FA06;ID # CJK COMPATIBILITY IDEOGRAPH-2FA06
-2FA07;ID # CJK COMPATIBILITY IDEOGRAPH-2FA07
-2FA08;ID # CJK COMPATIBILITY IDEOGRAPH-2FA08
-2FA09;ID # CJK COMPATIBILITY IDEOGRAPH-2FA09
-2FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-2FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0B
-2FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0C
-2FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0D
-2FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0E
-2FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0F
-2FA10;ID # CJK COMPATIBILITY IDEOGRAPH-2FA10
-2FA11;ID # CJK COMPATIBILITY IDEOGRAPH-2FA11
-2FA12;ID # CJK COMPATIBILITY IDEOGRAPH-2FA12
-2FA13;ID # CJK COMPATIBILITY IDEOGRAPH-2FA13
-2FA14;ID # CJK COMPATIBILITY IDEOGRAPH-2FA14
-2FA15;ID # CJK COMPATIBILITY IDEOGRAPH-2FA15
-2FA16;ID # CJK COMPATIBILITY IDEOGRAPH-2FA16
-2FA17;ID # CJK COMPATIBILITY IDEOGRAPH-2FA17
-2FA18;ID # CJK COMPATIBILITY IDEOGRAPH-2FA18
-2FA19;ID # CJK COMPATIBILITY IDEOGRAPH-2FA19
-2FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1A
-2FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1B
-2FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-2FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FFFD;ID # <reserved-2FA1E>..<reserved-2FFFD>
-30000..3FFFD;ID # <reserved-30000>..<reserved-3FFFD>
-E0001;CM # LANGUAGE TAG
-E0020;CM # TAG SPACE
-E0021;CM # TAG EXCLAMATION MARK
-E0022;CM # TAG QUOTATION MARK
-E0023;CM # TAG NUMBER SIGN
-E0024;CM # TAG DOLLAR SIGN
-E0025;CM # TAG PERCENT SIGN
-E0026;CM # TAG AMPERSAND
-E0027;CM # TAG APOSTROPHE
-E0028;CM # TAG LEFT PARENTHESIS
-E0029;CM # TAG RIGHT PARENTHESIS
-E002A;CM # TAG ASTERISK
-E002B;CM # TAG PLUS SIGN
-E002C;CM # TAG COMMA
-E002D;CM # TAG HYPHEN-MINUS
-E002E;CM # TAG FULL STOP
-E002F;CM # TAG SOLIDUS
-E0030;CM # TAG DIGIT ZERO
-E0031;CM # TAG DIGIT ONE
-E0032;CM # TAG DIGIT TWO
-E0033;CM # TAG DIGIT THREE
-E0034;CM # TAG DIGIT FOUR
-E0035;CM # TAG DIGIT FIVE
-E0036;CM # TAG DIGIT SIX
-E0037;CM # TAG DIGIT SEVEN
-E0038;CM # TAG DIGIT EIGHT
-E0039;CM # TAG DIGIT NINE
-E003A;CM # TAG COLON
-E003B;CM # TAG SEMICOLON
-E003C;CM # TAG LESS-THAN SIGN
-E003D;CM # TAG EQUALS SIGN
-E003E;CM # TAG GREATER-THAN SIGN
-E003F;CM # TAG QUESTION MARK
-E0040;CM # TAG COMMERCIAL AT
-E0041;CM # TAG LATIN CAPITAL LETTER A
-E0042;CM # TAG LATIN CAPITAL LETTER B
-E0043;CM # TAG LATIN CAPITAL LETTER C
-E0044;CM # TAG LATIN CAPITAL LETTER D
-E0045;CM # TAG LATIN CAPITAL LETTER E
-E0046;CM # TAG LATIN CAPITAL LETTER F
-E0047;CM # TAG LATIN CAPITAL LETTER G
-E0048;CM # TAG LATIN CAPITAL LETTER H
-E0049;CM # TAG LATIN CAPITAL LETTER I
-E004A;CM # TAG LATIN CAPITAL LETTER J
-E004B;CM # TAG LATIN CAPITAL LETTER K
-E004C;CM # TAG LATIN CAPITAL LETTER L
-E004D;CM # TAG LATIN CAPITAL LETTER M
-E004E;CM # TAG LATIN CAPITAL LETTER N
-E004F;CM # TAG LATIN CAPITAL LETTER O
-E0050;CM # TAG LATIN CAPITAL LETTER P
-E0051;CM # TAG LATIN CAPITAL LETTER Q
-E0052;CM # TAG LATIN CAPITAL LETTER R
-E0053;CM # TAG LATIN CAPITAL LETTER S
-E0054;CM # TAG LATIN CAPITAL LETTER T
-E0055;CM # TAG LATIN CAPITAL LETTER U
-E0056;CM # TAG LATIN CAPITAL LETTER V
-E0057;CM # TAG LATIN CAPITAL LETTER W
-E0058;CM # TAG LATIN CAPITAL LETTER X
-E0059;CM # TAG LATIN CAPITAL LETTER Y
-E005A;CM # TAG LATIN CAPITAL LETTER Z
-E005B;CM # TAG LEFT SQUARE BRACKET
-E005C;CM # TAG REVERSE SOLIDUS
-E005D;CM # TAG RIGHT SQUARE BRACKET
-E005E;CM # TAG CIRCUMFLEX ACCENT
-E005F;CM # TAG LOW LINE
-E0060;CM # TAG GRAVE ACCENT
-E0061;CM # TAG LATIN SMALL LETTER A
-E0062;CM # TAG LATIN SMALL LETTER B
-E0063;CM # TAG LATIN SMALL LETTER C
-E0064;CM # TAG LATIN SMALL LETTER D
-E0065;CM # TAG LATIN SMALL LETTER E
-E0066;CM # TAG LATIN SMALL LETTER F
-E0067;CM # TAG LATIN SMALL LETTER G
-E0068;CM # TAG LATIN SMALL LETTER H
-E0069;CM # TAG LATIN SMALL LETTER I
-E006A;CM # TAG LATIN SMALL LETTER J
-E006B;CM # TAG LATIN SMALL LETTER K
-E006C;CM # TAG LATIN SMALL LETTER L
-E006D;CM # TAG LATIN SMALL LETTER M
-E006E;CM # TAG LATIN SMALL LETTER N
-E006F;CM # TAG LATIN SMALL LETTER O
-E0070;CM # TAG LATIN SMALL LETTER P
-E0071;CM # TAG LATIN SMALL LETTER Q
-E0072;CM # TAG LATIN SMALL LETTER R
-E0073;CM # TAG LATIN SMALL LETTER S
-E0074;CM # TAG LATIN SMALL LETTER T
-E0075;CM # TAG LATIN SMALL LETTER U
-E0076;CM # TAG LATIN SMALL LETTER V
-E0077;CM # TAG LATIN SMALL LETTER W
-E0078;CM # TAG LATIN SMALL LETTER X
-E0079;CM # TAG LATIN SMALL LETTER Y
-E007A;CM # TAG LATIN SMALL LETTER Z
-E007B;CM # TAG LEFT CURLY BRACKET
-E007C;CM # TAG VERTICAL LINE
-E007D;CM # TAG RIGHT CURLY BRACKET
-E007E;CM # TAG TILDE
-E007F;CM # CANCEL TAG
-E0100;CM # VARIATION SELECTOR-17
-E0101;CM # VARIATION SELECTOR-18
-E0102;CM # VARIATION SELECTOR-19
-E0103;CM # VARIATION SELECTOR-20
-E0104;CM # VARIATION SELECTOR-21
-E0105;CM # VARIATION SELECTOR-22
-E0106;CM # VARIATION SELECTOR-23
-E0107;CM # VARIATION SELECTOR-24
-E0108;CM # VARIATION SELECTOR-25
-E0109;CM # VARIATION SELECTOR-26
-E010A;CM # VARIATION SELECTOR-27
-E010B;CM # VARIATION SELECTOR-28
-E010C;CM # VARIATION SELECTOR-29
-E010D;CM # VARIATION SELECTOR-30
-E010E;CM # VARIATION SELECTOR-31
-E010F;CM # VARIATION SELECTOR-32
-E0110;CM # VARIATION SELECTOR-33
-E0111;CM # VARIATION SELECTOR-34
-E0112;CM # VARIATION SELECTOR-35
-E0113;CM # VARIATION SELECTOR-36
-E0114;CM # VARIATION SELECTOR-37
-E0115;CM # VARIATION SELECTOR-38
-E0116;CM # VARIATION SELECTOR-39
-E0117;CM # VARIATION SELECTOR-40
-E0118;CM # VARIATION SELECTOR-41
-E0119;CM # VARIATION SELECTOR-42
-E011A;CM # VARIATION SELECTOR-43
-E011B;CM # VARIATION SELECTOR-44
-E011C;CM # VARIATION SELECTOR-45
-E011D;CM # VARIATION SELECTOR-46
-E011E;CM # VARIATION SELECTOR-47
-E011F;CM # VARIATION SELECTOR-48
-E0120;CM # VARIATION SELECTOR-49
-E0121;CM # VARIATION SELECTOR-50
-E0122;CM # VARIATION SELECTOR-51
-E0123;CM # VARIATION SELECTOR-52
-E0124;CM # VARIATION SELECTOR-53
-E0125;CM # VARIATION SELECTOR-54
-E0126;CM # VARIATION SELECTOR-55
-E0127;CM # VARIATION SELECTOR-56
-E0128;CM # VARIATION SELECTOR-57
-E0129;CM # VARIATION SELECTOR-58
-E012A;CM # VARIATION SELECTOR-59
-E012B;CM # VARIATION SELECTOR-60
-E012C;CM # VARIATION SELECTOR-61
-E012D;CM # VARIATION SELECTOR-62
-E012E;CM # VARIATION SELECTOR-63
-E012F;CM # VARIATION SELECTOR-64
-E0130;CM # VARIATION SELECTOR-65
-E0131;CM # VARIATION SELECTOR-66
-E0132;CM # VARIATION SELECTOR-67
-E0133;CM # VARIATION SELECTOR-68
-E0134;CM # VARIATION SELECTOR-69
-E0135;CM # VARIATION SELECTOR-70
-E0136;CM # VARIATION SELECTOR-71
-E0137;CM # VARIATION SELECTOR-72
-E0138;CM # VARIATION SELECTOR-73
-E0139;CM # VARIATION SELECTOR-74
-E013A;CM # VARIATION SELECTOR-75
-E013B;CM # VARIATION SELECTOR-76
-E013C;CM # VARIATION SELECTOR-77
-E013D;CM # VARIATION SELECTOR-78
-E013E;CM # VARIATION SELECTOR-79
-E013F;CM # VARIATION SELECTOR-80
-E0140;CM # VARIATION SELECTOR-81
-E0141;CM # VARIATION SELECTOR-82
-E0142;CM # VARIATION SELECTOR-83
-E0143;CM # VARIATION SELECTOR-84
-E0144;CM # VARIATION SELECTOR-85
-E0145;CM # VARIATION SELECTOR-86
-E0146;CM # VARIATION SELECTOR-87
-E0147;CM # VARIATION SELECTOR-88
-E0148;CM # VARIATION SELECTOR-89
-E0149;CM # VARIATION SELECTOR-90
-E014A;CM # VARIATION SELECTOR-91
-E014B;CM # VARIATION SELECTOR-92
-E014C;CM # VARIATION SELECTOR-93
-E014D;CM # VARIATION SELECTOR-94
-E014E;CM # VARIATION SELECTOR-95
-E014F;CM # VARIATION SELECTOR-96
-E0150;CM # VARIATION SELECTOR-97
-E0151;CM # VARIATION SELECTOR-98
-E0152;CM # VARIATION SELECTOR-99
-E0153;CM # VARIATION SELECTOR-100
-E0154;CM # VARIATION SELECTOR-101
-E0155;CM # VARIATION SELECTOR-102
-E0156;CM # VARIATION SELECTOR-103
-E0157;CM # VARIATION SELECTOR-104
-E0158;CM # VARIATION SELECTOR-105
-E0159;CM # VARIATION SELECTOR-106
-E015A;CM # VARIATION SELECTOR-107
-E015B;CM # VARIATION SELECTOR-108
-E015C;CM # VARIATION SELECTOR-109
-E015D;CM # VARIATION SELECTOR-110
-E015E;CM # VARIATION SELECTOR-111
-E015F;CM # VARIATION SELECTOR-112
-E0160;CM # VARIATION SELECTOR-113
-E0161;CM # VARIATION SELECTOR-114
-E0162;CM # VARIATION SELECTOR-115
-E0163;CM # VARIATION SELECTOR-116
-E0164;CM # VARIATION SELECTOR-117
-E0165;CM # VARIATION SELECTOR-118
-E0166;CM # VARIATION SELECTOR-119
-E0167;CM # VARIATION SELECTOR-120
-E0168;CM # VARIATION SELECTOR-121
-E0169;CM # VARIATION SELECTOR-122
-E016A;CM # VARIATION SELECTOR-123
-E016B;CM # VARIATION SELECTOR-124
-E016C;CM # VARIATION SELECTOR-125
-E016D;CM # VARIATION SELECTOR-126
-E016E;CM # VARIATION SELECTOR-127
-E016F;CM # VARIATION SELECTOR-128
-E0170;CM # VARIATION SELECTOR-129
-E0171;CM # VARIATION SELECTOR-130
-E0172;CM # VARIATION SELECTOR-131
-E0173;CM # VARIATION SELECTOR-132
-E0174;CM # VARIATION SELECTOR-133
-E0175;CM # VARIATION SELECTOR-134
-E0176;CM # VARIATION SELECTOR-135
-E0177;CM # VARIATION SELECTOR-136
-E0178;CM # VARIATION SELECTOR-137
-E0179;CM # VARIATION SELECTOR-138
-E017A;CM # VARIATION SELECTOR-139
-E017B;CM # VARIATION SELECTOR-140
-E017C;CM # VARIATION SELECTOR-141
-E017D;CM # VARIATION SELECTOR-142
-E017E;CM # VARIATION SELECTOR-143
-E017F;CM # VARIATION SELECTOR-144
-E0180;CM # VARIATION SELECTOR-145
-E0181;CM # VARIATION SELECTOR-146
-E0182;CM # VARIATION SELECTOR-147
-E0183;CM # VARIATION SELECTOR-148
-E0184;CM # VARIATION SELECTOR-149
-E0185;CM # VARIATION SELECTOR-150
-E0186;CM # VARIATION SELECTOR-151
-E0187;CM # VARIATION SELECTOR-152
-E0188;CM # VARIATION SELECTOR-153
-E0189;CM # VARIATION SELECTOR-154
-E018A;CM # VARIATION SELECTOR-155
-E018B;CM # VARIATION SELECTOR-156
-E018C;CM # VARIATION SELECTOR-157
-E018D;CM # VARIATION SELECTOR-158
-E018E;CM # VARIATION SELECTOR-159
-E018F;CM # VARIATION SELECTOR-160
-E0190;CM # VARIATION SELECTOR-161
-E0191;CM # VARIATION SELECTOR-162
-E0192;CM # VARIATION SELECTOR-163
-E0193;CM # VARIATION SELECTOR-164
-E0194;CM # VARIATION SELECTOR-165
-E0195;CM # VARIATION SELECTOR-166
-E0196;CM # VARIATION SELECTOR-167
-E0197;CM # VARIATION SELECTOR-168
-E0198;CM # VARIATION SELECTOR-169
-E0199;CM # VARIATION SELECTOR-170
-E019A;CM # VARIATION SELECTOR-171
-E019B;CM # VARIATION SELECTOR-172
-E019C;CM # VARIATION SELECTOR-173
-E019D;CM # VARIATION SELECTOR-174
-E019E;CM # VARIATION SELECTOR-175
-E019F;CM # VARIATION SELECTOR-176
-E01A0;CM # VARIATION SELECTOR-177
-E01A1;CM # VARIATION SELECTOR-178
-E01A2;CM # VARIATION SELECTOR-179
-E01A3;CM # VARIATION SELECTOR-180
-E01A4;CM # VARIATION SELECTOR-181
-E01A5;CM # VARIATION SELECTOR-182
-E01A6;CM # VARIATION SELECTOR-183
-E01A7;CM # VARIATION SELECTOR-184
-E01A8;CM # VARIATION SELECTOR-185
-E01A9;CM # VARIATION SELECTOR-186
-E01AA;CM # VARIATION SELECTOR-187
-E01AB;CM # VARIATION SELECTOR-188
-E01AC;CM # VARIATION SELECTOR-189
-E01AD;CM # VARIATION SELECTOR-190
-E01AE;CM # VARIATION SELECTOR-191
-E01AF;CM # VARIATION SELECTOR-192
-E01B0;CM # VARIATION SELECTOR-193
-E01B1;CM # VARIATION SELECTOR-194
-E01B2;CM # VARIATION SELECTOR-195
-E01B3;CM # VARIATION SELECTOR-196
-E01B4;CM # VARIATION SELECTOR-197
-E01B5;CM # VARIATION SELECTOR-198
-E01B6;CM # VARIATION SELECTOR-199
-E01B7;CM # VARIATION SELECTOR-200
-E01B8;CM # VARIATION SELECTOR-201
-E01B9;CM # VARIATION SELECTOR-202
-E01BA;CM # VARIATION SELECTOR-203
-E01BB;CM # VARIATION SELECTOR-204
-E01BC;CM # VARIATION SELECTOR-205
-E01BD;CM # VARIATION SELECTOR-206
-E01BE;CM # VARIATION SELECTOR-207
-E01BF;CM # VARIATION SELECTOR-208
-E01C0;CM # VARIATION SELECTOR-209
-E01C1;CM # VARIATION SELECTOR-210
-E01C2;CM # VARIATION SELECTOR-211
-E01C3;CM # VARIATION SELECTOR-212
-E01C4;CM # VARIATION SELECTOR-213
-E01C5;CM # VARIATION SELECTOR-214
-E01C6;CM # VARIATION SELECTOR-215
-E01C7;CM # VARIATION SELECTOR-216
-E01C8;CM # VARIATION SELECTOR-217
-E01C9;CM # VARIATION SELECTOR-218
-E01CA;CM # VARIATION SELECTOR-219
-E01CB;CM # VARIATION SELECTOR-220
-E01CC;CM # VARIATION SELECTOR-221
-E01CD;CM # VARIATION SELECTOR-222
-E01CE;CM # VARIATION SELECTOR-223
-E01CF;CM # VARIATION SELECTOR-224
-E01D0;CM # VARIATION SELECTOR-225
-E01D1;CM # VARIATION SELECTOR-226
-E01D2;CM # VARIATION SELECTOR-227
-E01D3;CM # VARIATION SELECTOR-228
-E01D4;CM # VARIATION SELECTOR-229
-E01D5;CM # VARIATION SELECTOR-230
-E01D6;CM # VARIATION SELECTOR-231
-E01D7;CM # VARIATION SELECTOR-232
-E01D8;CM # VARIATION SELECTOR-233
-E01D9;CM # VARIATION SELECTOR-234
-E01DA;CM # VARIATION SELECTOR-235
-E01DB;CM # VARIATION SELECTOR-236
-E01DC;CM # VARIATION SELECTOR-237
-E01DD;CM # VARIATION SELECTOR-238
-E01DE;CM # VARIATION SELECTOR-239
-E01DF;CM # VARIATION SELECTOR-240
-E01E0;CM # VARIATION SELECTOR-241
-E01E1;CM # VARIATION SELECTOR-242
-E01E2;CM # VARIATION SELECTOR-243
-E01E3;CM # VARIATION SELECTOR-244
-E01E4;CM # VARIATION SELECTOR-245
-E01E5;CM # VARIATION SELECTOR-246
-E01E6;CM # VARIATION SELECTOR-247
-E01E7;CM # VARIATION SELECTOR-248
-E01E8;CM # VARIATION SELECTOR-249
-E01E9;CM # VARIATION SELECTOR-250
-E01EA;CM # VARIATION SELECTOR-251
-E01EB;CM # VARIATION SELECTOR-252
-E01EC;CM # VARIATION SELECTOR-253
-E01ED;CM # VARIATION SELECTOR-254
-E01EE;CM # VARIATION SELECTOR-255
-E01EF;CM # VARIATION SELECTOR-256
-F0000..FFFFD;XX # <Plane 15 Private Use, First>..<Plane 15 Private Use, Last>
-100000..10FFFD;XX # <Plane 16 Private Use, First>..<Plane 16 Private Use, Last>
+0000..0008;CM # Cc [9] <control-0000>..<control-0008>
+0009;BA # Cc <control-0009>
+000A;LF # Cc <control-000A>
+000B..000C;BK # Cc [2] <control-000B>..<control-000C>
+000D;CR # Cc <control-000D>
+000E..001F;CM # Cc [18] <control-000E>..<control-001F>
+0020;SP # Zs SPACE
+0021;EX # Po EXCLAMATION MARK
+0022;QU # Po QUOTATION MARK
+0023;AL # Po NUMBER SIGN
+0024;PR # Sc DOLLAR SIGN
+0025;PO # Po PERCENT SIGN
+0026;AL # Po AMPERSAND
+0027;QU # Po APOSTROPHE
+0028;OP # Ps LEFT PARENTHESIS
+0029;CP # Pe RIGHT PARENTHESIS
+002A;AL # Po ASTERISK
+002B;PR # Sm PLUS SIGN
+002C;IS # Po COMMA
+002D;HY # Pd HYPHEN-MINUS
+002E;IS # Po FULL STOP
+002F;SY # Po SOLIDUS
+0030..0039;NU # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B;IS # Po [2] COLON..SEMICOLON
+003C..003E;AL # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F;EX # Po QUESTION MARK
+0040;AL # Po COMMERCIAL AT
+0041..005A;AL # Lu [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B;OP # Ps LEFT SQUARE BRACKET
+005C;PR # Po REVERSE SOLIDUS
+005D;CP # Pe RIGHT SQUARE BRACKET
+005E;AL # Sk CIRCUMFLEX ACCENT
+005F;AL # Pc LOW LINE
+0060;AL # Sk GRAVE ACCENT
+0061..007A;AL # Ll [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B;OP # Ps LEFT CURLY BRACKET
+007C;BA # Sm VERTICAL LINE
+007D;CL # Pe RIGHT CURLY BRACKET
+007E;AL # Sm TILDE
+007F;CM # Cc <control-007F>
+0080..0084;CM # Cc [5] <control-0080>..<control-0084>
+0085;NL # Cc <control-0085>
+0086..009F;CM # Cc [26] <control-0086>..<control-009F>
+00A0;GL # Zs NO-BREAK SPACE
+00A1;OP # Po INVERTED EXCLAMATION MARK
+00A2;PO # Sc CENT SIGN
+00A3..00A5;PR # Sc [3] POUND SIGN..YEN SIGN
+00A6;AL # So BROKEN BAR
+00A7;AI # Po SECTION SIGN
+00A8;AI # Sk DIAERESIS
+00A9;AL # So COPYRIGHT SIGN
+00AA;AI # Lo FEMININE ORDINAL INDICATOR
+00AB;QU # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC;AL # Sm NOT SIGN
+00AD;BA # Cf SOFT HYPHEN
+00AE;AL # So REGISTERED SIGN
+00AF;AL # Sk MACRON
+00B0;PO # So DEGREE SIGN
+00B1;PR # Sm PLUS-MINUS SIGN
+00B2..00B3;AI # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4;BB # Sk ACUTE ACCENT
+00B5;AL # Ll MICRO SIGN
+00B6..00B7;AI # Po [2] PILCROW SIGN..MIDDLE DOT
+00B8;AI # Sk CEDILLA
+00B9;AI # No SUPERSCRIPT ONE
+00BA;AI # Lo MASCULINE ORDINAL INDICATOR
+00BB;QU # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE;AI # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF;OP # Po INVERTED QUESTION MARK
+00C0..00D6;AL # Lu [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7;AI # Sm MULTIPLICATION SIGN
+00D8..00F6;AL # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7;AI # Sm DIVISION SIGN
+00F8..00FF;AL # L& [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100..017F;AL # L& [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S
+0180..01BA;AL # L& [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB;AL # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF;AL # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3;AL # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..024F;AL # L& [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE
+0250..0293;AL # Ll [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL
+0294;AL # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF;AL # Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1;AL # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5;AL # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6;AL # Lm MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7;AI # Lm CARON
+02C8;BB # Lm MODIFIER LETTER VERTICAL LINE
+02C9..02CB;AI # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
+02CC;BB # Lm MODIFIER LETTER LOW VERTICAL LINE
+02CD;AI # Lm MODIFIER LETTER LOW MACRON
+02CE..02CF;AL # Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
+02D0;AI # Lm MODIFIER LETTER TRIANGULAR COLON
+02D1;AL # Lm MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7;AL # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8..02DB;AI # Sk [4] BREVE..OGONEK
+02DC;AL # Sk SMALL TILDE
+02DD;AI # Sk DOUBLE ACUTE ACCENT
+02DE;AL # Sk MODIFIER LETTER RHOTIC HOOK
+02DF;BB # Sk MODIFIER LETTER CROSS ACCENT
+02E0..02E4;AL # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB;AL # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC;AL # Lm MODIFIER LETTER VOICING
+02ED;AL # Sk MODIFIER LETTER UNASPIRATED
+02EE;AL # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF;AL # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..034E;CM # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
+034F;GL # Mn COMBINING GRAPHEME JOINER
+0350..035B;CM # Mn [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE
+035C..0362;GL # Mn [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0363..036F;CM # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0370..0373;AL # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374;AL # Lm GREEK NUMERAL SIGN
+0375;AL # Sk GREEK LOWER NUMERAL SIGN
+0376..0377;AL # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A;AL # Lm GREEK YPOGEGRAMMENI
+037B..037D;AL # Ll [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E;IS # Po GREEK QUESTION MARK
+037F;AL # Lu GREEK CAPITAL LETTER YOT
+0384..0385;AL # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386;AL # Lu GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387;AL # Po GREEK ANO TELEIA
+0388..038A;AL # Lu [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C;AL # Lu GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1;AL # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03F5;AL # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
+03F6;AL # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF;AL # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400..0481;AL # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
+0482;AL # So CYRILLIC THOUSANDS SIGN
+0483..0487;CM # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489;CM # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..04FF;AL # L& [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
+0500..052F;AL # L& [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556;AL # Lu [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559;AL # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F;AL # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0561..0587;AL # Ll [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+0589;IS # Po ARMENIAN FULL STOP
+058A;BA # Pd ARMENIAN HYPHEN
+058D..058E;AL # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F;PR # Sc ARMENIAN DRAM SIGN
+0591..05BD;CM # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE;BA # Pd HEBREW PUNCTUATION MAQAF
+05BF;CM # Mn HEBREW POINT RAFE
+05C0;AL # Po HEBREW PUNCTUATION PASEQ
+05C1..05C2;CM # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3;AL # Po HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5;CM # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6;EX # Po HEBREW PUNCTUATION NUN HAFUKHA
+05C7;CM # Mn HEBREW POINT QAMATS QATAN
+05D0..05EA;HL # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2;HL # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4;AL # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0605;AL # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+0606..0608;AL # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A;PO # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B;PO # Sc AFGHANI SIGN
+060C..060D;IS # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F;AL # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A;CM # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B;EX # Po ARABIC SEMICOLON
+061C;CM # Cf ARABIC LETTER MARK
+061E..061F;EX # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0620..063F;AL # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640;AL # Lm ARABIC TATWEEL
+0641..064A;AL # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+064B..065F;CM # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0660..0669;NU # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A;PO # Po ARABIC PERCENT SIGN
+066B..066C;NU # Po [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
+066D;AL # Po ARABIC FIVE POINTED STAR
+066E..066F;AL # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670;CM # Mn ARABIC LETTER SUPERSCRIPT ALEF
+0671..06D3;AL # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4;EX # Po ARABIC FULL STOP
+06D5;AL # Lo ARABIC LETTER AE
+06D6..06DC;CM # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DD;AL # Cf ARABIC END OF AYAH
+06DE;AL # So ARABIC START OF RUB EL HIZB
+06DF..06E4;CM # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6;AL # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8;CM # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9;AL # So ARABIC PLACE OF SAJDAH
+06EA..06ED;CM # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF;AL # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9;NU # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC;AL # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE;AL # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF;AL # Lo ARABIC LETTER HEH WITH INVERTED V
+0700..070D;AL # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F;AL # Cf SYRIAC ABBREVIATION MARK
+0710;AL # Lo SYRIAC LETTER ALAPH
+0711;CM # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F;AL # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A;CM # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F;AL # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..077F;AL # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07A5;AL # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0;CM # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1;AL # Lo THAANA LETTER NAA
+07C0..07C9;NU # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA;AL # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3;CM # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5;AL # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6;AL # So NKO SYMBOL OO DENNEN
+07F7;AL # Po NKO SYMBOL GBAKURUNEN
+07F8;IS # Po NKO COMMA
+07F9;EX # Po NKO EXCLAMATION MARK
+07FA;AL # Lm NKO LAJANYALAN
+0800..0815;AL # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+0816..0819;CM # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A;AL # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823;CM # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0824;AL # Lm SAMARITAN MODIFIER LETTER SHORT A
+0825..0827;CM # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0828;AL # Lm SAMARITAN MODIFIER LETTER I
+0829..082D;CM # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0830..083E;AL # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+0840..0858;AL # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B;CM # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+085E;AL # Po MANDAIC PUNCTUATION
+08A0..08B2;AL # Lo [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..08FF;CM # Mn [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
+0900..0902;CM # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903;CM # Mc DEVANAGARI SIGN VISARGA
+0904..0939;AL # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093A;CM # Mn DEVANAGARI VOWEL SIGN OE
+093B;CM # Mc DEVANAGARI VOWEL SIGN OOE
+093C;CM # Mn DEVANAGARI SIGN NUKTA
+093D;AL # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940;CM # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948;CM # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C;CM # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D;CM # Mn DEVANAGARI SIGN VIRAMA
+094E..094F;CM # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0950;AL # Lo DEVANAGARI OM
+0951..0957;CM # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0958..0961;AL # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963;CM # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965;BA # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F;NU # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970;AL # Po DEVANAGARI ABBREVIATION SIGN
+0971;AL # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F;AL # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
+0980;AL # Lo BENGALI ANJI
+0981;CM # Mn BENGALI SIGN CANDRABINDU
+0982..0983;CM # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C;AL # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990;AL # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8;AL # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0;AL # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2;AL # Lo BENGALI LETTER LA
+09B6..09B9;AL # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC;CM # Mn BENGALI SIGN NUKTA
+09BD;AL # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0;CM # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4;CM # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8;CM # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC;CM # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD;CM # Mn BENGALI SIGN VIRAMA
+09CE;AL # Lo BENGALI LETTER KHANDA TA
+09D7;CM # Mc BENGALI AU LENGTH MARK
+09DC..09DD;AL # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1;AL # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3;CM # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF;NU # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1;AL # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3;PO # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F8;AL # No [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9;PO # No BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA;AL # So BENGALI ISSHAR
+09FB;PR # Sc BENGALI GANDA MARK
+0A01..0A02;CM # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03;CM # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A;AL # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10;AL # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28;AL # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30;AL # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33;AL # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36;AL # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39;AL # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C;CM # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40;CM # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42;CM # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48;CM # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D;CM # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51;CM # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C;AL # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E;AL # Lo GURMUKHI LETTER FA
+0A66..0A6F;NU # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71;CM # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74;AL # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75;CM # Mn GURMUKHI SIGN YAKASH
+0A81..0A82;CM # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83;CM # Mc GUJARATI SIGN VISARGA
+0A85..0A8D;AL # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91;AL # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8;AL # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0;AL # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3;AL # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9;AL # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC;CM # Mn GUJARATI SIGN NUKTA
+0ABD;AL # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0;CM # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5;CM # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8;CM # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9;CM # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC;CM # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD;CM # Mn GUJARATI SIGN VIRAMA
+0AD0;AL # Lo GUJARATI OM
+0AE0..0AE1;AL # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3;CM # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF;NU # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0;AL # Po GUJARATI ABBREVIATION SIGN
+0AF1;PR # Sc GUJARATI RUPEE SIGN
+0B01;CM # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03;CM # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C;AL # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10;AL # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28;AL # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30;AL # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33;AL # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39;AL # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C;CM # Mn ORIYA SIGN NUKTA
+0B3D;AL # Lo ORIYA SIGN AVAGRAHA
+0B3E;CM # Mc ORIYA VOWEL SIGN AA
+0B3F;CM # Mn ORIYA VOWEL SIGN I
+0B40;CM # Mc ORIYA VOWEL SIGN II
+0B41..0B44;CM # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48;CM # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C;CM # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D;CM # Mn ORIYA SIGN VIRAMA
+0B56;CM # Mn ORIYA AI LENGTH MARK
+0B57;CM # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D;AL # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61;AL # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63;CM # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F;NU # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70;AL # So ORIYA ISSHAR
+0B71;AL # Lo ORIYA LETTER WA
+0B72..0B77;AL # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B82;CM # Mn TAMIL SIGN ANUSVARA
+0B83;AL # Lo TAMIL SIGN VISARGA
+0B85..0B8A;AL # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90;AL # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95;AL # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A;AL # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C;AL # Lo TAMIL LETTER JA
+0B9E..0B9F;AL # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4;AL # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA;AL # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9;AL # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF;CM # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0;CM # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2;CM # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8;CM # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC;CM # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD;CM # Mn TAMIL SIGN VIRAMA
+0BD0;AL # Lo TAMIL OM
+0BD7;CM # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF;NU # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2;AL # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8;AL # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9;PR # Sc TAMIL RUPEE SIGN
+0BFA;AL # So TAMIL NUMBER SIGN
+0C00;CM # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03;CM # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C05..0C0C;AL # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10;AL # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28;AL # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39;AL # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3D;AL # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40;CM # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44;CM # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48;CM # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D;CM # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56;CM # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C59;AL # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61;AL # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63;CM # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F;NU # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C78..0C7E;AL # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F;AL # So TELUGU SIGN TUUMU
+0C81;CM # Mn KANNADA SIGN CANDRABINDU
+0C82..0C83;CM # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C85..0C8C;AL # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90;AL # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8;AL # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3;AL # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9;AL # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC;CM # Mn KANNADA SIGN NUKTA
+0CBD;AL # Lo KANNADA SIGN AVAGRAHA
+0CBE;CM # Mc KANNADA VOWEL SIGN AA
+0CBF;CM # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4;CM # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6;CM # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8;CM # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB;CM # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD;CM # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6;CM # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDE;AL # Lo KANNADA LETTER FA
+0CE0..0CE1;AL # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3;CM # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF;NU # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2;AL # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D01;CM # Mn MALAYALAM SIGN CANDRABINDU
+0D02..0D03;CM # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D05..0D0C;AL # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10;AL # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A;AL # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3D;AL # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40;CM # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44;CM # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48;CM # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C;CM # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D;CM # Mn MALAYALAM SIGN VIRAMA
+0D4E;AL # Lo MALAYALAM LETTER DOT REPH
+0D57;CM # Mc MALAYALAM AU LENGTH MARK
+0D60..0D61;AL # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63;CM # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F;NU # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75;AL # No [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D79;PO # So MALAYALAM DATE MARK
+0D7A..0D7F;AL # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D82..0D83;CM # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96;AL # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1;AL # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB;AL # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD;AL # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6;AL # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA;CM # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1;CM # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4;CM # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6;CM # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF;CM # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF;NU # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF2..0DF3;CM # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4;AL # Po SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30;SA # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31;SA # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33;SA # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A;SA # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3F;PR # Sc THAI CURRENCY SYMBOL BAHT
+0E40..0E45;SA # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46;SA # Lm THAI CHARACTER MAIYAMOK
+0E47..0E4E;SA # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F;AL # Po THAI CHARACTER FONGMAN
+0E50..0E59;NU # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B;BA # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82;SA # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84;SA # Lo LAO LETTER KHO TAM
+0E87..0E88;SA # Lo [2] LAO LETTER NGO..LAO LETTER CO
+0E8A;SA # Lo LAO LETTER SO TAM
+0E8D;SA # Lo LAO LETTER NYO
+0E94..0E97;SA # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F;SA # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3;SA # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5;SA # Lo LAO LETTER LO LOOT
+0EA7;SA # Lo LAO LETTER WO
+0EAA..0EAB;SA # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0;SA # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB1;SA # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3;SA # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB9;SA # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC;SA # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EBD;SA # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4;SA # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6;SA # Lm LAO KO LA
+0EC8..0ECD;SA # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ED0..0ED9;NU # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF;SA # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
+0F00;AL # Lo TIBETAN SYLLABLE OM
+0F01..0F03;BB # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04;BB # Po TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05;AL # Po TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06..0F07;BB # Po [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08;GL # Po TIBETAN MARK SBRUL SHAD
+0F09..0F0A;BB # Po [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B;BA # Po TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C;GL # Po TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D..0F11;EX # Po [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12;GL # Po TIBETAN MARK RGYA GRAM SHAD
+0F13;AL # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14;EX # Po TIBETAN MARK GTER TSHEG
+0F15..0F17;AL # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19;CM # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F;AL # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29;NU # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33;AL # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34;BA # So TIBETAN MARK BSDUS RTAGS
+0F35;CM # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36;AL # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37;CM # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38;AL # So TIBETAN MARK CHE MGO
+0F39;CM # Mn TIBETAN MARK TSA -PHRU
+0F3A;OP # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B;CL # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C;OP # Ps TIBETAN MARK ANG KHANG GYON
+0F3D;CL # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F;CM # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47;AL # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C;AL # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E;CM # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F;BA # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84;CM # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85;BA # Po TIBETAN MARK PALUTA
+0F86..0F87;CM # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8C;AL # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+0F8D..0F97;CM # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC;CM # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FBF;BA # So [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN
+0FC0..0FC5;AL # So [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE
+0FC6;CM # Mn TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC;AL # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF;AL # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD1;BB # Po [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2;BA # Po TIBETAN MARK NYIS TSHEG
+0FD3;BB # Po TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+0FD4;AL # Po TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8;AL # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA;GL # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+1000..102A;SA # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C;SA # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030;SA # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031;SA # Mc MYANMAR VOWEL SIGN E
+1032..1037;SA # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038;SA # Mc MYANMAR SIGN VISARGA
+1039..103A;SA # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C;SA # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E;SA # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F;SA # Lo MYANMAR LETTER GREAT SA
+1040..1049;NU # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104B;BA # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
+104C..104F;AL # Po [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE
+1050..1055;SA # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057;SA # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059;SA # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D;SA # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060;SA # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061;SA # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064;SA # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066;SA # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D;SA # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070;SA # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074;SA # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081;SA # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082;SA # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084;SA # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086;SA # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C;SA # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D;SA # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E;SA # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F;SA # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099;NU # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109A..109C;SA # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D;SA # Mn MYANMAR VOWEL SIGN AITON AI
+109E..109F;SA # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5;AL # Lu [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7;AL # Lu GEORGIAN CAPITAL LETTER YN
+10CD;AL # Lu GEORGIAN CAPITAL LETTER AEN
+10D0..10FA;AL # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB;AL # Po GEORGIAN PARAGRAPH SEPARATOR
+10FC;AL # Lm MODIFIER LETTER GEORGIAN NAR
+10FD..10FF;AL # Lo [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..115F;JL # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+1160..11A7;JV # Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
+11A8..11FF;JT # Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+1200..1248;AL # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D;AL # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256;AL # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258;AL # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D;AL # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288;AL # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D;AL # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0;AL # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5;AL # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE;AL # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0;AL # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5;AL # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6;AL # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310;AL # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315;AL # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A;AL # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135D..135F;CM # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360;AL # Po ETHIOPIC SECTION MARK
+1361;BA # Po ETHIOPIC WORDSPACE
+1362..1368;AL # Po [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C;AL # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F;AL # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399;AL # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F4;AL # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+1400;BA # Pd CANADIAN SYLLABICS HYPHEN
+1401..166C;AL # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E;AL # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..167F;AL # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680;BA # Zs OGHAM SPACE MARK
+1681..169A;AL # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B;OP # Ps OGHAM FEATHER MARK
+169C;CL # Pe OGHAM REVERSED FEATHER MARK
+16A0..16EA;AL # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED;BA # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0;AL # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8;AL # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..170C;AL # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711;AL # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1712..1714;CM # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1720..1731;AL # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1734;CM # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1735..1736;BA # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751;AL # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753;CM # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C;AL # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770;AL # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773;CM # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3;SA # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5;SA # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6;SA # Mc KHMER VOWEL SIGN AA
+17B7..17BD;SA # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5;SA # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6;SA # Mn KHMER SIGN NIKAHIT
+17C7..17C8;SA # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3;SA # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D5;BA # Po [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
+17D6;NS # Po KHMER SIGN CAMNUC PII KUUH
+17D7;SA # Lm KHMER SIGN LEK TOO
+17D8;BA # Po KHMER SIGN BEYYAL
+17D9;AL # Po KHMER SIGN PHNAEK MUAN
+17DA;BA # Po KHMER SIGN KOOMUUT
+17DB;PR # Sc KHMER CURRENCY SYMBOL RIEL
+17DC;SA # Lo KHMER SIGN AVAKRAHASANYA
+17DD;SA # Mn KHMER SIGN ATTHACAN
+17E0..17E9;NU # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9;AL # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1801;AL # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
+1802..1803;EX # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1804..1805;BA # Po [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS
+1806;BB # Pd MONGOLIAN TODO SOFT HYPHEN
+1807;AL # Po MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808..1809;EX # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
+180A;AL # Po MONGOLIAN NIRUGU
+180B..180D;CM # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E;GL # Cf MONGOLIAN VOWEL SEPARATOR
+1810..1819;NU # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842;AL # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843;AL # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1877;AL # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8;AL # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9;CM # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+18AA;AL # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5;AL # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E;AL # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922;CM # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926;CM # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928;CM # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B;CM # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931;CM # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932;CM # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938;CM # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B;CM # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940;AL # So LIMBU SIGN LOO
+1944..1945;EX # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F;NU # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D;SA # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974;SA # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19AB;SA # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19B0..19C0;SA # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C1..19C7;SA # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+19C8..19C9;SA # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+19D0..19D9;NU # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA;SA # No NEW TAI LUE THAM DIGIT ONE
+19DE..19DF;SA # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF;AL # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16;AL # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18;CM # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A;CM # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B;CM # Mn BUGINESE VOWEL SIGN AE
+1A1E..1A1F;AL # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A54;SA # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+1A55;SA # Mc TAI THAM CONSONANT SIGN MEDIAL RA
+1A56;SA # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A57;SA # Mc TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E;SA # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60;SA # Mn TAI THAM SIGN SAKOT
+1A61;SA # Mc TAI THAM VOWEL SIGN A
+1A62;SA # Mn TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64;SA # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C;SA # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72;SA # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C;SA # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F;CM # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89;NU # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99;NU # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1AA0..1AA6;SA # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7;SA # Lm TAI THAM SIGN MAI YAMOK
+1AA8..1AAD;SA # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD;CM # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE;CM # Me COMBINING PARENTHESES OVERLAY
+1B00..1B03;CM # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04;CM # Mc BALINESE SIGN BISAH
+1B05..1B33;AL # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34;CM # Mn BALINESE SIGN REREKAN
+1B35;CM # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A;CM # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B;CM # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C;CM # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41;CM # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42;CM # Mn BALINESE VOWEL SIGN PEPET
+1B43..1B44;CM # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4B;AL # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59;NU # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B5B;BA # Po [2] BALINESE PANTI..BALINESE PAMADA
+1B5C;AL # Po BALINESE WINDU
+1B5D..1B60;BA # Po [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG
+1B61..1B6A;AL # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73;CM # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C;AL # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B80..1B81;CM # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82;CM # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0;AL # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1;CM # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5;CM # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7;CM # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9;CM # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA;CM # Mc SUNDANESE SIGN PAMAAEH
+1BAB..1BAD;CM # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BAF;AL # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9;NU # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF;AL # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BE5;AL # Lo [38] BATAK LETTER A..BATAK LETTER U
+1BE6;CM # Mn BATAK SIGN TOMPI
+1BE7;CM # Mc BATAK VOWEL SIGN E
+1BE8..1BE9;CM # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC;CM # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED;CM # Mn BATAK VOWEL SIGN KARO O
+1BEE;CM # Mc BATAK VOWEL SIGN U
+1BEF..1BF1;CM # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3;CM # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF;AL # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C23;AL # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B;CM # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33;CM # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35;CM # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37;CM # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F;BA # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49;NU # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F;AL # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59;NU # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77;AL # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D;AL # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F;BA # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1CC0..1CC7;AL # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CD0..1CD2;CM # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3;AL # Po VEDIC SIGN NIHSHVASA
+1CD4..1CE0;CM # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1;CM # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8;CM # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CE9..1CEC;AL # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CED;CM # Mn VEDIC SIGN TIRYAK
+1CEE..1CF1;AL # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CF2..1CF3;CM # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF4;CM # Mn VEDIC TONE CANDRA ABOVE
+1CF5..1CF6;AL # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF8..1CF9;CM # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1D00..1D2B;AL # Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A;AL # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77;AL # Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78;AL # Lm MODIFIER LETTER CYRILLIC EN
+1D79..1D7F;AL # Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
+1D80..1D9A;AL # Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF;AL # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0..1DF5;CM # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
+1DFC..1DFF;CM # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00..1EFF;AL # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+1F00..1F15;AL # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D;AL # Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45;AL # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D;AL # Lu [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57;AL # Ll [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D;AL # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4;AL # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC;AL # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD;AL # Sk GREEK KORONIS
+1FBE;AL # Ll GREEK PROSGEGRAMMENI
+1FBF..1FC1;AL # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4;AL # Ll [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC;AL # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF;AL # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3;AL # Ll [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB;AL # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF;AL # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC;AL # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF;AL # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4;AL # Ll [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC;AL # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD;BB # Sk GREEK OXIA
+1FFE;AL # Sk GREEK DASIA
+2000..2006;BA # Zs [7] EN QUAD..SIX-PER-EM SPACE
+2007;GL # Zs FIGURE SPACE
+2008..200A;BA # Zs [3] PUNCTUATION SPACE..HAIR SPACE
+200B;ZW # Cf ZERO WIDTH SPACE
+200C..200F;CM # Cf [4] ZERO WIDTH NON-JOINER..RIGHT-TO-LEFT MARK
+2010;BA # Pd HYPHEN
+2011;GL # Pd NON-BREAKING HYPHEN
+2012..2013;BA # Pd [2] FIGURE DASH..EN DASH
+2014;B2 # Pd EM DASH
+2015;AI # Pd HORIZONTAL BAR
+2016;AI # Po DOUBLE VERTICAL LINE
+2017;AL # Po DOUBLE LOW LINE
+2018;QU # Pi LEFT SINGLE QUOTATION MARK
+2019;QU # Pf RIGHT SINGLE QUOTATION MARK
+201A;OP # Ps SINGLE LOW-9 QUOTATION MARK
+201B..201C;QU # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201D;QU # Pf RIGHT DOUBLE QUOTATION MARK
+201E;OP # Ps DOUBLE LOW-9 QUOTATION MARK
+201F;QU # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2021;AI # Po [2] DAGGER..DOUBLE DAGGER
+2022..2023;AL # Po [2] BULLET..TRIANGULAR BULLET
+2024..2026;IN # Po [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
+2027;BA # Po HYPHENATION POINT
+2028;BK # Zl LINE SEPARATOR
+2029;BK # Zp PARAGRAPH SEPARATOR
+202A..202E;CM # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F;GL # Zs NARROW NO-BREAK SPACE
+2030..2037;PO # Po [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
+2038;AL # Po CARET
+2039;QU # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A;QU # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B;AI # Po REFERENCE MARK
+203C..203D;NS # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
+203E;AL # Po OVERLINE
+203F..2040;AL # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043;AL # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044;IS # Sm FRACTION SLASH
+2045;OP # Ps LEFT SQUARE BRACKET WITH QUILL
+2046;CL # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2049;NS # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+204A..2051;AL # Po [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY
+2052;AL # Sm COMMERCIAL MINUS SIGN
+2053;AL # Po SWUNG DASH
+2054;AL # Pc INVERTED UNDERTIE
+2055;AL # Po FLOWER PUNCTUATION MARK
+2056;BA # Po THREE DOT PUNCTUATION
+2057;AL # Po QUADRUPLE PRIME
+2058..205B;BA # Po [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
+205C;AL # Po DOTTED CROSS
+205D..205E;BA # Po [2] TRICOLON..VERTICAL FOUR DOTS
+205F;BA # Zs MEDIUM MATHEMATICAL SPACE
+2060;WJ # Cf WORD JOINER
+2061..2064;AL # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS
+2066..206F;CM # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070;AL # No SUPERSCRIPT ZERO
+2071;AL # Lm SUPERSCRIPT LATIN SMALL LETTER I
+2074;AI # No SUPERSCRIPT FOUR
+2075..2079;AL # No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
+207A..207C;AL # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D;OP # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E;CL # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F;AI # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2080;AL # No SUBSCRIPT ZERO
+2081..2084;AI # No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
+2085..2089;AL # No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
+208A..208C;AL # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D;OP # Ps SUBSCRIPT LEFT PARENTHESIS
+208E;CL # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..209C;AL # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+20A0..20A6;PR # Sc [7] EURO-CURRENCY SIGN..NAIRA SIGN
+20A7;PO # Sc PESETA SIGN
+20A8..20B5;PR # Sc [14] RUPEE SIGN..CEDI SIGN
+20B6;PO # Sc LIVRE TOURNOIS SIGN
+20B7..20BA;PR # Sc [4] SPESMILO SIGN..TURKISH LIRA SIGN
+20BB;PO # Sc NORDIC MARK SIGN
+20BC..20BD;PR # Sc [2] MANAT SIGN..RUBLE SIGN
+20BE..20CF;PR # Cn [18] <reserved-20BE>..<reserved-20CF>
+20D0..20DC;CM # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0;CM # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1;CM # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4;CM # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0;CM # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2100..2101;AL # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102;AL # Lu DOUBLE-STRUCK CAPITAL C
+2103;PO # So DEGREE CELSIUS
+2104;AL # So CENTRE LINE SYMBOL
+2105;AI # So CARE OF
+2106;AL # So CADA UNA
+2107;AL # Lu EULER CONSTANT
+2108;AL # So SCRUPLE
+2109;PO # So DEGREE FAHRENHEIT
+210A..2112;AL # L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L
+2113;AI # Ll SCRIPT SMALL L
+2114;AL # So L B BAR SYMBOL
+2115;AL # Lu DOUBLE-STRUCK CAPITAL N
+2116;PR # So NUMERO SIGN
+2117;AL # So SOUND RECORDING COPYRIGHT
+2118;AL # Sm SCRIPT CAPITAL P
+2119..211D;AL # Lu [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2120;AL # So [3] PRESCRIPTION TAKE..SERVICE MARK
+2121..2122;AI # So [2] TELEPHONE SIGN..TRADE MARK SIGN
+2123;AL # So VERSICLE
+2124;AL # Lu DOUBLE-STRUCK CAPITAL Z
+2125;AL # So OUNCE SIGN
+2126;AL # Lu OHM SIGN
+2127;AL # So INVERTED OHM SIGN
+2128;AL # Lu BLACK-LETTER CAPITAL Z
+2129;AL # So TURNED GREEK SMALL LETTER IOTA
+212A;AL # Lu KELVIN SIGN
+212B;AI # Lu ANGSTROM SIGN
+212C..212D;AL # Lu [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E;AL # So ESTIMATED SYMBOL
+212F..2134;AL # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138;AL # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139;AL # Ll INFORMATION SOURCE
+213A..213B;AL # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F;AL # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144;AL # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149;AL # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A;AL # So PROPERTY LINE
+214B;AL # Sm TURNED AMPERSAND
+214C..214D;AL # So [2] PER SIGN..AKTIESELSKAB
+214E;AL # Ll TURNED SMALL F
+214F;AL # So SYMBOL FOR SAMARITAN SOURCE
+2150..2153;AL # No [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD
+2154..2155;AI # No [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH
+2156..215A;AL # No [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS
+215B;AI # No VULGAR FRACTION ONE EIGHTH
+215C..215D;AL # No [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS
+215E;AI # No VULGAR FRACTION SEVEN EIGHTHS
+215F;AL # No FRACTION NUMERATOR ONE
+2160..216B;AI # Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
+216C..216F;AL # Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
+2170..2179;AI # Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
+217A..2182;AL # Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
+2183..2184;AL # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188;AL # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189;AI # No VULGAR FRACTION ZERO THIRDS
+2190..2194;AI # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199;AI # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B;AL # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F;AL # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0;AL # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2;AL # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3;AL # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5;AL # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6;AL # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD;AL # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE;AL # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21CD;AL # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF;AL # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1;AL # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2;AI # Sm RIGHTWARDS DOUBLE ARROW
+21D3;AL # So DOWNWARDS DOUBLE ARROW
+21D4;AI # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21F3;AL # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..21FF;AL # Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200;AI # Sm FOR ALL
+2201;AL # Sm COMPLEMENT
+2202..2203;AI # Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS
+2204..2206;AL # Sm [3] THERE DOES NOT EXIST..INCREMENT
+2207..2208;AI # Sm [2] NABLA..ELEMENT OF
+2209..220A;AL # Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
+220B;AI # Sm CONTAINS AS MEMBER
+220C..220E;AL # Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
+220F;AI # Sm N-ARY PRODUCT
+2210;AL # Sm N-ARY COPRODUCT
+2211;AI # Sm N-ARY SUMMATION
+2212..2213;PR # Sm [2] MINUS SIGN..MINUS-OR-PLUS SIGN
+2214;AL # Sm DOT PLUS
+2215;AI # Sm DIVISION SLASH
+2216..2219;AL # Sm [4] SET MINUS..BULLET OPERATOR
+221A;AI # Sm SQUARE ROOT
+221B..221C;AL # Sm [2] CUBE ROOT..FOURTH ROOT
+221D..2220;AI # Sm [4] PROPORTIONAL TO..ANGLE
+2221..2222;AL # Sm [2] MEASURED ANGLE..SPHERICAL ANGLE
+2223;AI # Sm DIVIDES
+2224;AL # Sm DOES NOT DIVIDE
+2225;AI # Sm PARALLEL TO
+2226;AL # Sm NOT PARALLEL TO
+2227..222C;AI # Sm [6] LOGICAL AND..DOUBLE INTEGRAL
+222D;AL # Sm TRIPLE INTEGRAL
+222E;AI # Sm CONTOUR INTEGRAL
+222F..2233;AL # Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
+2234..2237;AI # Sm [4] THEREFORE..PROPORTION
+2238..223B;AL # Sm [4] DOT MINUS..HOMOTHETIC
+223C..223D;AI # Sm [2] TILDE OPERATOR..REVERSED TILDE
+223E..2247;AL # Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248;AI # Sm ALMOST EQUAL TO
+2249..224B;AL # Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
+224C;AI # Sm ALL EQUAL TO
+224D..2251;AL # Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
+2252;AI # Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253..225F;AL # Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
+2260..2261;AI # Sm [2] NOT EQUAL TO..IDENTICAL TO
+2262..2263;AL # Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
+2264..2267;AI # Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
+2268..2269;AL # Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
+226A..226B;AI # Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN
+226C..226D;AL # Sm [2] BETWEEN..NOT EQUIVALENT TO
+226E..226F;AI # Sm [2] NOT LESS-THAN..NOT GREATER-THAN
+2270..2281;AL # Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
+2282..2283;AI # Sm [2] SUBSET OF..SUPERSET OF
+2284..2285;AL # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2286..2287;AI # Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
+2288..2294;AL # Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
+2295;AI # Sm CIRCLED PLUS
+2296..2298;AL # Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
+2299;AI # Sm CIRCLED DOT OPERATOR
+229A..22A4;AL # Sm [11] CIRCLED RING OPERATOR..DOWN TACK
+22A5;AI # Sm UP TACK
+22A6..22BE;AL # Sm [25] ASSERTION..RIGHT ANGLE WITH ARC
+22BF;AI # Sm RIGHT TRIANGLE
+22C0..22FF;AL # Sm [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
+2300..2307;AL # So [8] DIAMETER SIGN..WAVY LINE
+2308;OP # Ps LEFT CEILING
+2309;CL # Pe RIGHT CEILING
+230A;OP # Ps LEFT FLOOR
+230B;CL # Pe RIGHT FLOOR
+230C..2311;AL # So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
+2312;AI # So ARC
+2313..2319;AL # So [7] SEGMENT..TURNED NOT SIGN
+231A..231B;ID # So [2] WATCH..HOURGLASS
+231C..231F;AL # So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
+2320..2321;AL # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328;AL # So [7] FROWN..KEYBOARD
+2329;OP # Ps LEFT-POINTING ANGLE BRACKET
+232A;CL # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B;AL # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C;AL # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A;AL # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3;AL # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB;AL # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1;AL # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23EF;AL # So [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0..23F3;ID # So [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND
+23F4..23FA;AL # So [7] BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+2400..2426;AL # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A;AL # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B;AI # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9;AI # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA..24FE;AI # No [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN
+24FF;AL # No NEGATIVE CIRCLED DIGIT ZERO
+2500..254B;AI # So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C..254F;AL # So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550..2574;AI # So [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT
+2575..257F;AL # So [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580..258F;AI # So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
+2590..2591;AL # So [2] RIGHT HALF BLOCK..LIGHT SHADE
+2592..2595;AI # So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
+2596..259F;AL # So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25A1;AI # So [2] BLACK SQUARE..WHITE SQUARE
+25A2;AL # So WHITE SQUARE WITH ROUNDED CORNERS
+25A3..25A9;AI # So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA..25B1;AL # So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
+25B2..25B3;AI # So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
+25B4..25B5;AL # So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
+25B6;AI # So BLACK RIGHT-POINTING TRIANGLE
+25B7;AI # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25BB;AL # So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
+25BC..25BD;AI # So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
+25BE..25BF;AL # So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
+25C0;AI # So BLACK LEFT-POINTING TRIANGLE
+25C1;AI # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25C5;AL # So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
+25C6..25C8;AI # So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9..25CA;AL # So [2] FISHEYE..LOZENGE
+25CB;AI # So WHITE CIRCLE
+25CC..25CD;AL # So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
+25CE..25D1;AI # So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
+25D2..25E1;AL # So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
+25E2..25E5;AI # So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
+25E6..25EE;AL # So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF;AI # So LARGE CIRCLE
+25F0..25F7;AL # So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF;AL # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2603;ID # So [4] BLACK SUN WITH RAYS..SNOWMAN
+2604;AL # So COMET
+2605..2606;AI # So [2] BLACK STAR..WHITE STAR
+2607..2608;AL # So [2] LIGHTNING..THUNDERSTORM
+2609;AI # So SUN
+260A..260D;AL # So [4] ASCENDING NODE..OPPOSITION
+260E..260F;AI # So [2] BLACK TELEPHONE..WHITE TELEPHONE
+2610..2613;AL # So [4] BALLOT BOX..SALTIRE
+2614..2615;ID # So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..2617;AI # So [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE
+2618;ID # So SHAMROCK
+2619;AL # So REVERSED ROTATED FLORAL HEART BULLET
+261A..261F;ID # So [6] BLACK LEFT POINTING INDEX..WHITE DOWN POINTING INDEX
+2620..2638;AL # So [25] SKULL AND CROSSBONES..WHEEL OF DHARMA
+2639..263B;ID # So [3] WHITE FROWNING FACE..BLACK SMILING FACE
+263C..263F;AL # So [4] WHITE SUN WITH RAYS..MERCURY
+2640;AI # So FEMALE SIGN
+2641;AL # So EARTH
+2642;AI # So MALE SIGN
+2643..265F;AL # So [29] JUPITER..BLACK CHESS PAWN
+2660..2661;AI # So [2] BLACK SPADE SUIT..WHITE HEART SUIT
+2662;AL # So WHITE DIAMOND SUIT
+2663..2665;AI # So [3] BLACK CLUB SUIT..BLACK HEART SUIT
+2666;AL # So BLACK DIAMOND SUIT
+2667;AI # So WHITE CLUB SUIT
+2668;ID # So HOT SPRINGS
+2669..266A;AI # So [2] QUARTER NOTE..EIGHTH NOTE
+266B;AL # So BEAMED EIGHTH NOTES
+266C..266D;AI # So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
+266E;AL # So MUSIC NATURAL SIGN
+266F;AI # Sm MUSIC SHARP SIGN
+2670..267E;AL # So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
+267F;ID # So WHEELCHAIR SYMBOL
+2680..269D;AL # So [30] DIE FACE-1..OUTLINED WHITE STAR
+269E..269F;AI # So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26BC;AL # So [29] WARNING SIGN..SESQUIQUADRATE
+26BD..26C8;ID # So [12] SOCCER BALL..THUNDER CLOUD AND RAIN
+26C9..26CC;AI # So [4] TURNED WHITE SHOGI PIECE..CROSSING LANES
+26CD;ID # So DISABLED CAR
+26CE;AL # So OPHIUCHUS
+26CF..26D1;ID # So [3] PICK..HELMET WITH WHITE CROSS
+26D2;AI # So CIRCLED CROSSING LANES
+26D3..26D4;ID # So [2] CHAINS..NO ENTRY
+26D5..26D7;AI # So [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC
+26D8..26D9;ID # So [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE
+26DA..26DB;AI # So [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE
+26DC;ID # So LEFT CLOSED ENTRY
+26DD..26DE;AI # So [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
+26DF..26E1;ID # So [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2
+26E2;AL # So ASTRONOMICAL SYMBOL FOR URANUS
+26E3;AI # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7;AL # So [4] PENTAGRAM..INVERTED PENTAGRAM
+26E8..26E9;AI # So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
+26EA;ID # So CHURCH
+26EB..26F0;AI # So [6] CASTLE..MOUNTAIN
+26F1..26F5;ID # So [5] UMBRELLA ON GROUND..SAILBOAT
+26F6;AI # So SQUARE FOUR CORNERS
+26F7..26FA;ID # So [4] SKIER..TENT
+26FB..26FC;AI # So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
+26FD..26FF;ID # So [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700..2704;ID # So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
+2705..2707;AL # So [3] WHITE HEAVY CHECK MARK..TAPE DRIVE
+2708..270D;ID # So [6] AIRPLANE..WRITING HAND
+270E..2756;AL # So [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X
+2757;AI # So HEAVY EXCLAMATION MARK SYMBOL
+2758..275A;AL # So [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR
+275B..2760;QU # So [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761;AL # So CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762..2763;EX # So [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764..2767;AL # So [4] HEAVY BLACK HEART..ROTATED FLORAL HEART BULLET
+2768;OP # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769;CL # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A;OP # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B;CL # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C;OP # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D;CL # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E;OP # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F;CL # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770;OP # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771;CL # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772;OP # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773;CL # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774;OP # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775;CL # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793;AI # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794..27BF;AL # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
+27C0..27C4;AL # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5;OP # Ps LEFT S-SHAPED BAG DELIMITER
+27C6;CL # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5;AL # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6;OP # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7;CL # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8;OP # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9;CL # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA;OP # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB;CL # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC;OP # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED;CL # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE;OP # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF;CL # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF;AL # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF;AL # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..297F;AL # Sm [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
+2980..2982;AL # Sm [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
+2983;OP # Ps LEFT WHITE CURLY BRACKET
+2984;CL # Pe RIGHT WHITE CURLY BRACKET
+2985;OP # Ps LEFT WHITE PARENTHESIS
+2986;CL # Pe RIGHT WHITE PARENTHESIS
+2987;OP # Ps Z NOTATION LEFT IMAGE BRACKET
+2988;CL # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989;OP # Ps Z NOTATION LEFT BINDING BRACKET
+298A;CL # Pe Z NOTATION RIGHT BINDING BRACKET
+298B;OP # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C;CL # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D;OP # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E;CL # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F;OP # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990;CL # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991;OP # Ps LEFT ANGLE BRACKET WITH DOT
+2992;CL # Pe RIGHT ANGLE BRACKET WITH DOT
+2993;OP # Ps LEFT ARC LESS-THAN BRACKET
+2994;CL # Pe RIGHT ARC GREATER-THAN BRACKET
+2995;OP # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996;CL # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997;OP # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998;CL # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7;AL # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8;OP # Ps LEFT WIGGLY FENCE
+29D9;CL # Pe RIGHT WIGGLY FENCE
+29DA;OP # Ps LEFT DOUBLE WIGGLY FENCE
+29DB;CL # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB;AL # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC;OP # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD;CL # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..29FF;AL # Sm [2] TINY..MINY
+2A00..2AFF;AL # Sm [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
+2B00..2B2F;AL # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44;AL # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46;AL # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C;AL # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B54;AL # So [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59;AI # So [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73;AL # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95;AL # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9;AL # So [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8;AL # So [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1;AL # So [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2C00..2C2E;AL # Lu [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E;AL # Ll [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C7B;AL # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D;AL # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2C7F;AL # Lu [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80..2CE4;AL # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA;AL # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE;AL # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1;CM # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3;AL # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF9;EX # Po COPTIC OLD NUBIAN FULL STOP
+2CFA..2CFC;BA # Po [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD;AL # No COPTIC FRACTION ONE HALF
+2CFE;EX # Po COPTIC FULL STOP
+2CFF;BA # Po COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25;AL # Ll [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27;AL # Ll GEORGIAN SMALL LETTER YN
+2D2D;AL # Ll GEORGIAN SMALL LETTER AEN
+2D30..2D67;AL # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F;AL # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70;BA # Po TIFINAGH SEPARATOR MARK
+2D7F;CM # Mn TIFINAGH CONSONANT JOINER
+2D80..2D96;AL # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6;AL # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE;AL # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6;AL # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE;AL # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6;AL # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE;AL # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6;AL # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE;AL # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DE0..2DFF;CM # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E01;QU # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02;QU # Pi LEFT SUBSTITUTION BRACKET
+2E03;QU # Pf RIGHT SUBSTITUTION BRACKET
+2E04;QU # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05;QU # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08;QU # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09;QU # Pi LEFT TRANSPOSITION BRACKET
+2E0A;QU # Pf RIGHT TRANSPOSITION BRACKET
+2E0B;QU # Po RAISED SQUARE
+2E0C;QU # Pi LEFT RAISED OMISSION BRACKET
+2E0D;QU # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E15;BA # Po [8] EDITORIAL CORONIS..UPWARDS ANCORA
+2E16;AL # Po DOTTED RIGHT-POINTING ANGLE
+2E17;BA # Pd DOUBLE OBLIQUE HYPHEN
+2E18;OP # Po INVERTED INTERROBANG
+2E19;BA # Po PALM BRANCH
+2E1A;AL # Pd HYPHEN WITH DIAERESIS
+2E1B;AL # Po TILDE WITH RING ABOVE
+2E1C;QU # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D;QU # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F;AL # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20;QU # Pi LEFT VERTICAL BAR WITH QUILL
+2E21;QU # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22;OP # Ps TOP LEFT HALF BRACKET
+2E23;CL # Pe TOP RIGHT HALF BRACKET
+2E24;OP # Ps BOTTOM LEFT HALF BRACKET
+2E25;CL # Pe BOTTOM RIGHT HALF BRACKET
+2E26;OP # Ps LEFT SIDEWAYS U BRACKET
+2E27;CL # Pe RIGHT SIDEWAYS U BRACKET
+2E28;OP # Ps LEFT DOUBLE PARENTHESIS
+2E29;CL # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2D;BA # Po [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK
+2E2E;EX # Po REVERSED QUESTION MARK
+2E2F;AL # Lm VERTICAL TILDE
+2E30..2E31;BA # Po [2] RING POINT..WORD SEPARATOR MIDDLE DOT
+2E32;AL # Po TURNED COMMA
+2E33..2E34;BA # Po [2] RAISED DOT..RAISED COMMA
+2E35..2E39;AL # Po [5] TURNED SEMICOLON..TOP HALF SECTION SIGN
+2E3A..2E3B;B2 # Pd [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3E;BA # Po [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE
+2E3F;AL # Po CAPITULUM
+2E40;BA # Pd DOUBLE HYPHEN
+2E41;BA # Po REVERSED COMMA
+2E42;OP # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E80..2E99;ID # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3;ID # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5;ID # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFB;ID # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000;BA # Zs IDEOGRAPHIC SPACE
+3001..3002;CL # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
+3003;ID # Po DITTO MARK
+3004;ID # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005;NS # Lm IDEOGRAPHIC ITERATION MARK
+3006;ID # Lo IDEOGRAPHIC CLOSING MARK
+3007;ID # Nl IDEOGRAPHIC NUMBER ZERO
+3008;OP # Ps LEFT ANGLE BRACKET
+3009;CL # Pe RIGHT ANGLE BRACKET
+300A;OP # Ps LEFT DOUBLE ANGLE BRACKET
+300B;CL # Pe RIGHT DOUBLE ANGLE BRACKET
+300C;OP # Ps LEFT CORNER BRACKET
+300D;CL # Pe RIGHT CORNER BRACKET
+300E;OP # Ps LEFT WHITE CORNER BRACKET
+300F;CL # Pe RIGHT WHITE CORNER BRACKET
+3010;OP # Ps LEFT BLACK LENTICULAR BRACKET
+3011;CL # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013;ID # So [2] POSTAL MARK..GETA MARK
+3014;OP # Ps LEFT TORTOISE SHELL BRACKET
+3015;CL # Pe RIGHT TORTOISE SHELL BRACKET
+3016;OP # Ps LEFT WHITE LENTICULAR BRACKET
+3017;CL # Pe RIGHT WHITE LENTICULAR BRACKET
+3018;OP # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019;CL # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A;OP # Ps LEFT WHITE SQUARE BRACKET
+301B;CL # Pe RIGHT WHITE SQUARE BRACKET
+301C;NS # Pd WAVE DASH
+301D;OP # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F;CL # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020;ID # So POSTAL MARK FACE
+3021..3029;ID # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+302A..302D;CM # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F;CM # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3030;ID # Pd WAVY DASH
+3031..3034;ID # Lm [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035;CM # Lm VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037;ID # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A;ID # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B;NS # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+303C;NS # Lo MASU MARK
+303D;ID # Po PART ALTERNATION MARK
+303E..303F;ID # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+3041;CJ # Lo HIRAGANA LETTER SMALL A
+3042;ID # Lo HIRAGANA LETTER A
+3043;CJ # Lo HIRAGANA LETTER SMALL I
+3044;ID # Lo HIRAGANA LETTER I
+3045;CJ # Lo HIRAGANA LETTER SMALL U
+3046;ID # Lo HIRAGANA LETTER U
+3047;CJ # Lo HIRAGANA LETTER SMALL E
+3048;ID # Lo HIRAGANA LETTER E
+3049;CJ # Lo HIRAGANA LETTER SMALL O
+304A..3062;ID # Lo [25] HIRAGANA LETTER O..HIRAGANA LETTER DI
+3063;CJ # Lo HIRAGANA LETTER SMALL TU
+3064..3082;ID # Lo [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO
+3083;CJ # Lo HIRAGANA LETTER SMALL YA
+3084;ID # Lo HIRAGANA LETTER YA
+3085;CJ # Lo HIRAGANA LETTER SMALL YU
+3086;ID # Lo HIRAGANA LETTER YU
+3087;CJ # Lo HIRAGANA LETTER SMALL YO
+3088..308D;ID # Lo [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO
+308E;CJ # Lo HIRAGANA LETTER SMALL WA
+308F..3094;ID # Lo [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU
+3095..3096;CJ # Lo [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE
+3099..309A;CM # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C;NS # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E;NS # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F;ID # Lo HIRAGANA DIGRAPH YORI
+30A0;NS # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1;CJ # Lo KATAKANA LETTER SMALL A
+30A2;ID # Lo KATAKANA LETTER A
+30A3;CJ # Lo KATAKANA LETTER SMALL I
+30A4;ID # Lo KATAKANA LETTER I
+30A5;CJ # Lo KATAKANA LETTER SMALL U
+30A6;ID # Lo KATAKANA LETTER U
+30A7;CJ # Lo KATAKANA LETTER SMALL E
+30A8;ID # Lo KATAKANA LETTER E
+30A9;CJ # Lo KATAKANA LETTER SMALL O
+30AA..30C2;ID # Lo [25] KATAKANA LETTER O..KATAKANA LETTER DI
+30C3;CJ # Lo KATAKANA LETTER SMALL TU
+30C4..30E2;ID # Lo [31] KATAKANA LETTER TU..KATAKANA LETTER MO
+30E3;CJ # Lo KATAKANA LETTER SMALL YA
+30E4;ID # Lo KATAKANA LETTER YA
+30E5;CJ # Lo KATAKANA LETTER SMALL YU
+30E6;ID # Lo KATAKANA LETTER YU
+30E7;CJ # Lo KATAKANA LETTER SMALL YO
+30E8..30ED;ID # Lo [6] KATAKANA LETTER YO..KATAKANA LETTER RO
+30EE;CJ # Lo KATAKANA LETTER SMALL WA
+30EF..30F4;ID # Lo [6] KATAKANA LETTER WA..KATAKANA LETTER VU
+30F5..30F6;CJ # Lo [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE
+30F7..30FA;ID # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FB;NS # Po KATAKANA MIDDLE DOT
+30FC;CJ # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD..30FE;NS # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
+30FF;ID # Lo KATAKANA DIGRAPH KOTO
+3105..312D;ID # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+3131..318E;ID # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191;ID # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195;ID # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F;ID # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31BA;ID # Lo [27] BOPOMOFO LETTER BU..BOPOMOFO LETTER ZY
+31C0..31E3;ID # So [36] CJK STROKE T..CJK STROKE Q
+31F0..31FF;CJ # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E;ID # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229;ID # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3247;ID # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F;AI # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250;ID # So PARTNERSHIP SIGN
+3251..325F;ID # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F;ID # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289;ID # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0;ID # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF;ID # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE;ID # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF;ID # So [256] SQUARE APAATO..SQUARE GAL
+3400..4DB5;ID # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DB6..4DBF;ID # Cn [10] <reserved-4DB6>..<reserved-4DBF>
+4DC0..4DFF;AL # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FCC;ID # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
+9FCD..9FFF;ID # Cn [51] <reserved-9FCD>..<reserved-9FFF>
+A000..A014;ID # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015;NS # Lm YI SYLLABLE WU
+A016..A48C;ID # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6;ID # So [55] YI RADICAL QOT..YI RADICAL KE
+A4D0..A4F7;AL # Lo [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD;AL # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A4FE..A4FF;BA # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60B;AL # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C;AL # Lm VAI SYLLABLE LENGTHENER
+A60D;BA # Po VAI COMMA
+A60E;EX # Po VAI FULL STOP
+A60F;BA # Po VAI QUESTION MARK
+A610..A61F;AL # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629;NU # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B;AL # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D;AL # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E;AL # Lo CYRILLIC LETTER MULTIOCULAR O
+A66F;CM # Mn COMBINING CYRILLIC VZMET
+A670..A672;CM # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673;AL # Po SLAVONIC ASTERISK
+A674..A67D;CM # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E;AL # Po CYRILLIC KAVYKA
+A67F;AL # Lm CYRILLIC PAYEROK
+A680..A69B;AL # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D;AL # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69F;CM # Mn COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5;AL # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF;AL # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1;CM # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2;AL # Po BAMUM NJAEMLI
+A6F3..A6F7;BA # Po [5] BAMUM FULL STOP..BAMUM QUESTION MARK
+A700..A716;AL # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F;AL # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721;AL # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F;AL # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770;AL # Lm MODIFIER LETTER US
+A771..A787;AL # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788;AL # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A;AL # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E;AL # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A790..A7AD;AL # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1;AL # Lu [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7;AL # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9;AL # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA;AL # Ll LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF;AL # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A801;AL # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802;CM # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805;AL # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806;CM # Mn SYLOTI NAGRI SIGN HASANTA
+A807..A80A;AL # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B;CM # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822;AL # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824;CM # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826;CM # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827;CM # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B;AL # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A830..A835;AL # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837;AL # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838;PO # Sc NORTH INDIC RUPEE MARK
+A839;AL # So NORTH INDIC QUANTITY MARK
+A840..A873;AL # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A875;BB # Po [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK
+A876..A877;EX # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD
+A880..A881;CM # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3;AL # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3;CM # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4;CM # Mn SAURASHTRA SIGN VIRAMA
+A8CE..A8CF;BA # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9;NU # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8E0..A8F1;CM # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7;AL # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA;AL # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB;AL # Lo DEVANAGARI HEADSTROKE
+A900..A909;NU # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925;AL # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D;CM # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F;BA # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946;AL # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951;CM # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953;CM # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F;AL # Po REJANG SECTION MARK
+A960..A97C;JL # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A980..A982;CM # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983;CM # Mc JAVANESE SIGN WIGNYAN
+A984..A9B2;AL # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3;CM # Mn JAVANESE SIGN CECAK TELU
+A9B4..A9B5;CM # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9;CM # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB;CM # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC;CM # Mn JAVANESE VOWEL SIGN PEPET
+A9BD..A9C0;CM # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9C1..A9C6;AL # Po [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU
+A9C7..A9C9;BA # Po [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
+A9CA..A9CD;AL # Po [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH
+A9CF;AL # Lm JAVANESE PANGRANGKEP
+A9D0..A9D9;NU # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF;AL # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4;SA # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5;SA # Mn MYANMAR SIGN SHAN SAW
+A9E6;SA # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF;SA # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9;NU # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE;SA # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+AA00..AA28;AL # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E;CM # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30;CM # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32;CM # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34;CM # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36;CM # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42;AL # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43;CM # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B;AL # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C;CM # Mn CHAM CONSONANT SIGN FINAL M
+AA4D;CM # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59;NU # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C;AL # Po CHAM PUNCTUATION SPIRAL
+AA5D..AA5F;BA # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA6F;SA # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+AA70;SA # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76;SA # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79;SA # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A;SA # Lo MYANMAR LETTER AITON RA
+AA7B;SA # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C;SA # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D;SA # Mc MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F;SA # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAAF;SA # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AAB0;SA # Mn TAI VIET MAI KANG
+AAB1;SA # Lo TAI VIET VOWEL AA
+AAB2..AAB4;SA # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6;SA # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8;SA # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD;SA # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF;SA # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0;SA # Lo TAI VIET TONE MAI NUENG
+AAC1;SA # Mn TAI VIET TONE MAI THO
+AAC2;SA # Lo TAI VIET TONE MAI SONG
+AADB..AADC;SA # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD;SA # Lm TAI VIET SYMBOL SAM
+AADE..AADF;SA # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEA;AL # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB;CM # Mc MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED;CM # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF;CM # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1;BA # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2;AL # Lo MEETEI MAYEK ANJI
+AAF3..AAF4;AL # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5;CM # Mc MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6;CM # Mn MEETEI MAYEK VIRAMA
+AB01..AB06;AL # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E;AL # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16;AL # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26;AL # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E;AL # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A;AL # Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B;AL # Sk MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F;AL # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65;AL # Ll [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+ABC0..ABE2;AL # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ABE3..ABE4;CM # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5;CM # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7;CM # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8;CM # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA;CM # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB;BA # Po MEETEI MAYEK CHEIKHEI
+ABEC;CM # Mc MEETEI MAYEK LUM IYEK
+ABED;CM # Mn MEETEI MAYEK APUN IYEK
+ABF0..ABF9;NU # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+AC00;H2 # Lo HANGUL SYLLABLE GA
+AC01..AC1B;H3 # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+AC1C;H2 # Lo HANGUL SYLLABLE GAE
+AC1D..AC37;H3 # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+AC38;H2 # Lo HANGUL SYLLABLE GYA
+AC39..AC53;H3 # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+AC54;H2 # Lo HANGUL SYLLABLE GYAE
+AC55..AC6F;H3 # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+AC70;H2 # Lo HANGUL SYLLABLE GEO
+AC71..AC8B;H3 # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+AC8C;H2 # Lo HANGUL SYLLABLE GE
+AC8D..ACA7;H3 # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ACA8;H2 # Lo HANGUL SYLLABLE GYEO
+ACA9..ACC3;H3 # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ACC4;H2 # Lo HANGUL SYLLABLE GYE
+ACC5..ACDF;H3 # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ACE0;H2 # Lo HANGUL SYLLABLE GO
+ACE1..ACFB;H3 # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ACFC;H2 # Lo HANGUL SYLLABLE GWA
+ACFD..AD17;H3 # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+AD18;H2 # Lo HANGUL SYLLABLE GWAE
+AD19..AD33;H3 # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+AD34;H2 # Lo HANGUL SYLLABLE GOE
+AD35..AD4F;H3 # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+AD50;H2 # Lo HANGUL SYLLABLE GYO
+AD51..AD6B;H3 # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+AD6C;H2 # Lo HANGUL SYLLABLE GU
+AD6D..AD87;H3 # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+AD88;H2 # Lo HANGUL SYLLABLE GWEO
+AD89..ADA3;H3 # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ADA4;H2 # Lo HANGUL SYLLABLE GWE
+ADA5..ADBF;H3 # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ADC0;H2 # Lo HANGUL SYLLABLE GWI
+ADC1..ADDB;H3 # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ADDC;H2 # Lo HANGUL SYLLABLE GYU
+ADDD..ADF7;H3 # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ADF8;H2 # Lo HANGUL SYLLABLE GEU
+ADF9..AE13;H3 # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+AE14;H2 # Lo HANGUL SYLLABLE GYI
+AE15..AE2F;H3 # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+AE30;H2 # Lo HANGUL SYLLABLE GI
+AE31..AE4B;H3 # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+AE4C;H2 # Lo HANGUL SYLLABLE GGA
+AE4D..AE67;H3 # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+AE68;H2 # Lo HANGUL SYLLABLE GGAE
+AE69..AE83;H3 # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+AE84;H2 # Lo HANGUL SYLLABLE GGYA
+AE85..AE9F;H3 # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+AEA0;H2 # Lo HANGUL SYLLABLE GGYAE
+AEA1..AEBB;H3 # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+AEBC;H2 # Lo HANGUL SYLLABLE GGEO
+AEBD..AED7;H3 # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+AED8;H2 # Lo HANGUL SYLLABLE GGE
+AED9..AEF3;H3 # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+AEF4;H2 # Lo HANGUL SYLLABLE GGYEO
+AEF5..AF0F;H3 # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+AF10;H2 # Lo HANGUL SYLLABLE GGYE
+AF11..AF2B;H3 # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+AF2C;H2 # Lo HANGUL SYLLABLE GGO
+AF2D..AF47;H3 # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+AF48;H2 # Lo HANGUL SYLLABLE GGWA
+AF49..AF63;H3 # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+AF64;H2 # Lo HANGUL SYLLABLE GGWAE
+AF65..AF7F;H3 # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+AF80;H2 # Lo HANGUL SYLLABLE GGOE
+AF81..AF9B;H3 # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+AF9C;H2 # Lo HANGUL SYLLABLE GGYO
+AF9D..AFB7;H3 # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+AFB8;H2 # Lo HANGUL SYLLABLE GGU
+AFB9..AFD3;H3 # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+AFD4;H2 # Lo HANGUL SYLLABLE GGWEO
+AFD5..AFEF;H3 # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+AFF0;H2 # Lo HANGUL SYLLABLE GGWE
+AFF1..B00B;H3 # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+B00C;H2 # Lo HANGUL SYLLABLE GGWI
+B00D..B027;H3 # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+B028;H2 # Lo HANGUL SYLLABLE GGYU
+B029..B043;H3 # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+B044;H2 # Lo HANGUL SYLLABLE GGEU
+B045..B05F;H3 # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+B060;H2 # Lo HANGUL SYLLABLE GGYI
+B061..B07B;H3 # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+B07C;H2 # Lo HANGUL SYLLABLE GGI
+B07D..B097;H3 # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+B098;H2 # Lo HANGUL SYLLABLE NA
+B099..B0B3;H3 # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+B0B4;H2 # Lo HANGUL SYLLABLE NAE
+B0B5..B0CF;H3 # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+B0D0;H2 # Lo HANGUL SYLLABLE NYA
+B0D1..B0EB;H3 # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+B0EC;H2 # Lo HANGUL SYLLABLE NYAE
+B0ED..B107;H3 # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+B108;H2 # Lo HANGUL SYLLABLE NEO
+B109..B123;H3 # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+B124;H2 # Lo HANGUL SYLLABLE NE
+B125..B13F;H3 # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+B140;H2 # Lo HANGUL SYLLABLE NYEO
+B141..B15B;H3 # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+B15C;H2 # Lo HANGUL SYLLABLE NYE
+B15D..B177;H3 # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+B178;H2 # Lo HANGUL SYLLABLE NO
+B179..B193;H3 # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+B194;H2 # Lo HANGUL SYLLABLE NWA
+B195..B1AF;H3 # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+B1B0;H2 # Lo HANGUL SYLLABLE NWAE
+B1B1..B1CB;H3 # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+B1CC;H2 # Lo HANGUL SYLLABLE NOE
+B1CD..B1E7;H3 # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+B1E8;H2 # Lo HANGUL SYLLABLE NYO
+B1E9..B203;H3 # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+B204;H2 # Lo HANGUL SYLLABLE NU
+B205..B21F;H3 # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+B220;H2 # Lo HANGUL SYLLABLE NWEO
+B221..B23B;H3 # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+B23C;H2 # Lo HANGUL SYLLABLE NWE
+B23D..B257;H3 # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+B258;H2 # Lo HANGUL SYLLABLE NWI
+B259..B273;H3 # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+B274;H2 # Lo HANGUL SYLLABLE NYU
+B275..B28F;H3 # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+B290;H2 # Lo HANGUL SYLLABLE NEU
+B291..B2AB;H3 # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+B2AC;H2 # Lo HANGUL SYLLABLE NYI
+B2AD..B2C7;H3 # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+B2C8;H2 # Lo HANGUL SYLLABLE NI
+B2C9..B2E3;H3 # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+B2E4;H2 # Lo HANGUL SYLLABLE DA
+B2E5..B2FF;H3 # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+B300;H2 # Lo HANGUL SYLLABLE DAE
+B301..B31B;H3 # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+B31C;H2 # Lo HANGUL SYLLABLE DYA
+B31D..B337;H3 # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+B338;H2 # Lo HANGUL SYLLABLE DYAE
+B339..B353;H3 # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+B354;H2 # Lo HANGUL SYLLABLE DEO
+B355..B36F;H3 # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+B370;H2 # Lo HANGUL SYLLABLE DE
+B371..B38B;H3 # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+B38C;H2 # Lo HANGUL SYLLABLE DYEO
+B38D..B3A7;H3 # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+B3A8;H2 # Lo HANGUL SYLLABLE DYE
+B3A9..B3C3;H3 # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+B3C4;H2 # Lo HANGUL SYLLABLE DO
+B3C5..B3DF;H3 # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+B3E0;H2 # Lo HANGUL SYLLABLE DWA
+B3E1..B3FB;H3 # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+B3FC;H2 # Lo HANGUL SYLLABLE DWAE
+B3FD..B417;H3 # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+B418;H2 # Lo HANGUL SYLLABLE DOE
+B419..B433;H3 # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+B434;H2 # Lo HANGUL SYLLABLE DYO
+B435..B44F;H3 # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+B450;H2 # Lo HANGUL SYLLABLE DU
+B451..B46B;H3 # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+B46C;H2 # Lo HANGUL SYLLABLE DWEO
+B46D..B487;H3 # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+B488;H2 # Lo HANGUL SYLLABLE DWE
+B489..B4A3;H3 # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+B4A4;H2 # Lo HANGUL SYLLABLE DWI
+B4A5..B4BF;H3 # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+B4C0;H2 # Lo HANGUL SYLLABLE DYU
+B4C1..B4DB;H3 # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+B4DC;H2 # Lo HANGUL SYLLABLE DEU
+B4DD..B4F7;H3 # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+B4F8;H2 # Lo HANGUL SYLLABLE DYI
+B4F9..B513;H3 # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+B514;H2 # Lo HANGUL SYLLABLE DI
+B515..B52F;H3 # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+B530;H2 # Lo HANGUL SYLLABLE DDA
+B531..B54B;H3 # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+B54C;H2 # Lo HANGUL SYLLABLE DDAE
+B54D..B567;H3 # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+B568;H2 # Lo HANGUL SYLLABLE DDYA
+B569..B583;H3 # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+B584;H2 # Lo HANGUL SYLLABLE DDYAE
+B585..B59F;H3 # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+B5A0;H2 # Lo HANGUL SYLLABLE DDEO
+B5A1..B5BB;H3 # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+B5BC;H2 # Lo HANGUL SYLLABLE DDE
+B5BD..B5D7;H3 # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+B5D8;H2 # Lo HANGUL SYLLABLE DDYEO
+B5D9..B5F3;H3 # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+B5F4;H2 # Lo HANGUL SYLLABLE DDYE
+B5F5..B60F;H3 # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+B610;H2 # Lo HANGUL SYLLABLE DDO
+B611..B62B;H3 # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+B62C;H2 # Lo HANGUL SYLLABLE DDWA
+B62D..B647;H3 # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+B648;H2 # Lo HANGUL SYLLABLE DDWAE
+B649..B663;H3 # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+B664;H2 # Lo HANGUL SYLLABLE DDOE
+B665..B67F;H3 # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+B680;H2 # Lo HANGUL SYLLABLE DDYO
+B681..B69B;H3 # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+B69C;H2 # Lo HANGUL SYLLABLE DDU
+B69D..B6B7;H3 # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+B6B8;H2 # Lo HANGUL SYLLABLE DDWEO
+B6B9..B6D3;H3 # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+B6D4;H2 # Lo HANGUL SYLLABLE DDWE
+B6D5..B6EF;H3 # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+B6F0;H2 # Lo HANGUL SYLLABLE DDWI
+B6F1..B70B;H3 # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+B70C;H2 # Lo HANGUL SYLLABLE DDYU
+B70D..B727;H3 # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+B728;H2 # Lo HANGUL SYLLABLE DDEU
+B729..B743;H3 # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+B744;H2 # Lo HANGUL SYLLABLE DDYI
+B745..B75F;H3 # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+B760;H2 # Lo HANGUL SYLLABLE DDI
+B761..B77B;H3 # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+B77C;H2 # Lo HANGUL SYLLABLE RA
+B77D..B797;H3 # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+B798;H2 # Lo HANGUL SYLLABLE RAE
+B799..B7B3;H3 # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+B7B4;H2 # Lo HANGUL SYLLABLE RYA
+B7B5..B7CF;H3 # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+B7D0;H2 # Lo HANGUL SYLLABLE RYAE
+B7D1..B7EB;H3 # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+B7EC;H2 # Lo HANGUL SYLLABLE REO
+B7ED..B807;H3 # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+B808;H2 # Lo HANGUL SYLLABLE RE
+B809..B823;H3 # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+B824;H2 # Lo HANGUL SYLLABLE RYEO
+B825..B83F;H3 # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+B840;H2 # Lo HANGUL SYLLABLE RYE
+B841..B85B;H3 # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+B85C;H2 # Lo HANGUL SYLLABLE RO
+B85D..B877;H3 # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+B878;H2 # Lo HANGUL SYLLABLE RWA
+B879..B893;H3 # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+B894;H2 # Lo HANGUL SYLLABLE RWAE
+B895..B8AF;H3 # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+B8B0;H2 # Lo HANGUL SYLLABLE ROE
+B8B1..B8CB;H3 # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+B8CC;H2 # Lo HANGUL SYLLABLE RYO
+B8CD..B8E7;H3 # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+B8E8;H2 # Lo HANGUL SYLLABLE RU
+B8E9..B903;H3 # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+B904;H2 # Lo HANGUL SYLLABLE RWEO
+B905..B91F;H3 # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+B920;H2 # Lo HANGUL SYLLABLE RWE
+B921..B93B;H3 # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+B93C;H2 # Lo HANGUL SYLLABLE RWI
+B93D..B957;H3 # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+B958;H2 # Lo HANGUL SYLLABLE RYU
+B959..B973;H3 # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+B974;H2 # Lo HANGUL SYLLABLE REU
+B975..B98F;H3 # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+B990;H2 # Lo HANGUL SYLLABLE RYI
+B991..B9AB;H3 # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+B9AC;H2 # Lo HANGUL SYLLABLE RI
+B9AD..B9C7;H3 # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+B9C8;H2 # Lo HANGUL SYLLABLE MA
+B9C9..B9E3;H3 # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+B9E4;H2 # Lo HANGUL SYLLABLE MAE
+B9E5..B9FF;H3 # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+BA00;H2 # Lo HANGUL SYLLABLE MYA
+BA01..BA1B;H3 # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+BA1C;H2 # Lo HANGUL SYLLABLE MYAE
+BA1D..BA37;H3 # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+BA38;H2 # Lo HANGUL SYLLABLE MEO
+BA39..BA53;H3 # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+BA54;H2 # Lo HANGUL SYLLABLE ME
+BA55..BA6F;H3 # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+BA70;H2 # Lo HANGUL SYLLABLE MYEO
+BA71..BA8B;H3 # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+BA8C;H2 # Lo HANGUL SYLLABLE MYE
+BA8D..BAA7;H3 # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+BAA8;H2 # Lo HANGUL SYLLABLE MO
+BAA9..BAC3;H3 # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+BAC4;H2 # Lo HANGUL SYLLABLE MWA
+BAC5..BADF;H3 # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+BAE0;H2 # Lo HANGUL SYLLABLE MWAE
+BAE1..BAFB;H3 # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+BAFC;H2 # Lo HANGUL SYLLABLE MOE
+BAFD..BB17;H3 # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+BB18;H2 # Lo HANGUL SYLLABLE MYO
+BB19..BB33;H3 # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+BB34;H2 # Lo HANGUL SYLLABLE MU
+BB35..BB4F;H3 # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+BB50;H2 # Lo HANGUL SYLLABLE MWEO
+BB51..BB6B;H3 # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+BB6C;H2 # Lo HANGUL SYLLABLE MWE
+BB6D..BB87;H3 # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+BB88;H2 # Lo HANGUL SYLLABLE MWI
+BB89..BBA3;H3 # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+BBA4;H2 # Lo HANGUL SYLLABLE MYU
+BBA5..BBBF;H3 # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+BBC0;H2 # Lo HANGUL SYLLABLE MEU
+BBC1..BBDB;H3 # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+BBDC;H2 # Lo HANGUL SYLLABLE MYI
+BBDD..BBF7;H3 # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+BBF8;H2 # Lo HANGUL SYLLABLE MI
+BBF9..BC13;H3 # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+BC14;H2 # Lo HANGUL SYLLABLE BA
+BC15..BC2F;H3 # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+BC30;H2 # Lo HANGUL SYLLABLE BAE
+BC31..BC4B;H3 # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+BC4C;H2 # Lo HANGUL SYLLABLE BYA
+BC4D..BC67;H3 # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+BC68;H2 # Lo HANGUL SYLLABLE BYAE
+BC69..BC83;H3 # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+BC84;H2 # Lo HANGUL SYLLABLE BEO
+BC85..BC9F;H3 # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+BCA0;H2 # Lo HANGUL SYLLABLE BE
+BCA1..BCBB;H3 # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+BCBC;H2 # Lo HANGUL SYLLABLE BYEO
+BCBD..BCD7;H3 # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+BCD8;H2 # Lo HANGUL SYLLABLE BYE
+BCD9..BCF3;H3 # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+BCF4;H2 # Lo HANGUL SYLLABLE BO
+BCF5..BD0F;H3 # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+BD10;H2 # Lo HANGUL SYLLABLE BWA
+BD11..BD2B;H3 # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+BD2C;H2 # Lo HANGUL SYLLABLE BWAE
+BD2D..BD47;H3 # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+BD48;H2 # Lo HANGUL SYLLABLE BOE
+BD49..BD63;H3 # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+BD64;H2 # Lo HANGUL SYLLABLE BYO
+BD65..BD7F;H3 # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+BD80;H2 # Lo HANGUL SYLLABLE BU
+BD81..BD9B;H3 # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+BD9C;H2 # Lo HANGUL SYLLABLE BWEO
+BD9D..BDB7;H3 # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+BDB8;H2 # Lo HANGUL SYLLABLE BWE
+BDB9..BDD3;H3 # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+BDD4;H2 # Lo HANGUL SYLLABLE BWI
+BDD5..BDEF;H3 # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+BDF0;H2 # Lo HANGUL SYLLABLE BYU
+BDF1..BE0B;H3 # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+BE0C;H2 # Lo HANGUL SYLLABLE BEU
+BE0D..BE27;H3 # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+BE28;H2 # Lo HANGUL SYLLABLE BYI
+BE29..BE43;H3 # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+BE44;H2 # Lo HANGUL SYLLABLE BI
+BE45..BE5F;H3 # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+BE60;H2 # Lo HANGUL SYLLABLE BBA
+BE61..BE7B;H3 # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+BE7C;H2 # Lo HANGUL SYLLABLE BBAE
+BE7D..BE97;H3 # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+BE98;H2 # Lo HANGUL SYLLABLE BBYA
+BE99..BEB3;H3 # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+BEB4;H2 # Lo HANGUL SYLLABLE BBYAE
+BEB5..BECF;H3 # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+BED0;H2 # Lo HANGUL SYLLABLE BBEO
+BED1..BEEB;H3 # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+BEEC;H2 # Lo HANGUL SYLLABLE BBE
+BEED..BF07;H3 # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+BF08;H2 # Lo HANGUL SYLLABLE BBYEO
+BF09..BF23;H3 # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+BF24;H2 # Lo HANGUL SYLLABLE BBYE
+BF25..BF3F;H3 # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+BF40;H2 # Lo HANGUL SYLLABLE BBO
+BF41..BF5B;H3 # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+BF5C;H2 # Lo HANGUL SYLLABLE BBWA
+BF5D..BF77;H3 # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+BF78;H2 # Lo HANGUL SYLLABLE BBWAE
+BF79..BF93;H3 # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+BF94;H2 # Lo HANGUL SYLLABLE BBOE
+BF95..BFAF;H3 # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+BFB0;H2 # Lo HANGUL SYLLABLE BBYO
+BFB1..BFCB;H3 # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+BFCC;H2 # Lo HANGUL SYLLABLE BBU
+BFCD..BFE7;H3 # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+BFE8;H2 # Lo HANGUL SYLLABLE BBWEO
+BFE9..C003;H3 # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+C004;H2 # Lo HANGUL SYLLABLE BBWE
+C005..C01F;H3 # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+C020;H2 # Lo HANGUL SYLLABLE BBWI
+C021..C03B;H3 # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+C03C;H2 # Lo HANGUL SYLLABLE BBYU
+C03D..C057;H3 # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+C058;H2 # Lo HANGUL SYLLABLE BBEU
+C059..C073;H3 # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+C074;H2 # Lo HANGUL SYLLABLE BBYI
+C075..C08F;H3 # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+C090;H2 # Lo HANGUL SYLLABLE BBI
+C091..C0AB;H3 # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+C0AC;H2 # Lo HANGUL SYLLABLE SA
+C0AD..C0C7;H3 # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+C0C8;H2 # Lo HANGUL SYLLABLE SAE
+C0C9..C0E3;H3 # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+C0E4;H2 # Lo HANGUL SYLLABLE SYA
+C0E5..C0FF;H3 # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+C100;H2 # Lo HANGUL SYLLABLE SYAE
+C101..C11B;H3 # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+C11C;H2 # Lo HANGUL SYLLABLE SEO
+C11D..C137;H3 # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+C138;H2 # Lo HANGUL SYLLABLE SE
+C139..C153;H3 # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+C154;H2 # Lo HANGUL SYLLABLE SYEO
+C155..C16F;H3 # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+C170;H2 # Lo HANGUL SYLLABLE SYE
+C171..C18B;H3 # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+C18C;H2 # Lo HANGUL SYLLABLE SO
+C18D..C1A7;H3 # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+C1A8;H2 # Lo HANGUL SYLLABLE SWA
+C1A9..C1C3;H3 # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+C1C4;H2 # Lo HANGUL SYLLABLE SWAE
+C1C5..C1DF;H3 # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+C1E0;H2 # Lo HANGUL SYLLABLE SOE
+C1E1..C1FB;H3 # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+C1FC;H2 # Lo HANGUL SYLLABLE SYO
+C1FD..C217;H3 # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+C218;H2 # Lo HANGUL SYLLABLE SU
+C219..C233;H3 # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+C234;H2 # Lo HANGUL SYLLABLE SWEO
+C235..C24F;H3 # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+C250;H2 # Lo HANGUL SYLLABLE SWE
+C251..C26B;H3 # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+C26C;H2 # Lo HANGUL SYLLABLE SWI
+C26D..C287;H3 # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+C288;H2 # Lo HANGUL SYLLABLE SYU
+C289..C2A3;H3 # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+C2A4;H2 # Lo HANGUL SYLLABLE SEU
+C2A5..C2BF;H3 # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+C2C0;H2 # Lo HANGUL SYLLABLE SYI
+C2C1..C2DB;H3 # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+C2DC;H2 # Lo HANGUL SYLLABLE SI
+C2DD..C2F7;H3 # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+C2F8;H2 # Lo HANGUL SYLLABLE SSA
+C2F9..C313;H3 # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+C314;H2 # Lo HANGUL SYLLABLE SSAE
+C315..C32F;H3 # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+C330;H2 # Lo HANGUL SYLLABLE SSYA
+C331..C34B;H3 # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+C34C;H2 # Lo HANGUL SYLLABLE SSYAE
+C34D..C367;H3 # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+C368;H2 # Lo HANGUL SYLLABLE SSEO
+C369..C383;H3 # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+C384;H2 # Lo HANGUL SYLLABLE SSE
+C385..C39F;H3 # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+C3A0;H2 # Lo HANGUL SYLLABLE SSYEO
+C3A1..C3BB;H3 # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+C3BC;H2 # Lo HANGUL SYLLABLE SSYE
+C3BD..C3D7;H3 # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+C3D8;H2 # Lo HANGUL SYLLABLE SSO
+C3D9..C3F3;H3 # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+C3F4;H2 # Lo HANGUL SYLLABLE SSWA
+C3F5..C40F;H3 # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+C410;H2 # Lo HANGUL SYLLABLE SSWAE
+C411..C42B;H3 # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+C42C;H2 # Lo HANGUL SYLLABLE SSOE
+C42D..C447;H3 # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+C448;H2 # Lo HANGUL SYLLABLE SSYO
+C449..C463;H3 # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+C464;H2 # Lo HANGUL SYLLABLE SSU
+C465..C47F;H3 # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+C480;H2 # Lo HANGUL SYLLABLE SSWEO
+C481..C49B;H3 # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+C49C;H2 # Lo HANGUL SYLLABLE SSWE
+C49D..C4B7;H3 # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+C4B8;H2 # Lo HANGUL SYLLABLE SSWI
+C4B9..C4D3;H3 # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+C4D4;H2 # Lo HANGUL SYLLABLE SSYU
+C4D5..C4EF;H3 # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+C4F0;H2 # Lo HANGUL SYLLABLE SSEU
+C4F1..C50B;H3 # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+C50C;H2 # Lo HANGUL SYLLABLE SSYI
+C50D..C527;H3 # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+C528;H2 # Lo HANGUL SYLLABLE SSI
+C529..C543;H3 # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+C544;H2 # Lo HANGUL SYLLABLE A
+C545..C55F;H3 # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+C560;H2 # Lo HANGUL SYLLABLE AE
+C561..C57B;H3 # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+C57C;H2 # Lo HANGUL SYLLABLE YA
+C57D..C597;H3 # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+C598;H2 # Lo HANGUL SYLLABLE YAE
+C599..C5B3;H3 # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+C5B4;H2 # Lo HANGUL SYLLABLE EO
+C5B5..C5CF;H3 # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+C5D0;H2 # Lo HANGUL SYLLABLE E
+C5D1..C5EB;H3 # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+C5EC;H2 # Lo HANGUL SYLLABLE YEO
+C5ED..C607;H3 # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+C608;H2 # Lo HANGUL SYLLABLE YE
+C609..C623;H3 # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+C624;H2 # Lo HANGUL SYLLABLE O
+C625..C63F;H3 # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+C640;H2 # Lo HANGUL SYLLABLE WA
+C641..C65B;H3 # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+C65C;H2 # Lo HANGUL SYLLABLE WAE
+C65D..C677;H3 # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+C678;H2 # Lo HANGUL SYLLABLE OE
+C679..C693;H3 # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+C694;H2 # Lo HANGUL SYLLABLE YO
+C695..C6AF;H3 # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+C6B0;H2 # Lo HANGUL SYLLABLE U
+C6B1..C6CB;H3 # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+C6CC;H2 # Lo HANGUL SYLLABLE WEO
+C6CD..C6E7;H3 # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+C6E8;H2 # Lo HANGUL SYLLABLE WE
+C6E9..C703;H3 # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+C704;H2 # Lo HANGUL SYLLABLE WI
+C705..C71F;H3 # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+C720;H2 # Lo HANGUL SYLLABLE YU
+C721..C73B;H3 # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+C73C;H2 # Lo HANGUL SYLLABLE EU
+C73D..C757;H3 # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+C758;H2 # Lo HANGUL SYLLABLE YI
+C759..C773;H3 # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+C774;H2 # Lo HANGUL SYLLABLE I
+C775..C78F;H3 # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+C790;H2 # Lo HANGUL SYLLABLE JA
+C791..C7AB;H3 # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+C7AC;H2 # Lo HANGUL SYLLABLE JAE
+C7AD..C7C7;H3 # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+C7C8;H2 # Lo HANGUL SYLLABLE JYA
+C7C9..C7E3;H3 # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+C7E4;H2 # Lo HANGUL SYLLABLE JYAE
+C7E5..C7FF;H3 # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+C800;H2 # Lo HANGUL SYLLABLE JEO
+C801..C81B;H3 # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+C81C;H2 # Lo HANGUL SYLLABLE JE
+C81D..C837;H3 # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+C838;H2 # Lo HANGUL SYLLABLE JYEO
+C839..C853;H3 # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+C854;H2 # Lo HANGUL SYLLABLE JYE
+C855..C86F;H3 # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+C870;H2 # Lo HANGUL SYLLABLE JO
+C871..C88B;H3 # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+C88C;H2 # Lo HANGUL SYLLABLE JWA
+C88D..C8A7;H3 # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+C8A8;H2 # Lo HANGUL SYLLABLE JWAE
+C8A9..C8C3;H3 # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+C8C4;H2 # Lo HANGUL SYLLABLE JOE
+C8C5..C8DF;H3 # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+C8E0;H2 # Lo HANGUL SYLLABLE JYO
+C8E1..C8FB;H3 # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+C8FC;H2 # Lo HANGUL SYLLABLE JU
+C8FD..C917;H3 # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+C918;H2 # Lo HANGUL SYLLABLE JWEO
+C919..C933;H3 # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+C934;H2 # Lo HANGUL SYLLABLE JWE
+C935..C94F;H3 # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+C950;H2 # Lo HANGUL SYLLABLE JWI
+C951..C96B;H3 # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+C96C;H2 # Lo HANGUL SYLLABLE JYU
+C96D..C987;H3 # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+C988;H2 # Lo HANGUL SYLLABLE JEU
+C989..C9A3;H3 # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+C9A4;H2 # Lo HANGUL SYLLABLE JYI
+C9A5..C9BF;H3 # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+C9C0;H2 # Lo HANGUL SYLLABLE JI
+C9C1..C9DB;H3 # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+C9DC;H2 # Lo HANGUL SYLLABLE JJA
+C9DD..C9F7;H3 # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+C9F8;H2 # Lo HANGUL SYLLABLE JJAE
+C9F9..CA13;H3 # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+CA14;H2 # Lo HANGUL SYLLABLE JJYA
+CA15..CA2F;H3 # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+CA30;H2 # Lo HANGUL SYLLABLE JJYAE
+CA31..CA4B;H3 # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+CA4C;H2 # Lo HANGUL SYLLABLE JJEO
+CA4D..CA67;H3 # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+CA68;H2 # Lo HANGUL SYLLABLE JJE
+CA69..CA83;H3 # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+CA84;H2 # Lo HANGUL SYLLABLE JJYEO
+CA85..CA9F;H3 # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+CAA0;H2 # Lo HANGUL SYLLABLE JJYE
+CAA1..CABB;H3 # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+CABC;H2 # Lo HANGUL SYLLABLE JJO
+CABD..CAD7;H3 # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+CAD8;H2 # Lo HANGUL SYLLABLE JJWA
+CAD9..CAF3;H3 # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+CAF4;H2 # Lo HANGUL SYLLABLE JJWAE
+CAF5..CB0F;H3 # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+CB10;H2 # Lo HANGUL SYLLABLE JJOE
+CB11..CB2B;H3 # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+CB2C;H2 # Lo HANGUL SYLLABLE JJYO
+CB2D..CB47;H3 # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+CB48;H2 # Lo HANGUL SYLLABLE JJU
+CB49..CB63;H3 # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+CB64;H2 # Lo HANGUL SYLLABLE JJWEO
+CB65..CB7F;H3 # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+CB80;H2 # Lo HANGUL SYLLABLE JJWE
+CB81..CB9B;H3 # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+CB9C;H2 # Lo HANGUL SYLLABLE JJWI
+CB9D..CBB7;H3 # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+CBB8;H2 # Lo HANGUL SYLLABLE JJYU
+CBB9..CBD3;H3 # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+CBD4;H2 # Lo HANGUL SYLLABLE JJEU
+CBD5..CBEF;H3 # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+CBF0;H2 # Lo HANGUL SYLLABLE JJYI
+CBF1..CC0B;H3 # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+CC0C;H2 # Lo HANGUL SYLLABLE JJI
+CC0D..CC27;H3 # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+CC28;H2 # Lo HANGUL SYLLABLE CA
+CC29..CC43;H3 # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+CC44;H2 # Lo HANGUL SYLLABLE CAE
+CC45..CC5F;H3 # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+CC60;H2 # Lo HANGUL SYLLABLE CYA
+CC61..CC7B;H3 # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+CC7C;H2 # Lo HANGUL SYLLABLE CYAE
+CC7D..CC97;H3 # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+CC98;H2 # Lo HANGUL SYLLABLE CEO
+CC99..CCB3;H3 # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+CCB4;H2 # Lo HANGUL SYLLABLE CE
+CCB5..CCCF;H3 # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+CCD0;H2 # Lo HANGUL SYLLABLE CYEO
+CCD1..CCEB;H3 # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+CCEC;H2 # Lo HANGUL SYLLABLE CYE
+CCED..CD07;H3 # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+CD08;H2 # Lo HANGUL SYLLABLE CO
+CD09..CD23;H3 # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+CD24;H2 # Lo HANGUL SYLLABLE CWA
+CD25..CD3F;H3 # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+CD40;H2 # Lo HANGUL SYLLABLE CWAE
+CD41..CD5B;H3 # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+CD5C;H2 # Lo HANGUL SYLLABLE COE
+CD5D..CD77;H3 # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+CD78;H2 # Lo HANGUL SYLLABLE CYO
+CD79..CD93;H3 # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+CD94;H2 # Lo HANGUL SYLLABLE CU
+CD95..CDAF;H3 # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+CDB0;H2 # Lo HANGUL SYLLABLE CWEO
+CDB1..CDCB;H3 # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+CDCC;H2 # Lo HANGUL SYLLABLE CWE
+CDCD..CDE7;H3 # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+CDE8;H2 # Lo HANGUL SYLLABLE CWI
+CDE9..CE03;H3 # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+CE04;H2 # Lo HANGUL SYLLABLE CYU
+CE05..CE1F;H3 # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+CE20;H2 # Lo HANGUL SYLLABLE CEU
+CE21..CE3B;H3 # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+CE3C;H2 # Lo HANGUL SYLLABLE CYI
+CE3D..CE57;H3 # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+CE58;H2 # Lo HANGUL SYLLABLE CI
+CE59..CE73;H3 # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+CE74;H2 # Lo HANGUL SYLLABLE KA
+CE75..CE8F;H3 # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+CE90;H2 # Lo HANGUL SYLLABLE KAE
+CE91..CEAB;H3 # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+CEAC;H2 # Lo HANGUL SYLLABLE KYA
+CEAD..CEC7;H3 # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+CEC8;H2 # Lo HANGUL SYLLABLE KYAE
+CEC9..CEE3;H3 # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+CEE4;H2 # Lo HANGUL SYLLABLE KEO
+CEE5..CEFF;H3 # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+CF00;H2 # Lo HANGUL SYLLABLE KE
+CF01..CF1B;H3 # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+CF1C;H2 # Lo HANGUL SYLLABLE KYEO
+CF1D..CF37;H3 # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+CF38;H2 # Lo HANGUL SYLLABLE KYE
+CF39..CF53;H3 # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+CF54;H2 # Lo HANGUL SYLLABLE KO
+CF55..CF6F;H3 # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+CF70;H2 # Lo HANGUL SYLLABLE KWA
+CF71..CF8B;H3 # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+CF8C;H2 # Lo HANGUL SYLLABLE KWAE
+CF8D..CFA7;H3 # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+CFA8;H2 # Lo HANGUL SYLLABLE KOE
+CFA9..CFC3;H3 # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+CFC4;H2 # Lo HANGUL SYLLABLE KYO
+CFC5..CFDF;H3 # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+CFE0;H2 # Lo HANGUL SYLLABLE KU
+CFE1..CFFB;H3 # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+CFFC;H2 # Lo HANGUL SYLLABLE KWEO
+CFFD..D017;H3 # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+D018;H2 # Lo HANGUL SYLLABLE KWE
+D019..D033;H3 # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+D034;H2 # Lo HANGUL SYLLABLE KWI
+D035..D04F;H3 # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+D050;H2 # Lo HANGUL SYLLABLE KYU
+D051..D06B;H3 # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+D06C;H2 # Lo HANGUL SYLLABLE KEU
+D06D..D087;H3 # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+D088;H2 # Lo HANGUL SYLLABLE KYI
+D089..D0A3;H3 # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+D0A4;H2 # Lo HANGUL SYLLABLE KI
+D0A5..D0BF;H3 # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+D0C0;H2 # Lo HANGUL SYLLABLE TA
+D0C1..D0DB;H3 # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+D0DC;H2 # Lo HANGUL SYLLABLE TAE
+D0DD..D0F7;H3 # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+D0F8;H2 # Lo HANGUL SYLLABLE TYA
+D0F9..D113;H3 # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+D114;H2 # Lo HANGUL SYLLABLE TYAE
+D115..D12F;H3 # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+D130;H2 # Lo HANGUL SYLLABLE TEO
+D131..D14B;H3 # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+D14C;H2 # Lo HANGUL SYLLABLE TE
+D14D..D167;H3 # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+D168;H2 # Lo HANGUL SYLLABLE TYEO
+D169..D183;H3 # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+D184;H2 # Lo HANGUL SYLLABLE TYE
+D185..D19F;H3 # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+D1A0;H2 # Lo HANGUL SYLLABLE TO
+D1A1..D1BB;H3 # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+D1BC;H2 # Lo HANGUL SYLLABLE TWA
+D1BD..D1D7;H3 # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+D1D8;H2 # Lo HANGUL SYLLABLE TWAE
+D1D9..D1F3;H3 # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+D1F4;H2 # Lo HANGUL SYLLABLE TOE
+D1F5..D20F;H3 # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+D210;H2 # Lo HANGUL SYLLABLE TYO
+D211..D22B;H3 # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+D22C;H2 # Lo HANGUL SYLLABLE TU
+D22D..D247;H3 # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+D248;H2 # Lo HANGUL SYLLABLE TWEO
+D249..D263;H3 # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+D264;H2 # Lo HANGUL SYLLABLE TWE
+D265..D27F;H3 # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+D280;H2 # Lo HANGUL SYLLABLE TWI
+D281..D29B;H3 # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+D29C;H2 # Lo HANGUL SYLLABLE TYU
+D29D..D2B7;H3 # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+D2B8;H2 # Lo HANGUL SYLLABLE TEU
+D2B9..D2D3;H3 # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+D2D4;H2 # Lo HANGUL SYLLABLE TYI
+D2D5..D2EF;H3 # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+D2F0;H2 # Lo HANGUL SYLLABLE TI
+D2F1..D30B;H3 # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+D30C;H2 # Lo HANGUL SYLLABLE PA
+D30D..D327;H3 # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+D328;H2 # Lo HANGUL SYLLABLE PAE
+D329..D343;H3 # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+D344;H2 # Lo HANGUL SYLLABLE PYA
+D345..D35F;H3 # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+D360;H2 # Lo HANGUL SYLLABLE PYAE
+D361..D37B;H3 # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+D37C;H2 # Lo HANGUL SYLLABLE PEO
+D37D..D397;H3 # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+D398;H2 # Lo HANGUL SYLLABLE PE
+D399..D3B3;H3 # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+D3B4;H2 # Lo HANGUL SYLLABLE PYEO
+D3B5..D3CF;H3 # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+D3D0;H2 # Lo HANGUL SYLLABLE PYE
+D3D1..D3EB;H3 # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+D3EC;H2 # Lo HANGUL SYLLABLE PO
+D3ED..D407;H3 # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+D408;H2 # Lo HANGUL SYLLABLE PWA
+D409..D423;H3 # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+D424;H2 # Lo HANGUL SYLLABLE PWAE
+D425..D43F;H3 # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+D440;H2 # Lo HANGUL SYLLABLE POE
+D441..D45B;H3 # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+D45C;H2 # Lo HANGUL SYLLABLE PYO
+D45D..D477;H3 # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+D478;H2 # Lo HANGUL SYLLABLE PU
+D479..D493;H3 # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+D494;H2 # Lo HANGUL SYLLABLE PWEO
+D495..D4AF;H3 # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+D4B0;H2 # Lo HANGUL SYLLABLE PWE
+D4B1..D4CB;H3 # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+D4CC;H2 # Lo HANGUL SYLLABLE PWI
+D4CD..D4E7;H3 # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+D4E8;H2 # Lo HANGUL SYLLABLE PYU
+D4E9..D503;H3 # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+D504;H2 # Lo HANGUL SYLLABLE PEU
+D505..D51F;H3 # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+D520;H2 # Lo HANGUL SYLLABLE PYI
+D521..D53B;H3 # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+D53C;H2 # Lo HANGUL SYLLABLE PI
+D53D..D557;H3 # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+D558;H2 # Lo HANGUL SYLLABLE HA
+D559..D573;H3 # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+D574;H2 # Lo HANGUL SYLLABLE HAE
+D575..D58F;H3 # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+D590;H2 # Lo HANGUL SYLLABLE HYA
+D591..D5AB;H3 # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+D5AC;H2 # Lo HANGUL SYLLABLE HYAE
+D5AD..D5C7;H3 # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+D5C8;H2 # Lo HANGUL SYLLABLE HEO
+D5C9..D5E3;H3 # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+D5E4;H2 # Lo HANGUL SYLLABLE HE
+D5E5..D5FF;H3 # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+D600;H2 # Lo HANGUL SYLLABLE HYEO
+D601..D61B;H3 # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+D61C;H2 # Lo HANGUL SYLLABLE HYE
+D61D..D637;H3 # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+D638;H2 # Lo HANGUL SYLLABLE HO
+D639..D653;H3 # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+D654;H2 # Lo HANGUL SYLLABLE HWA
+D655..D66F;H3 # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+D670;H2 # Lo HANGUL SYLLABLE HWAE
+D671..D68B;H3 # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+D68C;H2 # Lo HANGUL SYLLABLE HOE
+D68D..D6A7;H3 # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+D6A8;H2 # Lo HANGUL SYLLABLE HYO
+D6A9..D6C3;H3 # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+D6C4;H2 # Lo HANGUL SYLLABLE HU
+D6C5..D6DF;H3 # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+D6E0;H2 # Lo HANGUL SYLLABLE HWEO
+D6E1..D6FB;H3 # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+D6FC;H2 # Lo HANGUL SYLLABLE HWE
+D6FD..D717;H3 # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+D718;H2 # Lo HANGUL SYLLABLE HWI
+D719..D733;H3 # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+D734;H2 # Lo HANGUL SYLLABLE HYU
+D735..D74F;H3 # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+D750;H2 # Lo HANGUL SYLLABLE HEU
+D751..D76B;H3 # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+D76C;H2 # Lo HANGUL SYLLABLE HYI
+D76D..D787;H3 # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+D788;H2 # Lo HANGUL SYLLABLE HI
+D789..D7A3;H3 # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+D7B0..D7C6;JV # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB;JT # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D800..DB7F;SG # Cs [896] <surrogate-D800>..<surrogate-DB7F>
+DB80..DBFF;SG # Cs [128] <surrogate-DB80>..<surrogate-DBFF>
+DC00..DFFF;SG # Cs [1024] <surrogate-DC00>..<surrogate-DFFF>
+E000..F8FF;XX # Co [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA6D;ID # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F;ID # Cn [2] <reserved-FA6E>..<reserved-FA6F>
+FA70..FAD9;ID # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF;ID # Cn [38] <reserved-FADA>..<reserved-FAFF>
+FB00..FB06;AL # Ll [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17;AL # Ll [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D;HL # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1E;CM # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28;HL # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29;AL # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36;HL # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C;HL # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E;HL # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41;HL # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44;HL # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F;HL # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FB50..FBB1;AL # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC1;AL # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBD3..FD3D;AL # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E;CL # Pe ORNATE LEFT PARENTHESIS
+FD3F;OP # Ps ORNATE RIGHT PARENTHESIS
+FD50..FD8F;AL # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7;AL # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB;AL # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC;PO # Sc RIAL SIGN
+FDFD;AL # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE00..FE0F;CM # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10;IS # Po PRESENTATION FORM FOR VERTICAL COMMA
+FE11..FE12;CL # Po [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13..FE14;IS # Po [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15..FE16;EX # Po [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19;IN # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE20..FE2D;CM # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
+FE30;ID # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32;ID # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34;ID # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46;ID # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C;ID # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F;ID # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50;CL # Po SMALL COMMA
+FE51;ID # Po SMALL IDEOGRAPHIC COMMA
+FE52;CL # Po SMALL FULL STOP
+FE54..FE55;NS # Po [2] SMALL SEMICOLON..SMALL COLON
+FE56..FE57;EX # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
+FE58;ID # Pd SMALL EM DASH
+FE59;OP # Ps SMALL LEFT PARENTHESIS
+FE5A;CL # Pe SMALL RIGHT PARENTHESIS
+FE5B;OP # Ps SMALL LEFT CURLY BRACKET
+FE5C;CL # Pe SMALL RIGHT CURLY BRACKET
+FE5D;OP # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E;CL # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61;ID # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62;ID # Sm SMALL PLUS SIGN
+FE63;ID # Pd SMALL HYPHEN-MINUS
+FE64..FE66;ID # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68;ID # Po SMALL REVERSE SOLIDUS
+FE69;PR # Sc SMALL DOLLAR SIGN
+FE6A;PO # Po SMALL PERCENT SIGN
+FE6B;ID # Po SMALL COMMERCIAL AT
+FE70..FE74;AL # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC;AL # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF;WJ # Cf ZERO WIDTH NO-BREAK SPACE
+FF01;EX # Po FULLWIDTH EXCLAMATION MARK
+FF02..FF03;ID # Po [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN
+FF04;PR # Sc FULLWIDTH DOLLAR SIGN
+FF05;PO # Po FULLWIDTH PERCENT SIGN
+FF06..FF07;ID # Po [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE
+FF08;OP # Ps FULLWIDTH LEFT PARENTHESIS
+FF09;CL # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A;ID # Po FULLWIDTH ASTERISK
+FF0B;ID # Sm FULLWIDTH PLUS SIGN
+FF0C;CL # Po FULLWIDTH COMMA
+FF0D;ID # Pd FULLWIDTH HYPHEN-MINUS
+FF0E;CL # Po FULLWIDTH FULL STOP
+FF0F;ID # Po FULLWIDTH SOLIDUS
+FF10..FF19;ID # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B;NS # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E;ID # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F;EX # Po FULLWIDTH QUESTION MARK
+FF20;ID # Po FULLWIDTH COMMERCIAL AT
+FF21..FF3A;ID # Lu [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B;OP # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C;ID # Po FULLWIDTH REVERSE SOLIDUS
+FF3D;CL # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E;ID # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F;ID # Pc FULLWIDTH LOW LINE
+FF40;ID # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A;ID # Ll [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B;OP # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C;ID # Sm FULLWIDTH VERTICAL LINE
+FF5D;CL # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E;ID # Sm FULLWIDTH TILDE
+FF5F;OP # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60;CL # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61;CL # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62;OP # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63;CL # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64;CL # Po HALFWIDTH IDEOGRAPHIC COMMA
+FF65;NS # Po HALFWIDTH KATAKANA MIDDLE DOT
+FF66;AL # Lo HALFWIDTH KATAKANA LETTER WO
+FF67..FF6F;CJ # Lo [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70;CJ # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D;AL # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F;NS # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE;AL # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7;AL # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF;AL # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7;AL # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC;AL # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0;PO # Sc FULLWIDTH CENT SIGN
+FFE1;PR # Sc FULLWIDTH POUND SIGN
+FFE2;ID # Sm FULLWIDTH NOT SIGN
+FFE3;ID # Sk FULLWIDTH MACRON
+FFE4;ID # So FULLWIDTH BROKEN BAR
+FFE5..FFE6;PR # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8;AL # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC;AL # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE;AL # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB;CM # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC;CB # So OBJECT REPLACEMENT CHARACTER
+FFFD;AI # So REPLACEMENT CHARACTER
+10000..1000B;AL # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026;AL # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A;AL # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D;AL # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D;AL # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D;AL # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA;AL # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10102;BA # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133;AL # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F;AL # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174;AL # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178;AL # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189;AL # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B;AL # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C;AL # So GREEK SINUSOID SIGN
+10190..1019B;AL # So [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101A0;AL # So GREEK SYMBOL TAU RHO
+101D0..101FC;AL # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD;CM # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10280..1029C;AL # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0;AL # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+102E0;CM # Mn COPTIC EPACT THOUSANDS MARK
+102E1..102FB;AL # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F;AL # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320..10323;AL # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10330..10340;AL # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341;AL # Nl GOTHIC LETTER NINETY
+10342..10349;AL # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A;AL # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375;AL # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A;CM # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10380..1039D;AL # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F;BA # Po UGARITIC WORD DIVIDER
+103A0..103C3;AL # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF;AL # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0;BA # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5;AL # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F;AL # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1047F;AL # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10480..1049D;AL # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9;NU # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10500..10527;AL # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563;AL # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F;AL # Po CAUCASIAN ALBANIAN CITATION MARK
+10600..10736;AL # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755;AL # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767;AL # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10800..10805;AL # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808;AL # Lo CYPRIOT SYLLABLE JO
+1080A..10835;AL # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838;AL # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C;AL # Lo CYPRIOT SYLLABLE ZA
+1083F;AL # Lo CYPRIOT SYLLABLE ZO
+10840..10855;AL # Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857;BA # Po IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F;AL # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876;AL # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878;AL # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F;AL # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E;AL # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF;AL # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+10900..10915;AL # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..1091B;AL # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091F;BA # Po PHOENICIAN WORD SEPARATOR
+10920..10939;AL # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F;AL # Po LYDIAN TRIANGULAR MARK
+10980..1099F;AL # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+109A0..109B7;AL # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF;AL # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+10A00;AL # Lo KHAROSHTHI LETTER A
+10A01..10A03;CM # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06;CM # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F;CM # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13;AL # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17;AL # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33;AL # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A38..10A3A;CM # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F;CM # Mn KHAROSHTHI VIRAMA
+10A40..10A47;AL # No [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A50..10A57;BA # Po [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10A58;AL # Po KHAROSHTHI PUNCTUATION LINES
+10A60..10A7C;AL # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7E;AL # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F;AL # Po OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C;AL # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F;AL # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7;AL # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8;AL # So MANICHAEAN SIGN UD
+10AC9..10AE4;AL # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6;CM # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF;AL # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF5;BA # Po [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
+10AF6;IN # Po MANICHAEAN PUNCTUATION LINE FILLER
+10B00..10B35;AL # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F;BA # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55;AL # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F;AL # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72;AL # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F;AL # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91;AL # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C;AL # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF;AL # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10C00..10C48;AL # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10E60..10E7E;AL # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+11000;CM # Mc BRAHMI SIGN CANDRABINDU
+11001;CM # Mn BRAHMI SIGN ANUSVARA
+11002;CM # Mc BRAHMI SIGN VISARGA
+11003..11037;AL # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11038..11046;CM # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11047..11048;BA # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
+11049..1104D;AL # Po [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS
+11052..11065;AL # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F;NU # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+1107F;CM # Mn BRAHMI NUMBER JOINER
+11080..11081;CM # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082;CM # Mc KAITHI SIGN VISARGA
+11083..110AF;AL # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2;CM # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6;CM # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8;CM # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA;CM # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC;AL # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD;AL # Cf KAITHI NUMBER SIGN
+110BE..110C1;BA # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110D0..110E8;AL # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9;NU # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11100..11102;CM # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126;AL # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B;CM # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C;CM # Mc CHAKMA VOWEL SIGN E
+1112D..11134;CM # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F;NU # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143;BA # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11150..11172;AL # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173;CM # Mn MAHAJANI SIGN NUKTA
+11174;AL # Po MAHAJANI ABBREVIATION SIGN
+11175;BB # Po MAHAJANI SECTION MARK
+11176;AL # Lo MAHAJANI LIGATURE SHRI
+11180..11181;CM # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182;CM # Mc SHARADA SIGN VISARGA
+11183..111B2;AL # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5;CM # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE;CM # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0;CM # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4;AL # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C6;BA # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
+111C7;AL # Po SHARADA ABBREVIATION SIGN
+111C8;BA # Po SHARADA SEPARATOR
+111CD;AL # Po SHARADA SUTRA MARK
+111D0..111D9;NU # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA;AL # Lo SHARADA EKAM
+111E1..111F4;AL # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211;AL # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B;AL # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E;CM # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231;CM # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233;CM # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234;CM # Mn KHOJKI SIGN ANUSVARA
+11235;CM # Mc KHOJKI SIGN VIRAMA
+11236..11237;CM # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..11239;BA # Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123A;AL # Po KHOJKI WORD SEPARATOR
+1123B..1123C;BA # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+1123D;AL # Po KHOJKI ABBREVIATION SIGN
+112B0..112DE;AL # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF;CM # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2;CM # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA;CM # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9;NU # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11301;CM # Mn GRANTHA SIGN CANDRABINDU
+11302..11303;CM # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C;AL # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310;AL # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328;AL # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330;AL # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333;AL # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339;AL # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C;CM # Mn GRANTHA SIGN NUKTA
+1133D;AL # Lo GRANTHA SIGN AVAGRAHA
+1133E..1133F;CM # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340;CM # Mn GRANTHA VOWEL SIGN II
+11341..11344;CM # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348;CM # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D;CM # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357;CM # Mc GRANTHA AU LENGTH MARK
+1135D..11361;AL # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363;CM # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C;CM # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374;CM # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11480..114AF;AL # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2;CM # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8;CM # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9;CM # Mc TIRHUTA VOWEL SIGN E
+114BA;CM # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE;CM # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0;CM # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1;CM # Mc TIRHUTA SIGN VISARGA
+114C2..114C3;CM # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5;AL # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6;AL # Po TIRHUTA ABBREVIATION SIGN
+114C7;AL # Lo TIRHUTA OM
+114D0..114D9;NU # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE;AL # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1;CM # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5;CM # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB;CM # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD;CM # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE;CM # Mc SIDDHAM SIGN VISARGA
+115BF..115C0;CM # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1;BB # Po SIDDHAM SIGN SIDDHAM
+115C2..115C3;BA # Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C4..115C5;EX # Po [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR
+115C6..115C8;AL # Po [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
+115C9;BA # Po SIDDHAM END OF TEXT MARK
+11600..1162F;AL # Lo [48] MODI LETTER A..MODI LETTER LLA
+11630..11632;CM # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A;CM # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C;CM # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D;CM # Mn MODI SIGN ANUSVARA
+1163E;CM # Mc MODI SIGN VISARGA
+1163F..11640;CM # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11642;BA # Po [2] MODI DANDA..MODI DOUBLE DANDA
+11643;AL # Po MODI ABBREVIATION SIGN
+11644;AL # Lo MODI SIGN HUVA
+11650..11659;NU # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+11680..116AA;AL # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB;CM # Mn TAKRI SIGN ANUSVARA
+116AC;CM # Mc TAKRI SIGN VISARGA
+116AD;CM # Mn TAKRI VOWEL SIGN AA
+116AE..116AF;CM # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5;CM # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6;CM # Mc TAKRI SIGN VIRAMA
+116B7;CM # Mn TAKRI SIGN NUKTA
+116C0..116C9;NU # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118A0..118DF;AL # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9;NU # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2;AL # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF;AL # Lo WARANG CITI OM
+11AC0..11AF8;AL # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398;AL # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E;AL # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474;BA # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+13000..13257;AL # Lo [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006
+13258..1325A;OP # Lo [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C
+1325B..1325D;CL # Lo [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F
+1325E..13281;AL # Lo [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
+13282;CL # Lo EGYPTIAN HIEROGLYPH O033A
+13283..13285;AL # Lo [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
+13286;OP # Lo EGYPTIAN HIEROGLYPH O036A
+13287;CL # Lo EGYPTIAN HIEROGLYPH O036B
+13288;OP # Lo EGYPTIAN HIEROGLYPH O036C
+13289;CL # Lo EGYPTIAN HIEROGLYPH O036D
+1328A..13378;AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
+13379;OP # Lo EGYPTIAN HIEROGLYPH V011A
+1337A..1337B;CL # Lo [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
+1337C..1342E;AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+16800..16A38;AL # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E;AL # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69;NU # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F;BA # Po [2] MRO DANDA..MRO DOUBLE DANDA
+16AD0..16AED;AL # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4;CM # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5;BA # Po BASSA VAH FULL STOP
+16B00..16B2F;AL # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36;CM # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B39;BA # Po [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
+16B3A..16B3B;AL # Po [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F;AL # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43;AL # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44;BA # Po PAHAWH HMONG SIGN XAUS
+16B45;AL # So PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59;NU # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61;AL # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77;AL # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F;AL # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16F00..16F44;AL # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F50;AL # Lo MIAO LETTER NASALIZATION
+16F51..16F7E;CM # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F8F..16F92;CM # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F;AL # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1B000..1B001;ID # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A;AL # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C;AL # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88;AL # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99;AL # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C;AL # So DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E;CM # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F;BA # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3;CM # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1D000..1D0F5;AL # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126;AL # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164;AL # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166;CM # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169;CM # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16A..1D16C;AL # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172;CM # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A;CM # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182;CM # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D183..1D184;AL # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D185..1D18B;CM # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D18C..1D1A9;AL # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AA..1D1AD;CM # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D1AE..1D1DD;AL # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D200..1D241;AL # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244;CM # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245;AL # So GREEK MUSICAL LEIMMA
+1D300..1D356;AL # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D371;AL # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D400..1D454;AL # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C;AL # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F;AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2;AL # Lu MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6;AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC;AL # Lu [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9;AL # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB;AL # Ll MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3;AL # Ll [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505;AL # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A;AL # Lu [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514;AL # Lu [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C;AL # Lu [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539;AL # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E;AL # Lu [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544;AL # Lu [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546;AL # Lu MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550;AL # Lu [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5;AL # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0;AL # Lu [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1;AL # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA;AL # Ll [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB;AL # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA;AL # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB;AL # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714;AL # Ll [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715;AL # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734;AL # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735;AL # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E;AL # Ll [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F;AL # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E;AL # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F;AL # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788;AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789;AL # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8;AL # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9;AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2;AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3;AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB;AL # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF;NU # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E800..1E8C4;AL # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF;AL # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6;CM # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1EE00..1EE03;AL # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F;AL # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22;AL # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24;AL # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27;AL # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32;AL # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37;AL # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39;AL # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B;AL # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42;AL # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47;AL # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49;AL # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B;AL # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F;AL # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52;AL # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54;AL # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57;AL # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59;AL # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B;AL # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D;AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F;AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62;AL # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64;AL # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72;AL # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E;AL # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89;AL # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B;AL # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3;AL # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9;AL # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB;AL # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1;AL # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000..1F02B;ID # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093;ID # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F0A0..1F0AE;ID # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0B1..1F0BF;ID # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C1..1F0CF;ID # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D1..1F0F5;ID # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C;AI # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F110..1F12D;AI # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
+1F12E;AL # So CIRCLED WZ
+1F130..1F169;AI # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A..1F16B;AL # So [2] RAISED MC SIGN..RAISED MD SIGN
+1F170..1F19A;AI # So [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
+1F1E6..1F1FF;RI # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200..1F202;ID # So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+1F210..1F23A;ID # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F240..1F248;ID # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250..1F251;ID # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F300..1F32C;ID # So [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D;ID # So [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F39B;ID # So [28] RIBBON..CONTROL KNOBS
+1F39C..1F39D;AL # So [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
+1F39E..1F3B4;ID # So [23] FILM FRAMES..FLOWER PLAYING CARDS
+1F3B5..1F3B6;AL # So [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES
+1F3B7..1F3BB;ID # So [5] SAXOPHONE..VIOLIN
+1F3BC;AL # So MUSICAL SCORE
+1F3BD..1F3CE;ID # So [18] RUNNING SHIRT WITH SASH..RACING CAR
+1F3D4..1F3F7;ID # So [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F49F;ID # So [160] RAT..HEART DECORATION
+1F4A0;AL # So DIAMOND SHAPE WITH A DOT INSIDE
+1F4A1;ID # So ELECTRIC LIGHT BULB
+1F4A2;AL # So ANGER SYMBOL
+1F4A3;ID # So BOMB
+1F4A4;AL # So SLEEPING SYMBOL
+1F4A5..1F4AE;ID # So [10] COLLISION SYMBOL..WHITE FLOWER
+1F4AF;AL # So HUNDRED POINTS SYMBOL
+1F4B0;ID # So MONEY BAG
+1F4B1..1F4B2;AL # So [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN
+1F4B3..1F4FE;ID # So [76] CREDIT CARD..PORTABLE STEREO
+1F500..1F506;AL # So [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL
+1F507..1F516;ID # So [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK
+1F517..1F524;AL # So [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS
+1F525..1F531;ID # So [13] FIRE..TRIDENT EMBLEM
+1F532..1F549;AL # So [24] BLACK SQUARE BUTTON..OM SYMBOL
+1F54A;ID # So DOVE OF PEACE
+1F550..1F579;ID # So [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3;ID # So [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F5D3;ID # So [47] DESKTOP COMPUTER..SPIRAL CALENDAR PAD
+1F5D4..1F5DB;AL # So [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
+1F5DC..1F5F3;ID # So [24] COMPRESSION..BALLOT BOX WITH BALLOT
+1F5F4..1F5F9;AL # So [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
+1F5FA..1F5FF;ID # So [6] WORLD MAP..MOYAI
+1F600..1F642;ID # So [67] GRINNING FACE..SLIGHTLY SMILING FACE
+1F645..1F64F;ID # So [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
+1F650..1F675;AL # So [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT
+1F676..1F678;QU # So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679..1F67B;NS # So [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C..1F67F;AL # So [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD
+1F680..1F6CF;ID # So [80] ROCKET..BED
+1F6E0..1F6EC;ID # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3;ID # So [4] SATELLITE..PASSENGER SHIP
+1F700..1F773;AL # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4;AL # So [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B;AL # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847;AL # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859;AL # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887;AL # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD;AL # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+20000..2A6D6;ID # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2A6D7..2A6FF;ID # Cn [41] <reserved-2A6D7>..<reserved-2A6FF>
+2A700..2B734;ID # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+2B735..2B73F;ID # Cn [11] <reserved-2B735>..<reserved-2B73F>
+2B740..2B81D;ID # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2F7FF;ID # Cn [16354] <reserved-2B81E>..<reserved-2F7FF>
+2F800..2FA1D;ID # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FFFD;ID # Cn [1504] <reserved-2FA1E>..<reserved-2FFFD>
+30000..3FFFD;ID # Cn [65534] <reserved-30000>..<reserved-3FFFD>
+E0001;CM # Cf LANGUAGE TAG
+E0020..E007F;CM # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF;CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD;XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD;XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
# EOF
diff --git a/util/unicode/data/NormalizationCorrections.txt b/util/unicode/data/NormalizationCorrections.txt
index aea94ca33e..79c77da79a 100644
--- a/util/unicode/data/NormalizationCorrections.txt
+++ b/util/unicode/data/NormalizationCorrections.txt
@@ -1,10 +1,10 @@
-# NormalizationCorrections-6.3.0.txt
-# Date: 2013-01-02, 08:39:00 GMT [KW, LI]
+# NormalizationCorrections-7.0.0.txt
+# Date: 2013-12-17, 00:00:00 GMT [KW, LI]
#
# This file is a normative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# The normalization stability policy of the Unicode Consortium
diff --git a/util/unicode/data/Scripts.txt b/util/unicode/data/Scripts.txt
index b69716c7a6..0b69438a57 100644
--- a/util/unicode/data/Scripts.txt
+++ b/util/unicode/data/Scripts.txt
@@ -1,8 +1,8 @@
-# Scripts-6.3.0.txt
-# Date: 2013-07-05, 14:09:02 GMT [MD]
+# Scripts-7.0.0.txt
+# Date: 2014-05-15, 00:11:35 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
@@ -83,8 +83,10 @@
0385 ; Common # Sk GREEK DIALYTIKA TONOS
0387 ; Common # Po GREEK ANO TELEIA
0589 ; Common # Po ARMENIAN FULL STOP
+0605 ; Common # Cf ARABIC NUMBER MARK ABOVE
060C ; Common # Po ARABIC COMMA
061B ; Common # Po ARABIC SEMICOLON
+061C ; Common # Cf ARABIC LETTER MARK
061F ; Common # Po ARABIC QUESTION MARK
0640 ; Common # Lm ARABIC TATWEEL
0660..0669 ; Common # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
@@ -146,7 +148,7 @@
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
-20A0..20BA ; Common # Sc [27] EURO-CURRENCY SIGN..TURKISH LIRA SIGN
+20A0..20BD ; Common # Sc [30] EURO-CURRENCY SIGN..RUBLE SIGN
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
@@ -215,7 +217,7 @@
239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE
23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23F3 ; Common # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND
+23E2..23FA ; Common # So [25] WHITE TRAPEZIUM..BLACK CIRCLE FOR RECORD
2400..2426 ; Common # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
@@ -229,8 +231,7 @@
25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
266F ; Common # Sm MUSIC SHARP SIGN
-2670..26FF ; Common # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2701..2767 ; Common # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET
+2670..2767 ; Common # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET
2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -298,7 +299,11 @@
2B30..2B44 ; Common # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
2B45..2B46 ; Common # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
2B47..2B4C ; Common # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B50..2B59 ; Common # So [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE
+2B4D..2B73 ; Common # So [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95 ; Common # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B98..2BB9 ; Common # So [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBD..2BC8 ; Common # So [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA..2BD1 ; Common # So [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET
2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET
@@ -332,6 +337,10 @@
2E2F ; Common # Lm VERTICAL TILDE
2E30..2E39 ; Common # Po [10] RING POINT..TOP HALF SECTION SIGN
2E3A..2E3B ; Common # Pd [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F ; Common # Po [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40 ; Common # Pd DOUBLE HYPHEN
+2E41 ; Common # Po REVERSED COMMA
+2E42 ; Common # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
3000 ; Common # Zs IDEOGRAPHIC SPACE
3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
@@ -395,10 +404,11 @@ A830..A835 ; Common # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC
A836..A837 ; Common # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A838 ; Common # Sc NORTH INDIC RUPEE MARK
A839 ; Common # So NORTH INDIC QUANTITY MARK
+A92E ; Common # Po KAYAH LI SIGN CWI
A9CF ; Common # Lm JAVANESE PANGRANGKEP
-FD3E ; Common # Ps ORNATE LEFT PARENTHESIS
-FD3F ; Common # Pe ORNATE RIGHT PARENTHESIS
-FDFD ; Common # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+AB5B ; Common # Sk MODIFIER BREVE WITH INVERTED BREVE
+FD3E ; Common # Pe ORNATE LEFT PARENTHESIS
+FD3F ; Common # Ps ORNATE RIGHT PARENTHESIS
FE10..FE16 ; Common # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
FE17 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
FE18 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
@@ -491,6 +501,8 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
10137..1013F ; Common # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
10190..1019B ; Common # So [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+102E1..102FB ; Common # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+1BCA0..1BCA3 ; Common # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -547,10 +559,10 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
1F0A0..1F0AE ; Common # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0B1..1F0BE ; Common # So [14] PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0B1..1F0BF ; Common # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
1F0C1..1F0CF ; Common # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D1..1F0DF ; Common # So [15] PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
-1F100..1F10A ; Common # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F0D1..1F0F5 ; Common # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10C ; Common # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
1F110..1F12E ; Common # So [31] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
1F130..1F16B ; Common # So [60] SQUARED LATIN CAPITAL LETTER A..RAISED MD SIGN
1F170..1F19A ; Common # So [43] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VS
@@ -559,28 +571,29 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1F210..1F23A ; Common # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F300..1F320 ; Common # So [33] CYCLONE..SHOOTING STAR
-1F330..1F335 ; Common # So [6] CHESTNUT..CACTUS
-1F337..1F37C ; Common # So [70] TULIP..BABY BOTTLE
-1F380..1F393 ; Common # So [20] RIBBON..GRADUATION CAP
-1F3A0..1F3C4 ; Common # So [37] CAROUSEL HORSE..SURFER
-1F3C6..1F3CA ; Common # So [5] TROPHY..SWIMMER
-1F3E0..1F3F0 ; Common # So [17] HOUSE BUILDING..EUROPEAN CASTLE
-1F400..1F43E ; Common # So [63] RAT..PAW PRINTS
-1F440 ; Common # So EYES
-1F442..1F4F7 ; Common # So [182] EAR..CAMERA
-1F4F9..1F4FC ; Common # So [4] VIDEO CAMERA..VIDEOCASSETTE
-1F500..1F53D ; Common # So [62] TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
-1F540..1F543 ; Common # So [4] CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F550..1F567 ; Common # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
-1F5FB..1F640 ; Common # So [70] MOUNT FUJI..WEARY CAT FACE
-1F645..1F64F ; Common # So [11] FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
-1F680..1F6C5 ; Common # So [70] ROCKET..LEFT LUGGAGE
+1F300..1F32C ; Common # So [45] CYCLONE..WIND BLOWING FACE
+1F330..1F37D ; Common # So [78] CHESTNUT..FORK AND KNIFE WITH PLATE
+1F380..1F3CE ; Common # So [79] RIBBON..RACING CAR
+1F3D4..1F3F7 ; Common # So [36] SNOW CAPPED MOUNTAIN..LABEL
+1F400..1F4FE ; Common # So [255] RAT..PORTABLE STEREO
+1F500..1F54A ; Common # So [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
+1F550..1F579 ; Common # So [42] CLOCK FACE ONE OCLOCK..JOYSTICK
+1F57B..1F5A3 ; Common # So [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A5..1F642 ; Common # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
+1F645..1F6CF ; Common # So [139] FACE WITH NO GOOD GESTURE..BED
+1F6E0..1F6EC ; Common # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6F0..1F6F3 ; Common # So [4] SATELLITE..PASSENGER SHIP
1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780..1F7D4 ; Common # So [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847 ; Common # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 6418
+# Total code points: 7129
# ================================================
@@ -622,16 +635,20 @@ A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN
A770 ; Latin # Lm MODIFIER LETTER US
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793 ; Latin # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA ; Latin # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD ; Latin # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1 ; Latin # L& [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+AB30..AB5A ; Latin # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F ; Latin # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64 ; Latin # L& LATIN SMALL LETTER INVERTED ALPHA
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
-# Total code points: 1272
+# Total code points: 1338
# ================================================
@@ -640,6 +657,7 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0376..0377 ; Greek # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
037A ; Greek # Lm GREEK YPOGEGRAMMENI
037B..037D ; Greek # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F ; Greek # L& GREEK CAPITAL LETTER YOT
0384 ; Greek # Sk GREEK TONOS
0386 ; Greek # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0388..038A ; Greek # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
@@ -679,15 +697,18 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
1FF6..1FFC ; Greek # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
1FFD..1FFE ; Greek # Sk [2] GREEK OXIA..GREEK DASIA
2126 ; Greek # L& OHM SIGN
+AB65 ; Greek # L& GREEK LETTER SMALL CAPITAL OMEGA
10140..10174 ; Greek # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
10175..10178 ; Greek # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
10179..10189 ; Greek # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A ; Greek # No GREEK ZERO SIGN
+1018A..1018B ; Greek # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C ; Greek # So GREEK SINUSOID SIGN
+101A0 ; Greek # So GREEK SYMBOL TAU RHO
1D200..1D241 ; Greek # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242..1D244 ; Greek # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1D245 ; Greek # So GREEK MUSICAL LEIMMA
-# Total code points: 511
+# Total code points: 516
# ================================================
@@ -696,7 +717,7 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0483..0484 ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PALATALIZATION
0487 ; Cyrillic # Mn COMBINING CYRILLIC POKRYTIE
0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..0527 ; Cyrillic # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F ; Cyrillic # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
@@ -708,10 +729,11 @@ A673 ; Cyrillic # Po SLAVONIC ASTERISK
A674..A67D ; Cyrillic # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
A67E ; Cyrillic # Po CYRILLIC KAVYKA
A67F ; Cyrillic # Lm CYRILLIC PAYEROK
-A680..A697 ; Cyrillic # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A69F ; Cyrillic # Mn COMBINING CYRILLIC LETTER IOTIFIED E
-# Total code points: 417
+# Total code points: 431
# ================================================
@@ -720,10 +742,11 @@ A69F ; Cyrillic # Mn COMBINING CYRILLIC LETTER IOTIFIED E
055A..055F ; Armenian # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
0561..0587 ; Armenian # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
058A ; Armenian # Pd ARMENIAN HYPHEN
+058D..058E ; Armenian # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
058F ; Armenian # Sc ARMENIAN DRAM SIGN
FB13..FB17 ; Armenian # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
-# Total code points: 91
+# Total code points: 93
# ================================================
@@ -761,7 +784,6 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
060D ; Arabic # Po ARABIC DATE SEPARATOR
060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-061C ; Arabic # Cf ARABIC LETTER MARK
061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
@@ -784,9 +806,8 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
-08A0 ; Arabic # Lo ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC ; Arabic # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
-08E4..08FE ; Arabic # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
+08A0..08B2 ; Arabic # Lo [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08E4..08FF ; Arabic # Mn [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
@@ -794,6 +815,7 @@ FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIA
FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
FDFC ; Arabic # Sc RIAL SIGN
+FDFD ; Arabic # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
@@ -832,7 +854,7 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-# Total code points: 1236
+# Total code points: 1244
# ================================================
@@ -875,17 +897,17 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
0970 ; Devanagari # Po DEVANAGARI ABBREVIATION SIGN
0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977 ; Devanagari # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F ; Devanagari # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..097F ; Devanagari # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
-# Total code points: 151
+# Total code points: 152
# ================================================
+0980 ; Bengali # Lo BENGALI ANJI
0981 ; Bengali # Mn BENGALI SIGN CANDRABINDU
0982..0983 ; Bengali # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
0985..098C ; Bengali # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
@@ -913,7 +935,7 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
09FA ; Bengali # So BENGALI ISSHAR
09FB ; Bengali # Sc BENGALI GANDA MARK
-# Total code points: 92
+# Total code points: 93
# ================================================
@@ -1030,12 +1052,12 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
# ================================================
+0C00 ; Telugu # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Telugu # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C05..0C0C ; Telugu # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33 ; Telugu # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39 ; Telugu # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39 ; Telugu # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA
0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -1049,10 +1071,11 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0C7F ; Telugu # So TELUGU SIGN TUUMU
-# Total code points: 93
+# Total code points: 95
# ================================================
+0C81 ; Kannada # Mn KANNADA SIGN CANDRABINDU
0C82..0C83 ; Kannada # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0C85..0C8C ; Kannada # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
0C8E..0C90 ; Kannada # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
@@ -1075,10 +1098,11 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
-# Total code points: 86
+# Total code points: 87
# ================================================
+0D01 ; Malayalam # Mn MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D05..0D0C ; Malayalam # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
@@ -1098,7 +1122,7 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0D79 ; Malayalam # So MALAYALAM DATE MARK
0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
-# Total code points: 98
+# Total code points: 99
# ================================================
@@ -1113,10 +1137,12 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
0DD2..0DD4 ; Sinhala # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
0DD6 ; Sinhala # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
0DD8..0DDF ; Sinhala # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF ; Sinhala # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
0DF2..0DF3 ; Sinhala # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
0DF4 ; Sinhala # Po SINHALA PUNCTUATION KUNDDALIYA
+111E1..111F4 ; Sinhala # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
-# Total code points: 80
+# Total code points: 110
# ================================================
@@ -1239,14 +1265,23 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
109A..109C ; Myanmar # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
109D ; Myanmar # Mn MYANMAR VOWEL SIGN AITON AI
109E..109F ; Myanmar # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+A9E0..A9E4 ; Myanmar # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5 ; Myanmar # Mn MYANMAR SIGN SHAN SAW
+A9E6 ; Myanmar # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF ; Myanmar # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9 ; Myanmar # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE ; Myanmar # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
AA60..AA6F ; Myanmar # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
AA70 ; Myanmar # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
AA71..AA76 ; Myanmar # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
AA77..AA79 ; Myanmar # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
AA7A ; Myanmar # Lo MYANMAR LETTER AITON RA
AA7B ; Myanmar # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Myanmar # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Myanmar # Mc MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F ; Myanmar # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
-# Total code points: 188
+# Total code points: 223
# ================================================
@@ -1350,8 +1385,9 @@ AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
16A0..16EA ; Runic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EE..16F0 ; Runic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; Runic # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
-# Total code points: 78
+# Total code points: 86
# ================================================
@@ -1457,10 +1493,10 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
# ================================================
-10300..1031E ; Old_Italic # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F ; Old_Italic # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
10320..10323 ; Old_Italic # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
-# Total code points: 35
+# Total code points: 36
# ================================================
@@ -1484,12 +1520,15 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
+1AB0..1ABD ; Inherited # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Inherited # Me COMBINING PARENTHESES OVERLAY
1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; Inherited # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Inherited # Mn VEDIC SIGN TIRYAK
1CF4 ; Inherited # Mn VEDIC TONE CANDRA ABOVE
-1DC0..1DE6 ; Inherited # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9 ; Inherited # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5 ; Inherited # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
1DFC..1DFF ; Inherited # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -1500,15 +1539,16 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
302A..302D ; Inherited # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; Inherited # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D ; Inherited # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; Inherited # Mn COPTIC EPACT THOUSANDS MARK
1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 523
+# Total code points: 563
# ================================================
@@ -1542,7 +1582,7 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
# ================================================
-1900..191C ; Limbu # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E ; Limbu # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1920..1922 ; Limbu # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
1923..1926 ; Limbu # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
1927..1928 ; Limbu # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
@@ -1555,7 +1595,7 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
1944..1945 ; Limbu # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
1946..194F ; Limbu # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
-# Total code points: 66
+# Total code points: 68
# ================================================
@@ -1730,11 +1770,11 @@ A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI
# ================================================
-12000..1236E ; Cuneiform # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462 ; Cuneiform # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12470..12473 ; Cuneiform # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12000..12398 ; Cuneiform # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E ; Cuneiform # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474 ; Cuneiform # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
-# Total code points: 982
+# Total code points: 1037
# ================================================
@@ -1773,8 +1813,7 @@ A874..A877 ; Phags_Pa # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOU
1BA6..1BA7 ; Sundanese # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BA8..1BA9 ; Sundanese # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; Sundanese # Mc SUNDANESE SIGN PAMAAEH
-1BAB ; Sundanese # Mn SUNDANESE SIGN VIRAMA
-1BAC..1BAD ; Sundanese # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD ; Sundanese # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BAE..1BAF ; Sundanese # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BB0..1BB9 ; Sundanese # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
1BBA..1BBF ; Sundanese # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
@@ -1831,9 +1870,9 @@ A8D0..A8D9 ; Saurashtra # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NI
A900..A909 ; Kayah_Li # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
A90A..A925 ; Kayah_Li # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
A926..A92D ; Kayah_Li # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
-A92E..A92F ; Kayah_Li # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A92F ; Kayah_Li # Po KAYAH LI SIGN SHYA
-# Total code points: 48
+# Total code points: 47
# ================================================
@@ -2085,8 +2124,9 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+1107F ; Brahmi # Mn BRAHMI NUMBER JOINER
-# Total code points: 108
+# Total code points: 109
# ================================================
@@ -2141,9 +2181,11 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
111BF..111C0 ; Sharada # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
111C1..111C4 ; Sharada # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
111C5..111C8 ; Sharada # Po [4] SHARADA DANDA..SHARADA SEPARATOR
+111CD ; Sharada # Po SHARADA SUTRA MARK
111D0..111D9 ; Sharada # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA ; Sharada # Lo SHARADA EKAM
-# Total code points: 83
+# Total code points: 85
# ================================================
@@ -2166,4 +2208,244 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
# Total code points: 66
+# ================================================
+
+10530..10563 ; Caucasian_Albanian # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F ; Caucasian_Albanian # Po CAUCASIAN ALBANIAN CITATION MARK
+
+# Total code points: 53
+
+# ================================================
+
+16AD0..16AED ; Bassa_Vah # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4 ; Bassa_Vah # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 ; Bassa_Vah # Po BASSA VAH FULL STOP
+
+# Total code points: 36
+
+# ================================================
+
+1BC00..1BC6A ; Duployan # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; Duployan # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; Duployan # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; Duployan # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C ; Duployan # So DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E ; Duployan # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F ; Duployan # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+
+# Total code points: 143
+
+# ================================================
+
+10500..10527 ; Elbasan # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+
+# Total code points: 40
+
+# ================================================
+
+11301 ; Grantha # Mn GRANTHA SIGN CANDRABINDU
+11302..11303 ; Grantha # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C ; Grantha # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; Grantha # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; Grantha # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; Grantha # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; Grantha # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; Grantha # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133C ; Grantha # Mn GRANTHA SIGN NUKTA
+1133D ; Grantha # Lo GRANTHA SIGN AVAGRAHA
+1133E..1133F ; Grantha # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; Grantha # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; Grantha # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; Grantha # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; Grantha # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357 ; Grantha # Mc GRANTHA AU LENGTH MARK
+1135D..11361 ; Grantha # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363 ; Grantha # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; Grantha # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; Grantha # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+
+# Total code points: 83
+
+# ================================================
+
+16B00..16B2F ; Pahawh_Hmong # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36 ; Pahawh_Hmong # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3B ; Pahawh_Hmong # Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F ; Pahawh_Hmong # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43 ; Pahawh_Hmong # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44 ; Pahawh_Hmong # Po PAHAWH HMONG SIGN XAUS
+16B45 ; Pahawh_Hmong # So PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59 ; Pahawh_Hmong # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61 ; Pahawh_Hmong # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77 ; Pahawh_Hmong # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; Pahawh_Hmong # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+
+# Total code points: 127
+
+# ================================================
+
+11200..11211 ; Khojki # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; Khojki # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E ; Khojki # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; Khojki # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; Khojki # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; Khojki # Mn KHOJKI SIGN ANUSVARA
+11235 ; Khojki # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; Khojki # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D ; Khojki # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+
+# Total code points: 61
+
+# ================================================
+
+10600..10736 ; Linear_A # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; Linear_A # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; Linear_A # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+
+# Total code points: 341
+
+# ================================================
+
+11150..11172 ; Mahajani # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173 ; Mahajani # Mn MAHAJANI SIGN NUKTA
+11174..11175 ; Mahajani # Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176 ; Mahajani # Lo MAHAJANI LIGATURE SHRI
+
+# Total code points: 39
+
+# ================================================
+
+10AC0..10AC7 ; Manichaean # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8 ; Manichaean # So MANICHAEAN SIGN UD
+10AC9..10AE4 ; Manichaean # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6 ; Manichaean # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF ; Manichaean # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6 ; Manichaean # Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+
+# Total code points: 51
+
+# ================================================
+
+1E800..1E8C4 ; Mende_Kikakui # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF ; Mende_Kikakui # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; Mende_Kikakui # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+
+# Total code points: 213
+
+# ================================================
+
+11600..1162F ; Modi # Lo [48] MODI LETTER A..MODI LETTER LLA
+11630..11632 ; Modi # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; Modi # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; Modi # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; Modi # Mn MODI SIGN ANUSVARA
+1163E ; Modi # Mc MODI SIGN VISARGA
+1163F..11640 ; Modi # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643 ; Modi # Po [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644 ; Modi # Lo MODI SIGN HUVA
+11650..11659 ; Modi # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+
+# Total code points: 79
+
+# ================================================
+
+16A40..16A5E ; Mro # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69 ; Mro # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F ; Mro # Po [2] MRO DANDA..MRO DOUBLE DANDA
+
+# Total code points: 43
+
+# ================================================
+
+10A80..10A9C ; Old_North_Arabian # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; Old_North_Arabian # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+10880..1089E ; Nabataean # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF ; Nabataean # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+
+# Total code points: 40
+
+# ================================================
+
+10860..10876 ; Palmyrene # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878 ; Palmyrene # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F ; Palmyrene # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+
+# Total code points: 32
+
+# ================================================
+
+11AC0..11AF8 ; Pau_Cin_Hau # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+
+# Total code points: 57
+
+# ================================================
+
+10350..10375 ; Old_Permic # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A ; Old_Permic # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+
+# Total code points: 43
+
+# ================================================
+
+10B80..10B91 ; Psalter_Pahlavi # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C ; Psalter_Pahlavi # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF ; Psalter_Pahlavi # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+
+# Total code points: 29
+
+# ================================================
+
+11580..115AE ; Siddham # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1 ; Siddham # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; Siddham # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; Siddham # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; Siddham # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; Siddham # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; Siddham # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115C9 ; Siddham # Po [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+
+# Total code points: 72
+
+# ================================================
+
+112B0..112DE ; Khudawadi # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF ; Khudawadi # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; Khudawadi # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; Khudawadi # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9 ; Khudawadi # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+
+# Total code points: 69
+
+# ================================================
+
+11480..114AF ; Tirhuta # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2 ; Tirhuta # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; Tirhuta # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; Tirhuta # Mc TIRHUTA VOWEL SIGN E
+114BA ; Tirhuta # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; Tirhuta # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; Tirhuta # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; Tirhuta # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; Tirhuta # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5 ; Tirhuta # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6 ; Tirhuta # Po TIRHUTA ABBREVIATION SIGN
+114C7 ; Tirhuta # Lo TIRHUTA OM
+114D0..114D9 ; Tirhuta # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+
+# Total code points: 82
+
+# ================================================
+
+118A0..118DF ; Warang_Citi # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9 ; Warang_Citi # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2 ; Warang_Citi # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF ; Warang_Citi # Lo WARANG CITI OM
+
+# Total code points: 84
+
# EOF
diff --git a/util/unicode/data/SentenceBreakProperty.txt b/util/unicode/data/SentenceBreakProperty.txt
index d714d59d3a..19752103f9 100644
--- a/util/unicode/data/SentenceBreakProperty.txt
+++ b/util/unicode/data/SentenceBreakProperty.txt
@@ -1,8 +1,8 @@
-# SentenceBreakProperty-6.3.0.txt
-# Date: 2013-09-25, 18:59:01 GMT [MD]
+# SentenceBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:38 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
@@ -53,8 +53,7 @@
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE ; Extend # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902 ; Extend # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902 ; Extend # Mn [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
093B ; Extend # Mc DEVANAGARI VOWEL SIGN OOE
@@ -117,6 +116,7 @@
0BCA..0BCC ; Extend # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
0BCD ; Extend # Mn TAMIL SIGN VIRAMA
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
+0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Extend # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Extend # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -124,6 +124,7 @@
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81 ; Extend # Mn KANNADA SIGN CANDRABINDU
0C82..0C83 ; Extend # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0CBC ; Extend # Mn KANNADA SIGN NUKTA
0CBE ; Extend # Mc KANNADA VOWEL SIGN AA
@@ -135,6 +136,7 @@
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01 ; Extend # Mn MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3E..0D40 ; Extend # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
@@ -231,6 +233,8 @@
1A6D..1A72 ; Extend # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
1A73..1A7C ; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B04 ; Extend # Mc BALINESE SIGN BISAH
1B34 ; Extend # Mn BALINESE SIGN REREKAN
@@ -249,8 +253,7 @@
1BA6..1BA7 ; Extend # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; Extend # Mc SUNDANESE SIGN PAMAAEH
-1BAB ; Extend # Mn SUNDANESE SIGN VIRAMA
-1BAC..1BAD ; Extend # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD ; Extend # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; Extend # Mn BATAK SIGN TOMPI
1BE7 ; Extend # Mc BATAK VOWEL SIGN E
1BE8..1BE9 ; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
@@ -270,7 +273,8 @@
1CED ; Extend # Mn VEDIC SIGN TIRYAK
1CF2..1CF3 ; Extend # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
-1DC0..1DE6 ; Extend # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5 ; Extend # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
1DFC..1DFF ; Extend # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -310,6 +314,7 @@ A9B6..A9B9 ; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN
A9BA..A9BB ; Extend # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
A9BC ; Extend # Mn JAVANESE VOWEL SIGN PEPET
A9BD..A9C0 ; Extend # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9E5 ; Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA2F..AA30 ; Extend # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -319,6 +324,8 @@ AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
AA4D ; Extend # Mc CHAM CONSONANT SIGN FINAL H
AA7B ; Extend # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Extend # Mc MYANMAR SIGN TAI LAING TONE-5
AAB0 ; Extend # Mn TAI VIET MAI KANG
AAB2..AAB4 ; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -338,19 +345,22 @@ ABEC ; Extend # Mc MEETEI MAYEK LUM IYEK
ABED ; Extend # Mn MEETEI MAYEK APUN IYEK
FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; Extend # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D ; Extend # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; Extend # Mn COPTIC EPACT THOUSANDS MARK
+10376..1037A ; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; Extend # Mn KHAROSHTHI VIRAMA
+10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11002 ; Extend # Mc BRAHMI SIGN VISARGA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081 ; Extend # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
11082 ; Extend # Mc KAITHI SIGN VISARGA
110B0..110B2 ; Extend # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -360,11 +370,53 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112C ; Extend # Mc CHAKMA VOWEL SIGN E
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173 ; Extend # Mn MAHAJANI SIGN NUKTA
11180..11181 ; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
11182 ; Extend # Mc SHARADA SIGN VISARGA
111B3..111B5 ; Extend # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111B6..111BE ; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111BF..111C0 ; Extend # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E ; Extend # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; Extend # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
+11235 ; Extend # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301 ; Extend # Mn GRANTHA SIGN CANDRABINDU
+11302..11303 ; Extend # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133C ; Extend # Mn GRANTHA SIGN NUKTA
+1133E..1133F ; Extend # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; Extend # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; Extend # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; Extend # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; Extend # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357 ; Extend # Mc GRANTHA AU LENGTH MARK
+11362..11363 ; Extend # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0..114B2 ; Extend # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; Extend # Mc TIRHUTA VOWEL SIGN E
+114BA ; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; Extend # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; Extend # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1 ; Extend # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; Extend # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; Extend # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11630..11632 ; Extend # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; Extend # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; Extend # Mn MODI SIGN ANUSVARA
+1163E ; Extend # Mc MODI SIGN VISARGA
+1163F..11640 ; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; Extend # Mn TAKRI SIGN ANUSVARA
116AC ; Extend # Mc TAKRI SIGN VISARGA
116AD ; Extend # Mn TAKRI VOWEL SIGN AA
@@ -372,8 +424,11 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; Extend # Mc TAKRI SIGN VIRAMA
116B7 ; Extend # Mn TAKRI SIGN NUKTA
+16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F51..16F7E ; Extend # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -381,9 +436,10 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1649
+# Total code points: 1834
# ================================================
@@ -396,7 +452,7 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# ================================================
00AD ; Format # Cf SOFT HYPHEN
-0600..0604 ; Format # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605 ; Format # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Format # Cf ARABIC LETTER MARK
06DD ; Format # Cf ARABIC END OF AYAH
070F ; Format # Cf SYRIAC ABBREVIATION MARK
@@ -409,11 +465,12 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
110BD ; Format # Cf KAITHI NUMBER SIGN
+1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Format # Cf LANGUAGE TAG
E0020..E007F ; Format # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 143
+# Total code points: 148
# ================================================
@@ -702,6 +759,10 @@ E0020..E007F ; Format # Cf [96] TAG SPACE..CANCEL TAG
0523 ; Lower # L& CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
0525 ; Lower # L& CYRILLIC SMALL LETTER PE WITH DESCENDER
0527 ; Lower # L& CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0529 ; Lower # L& CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052B ; Lower # L& CYRILLIC SMALL LETTER DZZHE
+052D ; Lower # L& CYRILLIC SMALL LETTER DCHE
+052F ; Lower # L& CYRILLIC SMALL LETTER EL WITH DESCENDER
0561..0587 ; Lower # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
1D00..1D2B ; Lower # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; Lower # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
@@ -969,6 +1030,9 @@ A691 ; Lower # L& CYRILLIC SMALL LETTER TSSE
A693 ; Lower # L& CYRILLIC SMALL LETTER TCHE
A695 ; Lower # L& CYRILLIC SMALL LETTER HWE
A697 ; Lower # L& CYRILLIC SMALL LETTER SHWE
+A699 ; Lower # L& CYRILLIC SMALL LETTER DOUBLE O
+A69B ; Lower # L& CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; Lower # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A723 ; Lower # L& LATIN SMALL LETTER EGYPTOLOGICAL ALEF
A725 ; Lower # L& LATIN SMALL LETTER EGYPTOLOGICAL AIN
A727 ; Lower # L& LATIN SMALL LETTER HENG
@@ -1019,7 +1083,12 @@ A787 ; Lower # L& LATIN SMALL LETTER INSULAR T
A78C ; Lower # L& LATIN SMALL LETTER SALTILLO
A78E ; Lower # L& LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A791 ; Lower # L& LATIN SMALL LETTER N WITH DESCENDER
-A793 ; Lower # L& LATIN SMALL LETTER C WITH BAR
+A793..A795 ; Lower # L& [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK
+A797 ; Lower # L& LATIN SMALL LETTER B WITH FLOURISH
+A799 ; Lower # L& LATIN SMALL LETTER F WITH STROKE
+A79B ; Lower # L& LATIN SMALL LETTER VOLAPUK AE
+A79D ; Lower # L& LATIN SMALL LETTER VOLAPUK OE
+A79F ; Lower # L& LATIN SMALL LETTER VOLAPUK UE
A7A1 ; Lower # L& LATIN SMALL LETTER G WITH OBLIQUE STROKE
A7A3 ; Lower # L& LATIN SMALL LETTER K WITH OBLIQUE STROKE
A7A5 ; Lower # L& LATIN SMALL LETTER N WITH OBLIQUE STROKE
@@ -1027,10 +1096,14 @@ A7A7 ; Lower # L& LATIN SMALL LETTER R WITH OBLIQUE STROKE
A7A9 ; Lower # L& LATIN SMALL LETTER S WITH OBLIQUE STROKE
A7F8..A7F9 ; Lower # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Lower # L& LATIN LETTER SMALL CAPITAL TURNED M
+AB30..AB5A ; Lower # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F ; Lower # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65 ; Lower # L& [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
FB00..FB06 ; Lower # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Lower # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
10428..1044F ; Lower # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+118C0..118DF ; Lower # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
1D41A..1D433 ; Lower # L& [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
1D44E..1D454 ; Lower # L& [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
1D456..1D467 ; Lower # L& [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
@@ -1060,7 +1133,7 @@ FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
1D7C4..1D7C9 ; Lower # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
1D7CB ; Lower # L& MATHEMATICAL BOLD SMALL DIGAMMA
-# Total code points: 1933
+# Total code points: 2029
# ================================================
@@ -1211,6 +1284,7 @@ FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0370 ; Upper # L& GREEK CAPITAL LETTER HETA
0372 ; Upper # L& GREEK CAPITAL LETTER ARCHAIC SAMPI
0376 ; Upper # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F ; Upper # L& GREEK CAPITAL LETTER YOT
0386 ; Upper # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0388..038A ; Upper # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
038C ; Upper # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -1330,6 +1404,10 @@ FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0522 ; Upper # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524 ; Upper # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526 ; Upper # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528 ; Upper # L& CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A ; Upper # L& CYRILLIC CAPITAL LETTER DZZHE
+052C ; Upper # L& CYRILLIC CAPITAL LETTER DCHE
+052E ; Upper # L& CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531..0556 ; Upper # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
10A0..10C5 ; Upper # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
10C7 ; Upper # L& GEORGIAN CAPITAL LETTER YN
@@ -1589,6 +1667,8 @@ A690 ; Upper # L& CYRILLIC CAPITAL LETTER TSSE
A692 ; Upper # L& CYRILLIC CAPITAL LETTER TCHE
A694 ; Upper # L& CYRILLIC CAPITAL LETTER HWE
A696 ; Upper # L& CYRILLIC CAPITAL LETTER SHWE
+A698 ; Upper # L& CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; Upper # L& CYRILLIC CAPITAL LETTER CROSSED O
A722 ; Upper # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724 ; Upper # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726 ; Upper # L& LATIN CAPITAL LETTER HENG
@@ -1638,14 +1718,21 @@ A78B ; Upper # L& LATIN CAPITAL LETTER SALTILLO
A78D ; Upper # L& LATIN CAPITAL LETTER TURNED H
A790 ; Upper # L& LATIN CAPITAL LETTER N WITH DESCENDER
A792 ; Upper # L& LATIN CAPITAL LETTER C WITH BAR
+A796 ; Upper # L& LATIN CAPITAL LETTER B WITH FLOURISH
+A798 ; Upper # L& LATIN CAPITAL LETTER F WITH STROKE
+A79A ; Upper # L& LATIN CAPITAL LETTER VOLAPUK AE
+A79C ; Upper # L& LATIN CAPITAL LETTER VOLAPUK OE
+A79E ; Upper # L& LATIN CAPITAL LETTER VOLAPUK UE
A7A0 ; Upper # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2 ; Upper # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4 ; Upper # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6 ; Upper # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8 ; Upper # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-A7AA ; Upper # L& LATIN CAPITAL LETTER H WITH HOOK
+A7AA..A7AD ; Upper # L& [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1 ; Upper # L& [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
10400..10427 ; Upper # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+118A0..118BF ; Upper # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
1D400..1D419 ; Upper # L& [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
1D434..1D44D ; Upper # L& [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
1D468..1D481 ; Upper # L& [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
@@ -1677,8 +1764,11 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1D756..1D76E ; Upper # L& [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
1D790..1D7A8 ; Upper # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7CA ; Upper # L& MATHEMATICAL BOLD CAPITAL DIGAMMA
+1F130..1F149 ; Upper # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169 ; Upper # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189 ; Upper # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 1514
+# Total code points: 1641
# ================================================
@@ -1716,15 +1806,13 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
0824 ; OLetter # Lm SAMARITAN MODIFIER LETTER SHORT A
0828 ; OLetter # Lm SAMARITAN MODIFIER LETTER I
0840..0858 ; OLetter # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0 ; OLetter # Lo ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC ; OLetter # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2 ; OLetter # Lo [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
0904..0939 ; OLetter # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093D ; OLetter # Lo DEVANAGARI SIGN AVAGRAHA
0950 ; OLetter # Lo DEVANAGARI OM
0958..0961 ; OLetter # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0971 ; OLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977 ; OLetter # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F ; OLetter # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980 ; OLetter # Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
0985..098C ; OLetter # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
098F..0990 ; OLetter # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
0993..09A8 ; OLetter # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -1779,8 +1867,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
0C05..0C0C ; OLetter # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0E..0C10 ; OLetter # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; OLetter # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33 ; OLetter # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39 ; OLetter # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39 ; OLetter # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; OLetter # Lo TELUGU SIGN AVAGRAHA
0C58..0C59 ; OLetter # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
0C60..0C61 ; OLetter # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -1864,6 +1951,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1681..169A ; OLetter # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
16A0..16EA ; OLetter # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EE..16F0 ; OLetter # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; OLetter # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
1700..170C ; OLetter # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
170E..1711 ; OLetter # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
1720..1731 ; OLetter # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -1879,7 +1967,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1880..18A8 ; OLetter # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
18AA ; OLetter # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
18B0..18F5 ; OLetter # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C ; OLetter # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E ; OLetter # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1950..196D ; OLetter # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
1970..1974 ; OLetter # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
1980..19AB ; OLetter # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
@@ -1949,6 +2037,7 @@ A6A0..A6E5 ; OLetter # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
A6E6..A6EF ; OLetter # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
A717..A71F ; OLetter # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
A788 ; OLetter # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A7F7 ; OLetter # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7FB..A801 ; OLetter # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
A803..A805 ; OLetter # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
A807..A80A ; OLetter # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
@@ -1962,6 +2051,10 @@ A930..A946 ; OLetter # Lo [23] REJANG LETTER KA..REJANG LETTER A
A960..A97C ; OLetter # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
A984..A9B2 ; OLetter # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
A9CF ; OLetter # Lm JAVANESE PANGRANGKEP
+A9E0..A9E4 ; OLetter # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E6 ; OLetter # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF ; OLetter # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9FA..A9FE ; OLetter # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
AA00..AA28 ; OLetter # Lo [41] CHAM LETTER A..CHAM LETTER HA
AA40..AA42 ; OLetter # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
AA44..AA4B ; OLetter # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
@@ -1969,7 +2062,7 @@ AA60..AA6F ; OLetter # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAM
AA70 ; OLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
AA71..AA76 ; OLetter # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
AA7A ; OLetter # Lo MYANMAR LETTER AITON RA
-AA80..AAAF ; OLetter # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AA7E..AAAF ; OLetter # Lo [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
AAB1 ; OLetter # Lo TAI VIET VOWEL AA
AAB5..AAB6 ; OLetter # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
AAB9..AABD ; OLetter # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
@@ -2023,22 +2116,30 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10140..10174 ; OLetter # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
10280..1029C ; OLetter # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
102A0..102D0 ; OLetter # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E ; OLetter # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F ; OLetter # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
10330..10340 ; OLetter # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
10341 ; OLetter # Nl GOTHIC LETTER NINETY
10342..10349 ; OLetter # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
1034A ; OLetter # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375 ; OLetter # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
10380..1039D ; OLetter # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
103A0..103C3 ; OLetter # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
103C8..103CF ; OLetter # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
103D1..103D5 ; OLetter # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
10450..1049D ; OLetter # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527 ; OLetter # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; OLetter # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736 ; OLetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; OLetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; OLetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
10800..10805 ; OLetter # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; OLetter # Lo CYPRIOT SYLLABLE JO
1080A..10835 ; OLetter # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
10837..10838 ; OLetter # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
1083C ; OLetter # Lo CYPRIOT SYLLABLE ZA
1083F..10855 ; OLetter # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876 ; OLetter # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E ; OLetter # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
10900..10915 ; OLetter # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
10920..10939 ; OLetter # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
10980..109B7 ; OLetter # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -2048,25 +2149,62 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10A15..10A17 ; OLetter # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A19..10A33 ; OLetter # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
10A60..10A7C ; OLetter # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C ; OLetter # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7 ; OLetter # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4 ; OLetter # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
10B00..10B35 ; OLetter # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
10B40..10B55 ; OLetter # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
10B60..10B72 ; OLetter # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91 ; OLetter # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
10C00..10C48 ; OLetter # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
11003..11037 ; OLetter # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11083..110AF ; OLetter # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; OLetter # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
11103..11126 ; OLetter # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172 ; OLetter # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176 ; OLetter # Lo MAHAJANI LIGATURE SHRI
11183..111B2 ; OLetter # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
111C1..111C4 ; OLetter # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA ; OLetter # Lo SHARADA EKAM
+11200..11211 ; OLetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; OLetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE ; OLetter # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C ; OLetter # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; OLetter # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; OLetter # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; OLetter # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; OLetter # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; OLetter # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D ; OLetter # Lo GRANTHA SIGN AVAGRAHA
+1135D..11361 ; OLetter # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF ; OLetter # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5 ; OLetter # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7 ; OLetter # Lo TIRHUTA OM
+11580..115AE ; OLetter # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F ; OLetter # Lo [48] MODI LETTER A..MODI LETTER LLA
+11644 ; OLetter # Lo MODI SIGN HUVA
11680..116AA ; OLetter # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E ; OLetter # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462 ; OLetter # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118FF ; OLetter # Lo WARANG CITI OM
+11AC0..11AF8 ; OLetter # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398 ; OLetter # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E ; OLetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
13000..1342E ; OLetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
16800..16A38 ; OLetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E ; OLetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED ; OLetter # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F ; OLetter # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43 ; OLetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77 ; OLetter # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; OLetter # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16F00..16F44 ; OLetter # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
16F50 ; OLetter # Lo MIAO LETTER NASALIZATION
16F93..16F9F ; OLetter # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
1B000..1B001 ; OLetter # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1BC00..1BC6A ; OLetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; OLetter # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; OLetter # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; OLetter # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1E800..1E8C4 ; OLetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1EE00..1EE03 ; OLetter # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; OLetter # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; OLetter # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2105,7 +2243,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
2B740..2B81D ; OLetter # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2F800..2FA1D ; OLetter # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 97841
+# Total code points: 99420
# ================================================
@@ -2123,6 +2261,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
0C66..0C6F ; Numeric # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
0CE6..0CEF ; Numeric # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0D66..0D6F ; Numeric # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF ; Numeric # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
0E50..0E59 ; Numeric # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
0ED0..0ED9 ; Numeric # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0F20..0F29 ; Numeric # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -2142,6 +2281,7 @@ A620..A629 ; Numeric # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
A8D0..A8D9 ; Numeric # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
A900..A909 ; Numeric # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
A9D0..A9D9 ; Numeric # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9 ; Numeric # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
AA50..AA59 ; Numeric # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
@@ -2149,10 +2289,16 @@ ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT N
110F0..110F9 ; Numeric # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11136..1113F ; Numeric # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
111D0..111D9 ; Numeric # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9 ; Numeric # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9 ; Numeric # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659 ; Numeric # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
116C0..116C9 ; Numeric # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9 ; Numeric # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-# Total code points: 452
+# Total code points: 532
# ================================================
@@ -2167,8 +2313,6 @@ FF0E ; ATerm # Po FULLWIDTH FULL STOP
0021 ; STerm # Po EXCLAMATION MARK
003F ; STerm # Po QUESTION MARK
-055C ; STerm # Po ARMENIAN EXCLAMATION MARK
-055E ; STerm # Po ARMENIAN QUESTION MARK
0589 ; STerm # Po ARMENIAN FULL STOP
061F ; STerm # Po ARABIC QUESTION MARK
06D4 ; STerm # Po ARABIC FULL STOP
@@ -2191,6 +2335,7 @@ FF0E ; ATerm # Po FULLWIDTH FULL STOP
203C..203D ; STerm # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
2047..2049 ; STerm # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
2E2E ; STerm # Po REVERSED QUESTION MARK
+2E3C ; STerm # Po STENOGRAPHIC FULL STOP
3002 ; STerm # Po IDEOGRAPHIC FULL STOP
A4FF ; STerm # Po LISU PUNCTUATION FULL STOP
A60E..A60F ; STerm # Po [2] VAI FULL STOP..VAI QUESTION MARK
@@ -2212,8 +2357,19 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
110BE..110C1 ; STerm # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
11141..11143 ; STerm # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
111C5..111C6 ; STerm # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
+111CD ; STerm # Po SHARADA SUTRA MARK
+11238..11239 ; STerm # Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123B..1123C ; STerm # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+115C2..115C3 ; STerm # Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C9 ; STerm # Po SIDDHAM END OF TEXT MARK
+11641..11642 ; STerm # Po [2] MODI DANDA..MODI DOUBLE DANDA
+16A6E..16A6F ; STerm # Po [2] MRO DANDA..MRO DOUBLE DANDA
+16AF5 ; STerm # Po BASSA VAH FULL STOP
+16B37..16B38 ; STerm # Po [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B44 ; STerm # Po PAHAWH HMONG SIGN XAUS
+1BC9F ; STerm # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
-# Total code points: 80
+# Total code points: 96
# ================================================
@@ -2254,7 +2410,7 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
230B ; Close # Pe RIGHT FLOOR
2329 ; Close # Ps LEFT-POINTING ANGLE BRACKET
232A ; Close # Pe RIGHT-POINTING ANGLE BRACKET
-275B..275E ; Close # So [4] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275B..2760 ; Close # So [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
2768 ; Close # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
2769 ; Close # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
276A ; Close # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
@@ -2332,6 +2488,7 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
2E27 ; Close # Pe RIGHT SIDEWAYS U BRACKET
2E28 ; Close # Ps LEFT DOUBLE PARENTHESIS
2E29 ; Close # Pe RIGHT DOUBLE PARENTHESIS
+2E42 ; Close # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
3008 ; Close # Ps LEFT ANGLE BRACKET
3009 ; Close # Pe RIGHT ANGLE BRACKET
300A ; Close # Ps LEFT DOUBLE ANGLE BRACKET
@@ -2352,8 +2509,8 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
301B ; Close # Pe RIGHT WHITE SQUARE BRACKET
301D ; Close # Ps REVERSED DOUBLE PRIME QUOTATION MARK
301E..301F ; Close # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-FD3E ; Close # Ps ORNATE LEFT PARENTHESIS
-FD3F ; Close # Pe ORNATE RIGHT PARENTHESIS
+FD3E ; Close # Pe ORNATE LEFT PARENTHESIS
+FD3F ; Close # Ps ORNATE RIGHT PARENTHESIS
FE17 ; Close # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
FE18 ; Close # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
FE35 ; Close # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
@@ -2390,8 +2547,9 @@ FF5F ; Close # Ps FULLWIDTH LEFT WHITE PARENTHESIS
FF60 ; Close # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
FF62 ; Close # Ps HALFWIDTH LEFT CORNER BRACKET
FF63 ; Close # Pe HALFWIDTH RIGHT CORNER BRACKET
+1F676..1F678 ; Close # So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-# Total code points: 181
+# Total code points: 187
# ================================================
diff --git a/util/unicode/data/SpecialCasing.txt b/util/unicode/data/SpecialCasing.txt
index 016a756eb0..43645bd2d1 100644
--- a/util/unicode/data/SpecialCasing.txt
+++ b/util/unicode/data/SpecialCasing.txt
@@ -1,18 +1,25 @@
-# SpecialCasing-6.3.0.txt
-# Date: 2013-05-08, 13:54:51 GMT [MD]
+# SpecialCasing-7.0.0.txt
+# Date: 2014-03-18, 07:18:02 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
-# Special Casing Properties
+# Special Casing
#
-# This file is a supplement to the UnicodeData file.
-# It contains additional information about the casing of Unicode characters.
-# (For compatibility, the UnicodeData.txt file only contains case mappings for
-# characters where they are 1-1, and independent of context and language.
-# For more information, see the discussion of Case Mappings in the Unicode Standard.
+# This file is a supplement to the UnicodeData.txt file. It does not define any
+# properties, but rather provides additional information about the casing of
+# Unicode characters, for situations when casing incurs a change in string length
+# or is dependent on context or locale. For compatibility, the UnicodeData.txt
+# file only contains simple case mappings for characters where they are one-to-one
+# and independent of context and language. The data in this file, combined with
+# the simple case mappings in UnicodeData.txt, defines the full case mappings
+# Lowercase_Mapping (lc), Titlecase_Mapping (tc), and Uppercase_Mapping (uc).
+#
+# Note that the preferred mechanism for defining tailored casing operations is
+# the Unicode Common Locale Data Repository (CLDR). For more information, see the
+# discussion of case mappings and case algorithms in the Unicode Standard.
#
# All code points not listed in this file that do not have a simple case mappings
# in UnicodeData.txt map to themselves.
@@ -21,16 +28,17 @@
# ================================================================================
# The entries in this file are in the following machine-readable format:
#
-# <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)? # <comment>
+# <code>; <lower>; <title>; <upper>; (<condition_list>;)? # <comment>
#
-# <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more
-# than one character, they are separated by spaces. Other than as used to separate
-# elements, spaces are to be ignored.
+# <code>, <lower>, <title>, and <upper> provide the respective full case mappings
+# of <code>, expressed as character values in hex. If there is more than one character,
+# they are separated by spaces. Other than as used to separate elements, spaces are
+# to be ignored.
#
# The <condition_list> is optional. Where present, it consists of one or more language IDs
-# or contexts, separated by spaces. In these conditions:
+# or casing contexts, separated by spaces. In these conditions:
# - A condition list overrides the normal behavior if all of the listed conditions are true.
-# - The context is always the context of the characters in the original string,
+# - The casing context is always the context of the characters in the original string,
# NOT in the resulting string.
# - Case distinctions in the condition list are not significant.
# - Conditions preceded by "Not_" represent the negation of the condition.
@@ -38,18 +46,14 @@
#
# A language ID is defined by BCP 47, with '-' and '_' treated equivalently.
#
-# A context for a character C is defined by Section 3.13 Default Case
-# Algorithms, of The Unicode Standard, Version 6.3.
-# (This is identical to the context defined by Unicode 4.1.0,
-# as specified in http://www.unicode.org/versions/Unicode4.1.0/)
+# A casing context for a character is defined by Section 3.13 Default Case Algorithms
+# of The Unicode Standard.
#
# Parsers of this file must be prepared to deal with future additions to this format:
# * Additional contexts
# * Additional fields
# ================================================================================
-# @missing: 0000..10FFFF; <slc>; <stc>; <suc>;
-
# ================================================================================
# Unconditional mappings
# ================================================================================
@@ -114,7 +118,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# This process can be achieved by first transforming the text to NFC before casing.
# E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA>
-# The following cases are already in the UnicodeData file, so are only commented here.
+# The following cases are already in the UnicodeData.txt file, so are only commented here.
# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI
@@ -205,7 +209,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA
-# Note: the following cases for non-final are already in the UnicodeData file.
+# Note: the following cases for non-final are already in the UnicodeData.txt file.
# 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA
# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA
@@ -268,7 +272,7 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I
0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I
-# Note: the following case is already in the UnicodeData file.
+# Note: the following case is already in the UnicodeData.txt file.
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
diff --git a/util/unicode/data/UnicodeData.txt b/util/unicode/data/UnicodeData.txt
index 9fffa71a1e..31c8a7eaa0 100644
--- a/util/unicode/data/UnicodeData.txt
+++ b/util/unicode/data/UnicodeData.txt
@@ -602,12 +602,12 @@
0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
-025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;A7AB;;A7AB
025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
-0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;A7AC;;A7AC
0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
@@ -618,7 +618,7 @@
0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
-026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;A7AD;;A7AD
026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
@@ -645,7 +645,7 @@
0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
-0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;A7B1;;A7B1
0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
@@ -668,7 +668,7 @@
029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
-029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;A7B0;;A7B0
029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
@@ -891,6 +891,7 @@
037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;;;;
+037F;GREEK CAPITAL LETTER YOT;Lu;0;L;;;;;N;;;;03F3;
0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
@@ -999,7 +1000,7 @@
03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
-03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;037F;;037F
03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
@@ -1308,6 +1309,14 @@
0525;CYRILLIC SMALL LETTER PE WITH DESCENDER;Ll;0;L;;;;;N;;;0524;;0524
0526;CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER;Lu;0;L;;;;;N;;;;0527;
0527;CYRILLIC SMALL LETTER SHHA WITH DESCENDER;Ll;0;L;;;;;N;;;0526;;0526
+0528;CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK;Lu;0;L;;;;;N;;;;0529;
+0529;CYRILLIC SMALL LETTER EN WITH LEFT HOOK;Ll;0;L;;;;;N;;;0528;;0528
+052A;CYRILLIC CAPITAL LETTER DZZHE;Lu;0;L;;;;;N;;;;052B;
+052B;CYRILLIC SMALL LETTER DZZHE;Ll;0;L;;;;;N;;;052A;;052A
+052C;CYRILLIC CAPITAL LETTER DCHE;Lu;0;L;;;;;N;;;;052D;
+052D;CYRILLIC SMALL LETTER DCHE;Ll;0;L;;;;;N;;;052C;;052C
+052E;CYRILLIC CAPITAL LETTER EL WITH DESCENDER;Lu;0;L;;;;;N;;;;052F;
+052F;CYRILLIC SMALL LETTER EL WITH DESCENDER;Ll;0;L;;;;;N;;;052E;;052E
0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
@@ -1394,6 +1403,8 @@
0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+058D;RIGHT-FACING ARMENIAN ETERNITY SIGN;So;0;ON;;;;;N;;;;;
+058E;LEFT-FACING ARMENIAN ETERNITY SIGN;So;0;ON;;;;;N;;;;;
058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;;
0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
@@ -1487,6 +1498,7 @@
0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;;
+0605;ARABIC NUMBER MARK ABOVE;Cf;0;AN;;;;;N;;;;;
0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
@@ -2061,6 +2073,7 @@
085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;;
085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;;
08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+08A1;ARABIC LETTER BEH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
@@ -2072,6 +2085,12 @@
08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;;
08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;;
08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;;
+08AD;ARABIC LETTER LOW ALEF;Lo;0;AL;;;;;N;;;;;
+08AE;ARABIC LETTER DAL WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+08AF;ARABIC LETTER SAD WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+08B0;ARABIC LETTER GAF WITH INVERTED STROKE;Lo;0;AL;;;;;N;;;;;
+08B1;ARABIC LETTER STRAIGHT WAW;Lo;0;AL;;;;;N;;;;;
+08B2;ARABIC LETTER ZAIN WITH INVERTED V ABOVE;Lo;0;AL;;;;;N;;;;;
08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;;
08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;;
08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;;
@@ -2099,6 +2118,7 @@
08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FF;ARABIC MARK SIDEWAYS NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
@@ -2219,6 +2239,7 @@
0975;DEVANAGARI LETTER AW;Lo;0;L;;;;;N;;;;;
0976;DEVANAGARI LETTER UE;Lo;0;L;;;;;N;;;;;
0977;DEVANAGARI LETTER UUE;Lo;0;L;;;;;N;;;;;
+0978;DEVANAGARI LETTER MARWARI DDA;Lo;0;L;;;;;N;;;;;
0979;DEVANAGARI LETTER ZHA;Lo;0;L;;;;;N;;;;;
097A;DEVANAGARI LETTER HEAVY YA;Lo;0;L;;;;;N;;;;;
097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
@@ -2226,6 +2247,7 @@
097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0980;BENGALI ANJI;Lo;0;L;;;;;N;;;;;
0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2643,6 +2665,7 @@
0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;;;;
0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;;;;
+0C00;TELUGU SIGN COMBINING CANDRABINDU ABOVE;Mn;0;NSM;;;;;N;;;;;
0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2690,6 +2713,7 @@
0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C34;TELUGU LETTER LLLA;Lo;0;L;;;;;N;;;;;
0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
@@ -2736,6 +2760,7 @@
0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;;
+0C81;KANNADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
@@ -2822,6 +2847,7 @@
0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
@@ -2997,6 +3023,16 @@
0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DE6;SINHALA LITH DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0DE7;SINHALA LITH DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0DE8;SINHALA LITH DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0DE9;SINHALA LITH DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0DEA;SINHALA LITH DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0DEB;SINHALA LITH DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0DEC;SINHALA LITH DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0DED;SINHALA LITH DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0DEE;SINHALA LITH DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0DEF;SINHALA LITH DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
@@ -5088,6 +5124,14 @@
16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;;;;
16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;;;;
16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;;;;
+16F1;RUNIC LETTER K;Lo;0;L;;;;;N;;;;;
+16F2;RUNIC LETTER SH;Lo;0;L;;;;;N;;;;;
+16F3;RUNIC LETTER OO;Lo;0;L;;;;;N;;;;;
+16F4;RUNIC LETTER FRANKS CASKET OS;Lo;0;L;;;;;N;;;;;
+16F5;RUNIC LETTER FRANKS CASKET IS;Lo;0;L;;;;;N;;;;;
+16F6;RUNIC LETTER FRANKS CASKET EH;Lo;0;L;;;;;N;;;;;
+16F7;RUNIC LETTER FRANKS CASKET AC;Lo;0;L;;;;;N;;;;;
+16F8;RUNIC LETTER FRANKS CASKET AESC;Lo;0;L;;;;;N;;;;;
1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
@@ -5538,6 +5582,8 @@
191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
+191D;LIMBU LETTER GYAN;Lo;0;L;;;;;N;;;;;
+191E;LIMBU LETTER TRA;Lo;0;L;;;;;N;;;;;
1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
@@ -5882,6 +5928,21 @@
1AAB;TAI THAM SIGN SATKAANKUU;Po;0;L;;;;;N;;;;;
1AAC;TAI THAM SIGN HANG;Po;0;L;;;;;N;;;;;
1AAD;TAI THAM SIGN CAANG;Po;0;L;;;;;N;;;;;
+1AB0;COMBINING DOUBLED CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;;;;;
+1AB1;COMBINING DIAERESIS-RING;Mn;230;NSM;;;;;N;;;;;
+1AB2;COMBINING INFINITY;Mn;230;NSM;;;;;N;;;;;
+1AB3;COMBINING DOWNWARDS ARROW;Mn;230;NSM;;;;;N;;;;;
+1AB4;COMBINING TRIPLE DOT;Mn;230;NSM;;;;;N;;;;;
+1AB5;COMBINING X-X BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB6;COMBINING WIGGLY LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB7;COMBINING OPEN MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB8;COMBINING DOUBLE OPEN MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+1AB9;COMBINING LIGHT CENTRALIZATION STROKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABA;COMBINING STRONG CENTRALIZATION STROKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABB;COMBINING PARENTHESES ABOVE;Mn;230;NSM;;;;;N;;;;;
+1ABC;COMBINING DOUBLE PARENTHESES ABOVE;Mn;230;NSM;;;;;N;;;;;
+1ABD;COMBINING PARENTHESES BELOW;Mn;220;NSM;;;;;N;;;;;
+1ABE;COMBINING PARENTHESES OVERLAY;Me;0;NSM;;;;;N;;;;;
1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
@@ -6047,8 +6108,8 @@
1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;;
-1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;;
+1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mn;0;NSM;;;;;N;;;;;
+1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mn;0;NSM;;;;;N;;;;;
1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
@@ -6292,6 +6353,8 @@
1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+1CF8;VEDIC TONE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+1CF9;VEDIC TONE DOUBLE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
@@ -6523,6 +6586,21 @@
1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;;
1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;;
1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;;
+1DE7;COMBINING LATIN SMALL LETTER ALPHA;Mn;230;NSM;;;;;N;;;;;
+1DE8;COMBINING LATIN SMALL LETTER B;Mn;230;NSM;;;;;N;;;;;
+1DE9;COMBINING LATIN SMALL LETTER BETA;Mn;230;NSM;;;;;N;;;;;
+1DEA;COMBINING LATIN SMALL LETTER SCHWA;Mn;230;NSM;;;;;N;;;;;
+1DEB;COMBINING LATIN SMALL LETTER F;Mn;230;NSM;;;;;N;;;;;
+1DEC;COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE;Mn;230;NSM;;;;;N;;;;;
+1DED;COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE;Mn;230;NSM;;;;;N;;;;;
+1DEE;COMBINING LATIN SMALL LETTER P;Mn;230;NSM;;;;;N;;;;;
+1DEF;COMBINING LATIN SMALL LETTER ESH;Mn;230;NSM;;;;;N;;;;;
+1DF0;COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE;Mn;230;NSM;;;;;N;;;;;
+1DF1;COMBINING LATIN SMALL LETTER W;Mn;230;NSM;;;;;N;;;;;
+1DF2;COMBINING LATIN SMALL LETTER A WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF3;COMBINING LATIN SMALL LETTER O WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF4;COMBINING LATIN SMALL LETTER U WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;;
+1DF5;COMBINING UP TACK ABOVE;Mn;230;NSM;;;;;N;;;;;
1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;;
1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
@@ -7196,6 +7274,9 @@
20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;;
20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20BB;NORDIC MARK SIGN;Sc;0;ET;;;;;N;;;;;
+20BC;MANAT SIGN;Sc;0;ET;;;;;N;;;;;
+20BD;RUBLE SIGN;Sc;0;ET;;;;;N;;;;;
20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
@@ -7979,6 +8060,13 @@
23F1;STOPWATCH;So;0;ON;;;;;N;;;;;
23F2;TIMER CLOCK;So;0;ON;;;;;N;;;;;
23F3;HOURGLASS WITH FLOWING SAND;So;0;ON;;;;;N;;;;;
+23F4;BLACK MEDIUM LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F5;BLACK MEDIUM RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F6;BLACK MEDIUM UP-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F7;BLACK MEDIUM DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
+23F8;DOUBLE VERTICAL BAR;So;0;ON;;;;;N;;;;;
+23F9;BLACK SQUARE FOR STOP;So;0;ON;;;;;N;;;;;
+23FA;BLACK CIRCLE FOR RECORD;So;0;ON;;;;;N;;;;;
2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
@@ -8701,6 +8789,7 @@
26FD;FUEL PUMP;So;0;ON;;;;;N;;;;;
26FE;CUP ON BLACK SQUARE;So;0;ON;;;;;N;;;;;
26FF;WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE;So;0;ON;;;;;N;;;;;
+2700;BLACK SAFETY SCISSORS;So;0;ON;;;;;N;;;;;
2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
@@ -9801,6 +9890,9 @@
2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2B4D;DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW;So;0;ON;;;;;N;;;;;
+2B4E;SHORT SLANTED NORTH ARROW;So;0;ON;;;;;N;;;;;
+2B4F;SHORT BACKSLANTED SOUTH ARROW;So;0;ON;;;;;N;;;;;
2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;;
2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;;
2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;;
@@ -9811,6 +9903,118 @@
2B57;HEAVY CIRCLE WITH CIRCLE INSIDE;So;0;ON;;;;;N;;;;;
2B58;HEAVY CIRCLE;So;0;ON;;;;;N;;;;;
2B59;HEAVY CIRCLED SALTIRE;So;0;ON;;;;;N;;;;;
+2B5A;SLANTED NORTH ARROW WITH HOOKED HEAD;So;0;ON;;;;;N;;;;;
+2B5B;BACKSLANTED SOUTH ARROW WITH HOOKED TAIL;So;0;ON;;;;;N;;;;;
+2B5C;SLANTED NORTH ARROW WITH HORIZONTAL TAIL;So;0;ON;;;;;N;;;;;
+2B5D;BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL;So;0;ON;;;;;N;;;;;
+2B5E;BENT ARROW POINTING DOWNWARDS THEN NORTH EAST;So;0;ON;;;;;N;;;;;
+2B5F;SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST;So;0;ON;;;;;N;;;;;
+2B60;LEFTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B61;UPWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B62;RIGHTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B63;DOWNWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B64;LEFT RIGHT TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B65;UP DOWN TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B66;NORTH WEST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B67;NORTH EAST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B68;SOUTH EAST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B69;SOUTH WEST TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B6A;LEFTWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6B;UPWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6C;RIGHTWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6D;DOWNWARDS TRIANGLE-HEADED DASHED ARROW;So;0;ON;;;;;N;;;;;
+2B6E;CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+2B6F;ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+2B70;LEFTWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B71;UPWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B72;RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B73;DOWNWARDS TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B76;NORTH WEST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B77;NORTH EAST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B78;SOUTH EAST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B79;SOUTH WEST TRIANGLE-HEADED ARROW TO BAR;So;0;ON;;;;;N;;;;;
+2B7A;LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7B;UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7C;RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7D;DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE;So;0;ON;;;;;N;;;;;
+2B7E;HORIZONTAL TAB KEY;So;0;ON;;;;;N;;;;;
+2B7F;VERTICAL TAB KEY;So;0;ON;;;;;N;;;;;
+2B80;LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B81;UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B82;RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B83;DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW;So;0;ON;;;;;N;;;;;
+2B84;LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B85;UPWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B86;RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B87;DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS;So;0;ON;;;;;N;;;;;
+2B88;LEFTWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B89;UPWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8A;RIGHTWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8B;DOWNWARDS BLACK CIRCLED WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B8C;ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8D;ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8E;ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B8F;ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW;So;0;ON;;;;;N;;;;;
+2B90;RETURN LEFT;So;0;ON;;;;;N;;;;;
+2B91;RETURN RIGHT;So;0;ON;;;;;N;;;;;
+2B92;NEWLINE LEFT;So;0;ON;;;;;N;;;;;
+2B93;NEWLINE RIGHT;So;0;ON;;;;;N;;;;;
+2B94;FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE;So;0;ON;;;;;N;;;;;
+2B95;RIGHTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B98;THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B99;THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9A;THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9B;THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9C;BLACK LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9D;BLACK UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9E;BLACK RIGHTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2B9F;BLACK DOWNWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+2BA0;DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS;So;0;ON;;;;;N;;;;;
+2BA1;DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS;So;0;ON;;;;;N;;;;;
+2BA2;UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS;So;0;ON;;;;;N;;;;;
+2BA3;UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS;So;0;ON;;;;;N;;;;;
+2BA4;LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2BA5;RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2BA6;LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2BA7;RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2BA8;BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BA9;BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAA;BLACK CURVED UPWARDS AND LEFTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAB;BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAC;BLACK CURVED LEFTWARDS AND UPWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAD;BLACK CURVED RIGHTWARDS AND UPWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAE;BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BAF;BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW;So;0;ON;;;;;N;;;;;
+2BB0;RIBBON ARROW DOWN LEFT;So;0;ON;;;;;N;;;;;
+2BB1;RIBBON ARROW DOWN RIGHT;So;0;ON;;;;;N;;;;;
+2BB2;RIBBON ARROW UP LEFT;So;0;ON;;;;;N;;;;;
+2BB3;RIBBON ARROW UP RIGHT;So;0;ON;;;;;N;;;;;
+2BB4;RIBBON ARROW LEFT UP;So;0;ON;;;;;N;;;;;
+2BB5;RIBBON ARROW RIGHT UP;So;0;ON;;;;;N;;;;;
+2BB6;RIBBON ARROW LEFT DOWN;So;0;ON;;;;;N;;;;;
+2BB7;RIBBON ARROW RIGHT DOWN;So;0;ON;;;;;N;;;;;
+2BB8;UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+2BB9;UP ARROWHEAD IN A RECTANGLE BOX;So;0;ON;;;;;N;;;;;
+2BBD;BALLOT BOX WITH LIGHT X;So;0;ON;;;;;N;;;;;
+2BBE;CIRCLED X;So;0;ON;;;;;N;;;;;
+2BBF;CIRCLED BOLD X;So;0;ON;;;;;N;;;;;
+2BC0;BLACK SQUARE CENTRED;So;0;ON;;;;;N;;;;;
+2BC1;BLACK DIAMOND CENTRED;So;0;ON;;;;;N;;;;;
+2BC2;TURNED BLACK PENTAGON;So;0;ON;;;;;N;;;;;
+2BC3;HORIZONTAL BLACK OCTAGON;So;0;ON;;;;;N;;;;;
+2BC4;BLACK OCTAGON;So;0;ON;;;;;N;;;;;
+2BC5;BLACK MEDIUM UP-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC6;BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC7;BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC8;BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BCA;TOP HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+2BCB;BOTTOM HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+2BCC;LIGHT FOUR POINTED BLACK CUSP;So;0;ON;;;;;N;;;;;
+2BCD;ROTATED LIGHT FOUR POINTED BLACK CUSP;So;0;ON;;;;;N;;;;;
+2BCE;WHITE FOUR POINTED CUSP;So;0;ON;;;;;N;;;;;
+2BCF;ROTATED WHITE FOUR POINTED CUSP;So;0;ON;;;;;N;;;;;
+2BD0;SQUARE POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2BD1;UNCERTAINTY SIGN;So;0;ON;;;;;N;;;;;
2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
@@ -10330,6 +10534,13 @@
2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;;
2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;;
2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;;
+2E3C;STENOGRAPHIC FULL STOP;Po;0;ON;;;;;N;;;;;
+2E3D;VERTICAL SIX DOTS;Po;0;ON;;;;;N;;;;;
+2E3E;WIGGLY VERTICAL LINE;Po;0;ON;;;;;N;;;;;
+2E3F;CAPITULUM;Po;0;ON;;;;;N;;;;;
+2E40;DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
+2E41;REVERSED COMMA;Po;0;ON;;;;;N;;;;;
+2E42;DOUBLE LOW-REVERSED-9 QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -13388,6 +13599,12 @@ A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695;
A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
+A698;CYRILLIC CAPITAL LETTER DOUBLE O;Lu;0;L;;;;;N;;;;A699;
+A699;CYRILLIC SMALL LETTER DOUBLE O;Ll;0;L;;;;;N;;;A698;;A698
+A69A;CYRILLIC CAPITAL LETTER CROSSED O;Lu;0;L;;;;;N;;;;A69B;
+A69B;CYRILLIC SMALL LETTER CROSSED O;Ll;0;L;;;;;N;;;A69A;;A69A
+A69C;MODIFIER LETTER CYRILLIC HARD SIGN;Lm;0;L;<super> 044A;;;;N;;;;;
+A69D;MODIFIER LETTER CYRILLIC SOFT SIGN;Lm;0;L;<super> 044C;;;;N;;;;;
A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;;
A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;;
A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;;
@@ -13624,6 +13841,18 @@ A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
+A794;LATIN SMALL LETTER C WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+A795;LATIN SMALL LETTER H WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+A796;LATIN CAPITAL LETTER B WITH FLOURISH;Lu;0;L;;;;;N;;;;A797;
+A797;LATIN SMALL LETTER B WITH FLOURISH;Ll;0;L;;;;;N;;;A796;;A796
+A798;LATIN CAPITAL LETTER F WITH STROKE;Lu;0;L;;;;;N;;;;A799;
+A799;LATIN SMALL LETTER F WITH STROKE;Ll;0;L;;;;;N;;;A798;;A798
+A79A;LATIN CAPITAL LETTER VOLAPUK AE;Lu;0;L;;;;;N;;;;A79B;
+A79B;LATIN SMALL LETTER VOLAPUK AE;Ll;0;L;;;;;N;;;A79A;;A79A
+A79C;LATIN CAPITAL LETTER VOLAPUK OE;Lu;0;L;;;;;N;;;;A79D;
+A79D;LATIN SMALL LETTER VOLAPUK OE;Ll;0;L;;;;;N;;;A79C;;A79C
+A79E;LATIN CAPITAL LETTER VOLAPUK UE;Lu;0;L;;;;;N;;;;A79F;
+A79F;LATIN SMALL LETTER VOLAPUK UE;Ll;0;L;;;;;N;;;A79E;;A79E
A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1;
A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0
A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3;
@@ -13635,6 +13864,12 @@ A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6
A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9;
A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8
A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266;
+A7AB;LATIN CAPITAL LETTER REVERSED OPEN E;Lu;0;L;;;;;N;;;;025C;
+A7AC;LATIN CAPITAL LETTER SCRIPT G;Lu;0;L;;;;;N;;;;0261;
+A7AD;LATIN CAPITAL LETTER L WITH BELT;Lu;0;L;;;;;N;;;;026C;
+A7B0;LATIN CAPITAL LETTER TURNED K;Lu;0;L;;;;;N;;;;029E;
+A7B1;LATIN CAPITAL LETTER TURNED T;Lu;0;L;;;;;N;;;;0287;
+A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;;
@@ -14067,6 +14302,37 @@ A9D8;JAVANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
A9D9;JAVANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
A9DE;JAVANESE PADA TIRTA TUMETES;Po;0;L;;;;;N;;;;;
A9DF;JAVANESE PADA ISEN-ISEN;Po;0;L;;;;;N;;;;;
+A9E0;MYANMAR LETTER SHAN GHA;Lo;0;L;;;;;N;;;;;
+A9E1;MYANMAR LETTER SHAN CHA;Lo;0;L;;;;;N;;;;;
+A9E2;MYANMAR LETTER SHAN JHA;Lo;0;L;;;;;N;;;;;
+A9E3;MYANMAR LETTER SHAN NNA;Lo;0;L;;;;;N;;;;;
+A9E4;MYANMAR LETTER SHAN BHA;Lo;0;L;;;;;N;;;;;
+A9E5;MYANMAR SIGN SHAN SAW;Mn;0;NSM;;;;;N;;;;;
+A9E6;MYANMAR MODIFIER LETTER SHAN REDUPLICATION;Lm;0;L;;;;;N;;;;;
+A9E7;MYANMAR LETTER TAI LAING NYA;Lo;0;L;;;;;N;;;;;
+A9E8;MYANMAR LETTER TAI LAING FA;Lo;0;L;;;;;N;;;;;
+A9E9;MYANMAR LETTER TAI LAING GA;Lo;0;L;;;;;N;;;;;
+A9EA;MYANMAR LETTER TAI LAING GHA;Lo;0;L;;;;;N;;;;;
+A9EB;MYANMAR LETTER TAI LAING JA;Lo;0;L;;;;;N;;;;;
+A9EC;MYANMAR LETTER TAI LAING JHA;Lo;0;L;;;;;N;;;;;
+A9ED;MYANMAR LETTER TAI LAING DDA;Lo;0;L;;;;;N;;;;;
+A9EE;MYANMAR LETTER TAI LAING DDHA;Lo;0;L;;;;;N;;;;;
+A9EF;MYANMAR LETTER TAI LAING NNA;Lo;0;L;;;;;N;;;;;
+A9F0;MYANMAR TAI LAING DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+A9F1;MYANMAR TAI LAING DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+A9F2;MYANMAR TAI LAING DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+A9F3;MYANMAR TAI LAING DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+A9F4;MYANMAR TAI LAING DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+A9F5;MYANMAR TAI LAING DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+A9F6;MYANMAR TAI LAING DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+A9F7;MYANMAR TAI LAING DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+A9F8;MYANMAR TAI LAING DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+A9F9;MYANMAR TAI LAING DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+A9FA;MYANMAR LETTER TAI LAING LLA;Lo;0;L;;;;;N;;;;;
+A9FB;MYANMAR LETTER TAI LAING DA;Lo;0;L;;;;;N;;;;;
+A9FC;MYANMAR LETTER TAI LAING DHA;Lo;0;L;;;;;N;;;;;
+A9FD;MYANMAR LETTER TAI LAING BA;Lo;0;L;;;;;N;;;;;
+A9FE;MYANMAR LETTER TAI LAING BHA;Lo;0;L;;;;;N;;;;;
AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;;
AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;;
AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;;
@@ -14178,6 +14444,10 @@ AA78;MYANMAR SYMBOL AITON ONE;So;0;L;;;;;N;;;;;
AA79;MYANMAR SYMBOL AITON TWO;So;0;L;;;;;N;;;;;
AA7A;MYANMAR LETTER AITON RA;Lo;0;L;;;;;N;;;;;
AA7B;MYANMAR SIGN PAO KAREN TONE;Mc;0;L;;;;;N;;;;;
+AA7C;MYANMAR SIGN TAI LAING TONE-2;Mn;0;NSM;;;;;N;;;;;
+AA7D;MYANMAR SIGN TAI LAING TONE-5;Mc;0;L;;;;;N;;;;;
+AA7E;MYANMAR LETTER SHWE PALAUNG CHA;Lo;0;L;;;;;N;;;;;
+AA7F;MYANMAR LETTER SHWE PALAUNG SHA;Lo;0;L;;;;;N;;;;;
AA80;TAI VIET LETTER LOW KO;Lo;0;L;;;;;N;;;;;
AA81;TAI VIET LETTER HIGH KO;Lo;0;L;;;;;N;;;;;
AA82;TAI VIET LETTER LOW KHO;Lo;0;L;;;;;N;;;;;
@@ -14305,6 +14575,56 @@ AB2B;ETHIOPIC SYLLABLE BBAA;Lo;0;L;;;;;N;;;;;
AB2C;ETHIOPIC SYLLABLE BBEE;Lo;0;L;;;;;N;;;;;
AB2D;ETHIOPIC SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
AB2E;ETHIOPIC SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+AB30;LATIN SMALL LETTER BARRED ALPHA;Ll;0;L;;;;;N;;;;;
+AB31;LATIN SMALL LETTER A REVERSED-SCHWA;Ll;0;L;;;;;N;;;;;
+AB32;LATIN SMALL LETTER BLACKLETTER E;Ll;0;L;;;;;N;;;;;
+AB33;LATIN SMALL LETTER BARRED E;Ll;0;L;;;;;N;;;;;
+AB34;LATIN SMALL LETTER E WITH FLOURISH;Ll;0;L;;;;;N;;;;;
+AB35;LATIN SMALL LETTER LENIS F;Ll;0;L;;;;;N;;;;;
+AB36;LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB37;LATIN SMALL LETTER L WITH INVERTED LAZY S;Ll;0;L;;;;;N;;;;;
+AB38;LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+AB39;LATIN SMALL LETTER L WITH MIDDLE RING;Ll;0;L;;;;;N;;;;;
+AB3A;LATIN SMALL LETTER M WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3B;LATIN SMALL LETTER N WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3C;LATIN SMALL LETTER ENG WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB3D;LATIN SMALL LETTER BLACKLETTER O;Ll;0;L;;;;;N;;;;;
+AB3E;LATIN SMALL LETTER BLACKLETTER O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB3F;LATIN SMALL LETTER OPEN O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB40;LATIN SMALL LETTER INVERTED OE;Ll;0;L;;;;;N;;;;;
+AB41;LATIN SMALL LETTER TURNED OE WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB42;LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE;Ll;0;L;;;;;N;;;;;
+AB43;LATIN SMALL LETTER TURNED O OPEN-O;Ll;0;L;;;;;N;;;;;
+AB44;LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE;Ll;0;L;;;;;N;;;;;
+AB45;LATIN SMALL LETTER STIRRUP R;Ll;0;L;;;;;N;;;;;
+AB46;LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB47;LATIN SMALL LETTER R WITHOUT HANDLE;Ll;0;L;;;;;N;;;;;
+AB48;LATIN SMALL LETTER DOUBLE R;Ll;0;L;;;;;N;;;;;
+AB49;LATIN SMALL LETTER R WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB4A;LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL;Ll;0;L;;;;;N;;;;;
+AB4B;LATIN SMALL LETTER SCRIPT R;Ll;0;L;;;;;N;;;;;
+AB4C;LATIN SMALL LETTER SCRIPT R WITH RING;Ll;0;L;;;;;N;;;;;
+AB4D;LATIN SMALL LETTER BASELINE ESH;Ll;0;L;;;;;N;;;;;
+AB4E;LATIN SMALL LETTER U WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB4F;LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB50;LATIN SMALL LETTER UI;Ll;0;L;;;;;N;;;;;
+AB51;LATIN SMALL LETTER TURNED UI;Ll;0;L;;;;;N;;;;;
+AB52;LATIN SMALL LETTER U WITH LEFT HOOK;Ll;0;L;;;;;N;;;;;
+AB53;LATIN SMALL LETTER CHI;Ll;0;L;;;;;N;;;;;
+AB54;LATIN SMALL LETTER CHI WITH LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB55;LATIN SMALL LETTER CHI WITH LOW LEFT SERIF;Ll;0;L;;;;;N;;;;;
+AB56;LATIN SMALL LETTER X WITH LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB57;LATIN SMALL LETTER X WITH LONG LEFT LEG;Ll;0;L;;;;;N;;;;;
+AB58;LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING;Ll;0;L;;;;;N;;;;;
+AB59;LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF;Ll;0;L;;;;;N;;;;;
+AB5A;LATIN SMALL LETTER Y WITH SHORT RIGHT LEG;Ll;0;L;;;;;N;;;;;
+AB5B;MODIFIER BREVE WITH INVERTED BREVE;Sk;0;L;;;;;N;;;;;
+AB5C;MODIFIER LETTER SMALL HENG;Lm;0;L;<super> A727;;;;N;;;;;
+AB5D;MODIFIER LETTER SMALL L WITH INVERTED LAZY S;Lm;0;L;<super> AB37;;;;N;;;;;
+AB5E;MODIFIER LETTER SMALL L WITH MIDDLE TILDE;Lm;0;L;<super> 026B;;;;N;;;;;
+AB5F;MODIFIER LETTER SMALL U WITH LEFT HOOK;Lm;0;L;<super> AB52;;;;N;;;;;
+AB64;LATIN SMALL LETTER INVERTED ALPHA;Ll;0;L;;;;;N;;;;;
+AB65;GREEK LETTER SMALL CAPITAL OMEGA;Ll;0;L;;;;;N;;;;;
ABC0;MEETEI MAYEK LETTER KOK;Lo;0;L;;;;;N;;;;;
ABC1;MEETEI MAYEK LETTER SAM;Lo;0;L;;;;;N;;;;;
ABC2;MEETEI MAYEK LETTER LAI;Lo;0;L;;;;;N;;;;;
@@ -15450,8 +15770,8 @@ FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;
FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
-FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
-FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
@@ -15617,6 +15937,13 @@ FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;;
FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;;
+FE27;COMBINING LIGATURE LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE28;COMBINING LIGATURE RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE29;COMBINING TILDE LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2A;COMBINING TILDE RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2B;COMBINING MACRON LEFT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2C;COMBINING MACRON RIGHT HALF BELOW;Mn;220;NSM;;;;;N;;;;;
+FE2D;COMBINING CONJOINING MACRON BELOW;Mn;220;NSM;;;;;N;;;;;
FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
@@ -16389,6 +16716,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
+1018B;GREEK ONE QUARTER SIGN;No;0;ON;;;;1/4;N;;;;;
+1018C;GREEK SINUSOID SIGN;So;0;ON;;;;;N;;;;;
10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;;
10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;;
10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;;
@@ -16401,6 +16730,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;;
1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;;
1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;;
+101A0;GREEK SYMBOL TAU RHO;So;0;ON;;;;;N;;;;;
101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;;
101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;;
101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;;
@@ -16525,6 +16855,34 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;;
102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;;
102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;;
+102E0;COPTIC EPACT THOUSANDS MARK;Mn;220;NSM;;;;;N;;;;;
+102E1;COPTIC EPACT DIGIT ONE;No;0;EN;;;;1;N;;;;;
+102E2;COPTIC EPACT DIGIT TWO;No;0;EN;;;;2;N;;;;;
+102E3;COPTIC EPACT DIGIT THREE;No;0;EN;;;;3;N;;;;;
+102E4;COPTIC EPACT DIGIT FOUR;No;0;EN;;;;4;N;;;;;
+102E5;COPTIC EPACT DIGIT FIVE;No;0;EN;;;;5;N;;;;;
+102E6;COPTIC EPACT DIGIT SIX;No;0;EN;;;;6;N;;;;;
+102E7;COPTIC EPACT DIGIT SEVEN;No;0;EN;;;;7;N;;;;;
+102E8;COPTIC EPACT DIGIT EIGHT;No;0;EN;;;;8;N;;;;;
+102E9;COPTIC EPACT DIGIT NINE;No;0;EN;;;;9;N;;;;;
+102EA;COPTIC EPACT NUMBER TEN;No;0;EN;;;;10;N;;;;;
+102EB;COPTIC EPACT NUMBER TWENTY;No;0;EN;;;;20;N;;;;;
+102EC;COPTIC EPACT NUMBER THIRTY;No;0;EN;;;;30;N;;;;;
+102ED;COPTIC EPACT NUMBER FORTY;No;0;EN;;;;40;N;;;;;
+102EE;COPTIC EPACT NUMBER FIFTY;No;0;EN;;;;50;N;;;;;
+102EF;COPTIC EPACT NUMBER SIXTY;No;0;EN;;;;60;N;;;;;
+102F0;COPTIC EPACT NUMBER SEVENTY;No;0;EN;;;;70;N;;;;;
+102F1;COPTIC EPACT NUMBER EIGHTY;No;0;EN;;;;80;N;;;;;
+102F2;COPTIC EPACT NUMBER NINETY;No;0;EN;;;;90;N;;;;;
+102F3;COPTIC EPACT NUMBER ONE HUNDRED;No;0;EN;;;;100;N;;;;;
+102F4;COPTIC EPACT NUMBER TWO HUNDRED;No;0;EN;;;;200;N;;;;;
+102F5;COPTIC EPACT NUMBER THREE HUNDRED;No;0;EN;;;;300;N;;;;;
+102F6;COPTIC EPACT NUMBER FOUR HUNDRED;No;0;EN;;;;400;N;;;;;
+102F7;COPTIC EPACT NUMBER FIVE HUNDRED;No;0;EN;;;;500;N;;;;;
+102F8;COPTIC EPACT NUMBER SIX HUNDRED;No;0;EN;;;;600;N;;;;;
+102F9;COPTIC EPACT NUMBER SEVEN HUNDRED;No;0;EN;;;;700;N;;;;;
+102FA;COPTIC EPACT NUMBER EIGHT HUNDRED;No;0;EN;;;;800;N;;;;;
+102FB;COPTIC EPACT NUMBER NINE HUNDRED;No;0;EN;;;;900;N;;;;;
10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
@@ -16556,6 +16914,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;;;;
1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;;;;
1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;;;;
+1031F;OLD ITALIC LETTER ESS;Lo;0;L;;;;;N;;;;;
10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
@@ -16587,6 +16946,49 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
+10350;OLD PERMIC LETTER AN;Lo;0;L;;;;;N;;;;;
+10351;OLD PERMIC LETTER BUR;Lo;0;L;;;;;N;;;;;
+10352;OLD PERMIC LETTER GAI;Lo;0;L;;;;;N;;;;;
+10353;OLD PERMIC LETTER DOI;Lo;0;L;;;;;N;;;;;
+10354;OLD PERMIC LETTER E;Lo;0;L;;;;;N;;;;;
+10355;OLD PERMIC LETTER ZHOI;Lo;0;L;;;;;N;;;;;
+10356;OLD PERMIC LETTER DZHOI;Lo;0;L;;;;;N;;;;;
+10357;OLD PERMIC LETTER ZATA;Lo;0;L;;;;;N;;;;;
+10358;OLD PERMIC LETTER DZITA;Lo;0;L;;;;;N;;;;;
+10359;OLD PERMIC LETTER I;Lo;0;L;;;;;N;;;;;
+1035A;OLD PERMIC LETTER KOKE;Lo;0;L;;;;;N;;;;;
+1035B;OLD PERMIC LETTER LEI;Lo;0;L;;;;;N;;;;;
+1035C;OLD PERMIC LETTER MENOE;Lo;0;L;;;;;N;;;;;
+1035D;OLD PERMIC LETTER NENOE;Lo;0;L;;;;;N;;;;;
+1035E;OLD PERMIC LETTER VOOI;Lo;0;L;;;;;N;;;;;
+1035F;OLD PERMIC LETTER PEEI;Lo;0;L;;;;;N;;;;;
+10360;OLD PERMIC LETTER REI;Lo;0;L;;;;;N;;;;;
+10361;OLD PERMIC LETTER SII;Lo;0;L;;;;;N;;;;;
+10362;OLD PERMIC LETTER TAI;Lo;0;L;;;;;N;;;;;
+10363;OLD PERMIC LETTER U;Lo;0;L;;;;;N;;;;;
+10364;OLD PERMIC LETTER CHERY;Lo;0;L;;;;;N;;;;;
+10365;OLD PERMIC LETTER SHOOI;Lo;0;L;;;;;N;;;;;
+10366;OLD PERMIC LETTER SHCHOOI;Lo;0;L;;;;;N;;;;;
+10367;OLD PERMIC LETTER YRY;Lo;0;L;;;;;N;;;;;
+10368;OLD PERMIC LETTER YERU;Lo;0;L;;;;;N;;;;;
+10369;OLD PERMIC LETTER O;Lo;0;L;;;;;N;;;;;
+1036A;OLD PERMIC LETTER OO;Lo;0;L;;;;;N;;;;;
+1036B;OLD PERMIC LETTER EF;Lo;0;L;;;;;N;;;;;
+1036C;OLD PERMIC LETTER HA;Lo;0;L;;;;;N;;;;;
+1036D;OLD PERMIC LETTER TSIU;Lo;0;L;;;;;N;;;;;
+1036E;OLD PERMIC LETTER VER;Lo;0;L;;;;;N;;;;;
+1036F;OLD PERMIC LETTER YER;Lo;0;L;;;;;N;;;;;
+10370;OLD PERMIC LETTER YERI;Lo;0;L;;;;;N;;;;;
+10371;OLD PERMIC LETTER YAT;Lo;0;L;;;;;N;;;;;
+10372;OLD PERMIC LETTER IE;Lo;0;L;;;;;N;;;;;
+10373;OLD PERMIC LETTER YU;Lo;0;L;;;;;N;;;;;
+10374;OLD PERMIC LETTER YA;Lo;0;L;;;;;N;;;;;
+10375;OLD PERMIC LETTER IA;Lo;0;L;;;;;N;;;;;
+10376;COMBINING OLD PERMIC LETTER AN;Mn;230;NSM;;;;;N;;;;;
+10377;COMBINING OLD PERMIC LETTER DOI;Mn;230;NSM;;;;;N;;;;;
+10378;COMBINING OLD PERMIC LETTER ZATA;Mn;230;NSM;;;;;N;;;;;
+10379;COMBINING OLD PERMIC LETTER NENOE;Mn;230;NSM;;;;;N;;;;;
+1037A;COMBINING OLD PERMIC LETTER SII;Mn;230;NSM;;;;;N;;;;;
10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
@@ -16836,6 +17238,440 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+10500;ELBASAN LETTER A;Lo;0;L;;;;;N;;;;;
+10501;ELBASAN LETTER BE;Lo;0;L;;;;;N;;;;;
+10502;ELBASAN LETTER CE;Lo;0;L;;;;;N;;;;;
+10503;ELBASAN LETTER CHE;Lo;0;L;;;;;N;;;;;
+10504;ELBASAN LETTER DE;Lo;0;L;;;;;N;;;;;
+10505;ELBASAN LETTER NDE;Lo;0;L;;;;;N;;;;;
+10506;ELBASAN LETTER DHE;Lo;0;L;;;;;N;;;;;
+10507;ELBASAN LETTER EI;Lo;0;L;;;;;N;;;;;
+10508;ELBASAN LETTER E;Lo;0;L;;;;;N;;;;;
+10509;ELBASAN LETTER FE;Lo;0;L;;;;;N;;;;;
+1050A;ELBASAN LETTER GE;Lo;0;L;;;;;N;;;;;
+1050B;ELBASAN LETTER GJE;Lo;0;L;;;;;N;;;;;
+1050C;ELBASAN LETTER HE;Lo;0;L;;;;;N;;;;;
+1050D;ELBASAN LETTER I;Lo;0;L;;;;;N;;;;;
+1050E;ELBASAN LETTER JE;Lo;0;L;;;;;N;;;;;
+1050F;ELBASAN LETTER KE;Lo;0;L;;;;;N;;;;;
+10510;ELBASAN LETTER LE;Lo;0;L;;;;;N;;;;;
+10511;ELBASAN LETTER LLE;Lo;0;L;;;;;N;;;;;
+10512;ELBASAN LETTER ME;Lo;0;L;;;;;N;;;;;
+10513;ELBASAN LETTER NE;Lo;0;L;;;;;N;;;;;
+10514;ELBASAN LETTER NA;Lo;0;L;;;;;N;;;;;
+10515;ELBASAN LETTER NJE;Lo;0;L;;;;;N;;;;;
+10516;ELBASAN LETTER O;Lo;0;L;;;;;N;;;;;
+10517;ELBASAN LETTER PE;Lo;0;L;;;;;N;;;;;
+10518;ELBASAN LETTER QE;Lo;0;L;;;;;N;;;;;
+10519;ELBASAN LETTER RE;Lo;0;L;;;;;N;;;;;
+1051A;ELBASAN LETTER RRE;Lo;0;L;;;;;N;;;;;
+1051B;ELBASAN LETTER SE;Lo;0;L;;;;;N;;;;;
+1051C;ELBASAN LETTER SHE;Lo;0;L;;;;;N;;;;;
+1051D;ELBASAN LETTER TE;Lo;0;L;;;;;N;;;;;
+1051E;ELBASAN LETTER THE;Lo;0;L;;;;;N;;;;;
+1051F;ELBASAN LETTER U;Lo;0;L;;;;;N;;;;;
+10520;ELBASAN LETTER VE;Lo;0;L;;;;;N;;;;;
+10521;ELBASAN LETTER XE;Lo;0;L;;;;;N;;;;;
+10522;ELBASAN LETTER Y;Lo;0;L;;;;;N;;;;;
+10523;ELBASAN LETTER ZE;Lo;0;L;;;;;N;;;;;
+10524;ELBASAN LETTER ZHE;Lo;0;L;;;;;N;;;;;
+10525;ELBASAN LETTER GHE;Lo;0;L;;;;;N;;;;;
+10526;ELBASAN LETTER GHAMMA;Lo;0;L;;;;;N;;;;;
+10527;ELBASAN LETTER KHE;Lo;0;L;;;;;N;;;;;
+10530;CAUCASIAN ALBANIAN LETTER ALT;Lo;0;L;;;;;N;;;;;
+10531;CAUCASIAN ALBANIAN LETTER BET;Lo;0;L;;;;;N;;;;;
+10532;CAUCASIAN ALBANIAN LETTER GIM;Lo;0;L;;;;;N;;;;;
+10533;CAUCASIAN ALBANIAN LETTER DAT;Lo;0;L;;;;;N;;;;;
+10534;CAUCASIAN ALBANIAN LETTER EB;Lo;0;L;;;;;N;;;;;
+10535;CAUCASIAN ALBANIAN LETTER ZARL;Lo;0;L;;;;;N;;;;;
+10536;CAUCASIAN ALBANIAN LETTER EYN;Lo;0;L;;;;;N;;;;;
+10537;CAUCASIAN ALBANIAN LETTER ZHIL;Lo;0;L;;;;;N;;;;;
+10538;CAUCASIAN ALBANIAN LETTER TAS;Lo;0;L;;;;;N;;;;;
+10539;CAUCASIAN ALBANIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1053A;CAUCASIAN ALBANIAN LETTER YOWD;Lo;0;L;;;;;N;;;;;
+1053B;CAUCASIAN ALBANIAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+1053C;CAUCASIAN ALBANIAN LETTER IRB;Lo;0;L;;;;;N;;;;;
+1053D;CAUCASIAN ALBANIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1053E;CAUCASIAN ALBANIAN LETTER LAN;Lo;0;L;;;;;N;;;;;
+1053F;CAUCASIAN ALBANIAN LETTER INYA;Lo;0;L;;;;;N;;;;;
+10540;CAUCASIAN ALBANIAN LETTER XEYN;Lo;0;L;;;;;N;;;;;
+10541;CAUCASIAN ALBANIAN LETTER DYAN;Lo;0;L;;;;;N;;;;;
+10542;CAUCASIAN ALBANIAN LETTER CAR;Lo;0;L;;;;;N;;;;;
+10543;CAUCASIAN ALBANIAN LETTER JHOX;Lo;0;L;;;;;N;;;;;
+10544;CAUCASIAN ALBANIAN LETTER KAR;Lo;0;L;;;;;N;;;;;
+10545;CAUCASIAN ALBANIAN LETTER LYIT;Lo;0;L;;;;;N;;;;;
+10546;CAUCASIAN ALBANIAN LETTER HEYT;Lo;0;L;;;;;N;;;;;
+10547;CAUCASIAN ALBANIAN LETTER QAY;Lo;0;L;;;;;N;;;;;
+10548;CAUCASIAN ALBANIAN LETTER AOR;Lo;0;L;;;;;N;;;;;
+10549;CAUCASIAN ALBANIAN LETTER CHOY;Lo;0;L;;;;;N;;;;;
+1054A;CAUCASIAN ALBANIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1054B;CAUCASIAN ALBANIAN LETTER CYAY;Lo;0;L;;;;;N;;;;;
+1054C;CAUCASIAN ALBANIAN LETTER MAQ;Lo;0;L;;;;;N;;;;;
+1054D;CAUCASIAN ALBANIAN LETTER QAR;Lo;0;L;;;;;N;;;;;
+1054E;CAUCASIAN ALBANIAN LETTER NOWC;Lo;0;L;;;;;N;;;;;
+1054F;CAUCASIAN ALBANIAN LETTER DZYAY;Lo;0;L;;;;;N;;;;;
+10550;CAUCASIAN ALBANIAN LETTER SHAK;Lo;0;L;;;;;N;;;;;
+10551;CAUCASIAN ALBANIAN LETTER JAYN;Lo;0;L;;;;;N;;;;;
+10552;CAUCASIAN ALBANIAN LETTER ON;Lo;0;L;;;;;N;;;;;
+10553;CAUCASIAN ALBANIAN LETTER TYAY;Lo;0;L;;;;;N;;;;;
+10554;CAUCASIAN ALBANIAN LETTER FAM;Lo;0;L;;;;;N;;;;;
+10555;CAUCASIAN ALBANIAN LETTER DZAY;Lo;0;L;;;;;N;;;;;
+10556;CAUCASIAN ALBANIAN LETTER CHAT;Lo;0;L;;;;;N;;;;;
+10557;CAUCASIAN ALBANIAN LETTER PEN;Lo;0;L;;;;;N;;;;;
+10558;CAUCASIAN ALBANIAN LETTER GHEYS;Lo;0;L;;;;;N;;;;;
+10559;CAUCASIAN ALBANIAN LETTER RAT;Lo;0;L;;;;;N;;;;;
+1055A;CAUCASIAN ALBANIAN LETTER SEYK;Lo;0;L;;;;;N;;;;;
+1055B;CAUCASIAN ALBANIAN LETTER VEYZ;Lo;0;L;;;;;N;;;;;
+1055C;CAUCASIAN ALBANIAN LETTER TIWR;Lo;0;L;;;;;N;;;;;
+1055D;CAUCASIAN ALBANIAN LETTER SHOY;Lo;0;L;;;;;N;;;;;
+1055E;CAUCASIAN ALBANIAN LETTER IWN;Lo;0;L;;;;;N;;;;;
+1055F;CAUCASIAN ALBANIAN LETTER CYAW;Lo;0;L;;;;;N;;;;;
+10560;CAUCASIAN ALBANIAN LETTER CAYN;Lo;0;L;;;;;N;;;;;
+10561;CAUCASIAN ALBANIAN LETTER YAYD;Lo;0;L;;;;;N;;;;;
+10562;CAUCASIAN ALBANIAN LETTER PIWR;Lo;0;L;;;;;N;;;;;
+10563;CAUCASIAN ALBANIAN LETTER KIW;Lo;0;L;;;;;N;;;;;
+1056F;CAUCASIAN ALBANIAN CITATION MARK;Po;0;L;;;;;N;;;;;
+10600;LINEAR A SIGN AB001;Lo;0;L;;;;;N;;;;;
+10601;LINEAR A SIGN AB002;Lo;0;L;;;;;N;;;;;
+10602;LINEAR A SIGN AB003;Lo;0;L;;;;;N;;;;;
+10603;LINEAR A SIGN AB004;Lo;0;L;;;;;N;;;;;
+10604;LINEAR A SIGN AB005;Lo;0;L;;;;;N;;;;;
+10605;LINEAR A SIGN AB006;Lo;0;L;;;;;N;;;;;
+10606;LINEAR A SIGN AB007;Lo;0;L;;;;;N;;;;;
+10607;LINEAR A SIGN AB008;Lo;0;L;;;;;N;;;;;
+10608;LINEAR A SIGN AB009;Lo;0;L;;;;;N;;;;;
+10609;LINEAR A SIGN AB010;Lo;0;L;;;;;N;;;;;
+1060A;LINEAR A SIGN AB011;Lo;0;L;;;;;N;;;;;
+1060B;LINEAR A SIGN AB013;Lo;0;L;;;;;N;;;;;
+1060C;LINEAR A SIGN AB016;Lo;0;L;;;;;N;;;;;
+1060D;LINEAR A SIGN AB017;Lo;0;L;;;;;N;;;;;
+1060E;LINEAR A SIGN AB020;Lo;0;L;;;;;N;;;;;
+1060F;LINEAR A SIGN AB021;Lo;0;L;;;;;N;;;;;
+10610;LINEAR A SIGN AB021F;Lo;0;L;;;;;N;;;;;
+10611;LINEAR A SIGN AB021M;Lo;0;L;;;;;N;;;;;
+10612;LINEAR A SIGN AB022;Lo;0;L;;;;;N;;;;;
+10613;LINEAR A SIGN AB022F;Lo;0;L;;;;;N;;;;;
+10614;LINEAR A SIGN AB022M;Lo;0;L;;;;;N;;;;;
+10615;LINEAR A SIGN AB023;Lo;0;L;;;;;N;;;;;
+10616;LINEAR A SIGN AB023M;Lo;0;L;;;;;N;;;;;
+10617;LINEAR A SIGN AB024;Lo;0;L;;;;;N;;;;;
+10618;LINEAR A SIGN AB026;Lo;0;L;;;;;N;;;;;
+10619;LINEAR A SIGN AB027;Lo;0;L;;;;;N;;;;;
+1061A;LINEAR A SIGN AB028;Lo;0;L;;;;;N;;;;;
+1061B;LINEAR A SIGN A028B;Lo;0;L;;;;;N;;;;;
+1061C;LINEAR A SIGN AB029;Lo;0;L;;;;;N;;;;;
+1061D;LINEAR A SIGN AB030;Lo;0;L;;;;;N;;;;;
+1061E;LINEAR A SIGN AB031;Lo;0;L;;;;;N;;;;;
+1061F;LINEAR A SIGN AB034;Lo;0;L;;;;;N;;;;;
+10620;LINEAR A SIGN AB037;Lo;0;L;;;;;N;;;;;
+10621;LINEAR A SIGN AB038;Lo;0;L;;;;;N;;;;;
+10622;LINEAR A SIGN AB039;Lo;0;L;;;;;N;;;;;
+10623;LINEAR A SIGN AB040;Lo;0;L;;;;;N;;;;;
+10624;LINEAR A SIGN AB041;Lo;0;L;;;;;N;;;;;
+10625;LINEAR A SIGN AB044;Lo;0;L;;;;;N;;;;;
+10626;LINEAR A SIGN AB045;Lo;0;L;;;;;N;;;;;
+10627;LINEAR A SIGN AB046;Lo;0;L;;;;;N;;;;;
+10628;LINEAR A SIGN AB047;Lo;0;L;;;;;N;;;;;
+10629;LINEAR A SIGN AB048;Lo;0;L;;;;;N;;;;;
+1062A;LINEAR A SIGN AB049;Lo;0;L;;;;;N;;;;;
+1062B;LINEAR A SIGN AB050;Lo;0;L;;;;;N;;;;;
+1062C;LINEAR A SIGN AB051;Lo;0;L;;;;;N;;;;;
+1062D;LINEAR A SIGN AB053;Lo;0;L;;;;;N;;;;;
+1062E;LINEAR A SIGN AB054;Lo;0;L;;;;;N;;;;;
+1062F;LINEAR A SIGN AB055;Lo;0;L;;;;;N;;;;;
+10630;LINEAR A SIGN AB056;Lo;0;L;;;;;N;;;;;
+10631;LINEAR A SIGN AB057;Lo;0;L;;;;;N;;;;;
+10632;LINEAR A SIGN AB058;Lo;0;L;;;;;N;;;;;
+10633;LINEAR A SIGN AB059;Lo;0;L;;;;;N;;;;;
+10634;LINEAR A SIGN AB060;Lo;0;L;;;;;N;;;;;
+10635;LINEAR A SIGN AB061;Lo;0;L;;;;;N;;;;;
+10636;LINEAR A SIGN AB065;Lo;0;L;;;;;N;;;;;
+10637;LINEAR A SIGN AB066;Lo;0;L;;;;;N;;;;;
+10638;LINEAR A SIGN AB067;Lo;0;L;;;;;N;;;;;
+10639;LINEAR A SIGN AB069;Lo;0;L;;;;;N;;;;;
+1063A;LINEAR A SIGN AB070;Lo;0;L;;;;;N;;;;;
+1063B;LINEAR A SIGN AB073;Lo;0;L;;;;;N;;;;;
+1063C;LINEAR A SIGN AB074;Lo;0;L;;;;;N;;;;;
+1063D;LINEAR A SIGN AB076;Lo;0;L;;;;;N;;;;;
+1063E;LINEAR A SIGN AB077;Lo;0;L;;;;;N;;;;;
+1063F;LINEAR A SIGN AB078;Lo;0;L;;;;;N;;;;;
+10640;LINEAR A SIGN AB079;Lo;0;L;;;;;N;;;;;
+10641;LINEAR A SIGN AB080;Lo;0;L;;;;;N;;;;;
+10642;LINEAR A SIGN AB081;Lo;0;L;;;;;N;;;;;
+10643;LINEAR A SIGN AB082;Lo;0;L;;;;;N;;;;;
+10644;LINEAR A SIGN AB085;Lo;0;L;;;;;N;;;;;
+10645;LINEAR A SIGN AB086;Lo;0;L;;;;;N;;;;;
+10646;LINEAR A SIGN AB087;Lo;0;L;;;;;N;;;;;
+10647;LINEAR A SIGN A100-102;Lo;0;L;;;;;N;;;;;
+10648;LINEAR A SIGN AB118;Lo;0;L;;;;;N;;;;;
+10649;LINEAR A SIGN AB120;Lo;0;L;;;;;N;;;;;
+1064A;LINEAR A SIGN A120B;Lo;0;L;;;;;N;;;;;
+1064B;LINEAR A SIGN AB122;Lo;0;L;;;;;N;;;;;
+1064C;LINEAR A SIGN AB123;Lo;0;L;;;;;N;;;;;
+1064D;LINEAR A SIGN AB131A;Lo;0;L;;;;;N;;;;;
+1064E;LINEAR A SIGN AB131B;Lo;0;L;;;;;N;;;;;
+1064F;LINEAR A SIGN A131C;Lo;0;L;;;;;N;;;;;
+10650;LINEAR A SIGN AB164;Lo;0;L;;;;;N;;;;;
+10651;LINEAR A SIGN AB171;Lo;0;L;;;;;N;;;;;
+10652;LINEAR A SIGN AB180;Lo;0;L;;;;;N;;;;;
+10653;LINEAR A SIGN AB188;Lo;0;L;;;;;N;;;;;
+10654;LINEAR A SIGN AB191;Lo;0;L;;;;;N;;;;;
+10655;LINEAR A SIGN A301;Lo;0;L;;;;;N;;;;;
+10656;LINEAR A SIGN A302;Lo;0;L;;;;;N;;;;;
+10657;LINEAR A SIGN A303;Lo;0;L;;;;;N;;;;;
+10658;LINEAR A SIGN A304;Lo;0;L;;;;;N;;;;;
+10659;LINEAR A SIGN A305;Lo;0;L;;;;;N;;;;;
+1065A;LINEAR A SIGN A306;Lo;0;L;;;;;N;;;;;
+1065B;LINEAR A SIGN A307;Lo;0;L;;;;;N;;;;;
+1065C;LINEAR A SIGN A308;Lo;0;L;;;;;N;;;;;
+1065D;LINEAR A SIGN A309A;Lo;0;L;;;;;N;;;;;
+1065E;LINEAR A SIGN A309B;Lo;0;L;;;;;N;;;;;
+1065F;LINEAR A SIGN A309C;Lo;0;L;;;;;N;;;;;
+10660;LINEAR A SIGN A310;Lo;0;L;;;;;N;;;;;
+10661;LINEAR A SIGN A311;Lo;0;L;;;;;N;;;;;
+10662;LINEAR A SIGN A312;Lo;0;L;;;;;N;;;;;
+10663;LINEAR A SIGN A313A;Lo;0;L;;;;;N;;;;;
+10664;LINEAR A SIGN A313B;Lo;0;L;;;;;N;;;;;
+10665;LINEAR A SIGN A313C;Lo;0;L;;;;;N;;;;;
+10666;LINEAR A SIGN A314;Lo;0;L;;;;;N;;;;;
+10667;LINEAR A SIGN A315;Lo;0;L;;;;;N;;;;;
+10668;LINEAR A SIGN A316;Lo;0;L;;;;;N;;;;;
+10669;LINEAR A SIGN A317;Lo;0;L;;;;;N;;;;;
+1066A;LINEAR A SIGN A318;Lo;0;L;;;;;N;;;;;
+1066B;LINEAR A SIGN A319;Lo;0;L;;;;;N;;;;;
+1066C;LINEAR A SIGN A320;Lo;0;L;;;;;N;;;;;
+1066D;LINEAR A SIGN A321;Lo;0;L;;;;;N;;;;;
+1066E;LINEAR A SIGN A322;Lo;0;L;;;;;N;;;;;
+1066F;LINEAR A SIGN A323;Lo;0;L;;;;;N;;;;;
+10670;LINEAR A SIGN A324;Lo;0;L;;;;;N;;;;;
+10671;LINEAR A SIGN A325;Lo;0;L;;;;;N;;;;;
+10672;LINEAR A SIGN A326;Lo;0;L;;;;;N;;;;;
+10673;LINEAR A SIGN A327;Lo;0;L;;;;;N;;;;;
+10674;LINEAR A SIGN A328;Lo;0;L;;;;;N;;;;;
+10675;LINEAR A SIGN A329;Lo;0;L;;;;;N;;;;;
+10676;LINEAR A SIGN A330;Lo;0;L;;;;;N;;;;;
+10677;LINEAR A SIGN A331;Lo;0;L;;;;;N;;;;;
+10678;LINEAR A SIGN A332;Lo;0;L;;;;;N;;;;;
+10679;LINEAR A SIGN A333;Lo;0;L;;;;;N;;;;;
+1067A;LINEAR A SIGN A334;Lo;0;L;;;;;N;;;;;
+1067B;LINEAR A SIGN A335;Lo;0;L;;;;;N;;;;;
+1067C;LINEAR A SIGN A336;Lo;0;L;;;;;N;;;;;
+1067D;LINEAR A SIGN A337;Lo;0;L;;;;;N;;;;;
+1067E;LINEAR A SIGN A338;Lo;0;L;;;;;N;;;;;
+1067F;LINEAR A SIGN A339;Lo;0;L;;;;;N;;;;;
+10680;LINEAR A SIGN A340;Lo;0;L;;;;;N;;;;;
+10681;LINEAR A SIGN A341;Lo;0;L;;;;;N;;;;;
+10682;LINEAR A SIGN A342;Lo;0;L;;;;;N;;;;;
+10683;LINEAR A SIGN A343;Lo;0;L;;;;;N;;;;;
+10684;LINEAR A SIGN A344;Lo;0;L;;;;;N;;;;;
+10685;LINEAR A SIGN A345;Lo;0;L;;;;;N;;;;;
+10686;LINEAR A SIGN A346;Lo;0;L;;;;;N;;;;;
+10687;LINEAR A SIGN A347;Lo;0;L;;;;;N;;;;;
+10688;LINEAR A SIGN A348;Lo;0;L;;;;;N;;;;;
+10689;LINEAR A SIGN A349;Lo;0;L;;;;;N;;;;;
+1068A;LINEAR A SIGN A350;Lo;0;L;;;;;N;;;;;
+1068B;LINEAR A SIGN A351;Lo;0;L;;;;;N;;;;;
+1068C;LINEAR A SIGN A352;Lo;0;L;;;;;N;;;;;
+1068D;LINEAR A SIGN A353;Lo;0;L;;;;;N;;;;;
+1068E;LINEAR A SIGN A354;Lo;0;L;;;;;N;;;;;
+1068F;LINEAR A SIGN A355;Lo;0;L;;;;;N;;;;;
+10690;LINEAR A SIGN A356;Lo;0;L;;;;;N;;;;;
+10691;LINEAR A SIGN A357;Lo;0;L;;;;;N;;;;;
+10692;LINEAR A SIGN A358;Lo;0;L;;;;;N;;;;;
+10693;LINEAR A SIGN A359;Lo;0;L;;;;;N;;;;;
+10694;LINEAR A SIGN A360;Lo;0;L;;;;;N;;;;;
+10695;LINEAR A SIGN A361;Lo;0;L;;;;;N;;;;;
+10696;LINEAR A SIGN A362;Lo;0;L;;;;;N;;;;;
+10697;LINEAR A SIGN A363;Lo;0;L;;;;;N;;;;;
+10698;LINEAR A SIGN A364;Lo;0;L;;;;;N;;;;;
+10699;LINEAR A SIGN A365;Lo;0;L;;;;;N;;;;;
+1069A;LINEAR A SIGN A366;Lo;0;L;;;;;N;;;;;
+1069B;LINEAR A SIGN A367;Lo;0;L;;;;;N;;;;;
+1069C;LINEAR A SIGN A368;Lo;0;L;;;;;N;;;;;
+1069D;LINEAR A SIGN A369;Lo;0;L;;;;;N;;;;;
+1069E;LINEAR A SIGN A370;Lo;0;L;;;;;N;;;;;
+1069F;LINEAR A SIGN A371;Lo;0;L;;;;;N;;;;;
+106A0;LINEAR A SIGN A400-VAS;Lo;0;L;;;;;N;;;;;
+106A1;LINEAR A SIGN A401-VAS;Lo;0;L;;;;;N;;;;;
+106A2;LINEAR A SIGN A402-VAS;Lo;0;L;;;;;N;;;;;
+106A3;LINEAR A SIGN A403-VAS;Lo;0;L;;;;;N;;;;;
+106A4;LINEAR A SIGN A404-VAS;Lo;0;L;;;;;N;;;;;
+106A5;LINEAR A SIGN A405-VAS;Lo;0;L;;;;;N;;;;;
+106A6;LINEAR A SIGN A406-VAS;Lo;0;L;;;;;N;;;;;
+106A7;LINEAR A SIGN A407-VAS;Lo;0;L;;;;;N;;;;;
+106A8;LINEAR A SIGN A408-VAS;Lo;0;L;;;;;N;;;;;
+106A9;LINEAR A SIGN A409-VAS;Lo;0;L;;;;;N;;;;;
+106AA;LINEAR A SIGN A410-VAS;Lo;0;L;;;;;N;;;;;
+106AB;LINEAR A SIGN A411-VAS;Lo;0;L;;;;;N;;;;;
+106AC;LINEAR A SIGN A412-VAS;Lo;0;L;;;;;N;;;;;
+106AD;LINEAR A SIGN A413-VAS;Lo;0;L;;;;;N;;;;;
+106AE;LINEAR A SIGN A414-VAS;Lo;0;L;;;;;N;;;;;
+106AF;LINEAR A SIGN A415-VAS;Lo;0;L;;;;;N;;;;;
+106B0;LINEAR A SIGN A416-VAS;Lo;0;L;;;;;N;;;;;
+106B1;LINEAR A SIGN A417-VAS;Lo;0;L;;;;;N;;;;;
+106B2;LINEAR A SIGN A418-VAS;Lo;0;L;;;;;N;;;;;
+106B3;LINEAR A SIGN A501;Lo;0;L;;;;;N;;;;;
+106B4;LINEAR A SIGN A502;Lo;0;L;;;;;N;;;;;
+106B5;LINEAR A SIGN A503;Lo;0;L;;;;;N;;;;;
+106B6;LINEAR A SIGN A504;Lo;0;L;;;;;N;;;;;
+106B7;LINEAR A SIGN A505;Lo;0;L;;;;;N;;;;;
+106B8;LINEAR A SIGN A506;Lo;0;L;;;;;N;;;;;
+106B9;LINEAR A SIGN A508;Lo;0;L;;;;;N;;;;;
+106BA;LINEAR A SIGN A509;Lo;0;L;;;;;N;;;;;
+106BB;LINEAR A SIGN A510;Lo;0;L;;;;;N;;;;;
+106BC;LINEAR A SIGN A511;Lo;0;L;;;;;N;;;;;
+106BD;LINEAR A SIGN A512;Lo;0;L;;;;;N;;;;;
+106BE;LINEAR A SIGN A513;Lo;0;L;;;;;N;;;;;
+106BF;LINEAR A SIGN A515;Lo;0;L;;;;;N;;;;;
+106C0;LINEAR A SIGN A516;Lo;0;L;;;;;N;;;;;
+106C1;LINEAR A SIGN A520;Lo;0;L;;;;;N;;;;;
+106C2;LINEAR A SIGN A521;Lo;0;L;;;;;N;;;;;
+106C3;LINEAR A SIGN A523;Lo;0;L;;;;;N;;;;;
+106C4;LINEAR A SIGN A524;Lo;0;L;;;;;N;;;;;
+106C5;LINEAR A SIGN A525;Lo;0;L;;;;;N;;;;;
+106C6;LINEAR A SIGN A526;Lo;0;L;;;;;N;;;;;
+106C7;LINEAR A SIGN A527;Lo;0;L;;;;;N;;;;;
+106C8;LINEAR A SIGN A528;Lo;0;L;;;;;N;;;;;
+106C9;LINEAR A SIGN A529;Lo;0;L;;;;;N;;;;;
+106CA;LINEAR A SIGN A530;Lo;0;L;;;;;N;;;;;
+106CB;LINEAR A SIGN A531;Lo;0;L;;;;;N;;;;;
+106CC;LINEAR A SIGN A532;Lo;0;L;;;;;N;;;;;
+106CD;LINEAR A SIGN A534;Lo;0;L;;;;;N;;;;;
+106CE;LINEAR A SIGN A535;Lo;0;L;;;;;N;;;;;
+106CF;LINEAR A SIGN A536;Lo;0;L;;;;;N;;;;;
+106D0;LINEAR A SIGN A537;Lo;0;L;;;;;N;;;;;
+106D1;LINEAR A SIGN A538;Lo;0;L;;;;;N;;;;;
+106D2;LINEAR A SIGN A539;Lo;0;L;;;;;N;;;;;
+106D3;LINEAR A SIGN A540;Lo;0;L;;;;;N;;;;;
+106D4;LINEAR A SIGN A541;Lo;0;L;;;;;N;;;;;
+106D5;LINEAR A SIGN A542;Lo;0;L;;;;;N;;;;;
+106D6;LINEAR A SIGN A545;Lo;0;L;;;;;N;;;;;
+106D7;LINEAR A SIGN A547;Lo;0;L;;;;;N;;;;;
+106D8;LINEAR A SIGN A548;Lo;0;L;;;;;N;;;;;
+106D9;LINEAR A SIGN A549;Lo;0;L;;;;;N;;;;;
+106DA;LINEAR A SIGN A550;Lo;0;L;;;;;N;;;;;
+106DB;LINEAR A SIGN A551;Lo;0;L;;;;;N;;;;;
+106DC;LINEAR A SIGN A552;Lo;0;L;;;;;N;;;;;
+106DD;LINEAR A SIGN A553;Lo;0;L;;;;;N;;;;;
+106DE;LINEAR A SIGN A554;Lo;0;L;;;;;N;;;;;
+106DF;LINEAR A SIGN A555;Lo;0;L;;;;;N;;;;;
+106E0;LINEAR A SIGN A556;Lo;0;L;;;;;N;;;;;
+106E1;LINEAR A SIGN A557;Lo;0;L;;;;;N;;;;;
+106E2;LINEAR A SIGN A559;Lo;0;L;;;;;N;;;;;
+106E3;LINEAR A SIGN A563;Lo;0;L;;;;;N;;;;;
+106E4;LINEAR A SIGN A564;Lo;0;L;;;;;N;;;;;
+106E5;LINEAR A SIGN A565;Lo;0;L;;;;;N;;;;;
+106E6;LINEAR A SIGN A566;Lo;0;L;;;;;N;;;;;
+106E7;LINEAR A SIGN A568;Lo;0;L;;;;;N;;;;;
+106E8;LINEAR A SIGN A569;Lo;0;L;;;;;N;;;;;
+106E9;LINEAR A SIGN A570;Lo;0;L;;;;;N;;;;;
+106EA;LINEAR A SIGN A571;Lo;0;L;;;;;N;;;;;
+106EB;LINEAR A SIGN A572;Lo;0;L;;;;;N;;;;;
+106EC;LINEAR A SIGN A573;Lo;0;L;;;;;N;;;;;
+106ED;LINEAR A SIGN A574;Lo;0;L;;;;;N;;;;;
+106EE;LINEAR A SIGN A575;Lo;0;L;;;;;N;;;;;
+106EF;LINEAR A SIGN A576;Lo;0;L;;;;;N;;;;;
+106F0;LINEAR A SIGN A577;Lo;0;L;;;;;N;;;;;
+106F1;LINEAR A SIGN A578;Lo;0;L;;;;;N;;;;;
+106F2;LINEAR A SIGN A579;Lo;0;L;;;;;N;;;;;
+106F3;LINEAR A SIGN A580;Lo;0;L;;;;;N;;;;;
+106F4;LINEAR A SIGN A581;Lo;0;L;;;;;N;;;;;
+106F5;LINEAR A SIGN A582;Lo;0;L;;;;;N;;;;;
+106F6;LINEAR A SIGN A583;Lo;0;L;;;;;N;;;;;
+106F7;LINEAR A SIGN A584;Lo;0;L;;;;;N;;;;;
+106F8;LINEAR A SIGN A585;Lo;0;L;;;;;N;;;;;
+106F9;LINEAR A SIGN A586;Lo;0;L;;;;;N;;;;;
+106FA;LINEAR A SIGN A587;Lo;0;L;;;;;N;;;;;
+106FB;LINEAR A SIGN A588;Lo;0;L;;;;;N;;;;;
+106FC;LINEAR A SIGN A589;Lo;0;L;;;;;N;;;;;
+106FD;LINEAR A SIGN A591;Lo;0;L;;;;;N;;;;;
+106FE;LINEAR A SIGN A592;Lo;0;L;;;;;N;;;;;
+106FF;LINEAR A SIGN A594;Lo;0;L;;;;;N;;;;;
+10700;LINEAR A SIGN A595;Lo;0;L;;;;;N;;;;;
+10701;LINEAR A SIGN A596;Lo;0;L;;;;;N;;;;;
+10702;LINEAR A SIGN A598;Lo;0;L;;;;;N;;;;;
+10703;LINEAR A SIGN A600;Lo;0;L;;;;;N;;;;;
+10704;LINEAR A SIGN A601;Lo;0;L;;;;;N;;;;;
+10705;LINEAR A SIGN A602;Lo;0;L;;;;;N;;;;;
+10706;LINEAR A SIGN A603;Lo;0;L;;;;;N;;;;;
+10707;LINEAR A SIGN A604;Lo;0;L;;;;;N;;;;;
+10708;LINEAR A SIGN A606;Lo;0;L;;;;;N;;;;;
+10709;LINEAR A SIGN A608;Lo;0;L;;;;;N;;;;;
+1070A;LINEAR A SIGN A609;Lo;0;L;;;;;N;;;;;
+1070B;LINEAR A SIGN A610;Lo;0;L;;;;;N;;;;;
+1070C;LINEAR A SIGN A611;Lo;0;L;;;;;N;;;;;
+1070D;LINEAR A SIGN A612;Lo;0;L;;;;;N;;;;;
+1070E;LINEAR A SIGN A613;Lo;0;L;;;;;N;;;;;
+1070F;LINEAR A SIGN A614;Lo;0;L;;;;;N;;;;;
+10710;LINEAR A SIGN A615;Lo;0;L;;;;;N;;;;;
+10711;LINEAR A SIGN A616;Lo;0;L;;;;;N;;;;;
+10712;LINEAR A SIGN A617;Lo;0;L;;;;;N;;;;;
+10713;LINEAR A SIGN A618;Lo;0;L;;;;;N;;;;;
+10714;LINEAR A SIGN A619;Lo;0;L;;;;;N;;;;;
+10715;LINEAR A SIGN A620;Lo;0;L;;;;;N;;;;;
+10716;LINEAR A SIGN A621;Lo;0;L;;;;;N;;;;;
+10717;LINEAR A SIGN A622;Lo;0;L;;;;;N;;;;;
+10718;LINEAR A SIGN A623;Lo;0;L;;;;;N;;;;;
+10719;LINEAR A SIGN A624;Lo;0;L;;;;;N;;;;;
+1071A;LINEAR A SIGN A626;Lo;0;L;;;;;N;;;;;
+1071B;LINEAR A SIGN A627;Lo;0;L;;;;;N;;;;;
+1071C;LINEAR A SIGN A628;Lo;0;L;;;;;N;;;;;
+1071D;LINEAR A SIGN A629;Lo;0;L;;;;;N;;;;;
+1071E;LINEAR A SIGN A634;Lo;0;L;;;;;N;;;;;
+1071F;LINEAR A SIGN A637;Lo;0;L;;;;;N;;;;;
+10720;LINEAR A SIGN A638;Lo;0;L;;;;;N;;;;;
+10721;LINEAR A SIGN A640;Lo;0;L;;;;;N;;;;;
+10722;LINEAR A SIGN A642;Lo;0;L;;;;;N;;;;;
+10723;LINEAR A SIGN A643;Lo;0;L;;;;;N;;;;;
+10724;LINEAR A SIGN A644;Lo;0;L;;;;;N;;;;;
+10725;LINEAR A SIGN A645;Lo;0;L;;;;;N;;;;;
+10726;LINEAR A SIGN A646;Lo;0;L;;;;;N;;;;;
+10727;LINEAR A SIGN A648;Lo;0;L;;;;;N;;;;;
+10728;LINEAR A SIGN A649;Lo;0;L;;;;;N;;;;;
+10729;LINEAR A SIGN A651;Lo;0;L;;;;;N;;;;;
+1072A;LINEAR A SIGN A652;Lo;0;L;;;;;N;;;;;
+1072B;LINEAR A SIGN A653;Lo;0;L;;;;;N;;;;;
+1072C;LINEAR A SIGN A654;Lo;0;L;;;;;N;;;;;
+1072D;LINEAR A SIGN A655;Lo;0;L;;;;;N;;;;;
+1072E;LINEAR A SIGN A656;Lo;0;L;;;;;N;;;;;
+1072F;LINEAR A SIGN A657;Lo;0;L;;;;;N;;;;;
+10730;LINEAR A SIGN A658;Lo;0;L;;;;;N;;;;;
+10731;LINEAR A SIGN A659;Lo;0;L;;;;;N;;;;;
+10732;LINEAR A SIGN A660;Lo;0;L;;;;;N;;;;;
+10733;LINEAR A SIGN A661;Lo;0;L;;;;;N;;;;;
+10734;LINEAR A SIGN A662;Lo;0;L;;;;;N;;;;;
+10735;LINEAR A SIGN A663;Lo;0;L;;;;;N;;;;;
+10736;LINEAR A SIGN A664;Lo;0;L;;;;;N;;;;;
+10740;LINEAR A SIGN A701 A;Lo;0;L;;;;;N;;;;;
+10741;LINEAR A SIGN A702 B;Lo;0;L;;;;;N;;;;;
+10742;LINEAR A SIGN A703 D;Lo;0;L;;;;;N;;;;;
+10743;LINEAR A SIGN A704 E;Lo;0;L;;;;;N;;;;;
+10744;LINEAR A SIGN A705 F;Lo;0;L;;;;;N;;;;;
+10745;LINEAR A SIGN A706 H;Lo;0;L;;;;;N;;;;;
+10746;LINEAR A SIGN A707 J;Lo;0;L;;;;;N;;;;;
+10747;LINEAR A SIGN A708 K;Lo;0;L;;;;;N;;;;;
+10748;LINEAR A SIGN A709 L;Lo;0;L;;;;;N;;;;;
+10749;LINEAR A SIGN A709-2 L2;Lo;0;L;;;;;N;;;;;
+1074A;LINEAR A SIGN A709-3 L3;Lo;0;L;;;;;N;;;;;
+1074B;LINEAR A SIGN A709-4 L4;Lo;0;L;;;;;N;;;;;
+1074C;LINEAR A SIGN A709-6 L6;Lo;0;L;;;;;N;;;;;
+1074D;LINEAR A SIGN A710 W;Lo;0;L;;;;;N;;;;;
+1074E;LINEAR A SIGN A711 X;Lo;0;L;;;;;N;;;;;
+1074F;LINEAR A SIGN A712 Y;Lo;0;L;;;;;N;;;;;
+10750;LINEAR A SIGN A713 OMEGA;Lo;0;L;;;;;N;;;;;
+10751;LINEAR A SIGN A714 ABB;Lo;0;L;;;;;N;;;;;
+10752;LINEAR A SIGN A715 BB;Lo;0;L;;;;;N;;;;;
+10753;LINEAR A SIGN A717 DD;Lo;0;L;;;;;N;;;;;
+10754;LINEAR A SIGN A726 EYYY;Lo;0;L;;;;;N;;;;;
+10755;LINEAR A SIGN A732 JE;Lo;0;L;;;;;N;;;;;
+10760;LINEAR A SIGN A800;Lo;0;L;;;;;N;;;;;
+10761;LINEAR A SIGN A801;Lo;0;L;;;;;N;;;;;
+10762;LINEAR A SIGN A802;Lo;0;L;;;;;N;;;;;
+10763;LINEAR A SIGN A803;Lo;0;L;;;;;N;;;;;
+10764;LINEAR A SIGN A804;Lo;0;L;;;;;N;;;;;
+10765;LINEAR A SIGN A805;Lo;0;L;;;;;N;;;;;
+10766;LINEAR A SIGN A806;Lo;0;L;;;;;N;;;;;
+10767;LINEAR A SIGN A807;Lo;0;L;;;;;N;;;;;
10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
@@ -16922,6 +17758,78 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1085D;IMPERIAL ARAMAIC NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
1085E;IMPERIAL ARAMAIC NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
1085F;IMPERIAL ARAMAIC NUMBER TEN THOUSAND;No;0;R;;;;10000;N;;;;;
+10860;PALMYRENE LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10861;PALMYRENE LETTER BETH;Lo;0;R;;;;;N;;;;;
+10862;PALMYRENE LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10863;PALMYRENE LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10864;PALMYRENE LETTER HE;Lo;0;R;;;;;N;;;;;
+10865;PALMYRENE LETTER WAW;Lo;0;R;;;;;N;;;;;
+10866;PALMYRENE LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10867;PALMYRENE LETTER HETH;Lo;0;R;;;;;N;;;;;
+10868;PALMYRENE LETTER TETH;Lo;0;R;;;;;N;;;;;
+10869;PALMYRENE LETTER YODH;Lo;0;R;;;;;N;;;;;
+1086A;PALMYRENE LETTER KAPH;Lo;0;R;;;;;N;;;;;
+1086B;PALMYRENE LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+1086C;PALMYRENE LETTER MEM;Lo;0;R;;;;;N;;;;;
+1086D;PALMYRENE LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+1086E;PALMYRENE LETTER NUN;Lo;0;R;;;;;N;;;;;
+1086F;PALMYRENE LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10870;PALMYRENE LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10871;PALMYRENE LETTER PE;Lo;0;R;;;;;N;;;;;
+10872;PALMYRENE LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10873;PALMYRENE LETTER QOPH;Lo;0;R;;;;;N;;;;;
+10874;PALMYRENE LETTER RESH;Lo;0;R;;;;;N;;;;;
+10875;PALMYRENE LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10876;PALMYRENE LETTER TAW;Lo;0;R;;;;;N;;;;;
+10877;PALMYRENE LEFT-POINTING FLEURON;So;0;R;;;;;N;;;;;
+10878;PALMYRENE RIGHT-POINTING FLEURON;So;0;R;;;;;N;;;;;
+10879;PALMYRENE NUMBER ONE;No;0;R;;;;1;N;;;;;
+1087A;PALMYRENE NUMBER TWO;No;0;R;;;;2;N;;;;;
+1087B;PALMYRENE NUMBER THREE;No;0;R;;;;3;N;;;;;
+1087C;PALMYRENE NUMBER FOUR;No;0;R;;;;4;N;;;;;
+1087D;PALMYRENE NUMBER FIVE;No;0;R;;;;5;N;;;;;
+1087E;PALMYRENE NUMBER TEN;No;0;R;;;;10;N;;;;;
+1087F;PALMYRENE NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10880;NABATAEAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
+10881;NABATAEAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10882;NABATAEAN LETTER FINAL BETH;Lo;0;R;;;;;N;;;;;
+10883;NABATAEAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10884;NABATAEAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10885;NABATAEAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10886;NABATAEAN LETTER FINAL HE;Lo;0;R;;;;;N;;;;;
+10887;NABATAEAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10888;NABATAEAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10889;NABATAEAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+1088A;NABATAEAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+1088B;NABATAEAN LETTER TETH;Lo;0;R;;;;;N;;;;;
+1088C;NABATAEAN LETTER FINAL YODH;Lo;0;R;;;;;N;;;;;
+1088D;NABATAEAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+1088E;NABATAEAN LETTER FINAL KAPH;Lo;0;R;;;;;N;;;;;
+1088F;NABATAEAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10890;NABATAEAN LETTER FINAL LAMEDH;Lo;0;R;;;;;N;;;;;
+10891;NABATAEAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10892;NABATAEAN LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+10893;NABATAEAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10894;NABATAEAN LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+10895;NABATAEAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10896;NABATAEAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10897;NABATAEAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10898;NABATAEAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10899;NABATAEAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
+1089A;NABATAEAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
+1089B;NABATAEAN LETTER RESH;Lo;0;R;;;;;N;;;;;
+1089C;NABATAEAN LETTER FINAL SHIN;Lo;0;R;;;;;N;;;;;
+1089D;NABATAEAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+1089E;NABATAEAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+108A7;NABATAEAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+108A8;NABATAEAN NUMBER TWO;No;0;R;;;;2;N;;;;;
+108A9;NABATAEAN NUMBER THREE;No;0;R;;;;3;N;;;;;
+108AA;NABATAEAN NUMBER FOUR;No;0;R;;;;4;N;;;;;
+108AB;NABATAEAN CRUCIFORM NUMBER FOUR;No;0;R;;;;4;N;;;;;
+108AC;NABATAEAN NUMBER FIVE;No;0;R;;;;5;N;;;;;
+108AD;NABATAEAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+108AE;NABATAEAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+108AF;NABATAEAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
@@ -17133,6 +18041,89 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10A7D;OLD SOUTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
10A7E;OLD SOUTH ARABIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;;
10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;;
+10A80;OLD NORTH ARABIAN LETTER HEH;Lo;0;R;;;;;N;;;;;
+10A81;OLD NORTH ARABIAN LETTER LAM;Lo;0;R;;;;;N;;;;;
+10A82;OLD NORTH ARABIAN LETTER HAH;Lo;0;R;;;;;N;;;;;
+10A83;OLD NORTH ARABIAN LETTER MEEM;Lo;0;R;;;;;N;;;;;
+10A84;OLD NORTH ARABIAN LETTER QAF;Lo;0;R;;;;;N;;;;;
+10A85;OLD NORTH ARABIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10A86;OLD NORTH ARABIAN LETTER ES-2;Lo;0;R;;;;;N;;;;;
+10A87;OLD NORTH ARABIAN LETTER REH;Lo;0;R;;;;;N;;;;;
+10A88;OLD NORTH ARABIAN LETTER BEH;Lo;0;R;;;;;N;;;;;
+10A89;OLD NORTH ARABIAN LETTER TEH;Lo;0;R;;;;;N;;;;;
+10A8A;OLD NORTH ARABIAN LETTER ES-1;Lo;0;R;;;;;N;;;;;
+10A8B;OLD NORTH ARABIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+10A8C;OLD NORTH ARABIAN LETTER NOON;Lo;0;R;;;;;N;;;;;
+10A8D;OLD NORTH ARABIAN LETTER KHAH;Lo;0;R;;;;;N;;;;;
+10A8E;OLD NORTH ARABIAN LETTER SAD;Lo;0;R;;;;;N;;;;;
+10A8F;OLD NORTH ARABIAN LETTER ES-3;Lo;0;R;;;;;N;;;;;
+10A90;OLD NORTH ARABIAN LETTER FEH;Lo;0;R;;;;;N;;;;;
+10A91;OLD NORTH ARABIAN LETTER ALEF;Lo;0;R;;;;;N;;;;;
+10A92;OLD NORTH ARABIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10A93;OLD NORTH ARABIAN LETTER DAD;Lo;0;R;;;;;N;;;;;
+10A94;OLD NORTH ARABIAN LETTER GEEM;Lo;0;R;;;;;N;;;;;
+10A95;OLD NORTH ARABIAN LETTER DAL;Lo;0;R;;;;;N;;;;;
+10A96;OLD NORTH ARABIAN LETTER GHAIN;Lo;0;R;;;;;N;;;;;
+10A97;OLD NORTH ARABIAN LETTER TAH;Lo;0;R;;;;;N;;;;;
+10A98;OLD NORTH ARABIAN LETTER ZAIN;Lo;0;R;;;;;N;;;;;
+10A99;OLD NORTH ARABIAN LETTER THAL;Lo;0;R;;;;;N;;;;;
+10A9A;OLD NORTH ARABIAN LETTER YEH;Lo;0;R;;;;;N;;;;;
+10A9B;OLD NORTH ARABIAN LETTER THEH;Lo;0;R;;;;;N;;;;;
+10A9C;OLD NORTH ARABIAN LETTER ZAH;Lo;0;R;;;;;N;;;;;
+10A9D;OLD NORTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10A9E;OLD NORTH ARABIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10A9F;OLD NORTH ARABIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10AC0;MANICHAEAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10AC1;MANICHAEAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10AC2;MANICHAEAN LETTER BHETH;Lo;0;R;;;;;N;;;;;
+10AC3;MANICHAEAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10AC4;MANICHAEAN LETTER GHIMEL;Lo;0;R;;;;;N;;;;;
+10AC5;MANICHAEAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10AC6;MANICHAEAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10AC7;MANICHAEAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10AC8;MANICHAEAN SIGN UD;So;0;R;;;;;N;;;;;
+10AC9;MANICHAEAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10ACA;MANICHAEAN LETTER ZHAYIN;Lo;0;R;;;;;N;;;;;
+10ACB;MANICHAEAN LETTER JAYIN;Lo;0;R;;;;;N;;;;;
+10ACC;MANICHAEAN LETTER JHAYIN;Lo;0;R;;;;;N;;;;;
+10ACD;MANICHAEAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+10ACE;MANICHAEAN LETTER TETH;Lo;0;R;;;;;N;;;;;
+10ACF;MANICHAEAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+10AD0;MANICHAEAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10AD1;MANICHAEAN LETTER XAPH;Lo;0;R;;;;;N;;;;;
+10AD2;MANICHAEAN LETTER KHAPH;Lo;0;R;;;;;N;;;;;
+10AD3;MANICHAEAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10AD4;MANICHAEAN LETTER DHAMEDH;Lo;0;R;;;;;N;;;;;
+10AD5;MANICHAEAN LETTER THAMEDH;Lo;0;R;;;;;N;;;;;
+10AD6;MANICHAEAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10AD7;MANICHAEAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10AD8;MANICHAEAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10AD9;MANICHAEAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10ADA;MANICHAEAN LETTER AAYIN;Lo;0;R;;;;;N;;;;;
+10ADB;MANICHAEAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10ADC;MANICHAEAN LETTER FE;Lo;0;R;;;;;N;;;;;
+10ADD;MANICHAEAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10ADE;MANICHAEAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
+10ADF;MANICHAEAN LETTER XOPH;Lo;0;R;;;;;N;;;;;
+10AE0;MANICHAEAN LETTER QHOPH;Lo;0;R;;;;;N;;;;;
+10AE1;MANICHAEAN LETTER RESH;Lo;0;R;;;;;N;;;;;
+10AE2;MANICHAEAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10AE3;MANICHAEAN LETTER SSHIN;Lo;0;R;;;;;N;;;;;
+10AE4;MANICHAEAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+10AE5;MANICHAEAN ABBREVIATION MARK ABOVE;Mn;230;NSM;;;;;N;;;;;
+10AE6;MANICHAEAN ABBREVIATION MARK BELOW;Mn;220;NSM;;;;;N;;;;;
+10AEB;MANICHAEAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10AEC;MANICHAEAN NUMBER FIVE;No;0;R;;;;5;N;;;;;
+10AED;MANICHAEAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10AEE;MANICHAEAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10AEF;MANICHAEAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10AF0;MANICHAEAN PUNCTUATION STAR;Po;0;R;;;;;N;;;;;
+10AF1;MANICHAEAN PUNCTUATION FLEURON;Po;0;R;;;;;N;;;;;
+10AF2;MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT;Po;0;R;;;;;N;;;;;
+10AF3;MANICHAEAN PUNCTUATION DOT WITHIN DOT;Po;0;R;;;;;N;;;;;
+10AF4;MANICHAEAN PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
+10AF5;MANICHAEAN PUNCTUATION TWO DOTS;Po;0;R;;;;;N;;;;;
+10AF6;MANICHAEAN PUNCTUATION LINE FILLER;Po;0;R;;;;;N;;;;;
10B00;AVESTAN LETTER A;Lo;0;R;;;;;N;;;;;
10B01;AVESTAN LETTER AA;Lo;0;R;;;;;N;;;;;
10B02;AVESTAN LETTER AO;Lo;0;R;;;;;N;;;;;
@@ -17251,6 +18242,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10B7D;INSCRIPTIONAL PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
10B7E;INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
10B7F;INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10B80;PSALTER PAHLAVI LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10B81;PSALTER PAHLAVI LETTER BETH;Lo;0;R;;;;;N;;;;;
+10B82;PSALTER PAHLAVI LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10B83;PSALTER PAHLAVI LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10B84;PSALTER PAHLAVI LETTER HE;Lo;0;R;;;;;N;;;;;
+10B85;PSALTER PAHLAVI LETTER WAW-AYIN-RESH;Lo;0;R;;;;;N;;;;;
+10B86;PSALTER PAHLAVI LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10B87;PSALTER PAHLAVI LETTER HETH;Lo;0;R;;;;;N;;;;;
+10B88;PSALTER PAHLAVI LETTER YODH;Lo;0;R;;;;;N;;;;;
+10B89;PSALTER PAHLAVI LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10B8A;PSALTER PAHLAVI LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10B8B;PSALTER PAHLAVI LETTER MEM-QOPH;Lo;0;R;;;;;N;;;;;
+10B8C;PSALTER PAHLAVI LETTER NUN;Lo;0;R;;;;;N;;;;;
+10B8D;PSALTER PAHLAVI LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10B8E;PSALTER PAHLAVI LETTER PE;Lo;0;R;;;;;N;;;;;
+10B8F;PSALTER PAHLAVI LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10B90;PSALTER PAHLAVI LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10B91;PSALTER PAHLAVI LETTER TAW;Lo;0;R;;;;;N;;;;;
+10B99;PSALTER PAHLAVI SECTION MARK;Po;0;R;;;;;N;;;;;
+10B9A;PSALTER PAHLAVI TURNED SECTION MARK;Po;0;R;;;;;N;;;;;
+10B9B;PSALTER PAHLAVI FOUR DOTS WITH CROSS;Po;0;R;;;;;N;;;;;
+10B9C;PSALTER PAHLAVI FOUR DOTS WITH DOT;Po;0;R;;;;;N;;;;;
+10BA9;PSALTER PAHLAVI NUMBER ONE;No;0;R;;;;1;N;;;;;
+10BAA;PSALTER PAHLAVI NUMBER TWO;No;0;R;;;;2;N;;;;;
+10BAB;PSALTER PAHLAVI NUMBER THREE;No;0;R;;;;3;N;;;;;
+10BAC;PSALTER PAHLAVI NUMBER FOUR;No;0;R;;;;4;N;;;;;
+10BAD;PSALTER PAHLAVI NUMBER TEN;No;0;R;;;;10;N;;;;;
+10BAE;PSALTER PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10BAF;PSALTER PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
10C00;OLD TURKIC LETTER ORKHON A;Lo;0;R;;;;;N;;;;;
10C01;OLD TURKIC LETTER YENISEI A;Lo;0;R;;;;;N;;;;;
10C02;OLD TURKIC LETTER YENISEI AE;Lo;0;R;;;;;N;;;;;
@@ -17463,6 +18483,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1106D;BRAHMI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
1106E;BRAHMI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
1106F;BRAHMI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1107F;BRAHMI NUMBER JOINER;Mn;9;NSM;;;;;N;;;;;
11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
11082;KAITHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -17631,6 +18652,45 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
+11150;MAHAJANI LETTER A;Lo;0;L;;;;;N;;;;;
+11151;MAHAJANI LETTER I;Lo;0;L;;;;;N;;;;;
+11152;MAHAJANI LETTER U;Lo;0;L;;;;;N;;;;;
+11153;MAHAJANI LETTER E;Lo;0;L;;;;;N;;;;;
+11154;MAHAJANI LETTER O;Lo;0;L;;;;;N;;;;;
+11155;MAHAJANI LETTER KA;Lo;0;L;;;;;N;;;;;
+11156;MAHAJANI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11157;MAHAJANI LETTER GA;Lo;0;L;;;;;N;;;;;
+11158;MAHAJANI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11159;MAHAJANI LETTER CA;Lo;0;L;;;;;N;;;;;
+1115A;MAHAJANI LETTER CHA;Lo;0;L;;;;;N;;;;;
+1115B;MAHAJANI LETTER JA;Lo;0;L;;;;;N;;;;;
+1115C;MAHAJANI LETTER JHA;Lo;0;L;;;;;N;;;;;
+1115D;MAHAJANI LETTER NYA;Lo;0;L;;;;;N;;;;;
+1115E;MAHAJANI LETTER TTA;Lo;0;L;;;;;N;;;;;
+1115F;MAHAJANI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11160;MAHAJANI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11161;MAHAJANI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11162;MAHAJANI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11163;MAHAJANI LETTER TA;Lo;0;L;;;;;N;;;;;
+11164;MAHAJANI LETTER THA;Lo;0;L;;;;;N;;;;;
+11165;MAHAJANI LETTER DA;Lo;0;L;;;;;N;;;;;
+11166;MAHAJANI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11167;MAHAJANI LETTER NA;Lo;0;L;;;;;N;;;;;
+11168;MAHAJANI LETTER PA;Lo;0;L;;;;;N;;;;;
+11169;MAHAJANI LETTER PHA;Lo;0;L;;;;;N;;;;;
+1116A;MAHAJANI LETTER BA;Lo;0;L;;;;;N;;;;;
+1116B;MAHAJANI LETTER BHA;Lo;0;L;;;;;N;;;;;
+1116C;MAHAJANI LETTER MA;Lo;0;L;;;;;N;;;;;
+1116D;MAHAJANI LETTER RA;Lo;0;L;;;;;N;;;;;
+1116E;MAHAJANI LETTER LA;Lo;0;L;;;;;N;;;;;
+1116F;MAHAJANI LETTER VA;Lo;0;L;;;;;N;;;;;
+11170;MAHAJANI LETTER SA;Lo;0;L;;;;;N;;;;;
+11171;MAHAJANI LETTER HA;Lo;0;L;;;;;N;;;;;
+11172;MAHAJANI LETTER RRA;Lo;0;L;;;;;N;;;;;
+11173;MAHAJANI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+11174;MAHAJANI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+11175;MAHAJANI SECTION MARK;Po;0;L;;;;;N;;;;;
+11176;MAHAJANI LIGATURE SHRI;Lo;0;L;;;;;N;;;;;
11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -17704,6 +18764,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
+111CD;SHARADA SUTRA MARK;Po;0;L;;;;;N;;;;;
111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -17714,6 +18775,473 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+111DA;SHARADA EKAM;Lo;0;L;;;;;N;;;;;
+111E1;SINHALA ARCHAIC DIGIT ONE;No;0;L;;;;1;N;;;;;
+111E2;SINHALA ARCHAIC DIGIT TWO;No;0;L;;;;2;N;;;;;
+111E3;SINHALA ARCHAIC DIGIT THREE;No;0;L;;;;3;N;;;;;
+111E4;SINHALA ARCHAIC DIGIT FOUR;No;0;L;;;;4;N;;;;;
+111E5;SINHALA ARCHAIC DIGIT FIVE;No;0;L;;;;5;N;;;;;
+111E6;SINHALA ARCHAIC DIGIT SIX;No;0;L;;;;6;N;;;;;
+111E7;SINHALA ARCHAIC DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+111E8;SINHALA ARCHAIC DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+111E9;SINHALA ARCHAIC DIGIT NINE;No;0;L;;;;9;N;;;;;
+111EA;SINHALA ARCHAIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+111EB;SINHALA ARCHAIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+111EC;SINHALA ARCHAIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+111ED;SINHALA ARCHAIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+111EE;SINHALA ARCHAIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+111EF;SINHALA ARCHAIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+111F0;SINHALA ARCHAIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+111F1;SINHALA ARCHAIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+111F2;SINHALA ARCHAIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+111F3;SINHALA ARCHAIC NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+111F4;SINHALA ARCHAIC NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+11200;KHOJKI LETTER A;Lo;0;L;;;;;N;;;;;
+11201;KHOJKI LETTER AA;Lo;0;L;;;;;N;;;;;
+11202;KHOJKI LETTER I;Lo;0;L;;;;;N;;;;;
+11203;KHOJKI LETTER U;Lo;0;L;;;;;N;;;;;
+11204;KHOJKI LETTER E;Lo;0;L;;;;;N;;;;;
+11205;KHOJKI LETTER AI;Lo;0;L;;;;;N;;;;;
+11206;KHOJKI LETTER O;Lo;0;L;;;;;N;;;;;
+11207;KHOJKI LETTER AU;Lo;0;L;;;;;N;;;;;
+11208;KHOJKI LETTER KA;Lo;0;L;;;;;N;;;;;
+11209;KHOJKI LETTER KHA;Lo;0;L;;;;;N;;;;;
+1120A;KHOJKI LETTER GA;Lo;0;L;;;;;N;;;;;
+1120B;KHOJKI LETTER GGA;Lo;0;L;;;;;N;;;;;
+1120C;KHOJKI LETTER GHA;Lo;0;L;;;;;N;;;;;
+1120D;KHOJKI LETTER NGA;Lo;0;L;;;;;N;;;;;
+1120E;KHOJKI LETTER CA;Lo;0;L;;;;;N;;;;;
+1120F;KHOJKI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11210;KHOJKI LETTER JA;Lo;0;L;;;;;N;;;;;
+11211;KHOJKI LETTER JJA;Lo;0;L;;;;;N;;;;;
+11213;KHOJKI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11214;KHOJKI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11215;KHOJKI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11216;KHOJKI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11217;KHOJKI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11218;KHOJKI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11219;KHOJKI LETTER TA;Lo;0;L;;;;;N;;;;;
+1121A;KHOJKI LETTER THA;Lo;0;L;;;;;N;;;;;
+1121B;KHOJKI LETTER DA;Lo;0;L;;;;;N;;;;;
+1121C;KHOJKI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+1121D;KHOJKI LETTER DHA;Lo;0;L;;;;;N;;;;;
+1121E;KHOJKI LETTER NA;Lo;0;L;;;;;N;;;;;
+1121F;KHOJKI LETTER PA;Lo;0;L;;;;;N;;;;;
+11220;KHOJKI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11221;KHOJKI LETTER BA;Lo;0;L;;;;;N;;;;;
+11222;KHOJKI LETTER BBA;Lo;0;L;;;;;N;;;;;
+11223;KHOJKI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11224;KHOJKI LETTER MA;Lo;0;L;;;;;N;;;;;
+11225;KHOJKI LETTER YA;Lo;0;L;;;;;N;;;;;
+11226;KHOJKI LETTER RA;Lo;0;L;;;;;N;;;;;
+11227;KHOJKI LETTER LA;Lo;0;L;;;;;N;;;;;
+11228;KHOJKI LETTER VA;Lo;0;L;;;;;N;;;;;
+11229;KHOJKI LETTER SA;Lo;0;L;;;;;N;;;;;
+1122A;KHOJKI LETTER HA;Lo;0;L;;;;;N;;;;;
+1122B;KHOJKI LETTER LLA;Lo;0;L;;;;;N;;;;;
+1122C;KHOJKI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1122D;KHOJKI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+1122E;KHOJKI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+1122F;KHOJKI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11230;KHOJKI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+11231;KHOJKI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+11232;KHOJKI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+11233;KHOJKI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+11234;KHOJKI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11235;KHOJKI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+11236;KHOJKI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+11237;KHOJKI SIGN SHADDA;Mn;0;NSM;;;;;N;;;;;
+11238;KHOJKI DANDA;Po;0;L;;;;;N;;;;;
+11239;KHOJKI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+1123A;KHOJKI WORD SEPARATOR;Po;0;L;;;;;N;;;;;
+1123B;KHOJKI SECTION MARK;Po;0;L;;;;;N;;;;;
+1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
+1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+112B0;KHUDAWADI LETTER A;Lo;0;L;;;;;N;;;;;
+112B1;KHUDAWADI LETTER AA;Lo;0;L;;;;;N;;;;;
+112B2;KHUDAWADI LETTER I;Lo;0;L;;;;;N;;;;;
+112B3;KHUDAWADI LETTER II;Lo;0;L;;;;;N;;;;;
+112B4;KHUDAWADI LETTER U;Lo;0;L;;;;;N;;;;;
+112B5;KHUDAWADI LETTER UU;Lo;0;L;;;;;N;;;;;
+112B6;KHUDAWADI LETTER E;Lo;0;L;;;;;N;;;;;
+112B7;KHUDAWADI LETTER AI;Lo;0;L;;;;;N;;;;;
+112B8;KHUDAWADI LETTER O;Lo;0;L;;;;;N;;;;;
+112B9;KHUDAWADI LETTER AU;Lo;0;L;;;;;N;;;;;
+112BA;KHUDAWADI LETTER KA;Lo;0;L;;;;;N;;;;;
+112BB;KHUDAWADI LETTER KHA;Lo;0;L;;;;;N;;;;;
+112BC;KHUDAWADI LETTER GA;Lo;0;L;;;;;N;;;;;
+112BD;KHUDAWADI LETTER GGA;Lo;0;L;;;;;N;;;;;
+112BE;KHUDAWADI LETTER GHA;Lo;0;L;;;;;N;;;;;
+112BF;KHUDAWADI LETTER NGA;Lo;0;L;;;;;N;;;;;
+112C0;KHUDAWADI LETTER CA;Lo;0;L;;;;;N;;;;;
+112C1;KHUDAWADI LETTER CHA;Lo;0;L;;;;;N;;;;;
+112C2;KHUDAWADI LETTER JA;Lo;0;L;;;;;N;;;;;
+112C3;KHUDAWADI LETTER JJA;Lo;0;L;;;;;N;;;;;
+112C4;KHUDAWADI LETTER JHA;Lo;0;L;;;;;N;;;;;
+112C5;KHUDAWADI LETTER NYA;Lo;0;L;;;;;N;;;;;
+112C6;KHUDAWADI LETTER TTA;Lo;0;L;;;;;N;;;;;
+112C7;KHUDAWADI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+112C8;KHUDAWADI LETTER DDA;Lo;0;L;;;;;N;;;;;
+112C9;KHUDAWADI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+112CA;KHUDAWADI LETTER RRA;Lo;0;L;;;;;N;;;;;
+112CB;KHUDAWADI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+112CC;KHUDAWADI LETTER NNA;Lo;0;L;;;;;N;;;;;
+112CD;KHUDAWADI LETTER TA;Lo;0;L;;;;;N;;;;;
+112CE;KHUDAWADI LETTER THA;Lo;0;L;;;;;N;;;;;
+112CF;KHUDAWADI LETTER DA;Lo;0;L;;;;;N;;;;;
+112D0;KHUDAWADI LETTER DHA;Lo;0;L;;;;;N;;;;;
+112D1;KHUDAWADI LETTER NA;Lo;0;L;;;;;N;;;;;
+112D2;KHUDAWADI LETTER PA;Lo;0;L;;;;;N;;;;;
+112D3;KHUDAWADI LETTER PHA;Lo;0;L;;;;;N;;;;;
+112D4;KHUDAWADI LETTER BA;Lo;0;L;;;;;N;;;;;
+112D5;KHUDAWADI LETTER BBA;Lo;0;L;;;;;N;;;;;
+112D6;KHUDAWADI LETTER BHA;Lo;0;L;;;;;N;;;;;
+112D7;KHUDAWADI LETTER MA;Lo;0;L;;;;;N;;;;;
+112D8;KHUDAWADI LETTER YA;Lo;0;L;;;;;N;;;;;
+112D9;KHUDAWADI LETTER RA;Lo;0;L;;;;;N;;;;;
+112DA;KHUDAWADI LETTER LA;Lo;0;L;;;;;N;;;;;
+112DB;KHUDAWADI LETTER VA;Lo;0;L;;;;;N;;;;;
+112DC;KHUDAWADI LETTER SHA;Lo;0;L;;;;;N;;;;;
+112DD;KHUDAWADI LETTER SA;Lo;0;L;;;;;N;;;;;
+112DE;KHUDAWADI LETTER HA;Lo;0;L;;;;;N;;;;;
+112DF;KHUDAWADI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+112E0;KHUDAWADI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+112E1;KHUDAWADI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+112E2;KHUDAWADI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+112E3;KHUDAWADI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+112E4;KHUDAWADI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+112E5;KHUDAWADI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+112E6;KHUDAWADI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+112E7;KHUDAWADI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+112E8;KHUDAWADI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+112E9;KHUDAWADI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+112EA;KHUDAWADI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+112F0;KHUDAWADI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+112F1;KHUDAWADI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+112F2;KHUDAWADI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+112F3;KHUDAWADI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+112F4;KHUDAWADI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+112F5;KHUDAWADI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+112F6;KHUDAWADI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+112F7;KHUDAWADI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+112F8;KHUDAWADI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+112F9;KHUDAWADI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11301;GRANTHA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11302;GRANTHA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+11303;GRANTHA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11305;GRANTHA LETTER A;Lo;0;L;;;;;N;;;;;
+11306;GRANTHA LETTER AA;Lo;0;L;;;;;N;;;;;
+11307;GRANTHA LETTER I;Lo;0;L;;;;;N;;;;;
+11308;GRANTHA LETTER II;Lo;0;L;;;;;N;;;;;
+11309;GRANTHA LETTER U;Lo;0;L;;;;;N;;;;;
+1130A;GRANTHA LETTER UU;Lo;0;L;;;;;N;;;;;
+1130B;GRANTHA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1130C;GRANTHA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1130F;GRANTHA LETTER EE;Lo;0;L;;;;;N;;;;;
+11310;GRANTHA LETTER AI;Lo;0;L;;;;;N;;;;;
+11313;GRANTHA LETTER OO;Lo;0;L;;;;;N;;;;;
+11314;GRANTHA LETTER AU;Lo;0;L;;;;;N;;;;;
+11315;GRANTHA LETTER KA;Lo;0;L;;;;;N;;;;;
+11316;GRANTHA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11317;GRANTHA LETTER GA;Lo;0;L;;;;;N;;;;;
+11318;GRANTHA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11319;GRANTHA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1131A;GRANTHA LETTER CA;Lo;0;L;;;;;N;;;;;
+1131B;GRANTHA LETTER CHA;Lo;0;L;;;;;N;;;;;
+1131C;GRANTHA LETTER JA;Lo;0;L;;;;;N;;;;;
+1131D;GRANTHA LETTER JHA;Lo;0;L;;;;;N;;;;;
+1131E;GRANTHA LETTER NYA;Lo;0;L;;;;;N;;;;;
+1131F;GRANTHA LETTER TTA;Lo;0;L;;;;;N;;;;;
+11320;GRANTHA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11321;GRANTHA LETTER DDA;Lo;0;L;;;;;N;;;;;
+11322;GRANTHA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11323;GRANTHA LETTER NNA;Lo;0;L;;;;;N;;;;;
+11324;GRANTHA LETTER TA;Lo;0;L;;;;;N;;;;;
+11325;GRANTHA LETTER THA;Lo;0;L;;;;;N;;;;;
+11326;GRANTHA LETTER DA;Lo;0;L;;;;;N;;;;;
+11327;GRANTHA LETTER DHA;Lo;0;L;;;;;N;;;;;
+11328;GRANTHA LETTER NA;Lo;0;L;;;;;N;;;;;
+1132A;GRANTHA LETTER PA;Lo;0;L;;;;;N;;;;;
+1132B;GRANTHA LETTER PHA;Lo;0;L;;;;;N;;;;;
+1132C;GRANTHA LETTER BA;Lo;0;L;;;;;N;;;;;
+1132D;GRANTHA LETTER BHA;Lo;0;L;;;;;N;;;;;
+1132E;GRANTHA LETTER MA;Lo;0;L;;;;;N;;;;;
+1132F;GRANTHA LETTER YA;Lo;0;L;;;;;N;;;;;
+11330;GRANTHA LETTER RA;Lo;0;L;;;;;N;;;;;
+11332;GRANTHA LETTER LA;Lo;0;L;;;;;N;;;;;
+11333;GRANTHA LETTER LLA;Lo;0;L;;;;;N;;;;;
+11335;GRANTHA LETTER VA;Lo;0;L;;;;;N;;;;;
+11336;GRANTHA LETTER SHA;Lo;0;L;;;;;N;;;;;
+11337;GRANTHA LETTER SSA;Lo;0;L;;;;;N;;;;;
+11338;GRANTHA LETTER SA;Lo;0;L;;;;;N;;;;;
+11339;GRANTHA LETTER HA;Lo;0;L;;;;;N;;;;;
+1133C;GRANTHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+1133D;GRANTHA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+1133E;GRANTHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1133F;GRANTHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11340;GRANTHA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+11341;GRANTHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+11342;GRANTHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+11343;GRANTHA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+11344;GRANTHA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+11347;GRANTHA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+11348;GRANTHA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+1134B;GRANTHA VOWEL SIGN OO;Mc;0;L;11347 1133E;;;;N;;;;;
+1134C;GRANTHA VOWEL SIGN AU;Mc;0;L;11347 11357;;;;N;;;;;
+1134D;GRANTHA SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+11357;GRANTHA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+1135D;GRANTHA SIGN PLUTA;Lo;0;L;;;;;N;;;;;
+1135E;GRANTHA LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
+1135F;GRANTHA LETTER VEDIC DOUBLE ANUSVARA;Lo;0;L;;;;;N;;;;;
+11360;GRANTHA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11361;GRANTHA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+11362;GRANTHA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;;
+11363;GRANTHA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;;
+11366;COMBINING GRANTHA DIGIT ZERO;Mn;230;NSM;;;;;N;;;;;
+11367;COMBINING GRANTHA DIGIT ONE;Mn;230;NSM;;;;;N;;;;;
+11368;COMBINING GRANTHA DIGIT TWO;Mn;230;NSM;;;;;N;;;;;
+11369;COMBINING GRANTHA DIGIT THREE;Mn;230;NSM;;;;;N;;;;;
+1136A;COMBINING GRANTHA DIGIT FOUR;Mn;230;NSM;;;;;N;;;;;
+1136B;COMBINING GRANTHA DIGIT FIVE;Mn;230;NSM;;;;;N;;;;;
+1136C;COMBINING GRANTHA DIGIT SIX;Mn;230;NSM;;;;;N;;;;;
+11370;COMBINING GRANTHA LETTER A;Mn;230;NSM;;;;;N;;;;;
+11371;COMBINING GRANTHA LETTER KA;Mn;230;NSM;;;;;N;;;;;
+11372;COMBINING GRANTHA LETTER NA;Mn;230;NSM;;;;;N;;;;;
+11373;COMBINING GRANTHA LETTER VI;Mn;230;NSM;;;;;N;;;;;
+11374;COMBINING GRANTHA LETTER PA;Mn;230;NSM;;;;;N;;;;;
+11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;;
+11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;;
+11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;;
+11483;TIRHUTA LETTER I;Lo;0;L;;;;;N;;;;;
+11484;TIRHUTA LETTER II;Lo;0;L;;;;;N;;;;;
+11485;TIRHUTA LETTER U;Lo;0;L;;;;;N;;;;;
+11486;TIRHUTA LETTER UU;Lo;0;L;;;;;N;;;;;
+11487;TIRHUTA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11488;TIRHUTA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11489;TIRHUTA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1148A;TIRHUTA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1148B;TIRHUTA LETTER E;Lo;0;L;;;;;N;;;;;
+1148C;TIRHUTA LETTER AI;Lo;0;L;;;;;N;;;;;
+1148D;TIRHUTA LETTER O;Lo;0;L;;;;;N;;;;;
+1148E;TIRHUTA LETTER AU;Lo;0;L;;;;;N;;;;;
+1148F;TIRHUTA LETTER KA;Lo;0;L;;;;;N;;;;;
+11490;TIRHUTA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11491;TIRHUTA LETTER GA;Lo;0;L;;;;;N;;;;;
+11492;TIRHUTA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11493;TIRHUTA LETTER NGA;Lo;0;L;;;;;N;;;;;
+11494;TIRHUTA LETTER CA;Lo;0;L;;;;;N;;;;;
+11495;TIRHUTA LETTER CHA;Lo;0;L;;;;;N;;;;;
+11496;TIRHUTA LETTER JA;Lo;0;L;;;;;N;;;;;
+11497;TIRHUTA LETTER JHA;Lo;0;L;;;;;N;;;;;
+11498;TIRHUTA LETTER NYA;Lo;0;L;;;;;N;;;;;
+11499;TIRHUTA LETTER TTA;Lo;0;L;;;;;N;;;;;
+1149A;TIRHUTA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1149B;TIRHUTA LETTER DDA;Lo;0;L;;;;;N;;;;;
+1149C;TIRHUTA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1149D;TIRHUTA LETTER NNA;Lo;0;L;;;;;N;;;;;
+1149E;TIRHUTA LETTER TA;Lo;0;L;;;;;N;;;;;
+1149F;TIRHUTA LETTER THA;Lo;0;L;;;;;N;;;;;
+114A0;TIRHUTA LETTER DA;Lo;0;L;;;;;N;;;;;
+114A1;TIRHUTA LETTER DHA;Lo;0;L;;;;;N;;;;;
+114A2;TIRHUTA LETTER NA;Lo;0;L;;;;;N;;;;;
+114A3;TIRHUTA LETTER PA;Lo;0;L;;;;;N;;;;;
+114A4;TIRHUTA LETTER PHA;Lo;0;L;;;;;N;;;;;
+114A5;TIRHUTA LETTER BA;Lo;0;L;;;;;N;;;;;
+114A6;TIRHUTA LETTER BHA;Lo;0;L;;;;;N;;;;;
+114A7;TIRHUTA LETTER MA;Lo;0;L;;;;;N;;;;;
+114A8;TIRHUTA LETTER YA;Lo;0;L;;;;;N;;;;;
+114A9;TIRHUTA LETTER RA;Lo;0;L;;;;;N;;;;;
+114AA;TIRHUTA LETTER LA;Lo;0;L;;;;;N;;;;;
+114AB;TIRHUTA LETTER VA;Lo;0;L;;;;;N;;;;;
+114AC;TIRHUTA LETTER SHA;Lo;0;L;;;;;N;;;;;
+114AD;TIRHUTA LETTER SSA;Lo;0;L;;;;;N;;;;;
+114AE;TIRHUTA LETTER SA;Lo;0;L;;;;;N;;;;;
+114AF;TIRHUTA LETTER HA;Lo;0;L;;;;;N;;;;;
+114B0;TIRHUTA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+114B1;TIRHUTA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+114B2;TIRHUTA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+114B3;TIRHUTA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+114B4;TIRHUTA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+114B5;TIRHUTA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+114B6;TIRHUTA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+114B7;TIRHUTA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+114B8;TIRHUTA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+114B9;TIRHUTA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+114BA;TIRHUTA VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+114BB;TIRHUTA VOWEL SIGN AI;Mc;0;L;114B9 114BA;;;;N;;;;;
+114BC;TIRHUTA VOWEL SIGN O;Mc;0;L;114B9 114B0;;;;N;;;;;
+114BD;TIRHUTA VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+114BE;TIRHUTA VOWEL SIGN AU;Mc;0;L;114B9 114BD;;;;N;;;;;
+114BF;TIRHUTA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+114C0;TIRHUTA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+114C1;TIRHUTA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+114C2;TIRHUTA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+114C3;TIRHUTA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+114C4;TIRHUTA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+114C5;TIRHUTA GVANG;Lo;0;L;;;;;N;;;;;
+114C6;TIRHUTA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+114C7;TIRHUTA OM;Lo;0;L;;;;;N;;;;;
+114D0;TIRHUTA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+114D1;TIRHUTA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+114D2;TIRHUTA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+114D3;TIRHUTA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+114D4;TIRHUTA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+114D5;TIRHUTA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+114D6;TIRHUTA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+114D7;TIRHUTA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+114D8;TIRHUTA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+114D9;TIRHUTA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11580;SIDDHAM LETTER A;Lo;0;L;;;;;N;;;;;
+11581;SIDDHAM LETTER AA;Lo;0;L;;;;;N;;;;;
+11582;SIDDHAM LETTER I;Lo;0;L;;;;;N;;;;;
+11583;SIDDHAM LETTER II;Lo;0;L;;;;;N;;;;;
+11584;SIDDHAM LETTER U;Lo;0;L;;;;;N;;;;;
+11585;SIDDHAM LETTER UU;Lo;0;L;;;;;N;;;;;
+11586;SIDDHAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11587;SIDDHAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11588;SIDDHAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11589;SIDDHAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1158A;SIDDHAM LETTER E;Lo;0;L;;;;;N;;;;;
+1158B;SIDDHAM LETTER AI;Lo;0;L;;;;;N;;;;;
+1158C;SIDDHAM LETTER O;Lo;0;L;;;;;N;;;;;
+1158D;SIDDHAM LETTER AU;Lo;0;L;;;;;N;;;;;
+1158E;SIDDHAM LETTER KA;Lo;0;L;;;;;N;;;;;
+1158F;SIDDHAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+11590;SIDDHAM LETTER GA;Lo;0;L;;;;;N;;;;;
+11591;SIDDHAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+11592;SIDDHAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+11593;SIDDHAM LETTER CA;Lo;0;L;;;;;N;;;;;
+11594;SIDDHAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+11595;SIDDHAM LETTER JA;Lo;0;L;;;;;N;;;;;
+11596;SIDDHAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+11597;SIDDHAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+11598;SIDDHAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+11599;SIDDHAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1159A;SIDDHAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+1159B;SIDDHAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1159C;SIDDHAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+1159D;SIDDHAM LETTER TA;Lo;0;L;;;;;N;;;;;
+1159E;SIDDHAM LETTER THA;Lo;0;L;;;;;N;;;;;
+1159F;SIDDHAM LETTER DA;Lo;0;L;;;;;N;;;;;
+115A0;SIDDHAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+115A1;SIDDHAM LETTER NA;Lo;0;L;;;;;N;;;;;
+115A2;SIDDHAM LETTER PA;Lo;0;L;;;;;N;;;;;
+115A3;SIDDHAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+115A4;SIDDHAM LETTER BA;Lo;0;L;;;;;N;;;;;
+115A5;SIDDHAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+115A6;SIDDHAM LETTER MA;Lo;0;L;;;;;N;;;;;
+115A7;SIDDHAM LETTER YA;Lo;0;L;;;;;N;;;;;
+115A8;SIDDHAM LETTER RA;Lo;0;L;;;;;N;;;;;
+115A9;SIDDHAM LETTER LA;Lo;0;L;;;;;N;;;;;
+115AA;SIDDHAM LETTER VA;Lo;0;L;;;;;N;;;;;
+115AB;SIDDHAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+115AC;SIDDHAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+115AD;SIDDHAM LETTER SA;Lo;0;L;;;;;N;;;;;
+115AE;SIDDHAM LETTER HA;Lo;0;L;;;;;N;;;;;
+115AF;SIDDHAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+115B0;SIDDHAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+115B1;SIDDHAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+115B2;SIDDHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+115B3;SIDDHAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+115B4;SIDDHAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+115B5;SIDDHAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+115B8;SIDDHAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+115B9;SIDDHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+115BA;SIDDHAM VOWEL SIGN O;Mc;0;L;115B8 115AF;;;;N;;;;;
+115BB;SIDDHAM VOWEL SIGN AU;Mc;0;L;115B9 115AF;;;;N;;;;;
+115BC;SIDDHAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+115BD;SIDDHAM SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+115BE;SIDDHAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+115BF;SIDDHAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+115C0;SIDDHAM SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+115C1;SIDDHAM SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
+115C2;SIDDHAM DANDA;Po;0;L;;;;;N;;;;;
+115C3;SIDDHAM DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+115C4;SIDDHAM SEPARATOR DOT;Po;0;L;;;;;N;;;;;
+115C5;SIDDHAM SEPARATOR BAR;Po;0;L;;;;;N;;;;;
+115C6;SIDDHAM REPETITION MARK-1;Po;0;L;;;;;N;;;;;
+115C7;SIDDHAM REPETITION MARK-2;Po;0;L;;;;;N;;;;;
+115C8;SIDDHAM REPETITION MARK-3;Po;0;L;;;;;N;;;;;
+115C9;SIDDHAM END OF TEXT MARK;Po;0;L;;;;;N;;;;;
+11600;MODI LETTER A;Lo;0;L;;;;;N;;;;;
+11601;MODI LETTER AA;Lo;0;L;;;;;N;;;;;
+11602;MODI LETTER I;Lo;0;L;;;;;N;;;;;
+11603;MODI LETTER II;Lo;0;L;;;;;N;;;;;
+11604;MODI LETTER U;Lo;0;L;;;;;N;;;;;
+11605;MODI LETTER UU;Lo;0;L;;;;;N;;;;;
+11606;MODI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11607;MODI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11608;MODI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11609;MODI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1160A;MODI LETTER E;Lo;0;L;;;;;N;;;;;
+1160B;MODI LETTER AI;Lo;0;L;;;;;N;;;;;
+1160C;MODI LETTER O;Lo;0;L;;;;;N;;;;;
+1160D;MODI LETTER AU;Lo;0;L;;;;;N;;;;;
+1160E;MODI LETTER KA;Lo;0;L;;;;;N;;;;;
+1160F;MODI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11610;MODI LETTER GA;Lo;0;L;;;;;N;;;;;
+11611;MODI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11612;MODI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11613;MODI LETTER CA;Lo;0;L;;;;;N;;;;;
+11614;MODI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11615;MODI LETTER JA;Lo;0;L;;;;;N;;;;;
+11616;MODI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11617;MODI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11618;MODI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11619;MODI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1161A;MODI LETTER DDA;Lo;0;L;;;;;N;;;;;
+1161B;MODI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1161C;MODI LETTER NNA;Lo;0;L;;;;;N;;;;;
+1161D;MODI LETTER TA;Lo;0;L;;;;;N;;;;;
+1161E;MODI LETTER THA;Lo;0;L;;;;;N;;;;;
+1161F;MODI LETTER DA;Lo;0;L;;;;;N;;;;;
+11620;MODI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11621;MODI LETTER NA;Lo;0;L;;;;;N;;;;;
+11622;MODI LETTER PA;Lo;0;L;;;;;N;;;;;
+11623;MODI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11624;MODI LETTER BA;Lo;0;L;;;;;N;;;;;
+11625;MODI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11626;MODI LETTER MA;Lo;0;L;;;;;N;;;;;
+11627;MODI LETTER YA;Lo;0;L;;;;;N;;;;;
+11628;MODI LETTER RA;Lo;0;L;;;;;N;;;;;
+11629;MODI LETTER LA;Lo;0;L;;;;;N;;;;;
+1162A;MODI LETTER VA;Lo;0;L;;;;;N;;;;;
+1162B;MODI LETTER SHA;Lo;0;L;;;;;N;;;;;
+1162C;MODI LETTER SSA;Lo;0;L;;;;;N;;;;;
+1162D;MODI LETTER SA;Lo;0;L;;;;;N;;;;;
+1162E;MODI LETTER HA;Lo;0;L;;;;;N;;;;;
+1162F;MODI LETTER LLA;Lo;0;L;;;;;N;;;;;
+11630;MODI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11631;MODI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11632;MODI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+11633;MODI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11634;MODI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11635;MODI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11636;MODI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+11637;MODI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+11638;MODI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+11639;MODI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1163A;MODI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1163B;MODI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1163C;MODI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+1163D;MODI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1163E;MODI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1163F;MODI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11640;MODI SIGN ARDHACANDRA;Mn;0;NSM;;;;;N;;;;;
+11641;MODI DANDA;Po;0;L;;;;;N;;;;;
+11642;MODI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11643;MODI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+11644;MODI SIGN HUVA;Lo;0;L;;;;;N;;;;;
+11650;MODI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11651;MODI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11652;MODI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11653;MODI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11654;MODI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11655;MODI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11656;MODI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11657;MODI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11658;MODI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11659;MODI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;;
11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;;
11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -17780,6 +19308,147 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+118A0;WARANG CITI CAPITAL LETTER NGAA;Lu;0;L;;;;;N;;;;118C0;
+118A1;WARANG CITI CAPITAL LETTER A;Lu;0;L;;;;;N;;;;118C1;
+118A2;WARANG CITI CAPITAL LETTER WI;Lu;0;L;;;;;N;;;;118C2;
+118A3;WARANG CITI CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;118C3;
+118A4;WARANG CITI CAPITAL LETTER YA;Lu;0;L;;;;;N;;;;118C4;
+118A5;WARANG CITI CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;118C5;
+118A6;WARANG CITI CAPITAL LETTER II;Lu;0;L;;;;;N;;;;118C6;
+118A7;WARANG CITI CAPITAL LETTER UU;Lu;0;L;;;;;N;;;;118C7;
+118A8;WARANG CITI CAPITAL LETTER E;Lu;0;L;;;;;N;;;;118C8;
+118A9;WARANG CITI CAPITAL LETTER O;Lu;0;L;;;;;N;;;;118C9;
+118AA;WARANG CITI CAPITAL LETTER ANG;Lu;0;L;;;;;N;;;;118CA;
+118AB;WARANG CITI CAPITAL LETTER GA;Lu;0;L;;;;;N;;;;118CB;
+118AC;WARANG CITI CAPITAL LETTER KO;Lu;0;L;;;;;N;;;;118CC;
+118AD;WARANG CITI CAPITAL LETTER ENY;Lu;0;L;;;;;N;;;;118CD;
+118AE;WARANG CITI CAPITAL LETTER YUJ;Lu;0;L;;;;;N;;;;118CE;
+118AF;WARANG CITI CAPITAL LETTER UC;Lu;0;L;;;;;N;;;;118CF;
+118B0;WARANG CITI CAPITAL LETTER ENN;Lu;0;L;;;;;N;;;;118D0;
+118B1;WARANG CITI CAPITAL LETTER ODD;Lu;0;L;;;;;N;;;;118D1;
+118B2;WARANG CITI CAPITAL LETTER TTE;Lu;0;L;;;;;N;;;;118D2;
+118B3;WARANG CITI CAPITAL LETTER NUNG;Lu;0;L;;;;;N;;;;118D3;
+118B4;WARANG CITI CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;118D4;
+118B5;WARANG CITI CAPITAL LETTER AT;Lu;0;L;;;;;N;;;;118D5;
+118B6;WARANG CITI CAPITAL LETTER AM;Lu;0;L;;;;;N;;;;118D6;
+118B7;WARANG CITI CAPITAL LETTER BU;Lu;0;L;;;;;N;;;;118D7;
+118B8;WARANG CITI CAPITAL LETTER PU;Lu;0;L;;;;;N;;;;118D8;
+118B9;WARANG CITI CAPITAL LETTER HIYO;Lu;0;L;;;;;N;;;;118D9;
+118BA;WARANG CITI CAPITAL LETTER HOLO;Lu;0;L;;;;;N;;;;118DA;
+118BB;WARANG CITI CAPITAL LETTER HORR;Lu;0;L;;;;;N;;;;118DB;
+118BC;WARANG CITI CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;118DC;
+118BD;WARANG CITI CAPITAL LETTER SSUU;Lu;0;L;;;;;N;;;;118DD;
+118BE;WARANG CITI CAPITAL LETTER SII;Lu;0;L;;;;;N;;;;118DE;
+118BF;WARANG CITI CAPITAL LETTER VIYO;Lu;0;L;;;;;N;;;;118DF;
+118C0;WARANG CITI SMALL LETTER NGAA;Ll;0;L;;;;;N;;;118A0;;118A0
+118C1;WARANG CITI SMALL LETTER A;Ll;0;L;;;;;N;;;118A1;;118A1
+118C2;WARANG CITI SMALL LETTER WI;Ll;0;L;;;;;N;;;118A2;;118A2
+118C3;WARANG CITI SMALL LETTER YU;Ll;0;L;;;;;N;;;118A3;;118A3
+118C4;WARANG CITI SMALL LETTER YA;Ll;0;L;;;;;N;;;118A4;;118A4
+118C5;WARANG CITI SMALL LETTER YO;Ll;0;L;;;;;N;;;118A5;;118A5
+118C6;WARANG CITI SMALL LETTER II;Ll;0;L;;;;;N;;;118A6;;118A6
+118C7;WARANG CITI SMALL LETTER UU;Ll;0;L;;;;;N;;;118A7;;118A7
+118C8;WARANG CITI SMALL LETTER E;Ll;0;L;;;;;N;;;118A8;;118A8
+118C9;WARANG CITI SMALL LETTER O;Ll;0;L;;;;;N;;;118A9;;118A9
+118CA;WARANG CITI SMALL LETTER ANG;Ll;0;L;;;;;N;;;118AA;;118AA
+118CB;WARANG CITI SMALL LETTER GA;Ll;0;L;;;;;N;;;118AB;;118AB
+118CC;WARANG CITI SMALL LETTER KO;Ll;0;L;;;;;N;;;118AC;;118AC
+118CD;WARANG CITI SMALL LETTER ENY;Ll;0;L;;;;;N;;;118AD;;118AD
+118CE;WARANG CITI SMALL LETTER YUJ;Ll;0;L;;;;;N;;;118AE;;118AE
+118CF;WARANG CITI SMALL LETTER UC;Ll;0;L;;;;;N;;;118AF;;118AF
+118D0;WARANG CITI SMALL LETTER ENN;Ll;0;L;;;;;N;;;118B0;;118B0
+118D1;WARANG CITI SMALL LETTER ODD;Ll;0;L;;;;;N;;;118B1;;118B1
+118D2;WARANG CITI SMALL LETTER TTE;Ll;0;L;;;;;N;;;118B2;;118B2
+118D3;WARANG CITI SMALL LETTER NUNG;Ll;0;L;;;;;N;;;118B3;;118B3
+118D4;WARANG CITI SMALL LETTER DA;Ll;0;L;;;;;N;;;118B4;;118B4
+118D5;WARANG CITI SMALL LETTER AT;Ll;0;L;;;;;N;;;118B5;;118B5
+118D6;WARANG CITI SMALL LETTER AM;Ll;0;L;;;;;N;;;118B6;;118B6
+118D7;WARANG CITI SMALL LETTER BU;Ll;0;L;;;;;N;;;118B7;;118B7
+118D8;WARANG CITI SMALL LETTER PU;Ll;0;L;;;;;N;;;118B8;;118B8
+118D9;WARANG CITI SMALL LETTER HIYO;Ll;0;L;;;;;N;;;118B9;;118B9
+118DA;WARANG CITI SMALL LETTER HOLO;Ll;0;L;;;;;N;;;118BA;;118BA
+118DB;WARANG CITI SMALL LETTER HORR;Ll;0;L;;;;;N;;;118BB;;118BB
+118DC;WARANG CITI SMALL LETTER HAR;Ll;0;L;;;;;N;;;118BC;;118BC
+118DD;WARANG CITI SMALL LETTER SSUU;Ll;0;L;;;;;N;;;118BD;;118BD
+118DE;WARANG CITI SMALL LETTER SII;Ll;0;L;;;;;N;;;118BE;;118BE
+118DF;WARANG CITI SMALL LETTER VIYO;Ll;0;L;;;;;N;;;118BF;;118BF
+118E0;WARANG CITI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+118E1;WARANG CITI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+118E2;WARANG CITI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+118E3;WARANG CITI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+118E4;WARANG CITI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+118E5;WARANG CITI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+118E6;WARANG CITI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+118E7;WARANG CITI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+118E8;WARANG CITI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+118E9;WARANG CITI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+118EA;WARANG CITI NUMBER TEN;No;0;L;;;;10;N;;;;;
+118EB;WARANG CITI NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+118EC;WARANG CITI NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+118ED;WARANG CITI NUMBER FORTY;No;0;L;;;;40;N;;;;;
+118EE;WARANG CITI NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+118EF;WARANG CITI NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+118F0;WARANG CITI NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+118F1;WARANG CITI NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+118F2;WARANG CITI NUMBER NINETY;No;0;L;;;;90;N;;;;;
+118FF;WARANG CITI OM;Lo;0;L;;;;;N;;;;;
+11AC0;PAU CIN HAU LETTER PA;Lo;0;L;;;;;N;;;;;
+11AC1;PAU CIN HAU LETTER KA;Lo;0;L;;;;;N;;;;;
+11AC2;PAU CIN HAU LETTER LA;Lo;0;L;;;;;N;;;;;
+11AC3;PAU CIN HAU LETTER MA;Lo;0;L;;;;;N;;;;;
+11AC4;PAU CIN HAU LETTER DA;Lo;0;L;;;;;N;;;;;
+11AC5;PAU CIN HAU LETTER ZA;Lo;0;L;;;;;N;;;;;
+11AC6;PAU CIN HAU LETTER VA;Lo;0;L;;;;;N;;;;;
+11AC7;PAU CIN HAU LETTER NGA;Lo;0;L;;;;;N;;;;;
+11AC8;PAU CIN HAU LETTER HA;Lo;0;L;;;;;N;;;;;
+11AC9;PAU CIN HAU LETTER GA;Lo;0;L;;;;;N;;;;;
+11ACA;PAU CIN HAU LETTER KHA;Lo;0;L;;;;;N;;;;;
+11ACB;PAU CIN HAU LETTER SA;Lo;0;L;;;;;N;;;;;
+11ACC;PAU CIN HAU LETTER BA;Lo;0;L;;;;;N;;;;;
+11ACD;PAU CIN HAU LETTER CA;Lo;0;L;;;;;N;;;;;
+11ACE;PAU CIN HAU LETTER TA;Lo;0;L;;;;;N;;;;;
+11ACF;PAU CIN HAU LETTER THA;Lo;0;L;;;;;N;;;;;
+11AD0;PAU CIN HAU LETTER NA;Lo;0;L;;;;;N;;;;;
+11AD1;PAU CIN HAU LETTER PHA;Lo;0;L;;;;;N;;;;;
+11AD2;PAU CIN HAU LETTER RA;Lo;0;L;;;;;N;;;;;
+11AD3;PAU CIN HAU LETTER FA;Lo;0;L;;;;;N;;;;;
+11AD4;PAU CIN HAU LETTER CHA;Lo;0;L;;;;;N;;;;;
+11AD5;PAU CIN HAU LETTER A;Lo;0;L;;;;;N;;;;;
+11AD6;PAU CIN HAU LETTER E;Lo;0;L;;;;;N;;;;;
+11AD7;PAU CIN HAU LETTER I;Lo;0;L;;;;;N;;;;;
+11AD8;PAU CIN HAU LETTER O;Lo;0;L;;;;;N;;;;;
+11AD9;PAU CIN HAU LETTER U;Lo;0;L;;;;;N;;;;;
+11ADA;PAU CIN HAU LETTER UA;Lo;0;L;;;;;N;;;;;
+11ADB;PAU CIN HAU LETTER IA;Lo;0;L;;;;;N;;;;;
+11ADC;PAU CIN HAU LETTER FINAL P;Lo;0;L;;;;;N;;;;;
+11ADD;PAU CIN HAU LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+11ADE;PAU CIN HAU LETTER FINAL T;Lo;0;L;;;;;N;;;;;
+11ADF;PAU CIN HAU LETTER FINAL M;Lo;0;L;;;;;N;;;;;
+11AE0;PAU CIN HAU LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+11AE1;PAU CIN HAU LETTER FINAL L;Lo;0;L;;;;;N;;;;;
+11AE2;PAU CIN HAU LETTER FINAL W;Lo;0;L;;;;;N;;;;;
+11AE3;PAU CIN HAU LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+11AE4;PAU CIN HAU LETTER FINAL Y;Lo;0;L;;;;;N;;;;;
+11AE5;PAU CIN HAU RISING TONE LONG;Lo;0;L;;;;;N;;;;;
+11AE6;PAU CIN HAU RISING TONE;Lo;0;L;;;;;N;;;;;
+11AE7;PAU CIN HAU SANDHI GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+11AE8;PAU CIN HAU RISING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AE9;PAU CIN HAU RISING TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AEA;PAU CIN HAU SANDHI GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
+11AEB;PAU CIN HAU SANDHI TONE LONG;Lo;0;L;;;;;N;;;;;
+11AEC;PAU CIN HAU SANDHI TONE;Lo;0;L;;;;;N;;;;;
+11AED;PAU CIN HAU SANDHI TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AEE;PAU CIN HAU SANDHI TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AEF;PAU CIN HAU MID-LEVEL TONE;Lo;0;L;;;;;N;;;;;
+11AF0;PAU CIN HAU GLOTTAL STOP VARIANT;Lo;0;L;;;;;N;;;;;
+11AF1;PAU CIN HAU MID-LEVEL TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AF2;PAU CIN HAU MID-LEVEL TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AF3;PAU CIN HAU LOW-FALLING TONE LONG;Lo;0;L;;;;;N;;;;;
+11AF4;PAU CIN HAU LOW-FALLING TONE;Lo;0;L;;;;;N;;;;;
+11AF5;PAU CIN HAU GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
+11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;;
+11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
@@ -18659,6 +20328,48 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+1236F;CUNEIFORM SIGN KAP ELAMITE;Lo;0;L;;;;;N;;;;;
+12370;CUNEIFORM SIGN AB TIMES NUN;Lo;0;L;;;;;N;;;;;
+12371;CUNEIFORM SIGN AB2 TIMES A;Lo;0;L;;;;;N;;;;;
+12372;CUNEIFORM SIGN AMAR TIMES KUG;Lo;0;L;;;;;N;;;;;
+12373;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH;Lo;0;L;;;;;N;;;;;
+12374;CUNEIFORM SIGN DAG3;Lo;0;L;;;;;N;;;;;
+12375;CUNEIFORM SIGN DISH PLUS SHU;Lo;0;L;;;;;N;;;;;
+12376;CUNEIFORM SIGN DUB TIMES SHE;Lo;0;L;;;;;N;;;;;
+12377;CUNEIFORM SIGN EZEN TIMES GUD;Lo;0;L;;;;;N;;;;;
+12378;CUNEIFORM SIGN EZEN TIMES SHE;Lo;0;L;;;;;N;;;;;
+12379;CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A;Lo;0;L;;;;;N;;;;;
+1237A;CUNEIFORM SIGN GA2 TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1237B;CUNEIFORM SIGN GE22;Lo;0;L;;;;;N;;;;;
+1237C;CUNEIFORM SIGN GIG;Lo;0;L;;;;;N;;;;;
+1237D;CUNEIFORM SIGN HUSH;Lo;0;L;;;;;N;;;;;
+1237E;CUNEIFORM SIGN KA TIMES ANSHE;Lo;0;L;;;;;N;;;;;
+1237F;CUNEIFORM SIGN KA TIMES ASH3;Lo;0;L;;;;;N;;;;;
+12380;CUNEIFORM SIGN KA TIMES GISH;Lo;0;L;;;;;N;;;;;
+12381;CUNEIFORM SIGN KA TIMES GUD;Lo;0;L;;;;;N;;;;;
+12382;CUNEIFORM SIGN KA TIMES HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12383;CUNEIFORM SIGN KA TIMES LUM;Lo;0;L;;;;;N;;;;;
+12384;CUNEIFORM SIGN KA TIMES PA;Lo;0;L;;;;;N;;;;;
+12385;CUNEIFORM SIGN KA TIMES SHUL;Lo;0;L;;;;;N;;;;;
+12386;CUNEIFORM SIGN KA TIMES TU;Lo;0;L;;;;;N;;;;;
+12387;CUNEIFORM SIGN KA TIMES UR2;Lo;0;L;;;;;N;;;;;
+12388;CUNEIFORM SIGN LAGAB TIMES GI;Lo;0;L;;;;;N;;;;;
+12389;CUNEIFORM SIGN LU2 SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1238A;CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL;Lo;0;L;;;;;N;;;;;
+1238B;CUNEIFORM SIGN LU2 TIMES SHU;Lo;0;L;;;;;N;;;;;
+1238C;CUNEIFORM SIGN MESH;Lo;0;L;;;;;N;;;;;
+1238D;CUNEIFORM SIGN MUSH3 TIMES ZA;Lo;0;L;;;;;N;;;;;
+1238E;CUNEIFORM SIGN NA4;Lo;0;L;;;;;N;;;;;
+1238F;CUNEIFORM SIGN NIN;Lo;0;L;;;;;N;;;;;
+12390;CUNEIFORM SIGN NIN9;Lo;0;L;;;;;N;;;;;
+12391;CUNEIFORM SIGN NINDA2 TIMES BAL;Lo;0;L;;;;;N;;;;;
+12392;CUNEIFORM SIGN NINDA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+12393;CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES;Lo;0;L;;;;;N;;;;;
+12394;CUNEIFORM SIGN PESH2 ASTERISK;Lo;0;L;;;;;N;;;;;
+12395;CUNEIFORM SIGN PIR2;Lo;0;L;;;;;N;;;;;
+12396;CUNEIFORM SIGN SAG TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12397;CUNEIFORM SIGN TI2;Lo;0;L;;;;;N;;;;;
+12398;CUNEIFORM SIGN UM TIMES ME;Lo;0;L;;;;;N;;;;;
12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
@@ -18758,10 +20469,23 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12463;CUNEIFORM NUMERIC SIGN ONE QUARTER GUR;Nl;0;L;;;;1/4;N;;;;;
+12464;CUNEIFORM NUMERIC SIGN ONE HALF GUR;Nl;0;L;;;;1/2;N;;;;;
+12465;CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD;Nl;0;L;;;;1/3;N;;;;;
+12466;CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS;Nl;0;L;;;;2/3;N;;;;;
+12467;CUNEIFORM NUMERIC SIGN ELAMITE FORTY;Nl;0;L;;;;40;N;;;;;
+12468;CUNEIFORM NUMERIC SIGN ELAMITE FIFTY;Nl;0;L;;;;50;N;;;;;
+12469;CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+1246A;CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+1246B;CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM;Nl;0;L;;;;6;N;;;;;
+1246C;CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM;Nl;0;L;;;;7;N;;;;;
+1246D;CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM;Nl;0;L;;;;8;N;;;;;
+1246E;CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM;Nl;0;L;;;;9;N;;;;;
12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
+12474;CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON;Po;0;L;;;;;N;;;;;
13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -20402,6 +22126,212 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;;
16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;;
16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;;
+16A40;MRO LETTER TA;Lo;0;L;;;;;N;;;;;
+16A41;MRO LETTER NGI;Lo;0;L;;;;;N;;;;;
+16A42;MRO LETTER YO;Lo;0;L;;;;;N;;;;;
+16A43;MRO LETTER MIM;Lo;0;L;;;;;N;;;;;
+16A44;MRO LETTER BA;Lo;0;L;;;;;N;;;;;
+16A45;MRO LETTER DA;Lo;0;L;;;;;N;;;;;
+16A46;MRO LETTER A;Lo;0;L;;;;;N;;;;;
+16A47;MRO LETTER PHI;Lo;0;L;;;;;N;;;;;
+16A48;MRO LETTER KHAI;Lo;0;L;;;;;N;;;;;
+16A49;MRO LETTER HAO;Lo;0;L;;;;;N;;;;;
+16A4A;MRO LETTER DAI;Lo;0;L;;;;;N;;;;;
+16A4B;MRO LETTER CHU;Lo;0;L;;;;;N;;;;;
+16A4C;MRO LETTER KEAAE;Lo;0;L;;;;;N;;;;;
+16A4D;MRO LETTER OL;Lo;0;L;;;;;N;;;;;
+16A4E;MRO LETTER MAEM;Lo;0;L;;;;;N;;;;;
+16A4F;MRO LETTER NIN;Lo;0;L;;;;;N;;;;;
+16A50;MRO LETTER PA;Lo;0;L;;;;;N;;;;;
+16A51;MRO LETTER OO;Lo;0;L;;;;;N;;;;;
+16A52;MRO LETTER O;Lo;0;L;;;;;N;;;;;
+16A53;MRO LETTER RO;Lo;0;L;;;;;N;;;;;
+16A54;MRO LETTER SHI;Lo;0;L;;;;;N;;;;;
+16A55;MRO LETTER THEA;Lo;0;L;;;;;N;;;;;
+16A56;MRO LETTER EA;Lo;0;L;;;;;N;;;;;
+16A57;MRO LETTER WA;Lo;0;L;;;;;N;;;;;
+16A58;MRO LETTER E;Lo;0;L;;;;;N;;;;;
+16A59;MRO LETTER KO;Lo;0;L;;;;;N;;;;;
+16A5A;MRO LETTER LAN;Lo;0;L;;;;;N;;;;;
+16A5B;MRO LETTER LA;Lo;0;L;;;;;N;;;;;
+16A5C;MRO LETTER HAI;Lo;0;L;;;;;N;;;;;
+16A5D;MRO LETTER RI;Lo;0;L;;;;;N;;;;;
+16A5E;MRO LETTER TEK;Lo;0;L;;;;;N;;;;;
+16A60;MRO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+16A61;MRO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+16A62;MRO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+16A63;MRO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+16A64;MRO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+16A65;MRO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+16A66;MRO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+16A67;MRO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+16A68;MRO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+16A69;MRO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+16A6E;MRO DANDA;Po;0;L;;;;;N;;;;;
+16A6F;MRO DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+16AD0;BASSA VAH LETTER ENNI;Lo;0;L;;;;;N;;;;;
+16AD1;BASSA VAH LETTER KA;Lo;0;L;;;;;N;;;;;
+16AD2;BASSA VAH LETTER SE;Lo;0;L;;;;;N;;;;;
+16AD3;BASSA VAH LETTER FA;Lo;0;L;;;;;N;;;;;
+16AD4;BASSA VAH LETTER MBE;Lo;0;L;;;;;N;;;;;
+16AD5;BASSA VAH LETTER YIE;Lo;0;L;;;;;N;;;;;
+16AD6;BASSA VAH LETTER GAH;Lo;0;L;;;;;N;;;;;
+16AD7;BASSA VAH LETTER DHII;Lo;0;L;;;;;N;;;;;
+16AD8;BASSA VAH LETTER KPAH;Lo;0;L;;;;;N;;;;;
+16AD9;BASSA VAH LETTER JO;Lo;0;L;;;;;N;;;;;
+16ADA;BASSA VAH LETTER HWAH;Lo;0;L;;;;;N;;;;;
+16ADB;BASSA VAH LETTER WA;Lo;0;L;;;;;N;;;;;
+16ADC;BASSA VAH LETTER ZO;Lo;0;L;;;;;N;;;;;
+16ADD;BASSA VAH LETTER GBU;Lo;0;L;;;;;N;;;;;
+16ADE;BASSA VAH LETTER DO;Lo;0;L;;;;;N;;;;;
+16ADF;BASSA VAH LETTER CE;Lo;0;L;;;;;N;;;;;
+16AE0;BASSA VAH LETTER UWU;Lo;0;L;;;;;N;;;;;
+16AE1;BASSA VAH LETTER TO;Lo;0;L;;;;;N;;;;;
+16AE2;BASSA VAH LETTER BA;Lo;0;L;;;;;N;;;;;
+16AE3;BASSA VAH LETTER VU;Lo;0;L;;;;;N;;;;;
+16AE4;BASSA VAH LETTER YEIN;Lo;0;L;;;;;N;;;;;
+16AE5;BASSA VAH LETTER PA;Lo;0;L;;;;;N;;;;;
+16AE6;BASSA VAH LETTER WADDA;Lo;0;L;;;;;N;;;;;
+16AE7;BASSA VAH LETTER A;Lo;0;L;;;;;N;;;;;
+16AE8;BASSA VAH LETTER O;Lo;0;L;;;;;N;;;;;
+16AE9;BASSA VAH LETTER OO;Lo;0;L;;;;;N;;;;;
+16AEA;BASSA VAH LETTER U;Lo;0;L;;;;;N;;;;;
+16AEB;BASSA VAH LETTER EE;Lo;0;L;;;;;N;;;;;
+16AEC;BASSA VAH LETTER E;Lo;0;L;;;;;N;;;;;
+16AED;BASSA VAH LETTER I;Lo;0;L;;;;;N;;;;;
+16AF0;BASSA VAH COMBINING HIGH TONE;Mn;1;NSM;;;;;N;;;;;
+16AF1;BASSA VAH COMBINING LOW TONE;Mn;1;NSM;;;;;N;;;;;
+16AF2;BASSA VAH COMBINING MID TONE;Mn;1;NSM;;;;;N;;;;;
+16AF3;BASSA VAH COMBINING LOW-MID TONE;Mn;1;NSM;;;;;N;;;;;
+16AF4;BASSA VAH COMBINING HIGH-LOW TONE;Mn;1;NSM;;;;;N;;;;;
+16AF5;BASSA VAH FULL STOP;Po;0;L;;;;;N;;;;;
+16B00;PAHAWH HMONG VOWEL KEEB;Lo;0;L;;;;;N;;;;;
+16B01;PAHAWH HMONG VOWEL KEEV;Lo;0;L;;;;;N;;;;;
+16B02;PAHAWH HMONG VOWEL KIB;Lo;0;L;;;;;N;;;;;
+16B03;PAHAWH HMONG VOWEL KIV;Lo;0;L;;;;;N;;;;;
+16B04;PAHAWH HMONG VOWEL KAUB;Lo;0;L;;;;;N;;;;;
+16B05;PAHAWH HMONG VOWEL KAUV;Lo;0;L;;;;;N;;;;;
+16B06;PAHAWH HMONG VOWEL KUB;Lo;0;L;;;;;N;;;;;
+16B07;PAHAWH HMONG VOWEL KUV;Lo;0;L;;;;;N;;;;;
+16B08;PAHAWH HMONG VOWEL KEB;Lo;0;L;;;;;N;;;;;
+16B09;PAHAWH HMONG VOWEL KEV;Lo;0;L;;;;;N;;;;;
+16B0A;PAHAWH HMONG VOWEL KAIB;Lo;0;L;;;;;N;;;;;
+16B0B;PAHAWH HMONG VOWEL KAIV;Lo;0;L;;;;;N;;;;;
+16B0C;PAHAWH HMONG VOWEL KOOB;Lo;0;L;;;;;N;;;;;
+16B0D;PAHAWH HMONG VOWEL KOOV;Lo;0;L;;;;;N;;;;;
+16B0E;PAHAWH HMONG VOWEL KAWB;Lo;0;L;;;;;N;;;;;
+16B0F;PAHAWH HMONG VOWEL KAWV;Lo;0;L;;;;;N;;;;;
+16B10;PAHAWH HMONG VOWEL KUAB;Lo;0;L;;;;;N;;;;;
+16B11;PAHAWH HMONG VOWEL KUAV;Lo;0;L;;;;;N;;;;;
+16B12;PAHAWH HMONG VOWEL KOB;Lo;0;L;;;;;N;;;;;
+16B13;PAHAWH HMONG VOWEL KOV;Lo;0;L;;;;;N;;;;;
+16B14;PAHAWH HMONG VOWEL KIAB;Lo;0;L;;;;;N;;;;;
+16B15;PAHAWH HMONG VOWEL KIAV;Lo;0;L;;;;;N;;;;;
+16B16;PAHAWH HMONG VOWEL KAB;Lo;0;L;;;;;N;;;;;
+16B17;PAHAWH HMONG VOWEL KAV;Lo;0;L;;;;;N;;;;;
+16B18;PAHAWH HMONG VOWEL KWB;Lo;0;L;;;;;N;;;;;
+16B19;PAHAWH HMONG VOWEL KWV;Lo;0;L;;;;;N;;;;;
+16B1A;PAHAWH HMONG VOWEL KAAB;Lo;0;L;;;;;N;;;;;
+16B1B;PAHAWH HMONG VOWEL KAAV;Lo;0;L;;;;;N;;;;;
+16B1C;PAHAWH HMONG CONSONANT VAU;Lo;0;L;;;;;N;;;;;
+16B1D;PAHAWH HMONG CONSONANT NTSAU;Lo;0;L;;;;;N;;;;;
+16B1E;PAHAWH HMONG CONSONANT LAU;Lo;0;L;;;;;N;;;;;
+16B1F;PAHAWH HMONG CONSONANT HAU;Lo;0;L;;;;;N;;;;;
+16B20;PAHAWH HMONG CONSONANT NLAU;Lo;0;L;;;;;N;;;;;
+16B21;PAHAWH HMONG CONSONANT RAU;Lo;0;L;;;;;N;;;;;
+16B22;PAHAWH HMONG CONSONANT NKAU;Lo;0;L;;;;;N;;;;;
+16B23;PAHAWH HMONG CONSONANT QHAU;Lo;0;L;;;;;N;;;;;
+16B24;PAHAWH HMONG CONSONANT YAU;Lo;0;L;;;;;N;;;;;
+16B25;PAHAWH HMONG CONSONANT HLAU;Lo;0;L;;;;;N;;;;;
+16B26;PAHAWH HMONG CONSONANT MAU;Lo;0;L;;;;;N;;;;;
+16B27;PAHAWH HMONG CONSONANT CHAU;Lo;0;L;;;;;N;;;;;
+16B28;PAHAWH HMONG CONSONANT NCHAU;Lo;0;L;;;;;N;;;;;
+16B29;PAHAWH HMONG CONSONANT HNAU;Lo;0;L;;;;;N;;;;;
+16B2A;PAHAWH HMONG CONSONANT PLHAU;Lo;0;L;;;;;N;;;;;
+16B2B;PAHAWH HMONG CONSONANT NTHAU;Lo;0;L;;;;;N;;;;;
+16B2C;PAHAWH HMONG CONSONANT NAU;Lo;0;L;;;;;N;;;;;
+16B2D;PAHAWH HMONG CONSONANT AU;Lo;0;L;;;;;N;;;;;
+16B2E;PAHAWH HMONG CONSONANT XAU;Lo;0;L;;;;;N;;;;;
+16B2F;PAHAWH HMONG CONSONANT CAU;Lo;0;L;;;;;N;;;;;
+16B30;PAHAWH HMONG MARK CIM TUB;Mn;230;NSM;;;;;N;;;;;
+16B31;PAHAWH HMONG MARK CIM SO;Mn;230;NSM;;;;;N;;;;;
+16B32;PAHAWH HMONG MARK CIM KES;Mn;230;NSM;;;;;N;;;;;
+16B33;PAHAWH HMONG MARK CIM KHAV;Mn;230;NSM;;;;;N;;;;;
+16B34;PAHAWH HMONG MARK CIM SUAM;Mn;230;NSM;;;;;N;;;;;
+16B35;PAHAWH HMONG MARK CIM HOM;Mn;230;NSM;;;;;N;;;;;
+16B36;PAHAWH HMONG MARK CIM TAUM;Mn;230;NSM;;;;;N;;;;;
+16B37;PAHAWH HMONG SIGN VOS THOM;Po;0;L;;;;;N;;;;;
+16B38;PAHAWH HMONG SIGN VOS TSHAB CEEB;Po;0;L;;;;;N;;;;;
+16B39;PAHAWH HMONG SIGN CIM CHEEM;Po;0;L;;;;;N;;;;;
+16B3A;PAHAWH HMONG SIGN VOS THIAB;Po;0;L;;;;;N;;;;;
+16B3B;PAHAWH HMONG SIGN VOS FEEM;Po;0;L;;;;;N;;;;;
+16B3C;PAHAWH HMONG SIGN XYEEM NTXIV;So;0;L;;;;;N;;;;;
+16B3D;PAHAWH HMONG SIGN XYEEM RHO;So;0;L;;;;;N;;;;;
+16B3E;PAHAWH HMONG SIGN XYEEM TOV;So;0;L;;;;;N;;;;;
+16B3F;PAHAWH HMONG SIGN XYEEM FAIB;So;0;L;;;;;N;;;;;
+16B40;PAHAWH HMONG SIGN VOS SEEV;Lm;0;L;;;;;N;;;;;
+16B41;PAHAWH HMONG SIGN MEEJ SUAB;Lm;0;L;;;;;N;;;;;
+16B42;PAHAWH HMONG SIGN VOS NRUA;Lm;0;L;;;;;N;;;;;
+16B43;PAHAWH HMONG SIGN IB YAM;Lm;0;L;;;;;N;;;;;
+16B44;PAHAWH HMONG SIGN XAUS;Po;0;L;;;;;N;;;;;
+16B45;PAHAWH HMONG SIGN CIM TSOV ROG;So;0;L;;;;;N;;;;;
+16B50;PAHAWH HMONG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+16B51;PAHAWH HMONG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+16B52;PAHAWH HMONG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+16B53;PAHAWH HMONG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+16B54;PAHAWH HMONG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+16B55;PAHAWH HMONG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+16B56;PAHAWH HMONG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+16B57;PAHAWH HMONG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+16B58;PAHAWH HMONG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+16B59;PAHAWH HMONG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+16B5B;PAHAWH HMONG NUMBER TENS;No;0;L;;;;10;N;;;;;
+16B5C;PAHAWH HMONG NUMBER HUNDREDS;No;0;L;;;;100;N;;;;;
+16B5D;PAHAWH HMONG NUMBER TEN THOUSANDS;No;0;L;;;;10000;N;;;;;
+16B5E;PAHAWH HMONG NUMBER MILLIONS;No;0;L;;;;1000000;N;;;;;
+16B5F;PAHAWH HMONG NUMBER HUNDRED MILLIONS;No;0;L;;;;100000000;N;;;;;
+16B60;PAHAWH HMONG NUMBER TEN BILLIONS;No;0;L;;;;10000000000;N;;;;;
+16B61;PAHAWH HMONG NUMBER TRILLIONS;No;0;L;;;;1000000000000;N;;;;;
+16B63;PAHAWH HMONG SIGN VOS LUB;Lo;0;L;;;;;N;;;;;
+16B64;PAHAWH HMONG SIGN XYOO;Lo;0;L;;;;;N;;;;;
+16B65;PAHAWH HMONG SIGN HLI;Lo;0;L;;;;;N;;;;;
+16B66;PAHAWH HMONG SIGN THIRD-STAGE HLI;Lo;0;L;;;;;N;;;;;
+16B67;PAHAWH HMONG SIGN ZWJ THAJ;Lo;0;L;;;;;N;;;;;
+16B68;PAHAWH HMONG SIGN HNUB;Lo;0;L;;;;;N;;;;;
+16B69;PAHAWH HMONG SIGN NQIG;Lo;0;L;;;;;N;;;;;
+16B6A;PAHAWH HMONG SIGN XIAB;Lo;0;L;;;;;N;;;;;
+16B6B;PAHAWH HMONG SIGN NTUJ;Lo;0;L;;;;;N;;;;;
+16B6C;PAHAWH HMONG SIGN AV;Lo;0;L;;;;;N;;;;;
+16B6D;PAHAWH HMONG SIGN TXHEEJ CEEV;Lo;0;L;;;;;N;;;;;
+16B6E;PAHAWH HMONG SIGN MEEJ TSEEB;Lo;0;L;;;;;N;;;;;
+16B6F;PAHAWH HMONG SIGN TAU;Lo;0;L;;;;;N;;;;;
+16B70;PAHAWH HMONG SIGN LOS;Lo;0;L;;;;;N;;;;;
+16B71;PAHAWH HMONG SIGN MUS;Lo;0;L;;;;;N;;;;;
+16B72;PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG;Lo;0;L;;;;;N;;;;;
+16B73;PAHAWH HMONG SIGN CIM CUAM TSHOOJ;Lo;0;L;;;;;N;;;;;
+16B74;PAHAWH HMONG SIGN CIM TXWV;Lo;0;L;;;;;N;;;;;
+16B75;PAHAWH HMONG SIGN CIM TXWV CHWV;Lo;0;L;;;;;N;;;;;
+16B76;PAHAWH HMONG SIGN CIM PUB DAWB;Lo;0;L;;;;;N;;;;;
+16B77;PAHAWH HMONG SIGN CIM NRES TOS;Lo;0;L;;;;;N;;;;;
+16B7D;PAHAWH HMONG CLAN SIGN TSHEEJ;Lo;0;L;;;;;N;;;;;
+16B7E;PAHAWH HMONG CLAN SIGN YEEG;Lo;0;L;;;;;N;;;;;
+16B7F;PAHAWH HMONG CLAN SIGN LIS;Lo;0;L;;;;;N;;;;;
+16B80;PAHAWH HMONG CLAN SIGN LAUJ;Lo;0;L;;;;;N;;;;;
+16B81;PAHAWH HMONG CLAN SIGN XYOOJ;Lo;0;L;;;;;N;;;;;
+16B82;PAHAWH HMONG CLAN SIGN KOO;Lo;0;L;;;;;N;;;;;
+16B83;PAHAWH HMONG CLAN SIGN HAWJ;Lo;0;L;;;;;N;;;;;
+16B84;PAHAWH HMONG CLAN SIGN MUAS;Lo;0;L;;;;;N;;;;;
+16B85;PAHAWH HMONG CLAN SIGN THOJ;Lo;0;L;;;;;N;;;;;
+16B86;PAHAWH HMONG CLAN SIGN TSAB;Lo;0;L;;;;;N;;;;;
+16B87;PAHAWH HMONG CLAN SIGN PHAB;Lo;0;L;;;;;N;;;;;
+16B88;PAHAWH HMONG CLAN SIGN KHAB;Lo;0;L;;;;;N;;;;;
+16B89;PAHAWH HMONG CLAN SIGN HAM;Lo;0;L;;;;;N;;;;;
+16B8A;PAHAWH HMONG CLAN SIGN VAJ;Lo;0;L;;;;;N;;;;;
+16B8B;PAHAWH HMONG CLAN SIGN FAJ;Lo;0;L;;;;;N;;;;;
+16B8C;PAHAWH HMONG CLAN SIGN YAJ;Lo;0;L;;;;;N;;;;;
+16B8D;PAHAWH HMONG CLAN SIGN TSWB;Lo;0;L;;;;;N;;;;;
+16B8E;PAHAWH HMONG CLAN SIGN KWM;Lo;0;L;;;;;N;;;;;
+16B8F;PAHAWH HMONG CLAN SIGN VWJ;Lo;0;L;;;;;N;;;;;
16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
@@ -20537,6 +22467,153 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
+1BC00;DUPLOYAN LETTER H;Lo;0;L;;;;;N;;;;;
+1BC01;DUPLOYAN LETTER X;Lo;0;L;;;;;N;;;;;
+1BC02;DUPLOYAN LETTER P;Lo;0;L;;;;;N;;;;;
+1BC03;DUPLOYAN LETTER T;Lo;0;L;;;;;N;;;;;
+1BC04;DUPLOYAN LETTER F;Lo;0;L;;;;;N;;;;;
+1BC05;DUPLOYAN LETTER K;Lo;0;L;;;;;N;;;;;
+1BC06;DUPLOYAN LETTER L;Lo;0;L;;;;;N;;;;;
+1BC07;DUPLOYAN LETTER B;Lo;0;L;;;;;N;;;;;
+1BC08;DUPLOYAN LETTER D;Lo;0;L;;;;;N;;;;;
+1BC09;DUPLOYAN LETTER V;Lo;0;L;;;;;N;;;;;
+1BC0A;DUPLOYAN LETTER G;Lo;0;L;;;;;N;;;;;
+1BC0B;DUPLOYAN LETTER R;Lo;0;L;;;;;N;;;;;
+1BC0C;DUPLOYAN LETTER P N;Lo;0;L;;;;;N;;;;;
+1BC0D;DUPLOYAN LETTER D S;Lo;0;L;;;;;N;;;;;
+1BC0E;DUPLOYAN LETTER F N;Lo;0;L;;;;;N;;;;;
+1BC0F;DUPLOYAN LETTER K M;Lo;0;L;;;;;N;;;;;
+1BC10;DUPLOYAN LETTER R S;Lo;0;L;;;;;N;;;;;
+1BC11;DUPLOYAN LETTER TH;Lo;0;L;;;;;N;;;;;
+1BC12;DUPLOYAN LETTER SLOAN DH;Lo;0;L;;;;;N;;;;;
+1BC13;DUPLOYAN LETTER DH;Lo;0;L;;;;;N;;;;;
+1BC14;DUPLOYAN LETTER KK;Lo;0;L;;;;;N;;;;;
+1BC15;DUPLOYAN LETTER SLOAN J;Lo;0;L;;;;;N;;;;;
+1BC16;DUPLOYAN LETTER HL;Lo;0;L;;;;;N;;;;;
+1BC17;DUPLOYAN LETTER LH;Lo;0;L;;;;;N;;;;;
+1BC18;DUPLOYAN LETTER RH;Lo;0;L;;;;;N;;;;;
+1BC19;DUPLOYAN LETTER M;Lo;0;L;;;;;N;;;;;
+1BC1A;DUPLOYAN LETTER N;Lo;0;L;;;;;N;;;;;
+1BC1B;DUPLOYAN LETTER J;Lo;0;L;;;;;N;;;;;
+1BC1C;DUPLOYAN LETTER S;Lo;0;L;;;;;N;;;;;
+1BC1D;DUPLOYAN LETTER M N;Lo;0;L;;;;;N;;;;;
+1BC1E;DUPLOYAN LETTER N M;Lo;0;L;;;;;N;;;;;
+1BC1F;DUPLOYAN LETTER J M;Lo;0;L;;;;;N;;;;;
+1BC20;DUPLOYAN LETTER S J;Lo;0;L;;;;;N;;;;;
+1BC21;DUPLOYAN LETTER M WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC22;DUPLOYAN LETTER N WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC23;DUPLOYAN LETTER J WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC24;DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE;Lo;0;L;;;;;N;;;;;
+1BC25;DUPLOYAN LETTER S WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC26;DUPLOYAN LETTER S WITH DOT BELOW;Lo;0;L;;;;;N;;;;;
+1BC27;DUPLOYAN LETTER M S;Lo;0;L;;;;;N;;;;;
+1BC28;DUPLOYAN LETTER N S;Lo;0;L;;;;;N;;;;;
+1BC29;DUPLOYAN LETTER J S;Lo;0;L;;;;;N;;;;;
+1BC2A;DUPLOYAN LETTER S S;Lo;0;L;;;;;N;;;;;
+1BC2B;DUPLOYAN LETTER M N S;Lo;0;L;;;;;N;;;;;
+1BC2C;DUPLOYAN LETTER N M S;Lo;0;L;;;;;N;;;;;
+1BC2D;DUPLOYAN LETTER J M S;Lo;0;L;;;;;N;;;;;
+1BC2E;DUPLOYAN LETTER S J S;Lo;0;L;;;;;N;;;;;
+1BC2F;DUPLOYAN LETTER J S WITH DOT;Lo;0;L;;;;;N;;;;;
+1BC30;DUPLOYAN LETTER J N;Lo;0;L;;;;;N;;;;;
+1BC31;DUPLOYAN LETTER J N S;Lo;0;L;;;;;N;;;;;
+1BC32;DUPLOYAN LETTER S T;Lo;0;L;;;;;N;;;;;
+1BC33;DUPLOYAN LETTER S T R;Lo;0;L;;;;;N;;;;;
+1BC34;DUPLOYAN LETTER S P;Lo;0;L;;;;;N;;;;;
+1BC35;DUPLOYAN LETTER S P R;Lo;0;L;;;;;N;;;;;
+1BC36;DUPLOYAN LETTER T S;Lo;0;L;;;;;N;;;;;
+1BC37;DUPLOYAN LETTER T R S;Lo;0;L;;;;;N;;;;;
+1BC38;DUPLOYAN LETTER W;Lo;0;L;;;;;N;;;;;
+1BC39;DUPLOYAN LETTER WH;Lo;0;L;;;;;N;;;;;
+1BC3A;DUPLOYAN LETTER W R;Lo;0;L;;;;;N;;;;;
+1BC3B;DUPLOYAN LETTER S N;Lo;0;L;;;;;N;;;;;
+1BC3C;DUPLOYAN LETTER S M;Lo;0;L;;;;;N;;;;;
+1BC3D;DUPLOYAN LETTER K R S;Lo;0;L;;;;;N;;;;;
+1BC3E;DUPLOYAN LETTER G R S;Lo;0;L;;;;;N;;;;;
+1BC3F;DUPLOYAN LETTER S K;Lo;0;L;;;;;N;;;;;
+1BC40;DUPLOYAN LETTER S K R;Lo;0;L;;;;;N;;;;;
+1BC41;DUPLOYAN LETTER A;Lo;0;L;;;;;N;;;;;
+1BC42;DUPLOYAN LETTER SLOAN OW;Lo;0;L;;;;;N;;;;;
+1BC43;DUPLOYAN LETTER OA;Lo;0;L;;;;;N;;;;;
+1BC44;DUPLOYAN LETTER O;Lo;0;L;;;;;N;;;;;
+1BC45;DUPLOYAN LETTER AOU;Lo;0;L;;;;;N;;;;;
+1BC46;DUPLOYAN LETTER I;Lo;0;L;;;;;N;;;;;
+1BC47;DUPLOYAN LETTER E;Lo;0;L;;;;;N;;;;;
+1BC48;DUPLOYAN LETTER IE;Lo;0;L;;;;;N;;;;;
+1BC49;DUPLOYAN LETTER SHORT I;Lo;0;L;;;;;N;;;;;
+1BC4A;DUPLOYAN LETTER UI;Lo;0;L;;;;;N;;;;;
+1BC4B;DUPLOYAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1BC4C;DUPLOYAN LETTER SLOAN EH;Lo;0;L;;;;;N;;;;;
+1BC4D;DUPLOYAN LETTER ROMANIAN I;Lo;0;L;;;;;N;;;;;
+1BC4E;DUPLOYAN LETTER SLOAN EE;Lo;0;L;;;;;N;;;;;
+1BC4F;DUPLOYAN LETTER LONG I;Lo;0;L;;;;;N;;;;;
+1BC50;DUPLOYAN LETTER YE;Lo;0;L;;;;;N;;;;;
+1BC51;DUPLOYAN LETTER U;Lo;0;L;;;;;N;;;;;
+1BC52;DUPLOYAN LETTER EU;Lo;0;L;;;;;N;;;;;
+1BC53;DUPLOYAN LETTER XW;Lo;0;L;;;;;N;;;;;
+1BC54;DUPLOYAN LETTER U N;Lo;0;L;;;;;N;;;;;
+1BC55;DUPLOYAN LETTER LONG U;Lo;0;L;;;;;N;;;;;
+1BC56;DUPLOYAN LETTER ROMANIAN U;Lo;0;L;;;;;N;;;;;
+1BC57;DUPLOYAN LETTER UH;Lo;0;L;;;;;N;;;;;
+1BC58;DUPLOYAN LETTER SLOAN U;Lo;0;L;;;;;N;;;;;
+1BC59;DUPLOYAN LETTER OOH;Lo;0;L;;;;;N;;;;;
+1BC5A;DUPLOYAN LETTER OW;Lo;0;L;;;;;N;;;;;
+1BC5B;DUPLOYAN LETTER OU;Lo;0;L;;;;;N;;;;;
+1BC5C;DUPLOYAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1BC5D;DUPLOYAN LETTER WO;Lo;0;L;;;;;N;;;;;
+1BC5E;DUPLOYAN LETTER WI;Lo;0;L;;;;;N;;;;;
+1BC5F;DUPLOYAN LETTER WEI;Lo;0;L;;;;;N;;;;;
+1BC60;DUPLOYAN LETTER WOW;Lo;0;L;;;;;N;;;;;
+1BC61;DUPLOYAN LETTER NASAL U;Lo;0;L;;;;;N;;;;;
+1BC62;DUPLOYAN LETTER NASAL O;Lo;0;L;;;;;N;;;;;
+1BC63;DUPLOYAN LETTER NASAL I;Lo;0;L;;;;;N;;;;;
+1BC64;DUPLOYAN LETTER NASAL A;Lo;0;L;;;;;N;;;;;
+1BC65;DUPLOYAN LETTER PERNIN AN;Lo;0;L;;;;;N;;;;;
+1BC66;DUPLOYAN LETTER PERNIN AM;Lo;0;L;;;;;N;;;;;
+1BC67;DUPLOYAN LETTER SLOAN EN;Lo;0;L;;;;;N;;;;;
+1BC68;DUPLOYAN LETTER SLOAN AN;Lo;0;L;;;;;N;;;;;
+1BC69;DUPLOYAN LETTER SLOAN ON;Lo;0;L;;;;;N;;;;;
+1BC6A;DUPLOYAN LETTER VOCALIC M;Lo;0;L;;;;;N;;;;;
+1BC70;DUPLOYAN AFFIX LEFT HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC71;DUPLOYAN AFFIX MID HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC72;DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC73;DUPLOYAN AFFIX LOW VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC74;DUPLOYAN AFFIX MID VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC75;DUPLOYAN AFFIX HIGH VERTICAL SECANT;Lo;0;L;;;;;N;;;;;
+1BC76;DUPLOYAN AFFIX ATTACHED SECANT;Lo;0;L;;;;;N;;;;;
+1BC77;DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT;Lo;0;L;;;;;N;;;;;
+1BC78;DUPLOYAN AFFIX ATTACHED TANGENT;Lo;0;L;;;;;N;;;;;
+1BC79;DUPLOYAN AFFIX ATTACHED TAIL;Lo;0;L;;;;;N;;;;;
+1BC7A;DUPLOYAN AFFIX ATTACHED E HOOK;Lo;0;L;;;;;N;;;;;
+1BC7B;DUPLOYAN AFFIX ATTACHED I HOOK;Lo;0;L;;;;;N;;;;;
+1BC7C;DUPLOYAN AFFIX ATTACHED TANGENT HOOK;Lo;0;L;;;;;N;;;;;
+1BC80;DUPLOYAN AFFIX HIGH ACUTE;Lo;0;L;;;;;N;;;;;
+1BC81;DUPLOYAN AFFIX HIGH TIGHT ACUTE;Lo;0;L;;;;;N;;;;;
+1BC82;DUPLOYAN AFFIX HIGH GRAVE;Lo;0;L;;;;;N;;;;;
+1BC83;DUPLOYAN AFFIX HIGH LONG GRAVE;Lo;0;L;;;;;N;;;;;
+1BC84;DUPLOYAN AFFIX HIGH DOT;Lo;0;L;;;;;N;;;;;
+1BC85;DUPLOYAN AFFIX HIGH CIRCLE;Lo;0;L;;;;;N;;;;;
+1BC86;DUPLOYAN AFFIX HIGH LINE;Lo;0;L;;;;;N;;;;;
+1BC87;DUPLOYAN AFFIX HIGH WAVE;Lo;0;L;;;;;N;;;;;
+1BC88;DUPLOYAN AFFIX HIGH VERTICAL;Lo;0;L;;;;;N;;;;;
+1BC90;DUPLOYAN AFFIX LOW ACUTE;Lo;0;L;;;;;N;;;;;
+1BC91;DUPLOYAN AFFIX LOW TIGHT ACUTE;Lo;0;L;;;;;N;;;;;
+1BC92;DUPLOYAN AFFIX LOW GRAVE;Lo;0;L;;;;;N;;;;;
+1BC93;DUPLOYAN AFFIX LOW LONG GRAVE;Lo;0;L;;;;;N;;;;;
+1BC94;DUPLOYAN AFFIX LOW DOT;Lo;0;L;;;;;N;;;;;
+1BC95;DUPLOYAN AFFIX LOW CIRCLE;Lo;0;L;;;;;N;;;;;
+1BC96;DUPLOYAN AFFIX LOW LINE;Lo;0;L;;;;;N;;;;;
+1BC97;DUPLOYAN AFFIX LOW WAVE;Lo;0;L;;;;;N;;;;;
+1BC98;DUPLOYAN AFFIX LOW VERTICAL;Lo;0;L;;;;;N;;;;;
+1BC99;DUPLOYAN AFFIX LOW ARROW;Lo;0;L;;;;;N;;;;;
+1BC9C;DUPLOYAN SIGN O WITH CROSS;So;0;L;;;;;N;;;;;
+1BC9D;DUPLOYAN THICK LETTER SELECTOR;Mn;0;NSM;;;;;N;;;;;
+1BC9E;DUPLOYAN DOUBLE MARK;Mn;1;NSM;;;;;N;;;;;
+1BC9F;DUPLOYAN PUNCTUATION CHINOOK FULL STOP;Po;0;L;;;;;N;;;;;
+1BCA0;SHORTHAND FORMAT LETTER OVERLAP;Cf;0;BN;;;;;N;;;;;
+1BCA1;SHORTHAND FORMAT CONTINUING OVERLAP;Cf;0;BN;;;;;N;;;;;
+1BCA2;SHORTHAND FORMAT DOWN STEP;Cf;0;BN;;;;;N;;;;;
+1BCA3;SHORTHAND FORMAT UP STEP;Cf;0;BN;;;;;N;;;;;
1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
@@ -22174,6 +24251,219 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1E800;MENDE KIKAKUI SYLLABLE M001 KI;Lo;0;R;;;;;N;;;;;
+1E801;MENDE KIKAKUI SYLLABLE M002 KA;Lo;0;R;;;;;N;;;;;
+1E802;MENDE KIKAKUI SYLLABLE M003 KU;Lo;0;R;;;;;N;;;;;
+1E803;MENDE KIKAKUI SYLLABLE M065 KEE;Lo;0;R;;;;;N;;;;;
+1E804;MENDE KIKAKUI SYLLABLE M095 KE;Lo;0;R;;;;;N;;;;;
+1E805;MENDE KIKAKUI SYLLABLE M076 KOO;Lo;0;R;;;;;N;;;;;
+1E806;MENDE KIKAKUI SYLLABLE M048 KO;Lo;0;R;;;;;N;;;;;
+1E807;MENDE KIKAKUI SYLLABLE M179 KUA;Lo;0;R;;;;;N;;;;;
+1E808;MENDE KIKAKUI SYLLABLE M004 WI;Lo;0;R;;;;;N;;;;;
+1E809;MENDE KIKAKUI SYLLABLE M005 WA;Lo;0;R;;;;;N;;;;;
+1E80A;MENDE KIKAKUI SYLLABLE M006 WU;Lo;0;R;;;;;N;;;;;
+1E80B;MENDE KIKAKUI SYLLABLE M126 WEE;Lo;0;R;;;;;N;;;;;
+1E80C;MENDE KIKAKUI SYLLABLE M118 WE;Lo;0;R;;;;;N;;;;;
+1E80D;MENDE KIKAKUI SYLLABLE M114 WOO;Lo;0;R;;;;;N;;;;;
+1E80E;MENDE KIKAKUI SYLLABLE M045 WO;Lo;0;R;;;;;N;;;;;
+1E80F;MENDE KIKAKUI SYLLABLE M194 WUI;Lo;0;R;;;;;N;;;;;
+1E810;MENDE KIKAKUI SYLLABLE M143 WEI;Lo;0;R;;;;;N;;;;;
+1E811;MENDE KIKAKUI SYLLABLE M061 WVI;Lo;0;R;;;;;N;;;;;
+1E812;MENDE KIKAKUI SYLLABLE M049 WVA;Lo;0;R;;;;;N;;;;;
+1E813;MENDE KIKAKUI SYLLABLE M139 WVE;Lo;0;R;;;;;N;;;;;
+1E814;MENDE KIKAKUI SYLLABLE M007 MIN;Lo;0;R;;;;;N;;;;;
+1E815;MENDE KIKAKUI SYLLABLE M008 MAN;Lo;0;R;;;;;N;;;;;
+1E816;MENDE KIKAKUI SYLLABLE M009 MUN;Lo;0;R;;;;;N;;;;;
+1E817;MENDE KIKAKUI SYLLABLE M059 MEN;Lo;0;R;;;;;N;;;;;
+1E818;MENDE KIKAKUI SYLLABLE M094 MON;Lo;0;R;;;;;N;;;;;
+1E819;MENDE KIKAKUI SYLLABLE M154 MUAN;Lo;0;R;;;;;N;;;;;
+1E81A;MENDE KIKAKUI SYLLABLE M189 MUEN;Lo;0;R;;;;;N;;;;;
+1E81B;MENDE KIKAKUI SYLLABLE M010 BI;Lo;0;R;;;;;N;;;;;
+1E81C;MENDE KIKAKUI SYLLABLE M011 BA;Lo;0;R;;;;;N;;;;;
+1E81D;MENDE KIKAKUI SYLLABLE M012 BU;Lo;0;R;;;;;N;;;;;
+1E81E;MENDE KIKAKUI SYLLABLE M150 BEE;Lo;0;R;;;;;N;;;;;
+1E81F;MENDE KIKAKUI SYLLABLE M097 BE;Lo;0;R;;;;;N;;;;;
+1E820;MENDE KIKAKUI SYLLABLE M103 BOO;Lo;0;R;;;;;N;;;;;
+1E821;MENDE KIKAKUI SYLLABLE M138 BO;Lo;0;R;;;;;N;;;;;
+1E822;MENDE KIKAKUI SYLLABLE M013 I;Lo;0;R;;;;;N;;;;;
+1E823;MENDE KIKAKUI SYLLABLE M014 A;Lo;0;R;;;;;N;;;;;
+1E824;MENDE KIKAKUI SYLLABLE M015 U;Lo;0;R;;;;;N;;;;;
+1E825;MENDE KIKAKUI SYLLABLE M163 EE;Lo;0;R;;;;;N;;;;;
+1E826;MENDE KIKAKUI SYLLABLE M100 E;Lo;0;R;;;;;N;;;;;
+1E827;MENDE KIKAKUI SYLLABLE M165 OO;Lo;0;R;;;;;N;;;;;
+1E828;MENDE KIKAKUI SYLLABLE M147 O;Lo;0;R;;;;;N;;;;;
+1E829;MENDE KIKAKUI SYLLABLE M137 EI;Lo;0;R;;;;;N;;;;;
+1E82A;MENDE KIKAKUI SYLLABLE M131 IN;Lo;0;R;;;;;N;;;;;
+1E82B;MENDE KIKAKUI SYLLABLE M135 IN;Lo;0;R;;;;;N;;;;;
+1E82C;MENDE KIKAKUI SYLLABLE M195 AN;Lo;0;R;;;;;N;;;;;
+1E82D;MENDE KIKAKUI SYLLABLE M178 EN;Lo;0;R;;;;;N;;;;;
+1E82E;MENDE KIKAKUI SYLLABLE M019 SI;Lo;0;R;;;;;N;;;;;
+1E82F;MENDE KIKAKUI SYLLABLE M020 SA;Lo;0;R;;;;;N;;;;;
+1E830;MENDE KIKAKUI SYLLABLE M021 SU;Lo;0;R;;;;;N;;;;;
+1E831;MENDE KIKAKUI SYLLABLE M162 SEE;Lo;0;R;;;;;N;;;;;
+1E832;MENDE KIKAKUI SYLLABLE M116 SE;Lo;0;R;;;;;N;;;;;
+1E833;MENDE KIKAKUI SYLLABLE M136 SOO;Lo;0;R;;;;;N;;;;;
+1E834;MENDE KIKAKUI SYLLABLE M079 SO;Lo;0;R;;;;;N;;;;;
+1E835;MENDE KIKAKUI SYLLABLE M196 SIA;Lo;0;R;;;;;N;;;;;
+1E836;MENDE KIKAKUI SYLLABLE M025 LI;Lo;0;R;;;;;N;;;;;
+1E837;MENDE KIKAKUI SYLLABLE M026 LA;Lo;0;R;;;;;N;;;;;
+1E838;MENDE KIKAKUI SYLLABLE M027 LU;Lo;0;R;;;;;N;;;;;
+1E839;MENDE KIKAKUI SYLLABLE M084 LEE;Lo;0;R;;;;;N;;;;;
+1E83A;MENDE KIKAKUI SYLLABLE M073 LE;Lo;0;R;;;;;N;;;;;
+1E83B;MENDE KIKAKUI SYLLABLE M054 LOO;Lo;0;R;;;;;N;;;;;
+1E83C;MENDE KIKAKUI SYLLABLE M153 LO;Lo;0;R;;;;;N;;;;;
+1E83D;MENDE KIKAKUI SYLLABLE M110 LONG LE;Lo;0;R;;;;;N;;;;;
+1E83E;MENDE KIKAKUI SYLLABLE M016 DI;Lo;0;R;;;;;N;;;;;
+1E83F;MENDE KIKAKUI SYLLABLE M017 DA;Lo;0;R;;;;;N;;;;;
+1E840;MENDE KIKAKUI SYLLABLE M018 DU;Lo;0;R;;;;;N;;;;;
+1E841;MENDE KIKAKUI SYLLABLE M089 DEE;Lo;0;R;;;;;N;;;;;
+1E842;MENDE KIKAKUI SYLLABLE M180 DOO;Lo;0;R;;;;;N;;;;;
+1E843;MENDE KIKAKUI SYLLABLE M181 DO;Lo;0;R;;;;;N;;;;;
+1E844;MENDE KIKAKUI SYLLABLE M022 TI;Lo;0;R;;;;;N;;;;;
+1E845;MENDE KIKAKUI SYLLABLE M023 TA;Lo;0;R;;;;;N;;;;;
+1E846;MENDE KIKAKUI SYLLABLE M024 TU;Lo;0;R;;;;;N;;;;;
+1E847;MENDE KIKAKUI SYLLABLE M091 TEE;Lo;0;R;;;;;N;;;;;
+1E848;MENDE KIKAKUI SYLLABLE M055 TE;Lo;0;R;;;;;N;;;;;
+1E849;MENDE KIKAKUI SYLLABLE M104 TOO;Lo;0;R;;;;;N;;;;;
+1E84A;MENDE KIKAKUI SYLLABLE M069 TO;Lo;0;R;;;;;N;;;;;
+1E84B;MENDE KIKAKUI SYLLABLE M028 JI;Lo;0;R;;;;;N;;;;;
+1E84C;MENDE KIKAKUI SYLLABLE M029 JA;Lo;0;R;;;;;N;;;;;
+1E84D;MENDE KIKAKUI SYLLABLE M030 JU;Lo;0;R;;;;;N;;;;;
+1E84E;MENDE KIKAKUI SYLLABLE M157 JEE;Lo;0;R;;;;;N;;;;;
+1E84F;MENDE KIKAKUI SYLLABLE M113 JE;Lo;0;R;;;;;N;;;;;
+1E850;MENDE KIKAKUI SYLLABLE M160 JOO;Lo;0;R;;;;;N;;;;;
+1E851;MENDE KIKAKUI SYLLABLE M063 JO;Lo;0;R;;;;;N;;;;;
+1E852;MENDE KIKAKUI SYLLABLE M175 LONG JO;Lo;0;R;;;;;N;;;;;
+1E853;MENDE KIKAKUI SYLLABLE M031 YI;Lo;0;R;;;;;N;;;;;
+1E854;MENDE KIKAKUI SYLLABLE M032 YA;Lo;0;R;;;;;N;;;;;
+1E855;MENDE KIKAKUI SYLLABLE M033 YU;Lo;0;R;;;;;N;;;;;
+1E856;MENDE KIKAKUI SYLLABLE M109 YEE;Lo;0;R;;;;;N;;;;;
+1E857;MENDE KIKAKUI SYLLABLE M080 YE;Lo;0;R;;;;;N;;;;;
+1E858;MENDE KIKAKUI SYLLABLE M141 YOO;Lo;0;R;;;;;N;;;;;
+1E859;MENDE KIKAKUI SYLLABLE M121 YO;Lo;0;R;;;;;N;;;;;
+1E85A;MENDE KIKAKUI SYLLABLE M034 FI;Lo;0;R;;;;;N;;;;;
+1E85B;MENDE KIKAKUI SYLLABLE M035 FA;Lo;0;R;;;;;N;;;;;
+1E85C;MENDE KIKAKUI SYLLABLE M036 FU;Lo;0;R;;;;;N;;;;;
+1E85D;MENDE KIKAKUI SYLLABLE M078 FEE;Lo;0;R;;;;;N;;;;;
+1E85E;MENDE KIKAKUI SYLLABLE M075 FE;Lo;0;R;;;;;N;;;;;
+1E85F;MENDE KIKAKUI SYLLABLE M133 FOO;Lo;0;R;;;;;N;;;;;
+1E860;MENDE KIKAKUI SYLLABLE M088 FO;Lo;0;R;;;;;N;;;;;
+1E861;MENDE KIKAKUI SYLLABLE M197 FUA;Lo;0;R;;;;;N;;;;;
+1E862;MENDE KIKAKUI SYLLABLE M101 FAN;Lo;0;R;;;;;N;;;;;
+1E863;MENDE KIKAKUI SYLLABLE M037 NIN;Lo;0;R;;;;;N;;;;;
+1E864;MENDE KIKAKUI SYLLABLE M038 NAN;Lo;0;R;;;;;N;;;;;
+1E865;MENDE KIKAKUI SYLLABLE M039 NUN;Lo;0;R;;;;;N;;;;;
+1E866;MENDE KIKAKUI SYLLABLE M117 NEN;Lo;0;R;;;;;N;;;;;
+1E867;MENDE KIKAKUI SYLLABLE M169 NON;Lo;0;R;;;;;N;;;;;
+1E868;MENDE KIKAKUI SYLLABLE M176 HI;Lo;0;R;;;;;N;;;;;
+1E869;MENDE KIKAKUI SYLLABLE M041 HA;Lo;0;R;;;;;N;;;;;
+1E86A;MENDE KIKAKUI SYLLABLE M186 HU;Lo;0;R;;;;;N;;;;;
+1E86B;MENDE KIKAKUI SYLLABLE M040 HEE;Lo;0;R;;;;;N;;;;;
+1E86C;MENDE KIKAKUI SYLLABLE M096 HE;Lo;0;R;;;;;N;;;;;
+1E86D;MENDE KIKAKUI SYLLABLE M042 HOO;Lo;0;R;;;;;N;;;;;
+1E86E;MENDE KIKAKUI SYLLABLE M140 HO;Lo;0;R;;;;;N;;;;;
+1E86F;MENDE KIKAKUI SYLLABLE M083 HEEI;Lo;0;R;;;;;N;;;;;
+1E870;MENDE KIKAKUI SYLLABLE M128 HOOU;Lo;0;R;;;;;N;;;;;
+1E871;MENDE KIKAKUI SYLLABLE M053 HIN;Lo;0;R;;;;;N;;;;;
+1E872;MENDE KIKAKUI SYLLABLE M130 HAN;Lo;0;R;;;;;N;;;;;
+1E873;MENDE KIKAKUI SYLLABLE M087 HUN;Lo;0;R;;;;;N;;;;;
+1E874;MENDE KIKAKUI SYLLABLE M052 HEN;Lo;0;R;;;;;N;;;;;
+1E875;MENDE KIKAKUI SYLLABLE M193 HON;Lo;0;R;;;;;N;;;;;
+1E876;MENDE KIKAKUI SYLLABLE M046 HUAN;Lo;0;R;;;;;N;;;;;
+1E877;MENDE KIKAKUI SYLLABLE M090 NGGI;Lo;0;R;;;;;N;;;;;
+1E878;MENDE KIKAKUI SYLLABLE M043 NGGA;Lo;0;R;;;;;N;;;;;
+1E879;MENDE KIKAKUI SYLLABLE M082 NGGU;Lo;0;R;;;;;N;;;;;
+1E87A;MENDE KIKAKUI SYLLABLE M115 NGGEE;Lo;0;R;;;;;N;;;;;
+1E87B;MENDE KIKAKUI SYLLABLE M146 NGGE;Lo;0;R;;;;;N;;;;;
+1E87C;MENDE KIKAKUI SYLLABLE M156 NGGOO;Lo;0;R;;;;;N;;;;;
+1E87D;MENDE KIKAKUI SYLLABLE M120 NGGO;Lo;0;R;;;;;N;;;;;
+1E87E;MENDE KIKAKUI SYLLABLE M159 NGGAA;Lo;0;R;;;;;N;;;;;
+1E87F;MENDE KIKAKUI SYLLABLE M127 NGGUA;Lo;0;R;;;;;N;;;;;
+1E880;MENDE KIKAKUI SYLLABLE M086 LONG NGGE;Lo;0;R;;;;;N;;;;;
+1E881;MENDE KIKAKUI SYLLABLE M106 LONG NGGOO;Lo;0;R;;;;;N;;;;;
+1E882;MENDE KIKAKUI SYLLABLE M183 LONG NGGO;Lo;0;R;;;;;N;;;;;
+1E883;MENDE KIKAKUI SYLLABLE M155 GI;Lo;0;R;;;;;N;;;;;
+1E884;MENDE KIKAKUI SYLLABLE M111 GA;Lo;0;R;;;;;N;;;;;
+1E885;MENDE KIKAKUI SYLLABLE M168 GU;Lo;0;R;;;;;N;;;;;
+1E886;MENDE KIKAKUI SYLLABLE M190 GEE;Lo;0;R;;;;;N;;;;;
+1E887;MENDE KIKAKUI SYLLABLE M166 GUEI;Lo;0;R;;;;;N;;;;;
+1E888;MENDE KIKAKUI SYLLABLE M167 GUAN;Lo;0;R;;;;;N;;;;;
+1E889;MENDE KIKAKUI SYLLABLE M184 NGEN;Lo;0;R;;;;;N;;;;;
+1E88A;MENDE KIKAKUI SYLLABLE M057 NGON;Lo;0;R;;;;;N;;;;;
+1E88B;MENDE KIKAKUI SYLLABLE M177 NGUAN;Lo;0;R;;;;;N;;;;;
+1E88C;MENDE KIKAKUI SYLLABLE M068 PI;Lo;0;R;;;;;N;;;;;
+1E88D;MENDE KIKAKUI SYLLABLE M099 PA;Lo;0;R;;;;;N;;;;;
+1E88E;MENDE KIKAKUI SYLLABLE M050 PU;Lo;0;R;;;;;N;;;;;
+1E88F;MENDE KIKAKUI SYLLABLE M081 PEE;Lo;0;R;;;;;N;;;;;
+1E890;MENDE KIKAKUI SYLLABLE M051 PE;Lo;0;R;;;;;N;;;;;
+1E891;MENDE KIKAKUI SYLLABLE M102 POO;Lo;0;R;;;;;N;;;;;
+1E892;MENDE KIKAKUI SYLLABLE M066 PO;Lo;0;R;;;;;N;;;;;
+1E893;MENDE KIKAKUI SYLLABLE M145 MBI;Lo;0;R;;;;;N;;;;;
+1E894;MENDE KIKAKUI SYLLABLE M062 MBA;Lo;0;R;;;;;N;;;;;
+1E895;MENDE KIKAKUI SYLLABLE M122 MBU;Lo;0;R;;;;;N;;;;;
+1E896;MENDE KIKAKUI SYLLABLE M047 MBEE;Lo;0;R;;;;;N;;;;;
+1E897;MENDE KIKAKUI SYLLABLE M188 MBEE;Lo;0;R;;;;;N;;;;;
+1E898;MENDE KIKAKUI SYLLABLE M072 MBE;Lo;0;R;;;;;N;;;;;
+1E899;MENDE KIKAKUI SYLLABLE M172 MBOO;Lo;0;R;;;;;N;;;;;
+1E89A;MENDE KIKAKUI SYLLABLE M174 MBO;Lo;0;R;;;;;N;;;;;
+1E89B;MENDE KIKAKUI SYLLABLE M187 MBUU;Lo;0;R;;;;;N;;;;;
+1E89C;MENDE KIKAKUI SYLLABLE M161 LONG MBE;Lo;0;R;;;;;N;;;;;
+1E89D;MENDE KIKAKUI SYLLABLE M105 LONG MBOO;Lo;0;R;;;;;N;;;;;
+1E89E;MENDE KIKAKUI SYLLABLE M142 LONG MBO;Lo;0;R;;;;;N;;;;;
+1E89F;MENDE KIKAKUI SYLLABLE M132 KPI;Lo;0;R;;;;;N;;;;;
+1E8A0;MENDE KIKAKUI SYLLABLE M092 KPA;Lo;0;R;;;;;N;;;;;
+1E8A1;MENDE KIKAKUI SYLLABLE M074 KPU;Lo;0;R;;;;;N;;;;;
+1E8A2;MENDE KIKAKUI SYLLABLE M044 KPEE;Lo;0;R;;;;;N;;;;;
+1E8A3;MENDE KIKAKUI SYLLABLE M108 KPE;Lo;0;R;;;;;N;;;;;
+1E8A4;MENDE KIKAKUI SYLLABLE M112 KPOO;Lo;0;R;;;;;N;;;;;
+1E8A5;MENDE KIKAKUI SYLLABLE M158 KPO;Lo;0;R;;;;;N;;;;;
+1E8A6;MENDE KIKAKUI SYLLABLE M124 GBI;Lo;0;R;;;;;N;;;;;
+1E8A7;MENDE KIKAKUI SYLLABLE M056 GBA;Lo;0;R;;;;;N;;;;;
+1E8A8;MENDE KIKAKUI SYLLABLE M148 GBU;Lo;0;R;;;;;N;;;;;
+1E8A9;MENDE KIKAKUI SYLLABLE M093 GBEE;Lo;0;R;;;;;N;;;;;
+1E8AA;MENDE KIKAKUI SYLLABLE M107 GBE;Lo;0;R;;;;;N;;;;;
+1E8AB;MENDE KIKAKUI SYLLABLE M071 GBOO;Lo;0;R;;;;;N;;;;;
+1E8AC;MENDE KIKAKUI SYLLABLE M070 GBO;Lo;0;R;;;;;N;;;;;
+1E8AD;MENDE KIKAKUI SYLLABLE M171 RA;Lo;0;R;;;;;N;;;;;
+1E8AE;MENDE KIKAKUI SYLLABLE M123 NDI;Lo;0;R;;;;;N;;;;;
+1E8AF;MENDE KIKAKUI SYLLABLE M129 NDA;Lo;0;R;;;;;N;;;;;
+1E8B0;MENDE KIKAKUI SYLLABLE M125 NDU;Lo;0;R;;;;;N;;;;;
+1E8B1;MENDE KIKAKUI SYLLABLE M191 NDEE;Lo;0;R;;;;;N;;;;;
+1E8B2;MENDE KIKAKUI SYLLABLE M119 NDE;Lo;0;R;;;;;N;;;;;
+1E8B3;MENDE KIKAKUI SYLLABLE M067 NDOO;Lo;0;R;;;;;N;;;;;
+1E8B4;MENDE KIKAKUI SYLLABLE M064 NDO;Lo;0;R;;;;;N;;;;;
+1E8B5;MENDE KIKAKUI SYLLABLE M152 NJA;Lo;0;R;;;;;N;;;;;
+1E8B6;MENDE KIKAKUI SYLLABLE M192 NJU;Lo;0;R;;;;;N;;;;;
+1E8B7;MENDE KIKAKUI SYLLABLE M149 NJEE;Lo;0;R;;;;;N;;;;;
+1E8B8;MENDE KIKAKUI SYLLABLE M134 NJOO;Lo;0;R;;;;;N;;;;;
+1E8B9;MENDE KIKAKUI SYLLABLE M182 VI;Lo;0;R;;;;;N;;;;;
+1E8BA;MENDE KIKAKUI SYLLABLE M185 VA;Lo;0;R;;;;;N;;;;;
+1E8BB;MENDE KIKAKUI SYLLABLE M151 VU;Lo;0;R;;;;;N;;;;;
+1E8BC;MENDE KIKAKUI SYLLABLE M173 VEE;Lo;0;R;;;;;N;;;;;
+1E8BD;MENDE KIKAKUI SYLLABLE M085 VE;Lo;0;R;;;;;N;;;;;
+1E8BE;MENDE KIKAKUI SYLLABLE M144 VOO;Lo;0;R;;;;;N;;;;;
+1E8BF;MENDE KIKAKUI SYLLABLE M077 VO;Lo;0;R;;;;;N;;;;;
+1E8C0;MENDE KIKAKUI SYLLABLE M164 NYIN;Lo;0;R;;;;;N;;;;;
+1E8C1;MENDE KIKAKUI SYLLABLE M058 NYAN;Lo;0;R;;;;;N;;;;;
+1E8C2;MENDE KIKAKUI SYLLABLE M170 NYUN;Lo;0;R;;;;;N;;;;;
+1E8C3;MENDE KIKAKUI SYLLABLE M098 NYEN;Lo;0;R;;;;;N;;;;;
+1E8C4;MENDE KIKAKUI SYLLABLE M060 NYON;Lo;0;R;;;;;N;;;;;
+1E8C7;MENDE KIKAKUI DIGIT ONE;No;0;R;;;;1;N;;;;;
+1E8C8;MENDE KIKAKUI DIGIT TWO;No;0;R;;;;2;N;;;;;
+1E8C9;MENDE KIKAKUI DIGIT THREE;No;0;R;;;;3;N;;;;;
+1E8CA;MENDE KIKAKUI DIGIT FOUR;No;0;R;;;;4;N;;;;;
+1E8CB;MENDE KIKAKUI DIGIT FIVE;No;0;R;;;;5;N;;;;;
+1E8CC;MENDE KIKAKUI DIGIT SIX;No;0;R;;;;6;N;;;;;
+1E8CD;MENDE KIKAKUI DIGIT SEVEN;No;0;R;;;;7;N;;;;;
+1E8CE;MENDE KIKAKUI DIGIT EIGHT;No;0;R;;;;8;N;;;;;
+1E8CF;MENDE KIKAKUI DIGIT NINE;No;0;R;;;;9;N;;;;;
+1E8D0;MENDE KIKAKUI COMBINING NUMBER TEENS;Mn;220;NSM;;;;;N;;;;;
+1E8D1;MENDE KIKAKUI COMBINING NUMBER TENS;Mn;220;NSM;;;;;N;;;;;
+1E8D2;MENDE KIKAKUI COMBINING NUMBER HUNDREDS;Mn;220;NSM;;;;;N;;;;;
+1E8D3;MENDE KIKAKUI COMBINING NUMBER THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D4;MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D5;MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS;Mn;220;NSM;;;;;N;;;;;
+1E8D6;MENDE KIKAKUI COMBINING NUMBER MILLIONS;Mn;220;NSM;;;;;N;;;;;
1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
@@ -22490,6 +24780,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F0BC;PLAYING CARD KNIGHT OF HEARTS;So;0;ON;;;;;N;;;;;
1F0BD;PLAYING CARD QUEEN OF HEARTS;So;0;ON;;;;;N;;;;;
1F0BE;PLAYING CARD KING OF HEARTS;So;0;ON;;;;;N;;;;;
+1F0BF;PLAYING CARD RED JOKER;So;0;ON;;;;;N;;;;;
1F0C1;PLAYING CARD ACE OF DIAMONDS;So;0;ON;;;;;N;;;;;
1F0C2;PLAYING CARD TWO OF DIAMONDS;So;0;ON;;;;;N;;;;;
1F0C3;PLAYING CARD THREE OF DIAMONDS;So;0;ON;;;;;N;;;;;
@@ -22520,6 +24811,28 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F0DD;PLAYING CARD QUEEN OF CLUBS;So;0;ON;;;;;N;;;;;
1F0DE;PLAYING CARD KING OF CLUBS;So;0;ON;;;;;N;;;;;
1F0DF;PLAYING CARD WHITE JOKER;So;0;ON;;;;;N;;;;;
+1F0E0;PLAYING CARD FOOL;So;0;ON;;;;;N;;;;;
+1F0E1;PLAYING CARD TRUMP-1;So;0;ON;;;;;N;;;;;
+1F0E2;PLAYING CARD TRUMP-2;So;0;ON;;;;;N;;;;;
+1F0E3;PLAYING CARD TRUMP-3;So;0;ON;;;;;N;;;;;
+1F0E4;PLAYING CARD TRUMP-4;So;0;ON;;;;;N;;;;;
+1F0E5;PLAYING CARD TRUMP-5;So;0;ON;;;;;N;;;;;
+1F0E6;PLAYING CARD TRUMP-6;So;0;ON;;;;;N;;;;;
+1F0E7;PLAYING CARD TRUMP-7;So;0;ON;;;;;N;;;;;
+1F0E8;PLAYING CARD TRUMP-8;So;0;ON;;;;;N;;;;;
+1F0E9;PLAYING CARD TRUMP-9;So;0;ON;;;;;N;;;;;
+1F0EA;PLAYING CARD TRUMP-10;So;0;ON;;;;;N;;;;;
+1F0EB;PLAYING CARD TRUMP-11;So;0;ON;;;;;N;;;;;
+1F0EC;PLAYING CARD TRUMP-12;So;0;ON;;;;;N;;;;;
+1F0ED;PLAYING CARD TRUMP-13;So;0;ON;;;;;N;;;;;
+1F0EE;PLAYING CARD TRUMP-14;So;0;ON;;;;;N;;;;;
+1F0EF;PLAYING CARD TRUMP-15;So;0;ON;;;;;N;;;;;
+1F0F0;PLAYING CARD TRUMP-16;So;0;ON;;;;;N;;;;;
+1F0F1;PLAYING CARD TRUMP-17;So;0;ON;;;;;N;;;;;
+1F0F2;PLAYING CARD TRUMP-18;So;0;ON;;;;;N;;;;;
+1F0F3;PLAYING CARD TRUMP-19;So;0;ON;;;;;N;;;;;
+1F0F4;PLAYING CARD TRUMP-20;So;0;ON;;;;;N;;;;;
+1F0F5;PLAYING CARD TRUMP-21;So;0;ON;;;;;N;;;;;
1F100;DIGIT ZERO FULL STOP;No;0;EN;<compat> 0030 002E;;0;0;N;;;;;
1F101;DIGIT ZERO COMMA;No;0;EN;<compat> 0030 002C;;0;0;N;;;;;
1F102;DIGIT ONE COMMA;No;0;EN;<compat> 0031 002C;;1;1;N;;;;;
@@ -22531,6 +24844,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F108;DIGIT SEVEN COMMA;No;0;EN;<compat> 0037 002C;;7;7;N;;;;;
1F109;DIGIT EIGHT COMMA;No;0;EN;<compat> 0038 002C;;8;8;N;;;;;
1F10A;DIGIT NINE COMMA;No;0;EN;<compat> 0039 002C;;9;9;N;;;;;
+1F10B;DINGBAT CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
+1F10C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L;<compat> 0028 0041 0029;;;;N;;;;;
1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L;<compat> 0028 0042 0029;;;;N;;;;;
1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L;<compat> 0028 0043 0029;;;;N;;;;;
@@ -22781,12 +25096,25 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F31E;SUN WITH FACE;So;0;ON;;;;;N;;;;;
1F31F;GLOWING STAR;So;0;ON;;;;;N;;;;;
1F320;SHOOTING STAR;So;0;ON;;;;;N;;;;;
+1F321;THERMOMETER;So;0;ON;;;;;N;;;;;
+1F322;BLACK DROPLET;So;0;ON;;;;;N;;;;;
+1F323;WHITE SUN;So;0;ON;;;;;N;;;;;
+1F324;WHITE SUN WITH SMALL CLOUD;So;0;ON;;;;;N;;;;;
+1F325;WHITE SUN BEHIND CLOUD;So;0;ON;;;;;N;;;;;
+1F326;WHITE SUN BEHIND CLOUD WITH RAIN;So;0;ON;;;;;N;;;;;
+1F327;CLOUD WITH RAIN;So;0;ON;;;;;N;;;;;
+1F328;CLOUD WITH SNOW;So;0;ON;;;;;N;;;;;
+1F329;CLOUD WITH LIGHTNING;So;0;ON;;;;;N;;;;;
+1F32A;CLOUD WITH TORNADO;So;0;ON;;;;;N;;;;;
+1F32B;FOG;So;0;ON;;;;;N;;;;;
+1F32C;WIND BLOWING FACE;So;0;ON;;;;;N;;;;;
1F330;CHESTNUT;So;0;ON;;;;;N;;;;;
1F331;SEEDLING;So;0;ON;;;;;N;;;;;
1F332;EVERGREEN TREE;So;0;ON;;;;;N;;;;;
1F333;DECIDUOUS TREE;So;0;ON;;;;;N;;;;;
1F334;PALM TREE;So;0;ON;;;;;N;;;;;
1F335;CACTUS;So;0;ON;;;;;N;;;;;
+1F336;HOT PEPPER;So;0;ON;;;;;N;;;;;
1F337;TULIP;So;0;ON;;;;;N;;;;;
1F338;CHERRY BLOSSOM;So;0;ON;;;;;N;;;;;
1F339;ROSE;So;0;ON;;;;;N;;;;;
@@ -22857,6 +25185,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F37A;BEER MUG;So;0;ON;;;;;N;;;;;
1F37B;CLINKING BEER MUGS;So;0;ON;;;;;N;;;;;
1F37C;BABY BOTTLE;So;0;ON;;;;;N;;;;;
+1F37D;FORK AND KNIFE WITH PLATE;So;0;ON;;;;;N;;;;;
1F380;RIBBON;So;0;ON;;;;;N;;;;;
1F381;WRAPPED PRESENT;So;0;ON;;;;;N;;;;;
1F382;BIRTHDAY CAKE;So;0;ON;;;;;N;;;;;
@@ -22877,6 +25206,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F391;MOON VIEWING CEREMONY;So;0;ON;;;;;N;;;;;
1F392;SCHOOL SATCHEL;So;0;ON;;;;;N;;;;;
1F393;GRADUATION CAP;So;0;ON;;;;;N;;;;;
+1F394;HEART WITH TIP ON THE LEFT;So;0;ON;;;;;N;;;;;
+1F395;BOUQUET OF FLOWERS;So;0;ON;;;;;N;;;;;
+1F396;MILITARY MEDAL;So;0;ON;;;;;N;;;;;
+1F397;REMINDER RIBBON;So;0;ON;;;;;N;;;;;
+1F398;MUSICAL KEYBOARD WITH JACKS;So;0;ON;;;;;N;;;;;
+1F399;STUDIO MICROPHONE;So;0;ON;;;;;N;;;;;
+1F39A;LEVEL SLIDER;So;0;ON;;;;;N;;;;;
+1F39B;CONTROL KNOBS;So;0;ON;;;;;N;;;;;
+1F39C;BEAMED ASCENDING MUSICAL NOTES;So;0;ON;;;;;N;;;;;
+1F39D;BEAMED DESCENDING MUSICAL NOTES;So;0;ON;;;;;N;;;;;
+1F39E;FILM FRAMES;So;0;ON;;;;;N;;;;;
+1F39F;ADMISSION TICKETS;So;0;ON;;;;;N;;;;;
1F3A0;CAROUSEL HORSE;So;0;ON;;;;;N;;;;;
1F3A1;FERRIS WHEEL;So;0;ON;;;;;N;;;;;
1F3A2;ROLLER COASTER;So;0;ON;;;;;N;;;;;
@@ -22914,11 +25255,28 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F3C2;SNOWBOARDER;So;0;ON;;;;;N;;;;;
1F3C3;RUNNER;So;0;ON;;;;;N;;;;;
1F3C4;SURFER;So;0;ON;;;;;N;;;;;
+1F3C5;SPORTS MEDAL;So;0;ON;;;;;N;;;;;
1F3C6;TROPHY;So;0;ON;;;;;N;;;;;
1F3C7;HORSE RACING;So;0;ON;;;;;N;;;;;
1F3C8;AMERICAN FOOTBALL;So;0;ON;;;;;N;;;;;
1F3C9;RUGBY FOOTBALL;So;0;ON;;;;;N;;;;;
1F3CA;SWIMMER;So;0;ON;;;;;N;;;;;
+1F3CB;WEIGHT LIFTER;So;0;ON;;;;;N;;;;;
+1F3CC;GOLFER;So;0;ON;;;;;N;;;;;
+1F3CD;RACING MOTORCYCLE;So;0;ON;;;;;N;;;;;
+1F3CE;RACING CAR;So;0;ON;;;;;N;;;;;
+1F3D4;SNOW CAPPED MOUNTAIN;So;0;ON;;;;;N;;;;;
+1F3D5;CAMPING;So;0;ON;;;;;N;;;;;
+1F3D6;BEACH WITH UMBRELLA;So;0;ON;;;;;N;;;;;
+1F3D7;BUILDING CONSTRUCTION;So;0;ON;;;;;N;;;;;
+1F3D8;HOUSE BUILDINGS;So;0;ON;;;;;N;;;;;
+1F3D9;CITYSCAPE;So;0;ON;;;;;N;;;;;
+1F3DA;DERELICT HOUSE BUILDING;So;0;ON;;;;;N;;;;;
+1F3DB;CLASSICAL BUILDING;So;0;ON;;;;;N;;;;;
+1F3DC;DESERT;So;0;ON;;;;;N;;;;;
+1F3DD;DESERT ISLAND;So;0;ON;;;;;N;;;;;
+1F3DE;NATIONAL PARK;So;0;ON;;;;;N;;;;;
+1F3DF;STADIUM;So;0;ON;;;;;N;;;;;
1F3E0;HOUSE BUILDING;So;0;ON;;;;;N;;;;;
1F3E1;HOUSE WITH GARDEN;So;0;ON;;;;;N;;;;;
1F3E2;OFFICE BUILDING;So;0;ON;;;;;N;;;;;
@@ -22936,6 +25294,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F3EE;IZAKAYA LANTERN;So;0;ON;;;;;N;;;;;
1F3EF;JAPANESE CASTLE;So;0;ON;;;;;N;;;;;
1F3F0;EUROPEAN CASTLE;So;0;ON;;;;;N;;;;;
+1F3F1;WHITE PENNANT;So;0;ON;;;;;N;;;;;
+1F3F2;BLACK PENNANT;So;0;ON;;;;;N;;;;;
+1F3F3;WAVING WHITE FLAG;So;0;ON;;;;;N;;;;;
+1F3F4;WAVING BLACK FLAG;So;0;ON;;;;;N;;;;;
+1F3F5;ROSETTE;So;0;ON;;;;;N;;;;;
+1F3F6;BLACK ROSETTE;So;0;ON;;;;;N;;;;;
+1F3F7;LABEL;So;0;ON;;;;;N;;;;;
1F400;RAT;So;0;ON;;;;;N;;;;;
1F401;MOUSE;So;0;ON;;;;;N;;;;;
1F402;OX;So;0;ON;;;;;N;;;;;
@@ -22999,7 +25364,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F43C;PANDA FACE;So;0;ON;;;;;N;;;;;
1F43D;PIG NOSE;So;0;ON;;;;;N;;;;;
1F43E;PAW PRINTS;So;0;ON;;;;;N;;;;;
+1F43F;CHIPMUNK;So;0;ON;;;;;N;;;;;
1F440;EYES;So;0;ON;;;;;N;;;;;
+1F441;EYE;So;0;ON;;;;;N;;;;;
1F442;EAR;So;0;ON;;;;;N;;;;;
1F443;NOSE;So;0;ON;;;;;N;;;;;
1F444;MOUTH;So;0;ON;;;;;N;;;;;
@@ -23182,10 +25549,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F4F5;NO MOBILE PHONES;So;0;ON;;;;;N;;;;;
1F4F6;ANTENNA WITH BARS;So;0;ON;;;;;N;;;;;
1F4F7;CAMERA;So;0;ON;;;;;N;;;;;
+1F4F8;CAMERA WITH FLASH;So;0;ON;;;;;N;;;;;
1F4F9;VIDEO CAMERA;So;0;ON;;;;;N;;;;;
1F4FA;TELEVISION;So;0;ON;;;;;N;;;;;
1F4FB;RADIO;So;0;ON;;;;;N;;;;;
1F4FC;VIDEOCASSETTE;So;0;ON;;;;;N;;;;;
+1F4FD;FILM PROJECTOR;So;0;ON;;;;;N;;;;;
+1F4FE;PORTABLE STEREO;So;0;ON;;;;;N;;;;;
1F500;TWISTED RIGHTWARDS ARROWS;So;0;ON;;;;;N;;;;;
1F501;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
1F502;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY;So;0;ON;;;;;N;;;;;
@@ -23248,10 +25618,19 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F53E;LOWER RIGHT SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F53F;UPPER RIGHT SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;;
1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;;
1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;;
1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
+1F544;NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
+1F545;SYMBOL FOR MARKS CHAPTER;So;0;ON;;;;;N;;;;;
+1F546;WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+1F547;HEAVY LATIN CROSS;So;0;ON;;;;;N;;;;;
+1F548;CELTIC CROSS;So;0;ON;;;;;N;;;;;
+1F549;OM SYMBOL;So;0;ON;;;;;N;;;;;
+1F54A;DOVE OF PEACE;So;0;ON;;;;;N;;;;;
1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;;
1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;;
1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;;
@@ -23276,6 +25655,151 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F565;CLOCK FACE TEN-THIRTY;So;0;ON;;;;;N;;;;;
1F566;CLOCK FACE ELEVEN-THIRTY;So;0;ON;;;;;N;;;;;
1F567;CLOCK FACE TWELVE-THIRTY;So;0;ON;;;;;N;;;;;
+1F568;RIGHT SPEAKER;So;0;ON;;;;;N;;;;;
+1F569;RIGHT SPEAKER WITH ONE SOUND WAVE;So;0;ON;;;;;N;;;;;
+1F56A;RIGHT SPEAKER WITH THREE SOUND WAVES;So;0;ON;;;;;N;;;;;
+1F56B;BULLHORN;So;0;ON;;;;;N;;;;;
+1F56C;BULLHORN WITH SOUND WAVES;So;0;ON;;;;;N;;;;;
+1F56D;RINGING BELL;So;0;ON;;;;;N;;;;;
+1F56E;BOOK;So;0;ON;;;;;N;;;;;
+1F56F;CANDLE;So;0;ON;;;;;N;;;;;
+1F570;MANTELPIECE CLOCK;So;0;ON;;;;;N;;;;;
+1F571;BLACK SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+1F572;NO PIRACY;So;0;ON;;;;;N;;;;;
+1F573;HOLE;So;0;ON;;;;;N;;;;;
+1F574;MAN IN BUSINESS SUIT LEVITATING;So;0;ON;;;;;N;;;;;
+1F575;SLEUTH OR SPY;So;0;ON;;;;;N;;;;;
+1F576;DARK SUNGLASSES;So;0;ON;;;;;N;;;;;
+1F577;SPIDER;So;0;ON;;;;;N;;;;;
+1F578;SPIDER WEB;So;0;ON;;;;;N;;;;;
+1F579;JOYSTICK;So;0;ON;;;;;N;;;;;
+1F57B;LEFT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
+1F57C;TELEPHONE RECEIVER WITH PAGE;So;0;ON;;;;;N;;;;;
+1F57D;RIGHT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
+1F57E;WHITE TOUCHTONE TELEPHONE;So;0;ON;;;;;N;;;;;
+1F57F;BLACK TOUCHTONE TELEPHONE;So;0;ON;;;;;N;;;;;
+1F580;TELEPHONE ON TOP OF MODEM;So;0;ON;;;;;N;;;;;
+1F581;CLAMSHELL MOBILE PHONE;So;0;ON;;;;;N;;;;;
+1F582;BACK OF ENVELOPE;So;0;ON;;;;;N;;;;;
+1F583;STAMPED ENVELOPE;So;0;ON;;;;;N;;;;;
+1F584;ENVELOPE WITH LIGHTNING;So;0;ON;;;;;N;;;;;
+1F585;FLYING ENVELOPE;So;0;ON;;;;;N;;;;;
+1F586;PEN OVER STAMPED ENVELOPE;So;0;ON;;;;;N;;;;;
+1F587;LINKED PAPERCLIPS;So;0;ON;;;;;N;;;;;
+1F588;BLACK PUSHPIN;So;0;ON;;;;;N;;;;;
+1F589;LOWER LEFT PENCIL;So;0;ON;;;;;N;;;;;
+1F58A;LOWER LEFT BALLPOINT PEN;So;0;ON;;;;;N;;;;;
+1F58B;LOWER LEFT FOUNTAIN PEN;So;0;ON;;;;;N;;;;;
+1F58C;LOWER LEFT PAINTBRUSH;So;0;ON;;;;;N;;;;;
+1F58D;LOWER LEFT CRAYON;So;0;ON;;;;;N;;;;;
+1F58E;LEFT WRITING HAND;So;0;ON;;;;;N;;;;;
+1F58F;TURNED OK HAND SIGN;So;0;ON;;;;;N;;;;;
+1F590;RAISED HAND WITH FINGERS SPLAYED;So;0;ON;;;;;N;;;;;
+1F591;REVERSED RAISED HAND WITH FINGERS SPLAYED;So;0;ON;;;;;N;;;;;
+1F592;REVERSED THUMBS UP SIGN;So;0;ON;;;;;N;;;;;
+1F593;REVERSED THUMBS DOWN SIGN;So;0;ON;;;;;N;;;;;
+1F594;REVERSED VICTORY HAND;So;0;ON;;;;;N;;;;;
+1F595;REVERSED HAND WITH MIDDLE FINGER EXTENDED;So;0;ON;;;;;N;;;;;
+1F596;RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS;So;0;ON;;;;;N;;;;;
+1F597;WHITE DOWN POINTING LEFT HAND INDEX;So;0;ON;;;;;N;;;;;
+1F598;SIDEWAYS WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F599;SIDEWAYS WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59A;SIDEWAYS BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59B;SIDEWAYS BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59C;BLACK LEFT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F59D;BLACK RIGHT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F59E;SIDEWAYS WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F59F;SIDEWAYS WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A0;SIDEWAYS BLACK UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A1;SIDEWAYS BLACK DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+1F5A2;BLACK UP POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F5A3;BLACK DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
+1F5A5;DESKTOP COMPUTER;So;0;ON;;;;;N;;;;;
+1F5A6;KEYBOARD AND MOUSE;So;0;ON;;;;;N;;;;;
+1F5A7;THREE NETWORKED COMPUTERS;So;0;ON;;;;;N;;;;;
+1F5A8;PRINTER;So;0;ON;;;;;N;;;;;
+1F5A9;POCKET CALCULATOR;So;0;ON;;;;;N;;;;;
+1F5AA;BLACK HARD SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AB;WHITE HARD SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AC;SOFT SHELL FLOPPY DISK;So;0;ON;;;;;N;;;;;
+1F5AD;TAPE CARTRIDGE;So;0;ON;;;;;N;;;;;
+1F5AE;WIRED KEYBOARD;So;0;ON;;;;;N;;;;;
+1F5AF;ONE BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B0;TWO BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B1;THREE BUTTON MOUSE;So;0;ON;;;;;N;;;;;
+1F5B2;TRACKBALL;So;0;ON;;;;;N;;;;;
+1F5B3;OLD PERSONAL COMPUTER;So;0;ON;;;;;N;;;;;
+1F5B4;HARD DISK;So;0;ON;;;;;N;;;;;
+1F5B5;SCREEN;So;0;ON;;;;;N;;;;;
+1F5B6;PRINTER ICON;So;0;ON;;;;;N;;;;;
+1F5B7;FAX ICON;So;0;ON;;;;;N;;;;;
+1F5B8;OPTICAL DISC ICON;So;0;ON;;;;;N;;;;;
+1F5B9;DOCUMENT WITH TEXT;So;0;ON;;;;;N;;;;;
+1F5BA;DOCUMENT WITH TEXT AND PICTURE;So;0;ON;;;;;N;;;;;
+1F5BB;DOCUMENT WITH PICTURE;So;0;ON;;;;;N;;;;;
+1F5BC;FRAME WITH PICTURE;So;0;ON;;;;;N;;;;;
+1F5BD;FRAME WITH TILES;So;0;ON;;;;;N;;;;;
+1F5BE;FRAME WITH AN X;So;0;ON;;;;;N;;;;;
+1F5BF;BLACK FOLDER;So;0;ON;;;;;N;;;;;
+1F5C0;FOLDER;So;0;ON;;;;;N;;;;;
+1F5C1;OPEN FOLDER;So;0;ON;;;;;N;;;;;
+1F5C2;CARD INDEX DIVIDERS;So;0;ON;;;;;N;;;;;
+1F5C3;CARD FILE BOX;So;0;ON;;;;;N;;;;;
+1F5C4;FILE CABINET;So;0;ON;;;;;N;;;;;
+1F5C5;EMPTY NOTE;So;0;ON;;;;;N;;;;;
+1F5C6;EMPTY NOTE PAGE;So;0;ON;;;;;N;;;;;
+1F5C7;EMPTY NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5C8;NOTE;So;0;ON;;;;;N;;;;;
+1F5C9;NOTE PAGE;So;0;ON;;;;;N;;;;;
+1F5CA;NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5CB;EMPTY DOCUMENT;So;0;ON;;;;;N;;;;;
+1F5CC;EMPTY PAGE;So;0;ON;;;;;N;;;;;
+1F5CD;EMPTY PAGES;So;0;ON;;;;;N;;;;;
+1F5CE;DOCUMENT;So;0;ON;;;;;N;;;;;
+1F5CF;PAGE;So;0;ON;;;;;N;;;;;
+1F5D0;PAGES;So;0;ON;;;;;N;;;;;
+1F5D1;WASTEBASKET;So;0;ON;;;;;N;;;;;
+1F5D2;SPIRAL NOTE PAD;So;0;ON;;;;;N;;;;;
+1F5D3;SPIRAL CALENDAR PAD;So;0;ON;;;;;N;;;;;
+1F5D4;DESKTOP WINDOW;So;0;ON;;;;;N;;;;;
+1F5D5;MINIMIZE;So;0;ON;;;;;N;;;;;
+1F5D6;MAXIMIZE;So;0;ON;;;;;N;;;;;
+1F5D7;OVERLAP;So;0;ON;;;;;N;;;;;
+1F5D8;CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS;So;0;ON;;;;;N;;;;;
+1F5D9;CANCELLATION X;So;0;ON;;;;;N;;;;;
+1F5DA;INCREASE FONT SIZE SYMBOL;So;0;ON;;;;;N;;;;;
+1F5DB;DECREASE FONT SIZE SYMBOL;So;0;ON;;;;;N;;;;;
+1F5DC;COMPRESSION;So;0;ON;;;;;N;;;;;
+1F5DD;OLD KEY;So;0;ON;;;;;N;;;;;
+1F5DE;ROLLED-UP NEWSPAPER;So;0;ON;;;;;N;;;;;
+1F5DF;PAGE WITH CIRCLED TEXT;So;0;ON;;;;;N;;;;;
+1F5E0;STOCK CHART;So;0;ON;;;;;N;;;;;
+1F5E1;DAGGER KNIFE;So;0;ON;;;;;N;;;;;
+1F5E2;LIPS;So;0;ON;;;;;N;;;;;
+1F5E3;SPEAKING HEAD IN SILHOUETTE;So;0;ON;;;;;N;;;;;
+1F5E4;THREE RAYS ABOVE;So;0;ON;;;;;N;;;;;
+1F5E5;THREE RAYS BELOW;So;0;ON;;;;;N;;;;;
+1F5E6;THREE RAYS LEFT;So;0;ON;;;;;N;;;;;
+1F5E7;THREE RAYS RIGHT;So;0;ON;;;;;N;;;;;
+1F5E8;LEFT SPEECH BUBBLE;So;0;ON;;;;;N;;;;;
+1F5E9;RIGHT SPEECH BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EA;TWO SPEECH BUBBLES;So;0;ON;;;;;N;;;;;
+1F5EB;THREE SPEECH BUBBLES;So;0;ON;;;;;N;;;;;
+1F5EC;LEFT THOUGHT BUBBLE;So;0;ON;;;;;N;;;;;
+1F5ED;RIGHT THOUGHT BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EE;LEFT ANGER BUBBLE;So;0;ON;;;;;N;;;;;
+1F5EF;RIGHT ANGER BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F0;MOOD BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F1;LIGHTNING MOOD BUBBLE;So;0;ON;;;;;N;;;;;
+1F5F2;LIGHTNING MOOD;So;0;ON;;;;;N;;;;;
+1F5F3;BALLOT BOX WITH BALLOT;So;0;ON;;;;;N;;;;;
+1F5F4;BALLOT SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F5;BALLOT BOX WITH SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F6;BALLOT BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F7;BALLOT BOX WITH BOLD SCRIPT X;So;0;ON;;;;;N;;;;;
+1F5F8;LIGHT CHECK MARK;So;0;ON;;;;;N;;;;;
+1F5F9;BALLOT BOX WITH BOLD CHECK;So;0;ON;;;;;N;;;;;
+1F5FA;WORLD MAP;So;0;ON;;;;;N;;;;;
1F5FB;MOUNT FUJI;So;0;ON;;;;;N;;;;;
1F5FC;TOKYO TOWER;So;0;ON;;;;;N;;;;;
1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;;
@@ -23346,6 +25870,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F63E;POUTING CAT FACE;So;0;ON;;;;;N;;;;;
1F63F;CRYING CAT FACE;So;0;ON;;;;;N;;;;;
1F640;WEARY CAT FACE;So;0;ON;;;;;N;;;;;
+1F641;SLIGHTLY FROWNING FACE;So;0;ON;;;;;N;;;;;
+1F642;SLIGHTLY SMILING FACE;So;0;ON;;;;;N;;;;;
1F645;FACE WITH NO GOOD GESTURE;So;0;ON;;;;;N;;;;;
1F646;FACE WITH OK GESTURE;So;0;ON;;;;;N;;;;;
1F647;PERSON BOWING DEEPLY;So;0;ON;;;;;N;;;;;
@@ -23357,6 +25883,54 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F64D;PERSON FROWNING;So;0;ON;;;;;N;;;;;
1F64E;PERSON WITH POUTING FACE;So;0;ON;;;;;N;;;;;
1F64F;PERSON WITH FOLDED HANDS;So;0;ON;;;;;N;;;;;
+1F650;NORTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F651;SOUTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F652;NORTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F653;SOUTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F654;TURNED NORTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F655;TURNED SOUTH WEST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F656;TURNED NORTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F657;TURNED SOUTH EAST POINTING LEAF;So;0;ON;;;;;N;;;;;
+1F658;NORTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F659;SOUTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65A;NORTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65B;SOUTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65C;HEAVY NORTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65D;HEAVY SOUTH WEST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65E;HEAVY NORTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F65F;HEAVY SOUTH EAST POINTING VINE LEAF;So;0;ON;;;;;N;;;;;
+1F660;NORTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F661;SOUTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F662;NORTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F663;SOUTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F664;HEAVY NORTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F665;HEAVY SOUTH WEST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F666;HEAVY NORTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F667;HEAVY SOUTH EAST POINTING BUD;So;0;ON;;;;;N;;;;;
+1F668;HOLLOW QUILT SQUARE ORNAMENT;So;0;ON;;;;;N;;;;;
+1F669;HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE;So;0;ON;;;;;N;;;;;
+1F66A;SOLID QUILT SQUARE ORNAMENT;So;0;ON;;;;;N;;;;;
+1F66B;SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE;So;0;ON;;;;;N;;;;;
+1F66C;LEFTWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66D;UPWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66E;RIGHTWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F66F;DOWNWARDS ROCKET;So;0;ON;;;;;N;;;;;
+1F670;SCRIPT LIGATURE ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F671;HEAVY SCRIPT LIGATURE ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F672;LIGATURE OPEN ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F673;HEAVY LIGATURE OPEN ET ORNAMENT;So;0;ON;;;;;N;;;;;
+1F674;HEAVY AMPERSAND ORNAMENT;So;0;ON;;;;;N;;;;;
+1F675;SWASH AMPERSAND ORNAMENT;So;0;ON;;;;;N;;;;;
+1F676;SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F677;SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F678;SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+1F679;HEAVY INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67A;SANS-SERIF INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67B;HEAVY SANS-SERIF INTERROBANG ORNAMENT;So;0;ON;;;;;N;;;;;
+1F67C;VERY HEAVY SOLIDUS;So;0;ON;;;;;N;;;;;
+1F67D;VERY HEAVY REVERSE SOLIDUS;So;0;ON;;;;;N;;;;;
+1F67E;CHECKER BOARD;So;0;ON;;;;;N;;;;;
+1F67F;REVERSE CHECKER BOARD;So;0;ON;;;;;N;;;;;
1F680;ROCKET;So;0;ON;;;;;N;;;;;
1F681;HELICOPTER;So;0;ON;;;;;N;;;;;
1F682;STEAM LOCOMOTIVE;So;0;ON;;;;;N;;;;;
@@ -23427,6 +26001,33 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6C3;CUSTOMS;So;0;ON;;;;;N;;;;;
1F6C4;BAGGAGE CLAIM;So;0;ON;;;;;N;;;;;
1F6C5;LEFT LUGGAGE;So;0;ON;;;;;N;;;;;
+1F6C6;TRIANGLE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+1F6C7;PROHIBITED SIGN;So;0;ON;;;;;N;;;;;
+1F6C8;CIRCLED INFORMATION SOURCE;So;0;ON;;;;;N;;;;;
+1F6C9;BOYS SYMBOL;So;0;ON;;;;;N;;;;;
+1F6CA;GIRLS SYMBOL;So;0;ON;;;;;N;;;;;
+1F6CB;COUCH AND LAMP;So;0;ON;;;;;N;;;;;
+1F6CC;SLEEPING ACCOMMODATION;So;0;ON;;;;;N;;;;;
+1F6CD;SHOPPING BAGS;So;0;ON;;;;;N;;;;;
+1F6CE;BELLHOP BELL;So;0;ON;;;;;N;;;;;
+1F6CF;BED;So;0;ON;;;;;N;;;;;
+1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
+1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
+1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;;
+1F6E3;MOTORWAY;So;0;ON;;;;;N;;;;;
+1F6E4;RAILWAY TRACK;So;0;ON;;;;;N;;;;;
+1F6E5;MOTOR BOAT;So;0;ON;;;;;N;;;;;
+1F6E6;UP-POINTING MILITARY AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E7;UP-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E8;UP-POINTING SMALL AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6E9;SMALL AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6EA;NORTHEAST-POINTING AIRPLANE;So;0;ON;;;;;N;;;;;
+1F6EB;AIRPLANE DEPARTURE;So;0;ON;;;;;N;;;;;
+1F6EC;AIRPLANE ARRIVING;So;0;ON;;;;;N;;;;;
+1F6F0;SATELLITE;So;0;ON;;;;;N;;;;;
+1F6F1;ONCOMING FIRE ENGINE;So;0;ON;;;;;N;;;;;
+1F6F2;DIESEL LOCOMOTIVE;So;0;ON;;;;;N;;;;;
+1F6F3;PASSENGER SHIP;So;0;ON;;;;;N;;;;;
1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
@@ -23543,6 +26144,239 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
+1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F783;BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+1F784;BLACK SLIGHTLY SMALL CIRCLE;So;0;ON;;;;;N;;;;;
+1F785;MEDIUM BOLD WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F786;BOLD WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F787;HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F788;VERY HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F789;EXTREMELY HEAVY WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+1F78A;WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE;So;0;ON;;;;;N;;;;;
+1F78B;ROUND TARGET;So;0;ON;;;;;N;;;;;
+1F78C;BLACK TINY SQUARE;So;0;ON;;;;;N;;;;;
+1F78D;BLACK SLIGHTLY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+1F78E;LIGHT WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F78F;MEDIUM WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F790;BOLD WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F791;HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F792;VERY HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F793;EXTREMELY HEAVY WHITE SQUARE;So;0;ON;;;;;N;;;;;
+1F794;WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+1F795;WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE;So;0;ON;;;;;N;;;;;
+1F796;SQUARE TARGET;So;0;ON;;;;;N;;;;;
+1F797;BLACK TINY DIAMOND;So;0;ON;;;;;N;;;;;
+1F798;BLACK VERY SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F799;BLACK MEDIUM SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F79A;WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+1F79B;WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
+1F79C;DIAMOND TARGET;So;0;ON;;;;;N;;;;;
+1F79D;BLACK TINY LOZENGE;So;0;ON;;;;;N;;;;;
+1F79E;BLACK VERY SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F79F;BLACK MEDIUM SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F7A0;WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+1F7A1;THIN GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A2;LIGHT GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A3;MEDIUM GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A4;BOLD GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A5;VERY BOLD GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A6;VERY HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A7;EXTREMELY HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+1F7A8;THIN SALTIRE;So;0;ON;;;;;N;;;;;
+1F7A9;LIGHT SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AA;MEDIUM SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AB;BOLD SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AC;HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AD;VERY HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AE;EXTREMELY HEAVY SALTIRE;So;0;ON;;;;;N;;;;;
+1F7AF;LIGHT FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B0;MEDIUM FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B1;BOLD FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B2;HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B3;VERY HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B4;EXTREMELY HEAVY FIVE SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B5;LIGHT SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B6;MEDIUM SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B7;BOLD SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B8;HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7B9;VERY HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BA;EXTREMELY HEAVY SIX SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BB;LIGHT EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BC;MEDIUM EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BD;BOLD EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BE;HEAVY EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7BF;VERY HEAVY EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+1F7C0;LIGHT THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C1;MEDIUM THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C2;THREE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C3;MEDIUM THREE POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C4;LIGHT FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C5;MEDIUM FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C6;FOUR POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7C7;MEDIUM FOUR POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C8;REVERSE LIGHT FOUR POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7C9;LIGHT FIVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CA;HEAVY FIVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CB;MEDIUM SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CC;HEAVY SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CD;SIX POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7CE;MEDIUM EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7CF;HEAVY EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D0;VERY HEAVY EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D1;HEAVY EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F7D2;LIGHT TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D3;HEAVY TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+1F7D4;HEAVY TWELVE POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+1F800;LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F801;UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F802;RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F803;DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F804;LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F805;UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F806;RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F807;DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F808;LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F809;UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F80A;RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F80B;DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F810;LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F811;UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F812;RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F813;DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F814;LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F815;UPWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F816;RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F817;DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F818;HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F819;HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81A;HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81B;HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81C;HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81D;HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81E;HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F81F;HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F820;LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F821;UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F822;RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F823;DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT;So;0;ON;;;;;N;;;;;
+1F824;LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F825;UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F826;RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F827;DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT;So;0;ON;;;;;N;;;;;
+1F828;LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F829;UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82A;RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82B;DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT;So;0;ON;;;;;N;;;;;
+1F82C;LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82D;UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82E;RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F82F;DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F830;LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F831;UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F832;RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F833;DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT;So;0;ON;;;;;N;;;;;
+1F834;LEFTWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F835;UPWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F836;RIGHTWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F837;DOWNWARDS FINGER-POST ARROW;So;0;ON;;;;;N;;;;;
+1F838;LEFTWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F839;UPWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83A;RIGHTWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83B;DOWNWARDS SQUARED ARROW;So;0;ON;;;;;N;;;;;
+1F83C;LEFTWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83D;UPWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83E;RIGHTWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F83F;DOWNWARDS COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F840;LEFTWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F841;UPWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F842;RIGHTWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F843;DOWNWARDS HEAVY COMPRESSED ARROW;So;0;ON;;;;;N;;;;;
+1F844;LEFTWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F845;UPWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F846;RIGHTWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F847;DOWNWARDS HEAVY ARROW;So;0;ON;;;;;N;;;;;
+1F850;LEFTWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F851;UPWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F852;RIGHTWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F853;DOWNWARDS SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F854;NORTH WEST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F855;NORTH EAST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F856;SOUTH EAST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F857;SOUTH WEST SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F858;LEFT RIGHT SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F859;UP DOWN SANS-SERIF ARROW;So;0;ON;;;;;N;;;;;
+1F860;WIDE-HEADED LEFTWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F861;WIDE-HEADED UPWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F862;WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F863;WIDE-HEADED DOWNWARDS LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F864;WIDE-HEADED NORTH WEST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F865;WIDE-HEADED NORTH EAST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F866;WIDE-HEADED SOUTH EAST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F867;WIDE-HEADED SOUTH WEST LIGHT BARB ARROW;So;0;ON;;;;;N;;;;;
+1F868;WIDE-HEADED LEFTWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F869;WIDE-HEADED UPWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86A;WIDE-HEADED RIGHTWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86B;WIDE-HEADED DOWNWARDS BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86C;WIDE-HEADED NORTH WEST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86D;WIDE-HEADED NORTH EAST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86E;WIDE-HEADED SOUTH EAST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F86F;WIDE-HEADED SOUTH WEST BARB ARROW;So;0;ON;;;;;N;;;;;
+1F870;WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F871;WIDE-HEADED UPWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F872;WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F873;WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F874;WIDE-HEADED NORTH WEST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F875;WIDE-HEADED NORTH EAST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F876;WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F877;WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW;So;0;ON;;;;;N;;;;;
+1F878;WIDE-HEADED LEFTWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F879;WIDE-HEADED UPWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87A;WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87B;WIDE-HEADED DOWNWARDS HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87C;WIDE-HEADED NORTH WEST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87D;WIDE-HEADED NORTH EAST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87E;WIDE-HEADED SOUTH EAST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F87F;WIDE-HEADED SOUTH WEST HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F880;WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F881;WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F882;WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F883;WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F884;WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F885;WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F886;WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F887;WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW;So;0;ON;;;;;N;;;;;
+1F890;LEFTWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F891;UPWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F892;RIGHTWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F893;DOWNWARDS TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F894;LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F895;UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F896;RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F897;DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
+1F898;LEFTWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F899;UPWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89A;RIGHTWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89B;DOWNWARDS ARROW WITH NOTCHED TAIL;So;0;ON;;;;;N;;;;;
+1F89C;HEAVY ARROW SHAFT WIDTH ONE;So;0;ON;;;;;N;;;;;
+1F89D;HEAVY ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
+1F89E;HEAVY ARROW SHAFT WIDTH ONE HALF;So;0;ON;;;;;N;;;;;
+1F89F;HEAVY ARROW SHAFT WIDTH ONE THIRD;So;0;ON;;;;;N;;;;;
+1F8A0;LEFTWARDS BOTTOM-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A1;RIGHTWARDS BOTTOM SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A2;LEFTWARDS TOP SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A3;RIGHTWARDS TOP SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A4;LEFTWARDS LEFT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A5;RIGHTWARDS RIGHT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A6;LEFTWARDS RIGHT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A7;RIGHTWARDS LEFT-SHADED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A8;LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8A9;RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AA;LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AB;RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
+1F8AC;WHITE ARROW SHAFT WIDTH ONE;So;0;ON;;;;;N;;;;;
+1F8AD;WHITE ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
diff --git a/util/unicode/data/WordBreakProperty.txt b/util/unicode/data/WordBreakProperty.txt
index ad2b10992c..6135aeabde 100644
--- a/util/unicode/data/WordBreakProperty.txt
+++ b/util/unicode/data/WordBreakProperty.txt
@@ -1,8 +1,8 @@
-# WordBreakProperty-6.3.0.txt
-# Date: 2013-07-05, 14:09:03 GMT [MD]
+# WordBreakProperty-7.0.0.txt
+# Date: 2014-02-19, 15:51:39 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2013 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
@@ -89,8 +89,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08E4..08FE ; Extend # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
-0900..0902 ; Extend # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+08E4..0902 ; Extend # Mn [31] ARABIC CURLY FATHA..DEVANAGARI SIGN ANUSVARA
0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
093B ; Extend # Mc DEVANAGARI VOWEL SIGN OOE
@@ -153,6 +152,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0BCA..0BCC ; Extend # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
0BCD ; Extend # Mn TAMIL SIGN VIRAMA
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
+0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Extend # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Extend # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -160,6 +160,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81 ; Extend # Mn KANNADA SIGN CANDRABINDU
0C82..0C83 ; Extend # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
0CBC ; Extend # Mn KANNADA SIGN NUKTA
0CBE ; Extend # Mc KANNADA VOWEL SIGN AA
@@ -171,6 +172,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D01 ; Extend # Mn MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3E..0D40 ; Extend # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
@@ -267,6 +269,8 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
1A6D..1A72 ; Extend # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
1A73..1A7C ; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B04 ; Extend # Mc BALINESE SIGN BISAH
1B34 ; Extend # Mn BALINESE SIGN REREKAN
@@ -285,8 +289,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
1BA6..1BA7 ; Extend # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
1BAA ; Extend # Mc SUNDANESE SIGN PAMAAEH
-1BAB ; Extend # Mn SUNDANESE SIGN VIRAMA
-1BAC..1BAD ; Extend # Mc [2] SUNDANESE CONSONANT SIGN PASANGAN MA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAB..1BAD ; Extend # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
1BE6 ; Extend # Mn BATAK SIGN TOMPI
1BE7 ; Extend # Mc BATAK VOWEL SIGN E
1BE8..1BE9 ; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
@@ -306,7 +309,8 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
1CED ; Extend # Mn VEDIC SIGN TIRYAK
1CF2..1CF3 ; Extend # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
-1DC0..1DE6 ; Extend # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF5 ; Extend # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE
1DFC..1DFF ; Extend # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
@@ -346,6 +350,7 @@ A9B6..A9B9 ; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN
A9BA..A9BB ; Extend # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
A9BC ; Extend # Mn JAVANESE VOWEL SIGN PEPET
A9BD..A9C0 ; Extend # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9E5 ; Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA2F..AA30 ; Extend # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -355,6 +360,8 @@ AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
AA4D ; Extend # Mc CHAM CONSONANT SIGN FINAL H
AA7B ; Extend # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Extend # Mc MYANMAR SIGN TAI LAING TONE-5
AAB0 ; Extend # Mn TAI VIET MAI KANG
AAB2..AAB4 ; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -374,19 +381,22 @@ ABEC ; Extend # Mc MEETEI MAYEK LUM IYEK
ABED ; Extend # Mn MEETEI MAYEK APUN IYEK
FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE26 ; Extend # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FE20..FE2D ; Extend # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; Extend # Mn COPTIC EPACT THOUSANDS MARK
+10376..1037A ; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
10A3F ; Extend # Mn KHAROSHTHI VIRAMA
+10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11002 ; Extend # Mc BRAHMI SIGN VISARGA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11080..11081 ; Extend # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
11082 ; Extend # Mc KAITHI SIGN VISARGA
110B0..110B2 ; Extend # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -396,11 +406,53 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112C ; Extend # Mc CHAKMA VOWEL SIGN E
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11173 ; Extend # Mn MAHAJANI SIGN NUKTA
11180..11181 ; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
11182 ; Extend # Mc SHARADA SIGN VISARGA
111B3..111B5 ; Extend # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
111B6..111BE ; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
111BF..111C0 ; Extend # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+1122C..1122E ; Extend # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; Extend # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
+11235 ; Extend # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11301 ; Extend # Mn GRANTHA SIGN CANDRABINDU
+11302..11303 ; Extend # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133C ; Extend # Mn GRANTHA SIGN NUKTA
+1133E..1133F ; Extend # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; Extend # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; Extend # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; Extend # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; Extend # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357 ; Extend # Mc GRANTHA AU LENGTH MARK
+11362..11363 ; Extend # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+114B0..114B2 ; Extend # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; Extend # Mc TIRHUTA VOWEL SIGN E
+114BA ; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; Extend # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; Extend # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1 ; Extend # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; Extend # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; Extend # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+11630..11632 ; Extend # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; Extend # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; Extend # Mn MODI SIGN ANUSVARA
+1163E ; Extend # Mc MODI SIGN VISARGA
+1163F..11640 ; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
116AB ; Extend # Mn TAKRI SIGN ANUSVARA
116AC ; Extend # Mc TAKRI SIGN VISARGA
116AD ; Extend # Mn TAKRI VOWEL SIGN AA
@@ -408,8 +460,11 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; Extend # Mc TAKRI SIGN VIRAMA
116B7 ; Extend # Mn TAKRI SIGN NUKTA
+16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F51..16F7E ; Extend # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -417,9 +472,10 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1649
+# Total code points: 1834
# ================================================
@@ -430,7 +486,7 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# ================================================
00AD ; Format # Cf SOFT HYPHEN
-0600..0604 ; Format # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT
+0600..0605 ; Format # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Format # Cf ARABIC LETTER MARK
06DD ; Format # Cf ARABIC END OF AYAH
070F ; Format # Cf SYRIAC ABBREVIATION MARK
@@ -442,11 +498,12 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
110BD ; Format # Cf KAITHI NUMBER SIGN
+1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Format # Cf LANGUAGE TAG
E0020..E007F ; Format # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 142
+# Total code points: 147
# ================================================
@@ -492,13 +549,14 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0376..0377 ; ALetter # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
037A ; ALetter # Lm GREEK YPOGEGRAMMENI
037B..037D ; ALetter # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F ; ALetter # L& GREEK CAPITAL LETTER YOT
0386 ; ALetter # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0388..038A ; ALetter # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
038C ; ALetter # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
038E..03A1 ; ALetter # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
03A3..03F5 ; ALetter # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
03F7..0481 ; ALetter # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
-048A..0527 ; ALetter # L& [158] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+048A..052F ; ALetter # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
0531..0556 ; ALetter # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
0559 ; ALetter # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
0561..0587 ; ALetter # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
@@ -525,15 +583,13 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0824 ; ALetter # Lm SAMARITAN MODIFIER LETTER SHORT A
0828 ; ALetter # Lm SAMARITAN MODIFIER LETTER I
0840..0858 ; ALetter # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-08A0 ; ALetter # Lo ARABIC LETTER BEH WITH SMALL V BELOW
-08A2..08AC ; ALetter # Lo [11] ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08A0..08B2 ; ALetter # Lo [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
0904..0939 ; ALetter # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093D ; ALetter # Lo DEVANAGARI SIGN AVAGRAHA
0950 ; ALetter # Lo DEVANAGARI OM
0958..0961 ; ALetter # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
0971 ; ALetter # Lm DEVANAGARI SIGN HIGH SPACING DOT
-0972..0977 ; ALetter # Lo [6] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER UUE
-0979..097F ; ALetter # Lo [7] DEVANAGARI LETTER ZHA..DEVANAGARI LETTER BBA
+0972..0980 ; ALetter # Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
0985..098C ; ALetter # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
098F..0990 ; ALetter # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
0993..09A8 ; ALetter # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
@@ -588,8 +644,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0C05..0C0C ; ALetter # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
0C0E..0C10 ; ALetter # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; ALetter # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33 ; ALetter # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39 ; ALetter # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C2A..0C39 ; ALetter # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; ALetter # Lo TELUGU SIGN AVAGRAHA
0C58..0C59 ; ALetter # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
0C60..0C61 ; ALetter # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
@@ -646,6 +701,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
1681..169A ; ALetter # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
16A0..16EA ; ALetter # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EE..16F0 ; ALetter # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; ALetter # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
1700..170C ; ALetter # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
170E..1711 ; ALetter # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
1720..1731 ; ALetter # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
@@ -658,7 +714,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
1880..18A8 ; ALetter # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
18AA ; ALetter # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
18B0..18F5 ; ALetter # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191C ; ALetter # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1900..191E ; ALetter # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1A00..1A16 ; ALetter # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
1B05..1B33 ; ALetter # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
1B45..1B4B ; ALetter # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
@@ -759,7 +815,8 @@ A62A..A62B ; ALetter # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
A640..A66D ; ALetter # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
A66E ; ALetter # Lo CYRILLIC LETTER MULTIOCULAR O
A67F ; ALetter # Lm CYRILLIC PAYEROK
-A680..A697 ; ALetter # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A680..A69B ; ALetter # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; ALetter # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A6A0..A6E5 ; ALetter # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
A6E6..A6EF ; ALetter # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
A717..A71F ; ALetter # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
@@ -768,8 +825,9 @@ A770 ; ALetter # Lm MODIFIER LETTER US
A771..A787 ; ALetter # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A788 ; ALetter # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; ALetter # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A793 ; ALetter # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
-A7A0..A7AA ; ALetter # L& [11] LATIN CAPITAL LETTER G WITH OBLIQUE STROKE..LATIN CAPITAL LETTER H WITH HOOK
+A790..A7AD ; ALetter # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
+A7B0..A7B1 ; ALetter # L& [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
+A7F7 ; ALetter # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; ALetter # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; ALetter # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A801 ; ALetter # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
@@ -796,6 +854,9 @@ AB09..AB0E ; ALetter # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDH
AB11..AB16 ; ALetter # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; ALetter # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; ALetter # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A ; ALetter # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5C..AB5F ; ALetter # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB64..AB65 ; ALetter # L& [2] LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
ABC0..ABE2 ; ALetter # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
AC00..D7A3 ; ALetter # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
D7B0..D7C6 ; ALetter # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -826,23 +887,31 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10140..10174 ; ALetter # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
10280..1029C ; ALetter # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
102A0..102D0 ; ALetter # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
-10300..1031E ; ALetter # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10300..1031F ; ALetter # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
10330..10340 ; ALetter # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
10341 ; ALetter # Nl GOTHIC LETTER NINETY
10342..10349 ; ALetter # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
1034A ; ALetter # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375 ; ALetter # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
10380..1039D ; ALetter # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
103A0..103C3 ; ALetter # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
103C8..103CF ; ALetter # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
103D1..103D5 ; ALetter # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
10400..1044F ; ALetter # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
10450..1049D ; ALetter # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10500..10527 ; ALetter # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; ALetter # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736 ; ALetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; ALetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; ALetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
10800..10805 ; ALetter # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; ALetter # Lo CYPRIOT SYLLABLE JO
1080A..10835 ; ALetter # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
10837..10838 ; ALetter # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
1083C ; ALetter # Lo CYPRIOT SYLLABLE ZA
1083F..10855 ; ALetter # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876 ; ALetter # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E ; ALetter # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
10900..10915 ; ALetter # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
10920..10939 ; ALetter # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
10980..109B7 ; ALetter # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
@@ -852,24 +921,61 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10A15..10A17 ; ALetter # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
10A19..10A33 ; ALetter # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
10A60..10A7C ; ALetter # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C ; ALetter # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7 ; ALetter # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4 ; ALetter # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
10B00..10B35 ; ALetter # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
10B40..10B55 ; ALetter # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
10B60..10B72 ; ALetter # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91 ; ALetter # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
10C00..10C48 ; ALetter # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
11003..11037 ; ALetter # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11083..110AF ; ALetter # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; ALetter # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
11103..11126 ; ALetter # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11150..11172 ; ALetter # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176 ; ALetter # Lo MAHAJANI LIGATURE SHRI
11183..111B2 ; ALetter # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
111C1..111C4 ; ALetter # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA ; ALetter # Lo SHARADA EKAM
+11200..11211 ; ALetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; ALetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+112B0..112DE ; ALetter # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C ; ALetter # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; ALetter # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; ALetter # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; ALetter # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; ALetter # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; ALetter # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D ; ALetter # Lo GRANTHA SIGN AVAGRAHA
+1135D..11361 ; ALetter # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11480..114AF ; ALetter # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5 ; ALetter # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7 ; ALetter # Lo TIRHUTA OM
+11580..115AE ; ALetter # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+11600..1162F ; ALetter # Lo [48] MODI LETTER A..MODI LETTER LLA
+11644 ; ALetter # Lo MODI SIGN HUVA
11680..116AA ; ALetter # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
-12000..1236E ; ALetter # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
-12400..12462 ; ALetter # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+118A0..118DF ; ALetter # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF ; ALetter # Lo WARANG CITI OM
+11AC0..11AF8 ; ALetter # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+12000..12398 ; ALetter # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
+12400..1246E ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
13000..1342E ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
16800..16A38 ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E ; ALetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED ; ALetter # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F ; ALetter # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43 ; ALetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77 ; ALetter # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; ALetter # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16F00..16F44 ; ALetter # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
16F50 ; ALetter # Lo MIAO LETTER NASALIZATION
16F93..16F9F ; ALetter # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+1BC00..1BC6A ; ALetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; ALetter # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; ALetter # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; ALetter # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
1D400..1D454 ; ALetter # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
1D456..1D49C ; ALetter # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
1D49E..1D49F ; ALetter # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -900,6 +1006,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1D78A..1D7A8 ; ALetter # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7AA..1D7C2 ; ALetter # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7CB ; ALetter # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E800..1E8C4 ; ALetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1EE00..1EE03 ; ALetter # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; ALetter # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; ALetter # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -933,8 +1040,11 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1EEA1..1EEA3 ; ALetter # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
1EEA5..1EEA9 ; ALetter # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
1EEAB..1EEBB ; ALetter # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F130..1F149 ; ALetter # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169 ; ALetter # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189 ; ALetter # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 24867
+# Total code points: 26647
# ================================================
@@ -997,6 +1107,7 @@ FF0E ; MidNumLet # Po FULLWIDTH FULL STOP
0C66..0C6F ; Numeric # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
0CE6..0CEF ; Numeric # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0D66..0D6F ; Numeric # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF ; Numeric # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
0E50..0E59 ; Numeric # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
0ED0..0ED9 ; Numeric # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0F20..0F29 ; Numeric # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
@@ -1016,6 +1127,7 @@ A620..A629 ; Numeric # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
A8D0..A8D9 ; Numeric # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
A900..A909 ; Numeric # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
A9D0..A9D9 ; Numeric # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9 ; Numeric # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
AA50..AA59 ; Numeric # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
@@ -1023,10 +1135,16 @@ ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT N
110F0..110F9 ; Numeric # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11136..1113F ; Numeric # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
111D0..111D9 ; Numeric # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9 ; Numeric # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+114D0..114D9 ; Numeric # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659 ; Numeric # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
116C0..116C9 ; Numeric # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+118E0..118E9 ; Numeric # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-# Total code points: 451
+# Total code points: 531
# ================================================
diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp
index af193c3bc2..2f6e28bd9f 100644
--- a/util/unicode/main.cpp
+++ b/util/unicode/main.cpp
@@ -43,8 +43,8 @@
#include <private/qunicodetables_p.h>
#endif
-#define DATA_VERSION_S "6.3"
-#define DATA_VERSION_STR "QChar::Unicode_6_3"
+#define DATA_VERSION_S "7.0"
+#define DATA_VERSION_STR "QChar::Unicode_7_0"
static QHash<QByteArray, QChar::UnicodeVersion> age_map;
@@ -70,6 +70,7 @@ static void initAgeMap()
{ QChar::Unicode_6_1, "6.1" },
{ QChar::Unicode_6_2, "6.2" },
{ QChar::Unicode_6_3, "6.3" },
+ { QChar::Unicode_7_0, "7.0" },
{ QChar::Unicode_Unassigned, 0 }
};
AgeMap *d = ageMap;
@@ -694,6 +695,30 @@ static void initScriptMap()
{ QChar::Script_Sharada, "Sharada" },
{ QChar::Script_SoraSompeng, "SoraSompeng" },
{ QChar::Script_Takri, "Takri" },
+ // 7.0
+ { QChar::Script_CaucasianAlbanian, "CaucasianAlbanian" },
+ { QChar::Script_BassaVah, "BassaVah" },
+ { QChar::Script_Duployan, "Duployan" },
+ { QChar::Script_Elbasan, "Elbasan" },
+ { QChar::Script_Grantha, "Grantha" },
+ { QChar::Script_PahawhHmong, "PahawhHmong" },
+ { QChar::Script_Khojki, "Khojki" },
+ { QChar::Script_LinearA, "LinearA" },
+ { QChar::Script_Mahajani, "Mahajani" },
+ { QChar::Script_Manichaean, "Manichaean" },
+ { QChar::Script_MendeKikakui, "MendeKikakui" },
+ { QChar::Script_Modi, "Modi" },
+ { QChar::Script_Mro, "Mro" },
+ { QChar::Script_OldNorthArabian, "OldNorthArabian" },
+ { QChar::Script_Nabataean, "Nabataean" },
+ { QChar::Script_Palmyrene, "Palmyrene" },
+ { QChar::Script_PauCinHau, "PauCinHau" },
+ { QChar::Script_OldPermic, "OldPermic" },
+ { QChar::Script_PsalterPahlavi, "PsalterPahlavi" },
+ { QChar::Script_Siddham, "Siddham" },
+ { QChar::Script_Khudawadi, "Khudawadi" },
+ { QChar::Script_Tirhuta, "Tirhuta" },
+ { QChar::Script_WarangCiti, "WarangCiti" },
// unhandled
{ QChar::Script_Unknown, 0 }
};
@@ -712,23 +737,23 @@ static const char *property_string =
" ushort direction : 8; /* 5 used */\n"
" ushort combiningClass : 8;\n"
" ushort joining : 3;\n"
- " signed short digitValue : 5; /* 5 used */\n"
+ " signed short digitValue : 5;\n"
" signed short mirrorDiff : 16;\n"
- " signed short lowerCaseDiff : 16;\n"
- " signed short upperCaseDiff : 16;\n"
- " signed short titleCaseDiff : 16;\n"
- " signed short caseFoldDiff : 16;\n"
" ushort lowerCaseSpecial : 1;\n"
+ " signed short lowerCaseDiff : 15;\n"
" ushort upperCaseSpecial : 1;\n"
+ " signed short upperCaseDiff : 15;\n"
" ushort titleCaseSpecial : 1;\n"
+ " signed short titleCaseDiff : 15;\n"
" ushort caseFoldSpecial : 1;\n"
- " ushort unicodeVersion : 4;\n"
+ " signed short caseFoldDiff : 15;\n"
+ " ushort unicodeVersion : 8; /* 5 used */\n"
" ushort nfQuickCheck : 8;\n" // could be narrowed
" ushort graphemeBreakClass : 4; /* 4 used */\n"
" ushort wordBreakClass : 4; /* 4 used */\n"
" ushort sentenceBreakClass : 8; /* 4 used */\n"
" ushort lineBreakClass : 8; /* 6 used */\n"
- " ushort script : 8; /* 7 used */\n"
+ " ushort script : 8;\n"
"};\n\n"
"Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4) Q_DECL_NOTHROW;\n"
"Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2) Q_DECL_NOTHROW;\n"
@@ -786,7 +811,7 @@ struct PropertyFlags {
// from ArabicShaping.txt
QChar::JoiningType joining : 3;
// from DerivedAge.txt
- QChar::UnicodeVersion age : 4;
+ QChar::UnicodeVersion age : 5;
int digitValue;
int mirrorDiff : 16;
@@ -849,6 +874,7 @@ static int appendToSpecialCaseMap(const QList<int> &map)
return pos;
}
+// DerivedCoreProperties.txt
static inline bool isDefaultIgnorable(uint ucs4)
{
// Default_Ignorable_Code_Point:
@@ -860,9 +886,11 @@ static inline bool isDefaultIgnorable(uint ucs4)
return ucs4 == 0xad;
return ucs4 == 0x034f
+ || ucs4 == 0x061c
|| (ucs4 >= 0x115f && ucs4 <= 0x1160)
|| (ucs4 >= 0x17b4 && ucs4 <= 0x17b5)
|| (ucs4 >= 0x180b && ucs4 <= 0x180d)
+ || ucs4 == 0x180e
|| (ucs4 >= 0x200b && ucs4 <= 0x200f)
|| (ucs4 >= 0x202a && ucs4 <= 0x202e)
|| (ucs4 >= 0x2060 && ucs4 <= 0x206f)
@@ -871,7 +899,9 @@ static inline bool isDefaultIgnorable(uint ucs4)
|| ucs4 == 0xfeff
|| ucs4 == 0xffa0
|| (ucs4 >= 0xfff0 && ucs4 <= 0xfff8)
- || (ucs4 >= 0x1d173 && ucs4 <= 0xe0fff && (ucs4 <= 0x1d17a || ucs4 >= 0xe0000));
+ || (ucs4 >= 0x1bca0 && ucs4 <= 0x1bca3)
+ || (ucs4 >= 0x1d173 && ucs4 <= 0x1d17a)
+ || (ucs4 >= 0xe0000 && ucs4 <= 0xe0fff);
}
struct UnicodeData {
@@ -1092,7 +1122,7 @@ static void readUnicodeData()
int upperCase = properties[UD_UpperCase].toInt(&ok, 16);
Q_ASSERT(ok);
int diff = upperCase - codepoint;
- if (qAbs(diff) >= (1<<14)) {
+ if (qAbs(diff) >= (1<<13)) {
qWarning() << "upperCaseDiff exceeded (" << hex << codepoint << "->" << upperCase << "); map it for special case";
// if the condition below doesn't hold anymore we need to modify our special upper casing code in qchar.cpp
Q_ASSERT(!QChar::requiresSurrogates(codepoint) && !QChar::requiresSurrogates(upperCase));
@@ -1112,7 +1142,7 @@ static void readUnicodeData()
int lowerCase = properties[UD_LowerCase].toInt(&ok, 16);
Q_ASSERT(ok);
int diff = lowerCase - codepoint;
- if (qAbs(diff) >= (1<<14)) {
+ if (qAbs(diff) >= (1<<13)) {
qWarning() << "lowerCaseDiff exceeded (" << hex << codepoint << "->" << lowerCase << "); map it for special case";
// if the condition below doesn't hold anymore we need to modify our special lower casing code in qchar.cpp
Q_ASSERT(!QChar::requiresSurrogates(codepoint) && !QChar::requiresSurrogates(lowerCase));
@@ -1135,7 +1165,7 @@ static void readUnicodeData()
int titleCase = properties[UD_TitleCase].toInt(&ok, 16);
Q_ASSERT(ok);
int diff = titleCase - codepoint;
- if (qAbs(diff) >= (1<<14)) {
+ if (qAbs(diff) >= (1<<13)) {
qWarning() << "titleCaseDiff exceeded (" << hex << codepoint << "->" << titleCase << "); map it for special case";
// if the condition below doesn't hold anymore we need to modify our special title casing code in qchar.cpp
Q_ASSERT(!QChar::requiresSurrogates(codepoint) && !QChar::requiresSurrogates(titleCase));
@@ -1701,7 +1731,7 @@ static void readCaseFolding()
if (foldMap.size() == 1) {
int caseFolded = foldMap.at(0);
int diff = caseFolded - codepoint;
- if (qAbs(diff) >= (1<<14)) {
+ if (qAbs(diff) >= (1<<13)) {
qWarning() << "caseFoldDiff exceeded (" << hex << codepoint << "->" << caseFolded << "); map it for special case";
// if the condition below doesn't hold anymore we need to modify our special case folding code in qchar.cpp
Q_ASSERT(!QChar::requiresSurrogates(codepoint) && !QChar::requiresSurrogates(caseFolded));
@@ -2182,10 +2212,10 @@ static QByteArray createPropertyInfo()
// we reserve one bit more than in the assert below for the sign
Q_ASSERT(maxMirroredDiff < (1<<12));
- Q_ASSERT(maxLowerCaseDiff < (1<<14));
- Q_ASSERT(maxUpperCaseDiff < (1<<14));
- Q_ASSERT(maxTitleCaseDiff < (1<<14));
- Q_ASSERT(maxCaseFoldDiff < (1<<14));
+ Q_ASSERT(maxLowerCaseDiff < (1<<13));
+ Q_ASSERT(maxUpperCaseDiff < (1<<13));
+ Q_ASSERT(maxTitleCaseDiff < (1<<13));
+ Q_ASSERT(maxCaseFoldDiff < (1<<13));
const int BMP_BLOCKSIZE = 32;
const int BMP_SHIFT = 5;
@@ -2337,37 +2367,37 @@ static QByteArray createPropertyInfo()
// " ushort joining : 3;\n"
out += QByteArray::number( p.joining );
out += ", ";
-// " signed short digitValue : 5; /* 5 used */\n"
+// " signed short digitValue : 5;\n"
out += QByteArray::number( p.digitValue );
out += ", ";
// " signed short mirrorDiff : 16;\n"
-// " signed short lowerCaseDiff : 16;\n"
-// " signed short upperCaseDiff : 16;\n"
-// " signed short titleCaseDiff : 16;\n"
-// " signed short caseFoldDiff : 16;\n"
out += QByteArray::number( p.mirrorDiff );
out += ", ";
- out += QByteArray::number( p.lowerCaseDiff );
- out += ", ";
- out += QByteArray::number( p.upperCaseDiff );
- out += ", ";
- out += QByteArray::number( p.titleCaseDiff );
- out += ", ";
- out += QByteArray::number( p.caseFoldDiff );
- out += ", ";
// " ushort lowerCaseSpecial : 1;\n"
-// " ushort upperCaseSpecial : 1;\n"
-// " ushort titleCaseSpecial : 1;\n"
-// " ushort caseFoldSpecial : 1;\n"
+// " signed short lowerCaseDiff : 15;\n"
out += QByteArray::number( p.lowerCaseSpecial );
out += ", ";
+ out += QByteArray::number( p.lowerCaseDiff );
+ out += ", ";
+// " ushort upperCaseSpecial : 1;\n"
+// " signed short upperCaseDiff : 15;\n"
out += QByteArray::number( p.upperCaseSpecial );
out += ", ";
+ out += QByteArray::number( p.upperCaseDiff );
+ out += ", ";
+// " ushort titleCaseSpecial : 1;\n"
+// " signed short titleCaseDiff : 15;\n"
out += QByteArray::number( p.titleCaseSpecial );
out += ", ";
+ out += QByteArray::number( p.titleCaseDiff );
+ out += ", ";
+// " ushort caseFoldSpecial : 1;\n"
+// " signed short caseFoldDiff : 15;\n"
out += QByteArray::number( p.caseFoldSpecial );
out += ", ";
-// " ushort unicodeVersion : 4;\n"
+ out += QByteArray::number( p.caseFoldDiff );
+ out += ", ";
+// " ushort unicodeVersion : 8; /* 5 used */\n"
out += QByteArray::number( p.age );
out += ", ";
// " ushort nfQuickCheck : 8;\n"
@@ -2385,7 +2415,7 @@ static QByteArray createPropertyInfo()
out += ", ";
out += QByteArray::number( p.lineBreakClass );
out += ", ";
-// " ushort script : 8; /* 7 used */\n"
+// " ushort script : 8;\n"
out += QByteArray::number( p.script );
out += " },";
}